Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.56 KB | None | 0 0
  1. import java.io.*;
  2. import java.security.*;
  3.  
  4. public class Listener extends PluginListener{
  5.  
  6.  
  7.     PropertiesFile user_data;
  8.     PropertiesFile MBLogin_Groups;
  9.  
  10.     public void register(Player player, String password) throws NoSuchAlgorithmException, UnsupportedEncodingException{
  11.            
  12.         if (user_data==null){
  13.             user_data = new PropertiesFile("user_data.properties");
  14.         }
  15.         else {
  16.             user_data.load();
  17.         }
  18.         if (!user_data.keyExists(player.getName())){
  19.             String username = player.getName();
  20.             String passwordMd5 = MD5(password);
  21.             user_data.setString(username, passwordMd5);
  22.             player.sendMessage(Colors.LightGreen+"Thankyou for registering. You can now use /login to login.");
  23.         }
  24.         else{
  25.             player.sendMessage(Colors.Red+"You have already registered!");
  26.         }
  27.        
  28.     }
  29.     public void login(Player player, String password) throws NoSuchAlgorithmException, UnsupportedEncodingException{
  30.         String username = player.getName();
  31.         String passwordMd5 = MD5(password);
  32.        
  33.         if (user_data==null){
  34.             user_data = new PropertiesFile("user_data.properties");
  35.         }
  36.         else {
  37.             user_data.load();
  38.         }
  39.         if (MBLogin_Groups==null){
  40.             MBLogin_Groups= new PropertiesFile("MBLogin_Groups.properties");
  41.         }
  42.         else {
  43.             MBLogin_Groups.load();
  44.         }
  45.         if (user_data.keyExists(username)){
  46.             String realPassword = user_data.getString(username);
  47.            
  48.             if(realPassword.equals(passwordMd5)){
  49.                 String group = MBLogin_Groups.getString(username);
  50.                 player.addGroup(group);
  51.                 player.sendMessage(Colors.Green+"Thankyou for logging on. Have fun.");
  52.             }
  53.             if(!realPassword.equals(passwordMd5)){
  54.                 player.kick(Colors.Red+"You entered the wrong password!");
  55.             }
  56.         }
  57.         else{
  58.             player.sendMessage(Colors.Red+"You have not registered!");
  59.         }
  60.        
  61.     }
  62.     private static String convertToHex(byte[] data) {
  63.         StringBuffer buf = new StringBuffer();
  64.         for (int i = 0; i < data.length; i++) {
  65.             int halfbyte = (data[i] >>> 4) & 0x0F;
  66.             int two_halfs = 0;
  67.             do {
  68.                 if ((0 <= halfbyte) && (halfbyte <= 9))
  69.                     buf.append((char) ('0' + halfbyte));
  70.                 else
  71.                     buf.append((char) ('a' + (halfbyte - 10)));
  72.                 halfbyte = data[i] & 0x0F;
  73.             } while(two_halfs++ < 1);
  74.         }
  75.         return buf.toString();
  76.     }
  77.  
  78.     public static String MD5(String text)
  79.     throws NoSuchAlgorithmException, UnsupportedEncodingException  {
  80.         MessageDigest md;
  81.         md = MessageDigest.getInstance("MD5");
  82.         byte[] md5hash = new byte[32];
  83.         md.update(text.getBytes("iso-8859-1"), 0, text.length());
  84.         md5hash = md.digest();
  85.         return convertToHex(md5hash);
  86.     }
  87.  
  88.  
  89.     public void onLogin(Player player){
  90.         if (player.isInGroup("logged_out")){
  91.             player.sendMessage("Welcome " + player.getName());
  92.             player.sendMessage("Use /login <password> to start editing map");
  93.             player.sendMessage("If you have not yet registered. Use /register <password>");
  94.         }
  95.         else {
  96.             player.sendMessage("Welcome " + player.getName());
  97.             player.sendMessage("You have to become a trusted user to start editing the map.");
  98.             player.sendMessage("Please talk to one of the moderators or admins.");
  99.         }
  100.        
  101.        
  102.     }
  103.     public void addUser(Player player, String group)
  104.       {
  105.         File users = new File("users.txt");
  106.         try
  107.         {
  108.           FileWriter writer = new FileWriter(users, true);
  109.           writer.write(player.getName() + ":logged_out" +
  110.             System.getProperty("line.separator"));
  111.           writer.flush();
  112.           writer.close();
  113.         }
  114.         catch (IOException localIOException)
  115.         {
  116.         }
  117.         if (MBLogin_Groups==null){
  118.             MBLogin_Groups= new PropertiesFile("MBLogin_Groups.properties");
  119.         }
  120.         else {
  121.             MBLogin_Groups.load();
  122.         }
  123.         MBLogin_Groups.setString(player.getName(), group);
  124.       }
  125.    
  126.     public boolean onCommand(Player player, String[] split){
  127.         if ((split[0].equalsIgnoreCase("/group"))) {
  128.             String[] groups = player.getGroups();
  129.             int numberOfGroups = groups.length;
  130.             player.sendMessage(Colors.LightBlue+"You are in "+numberOfGroups +" groups");
  131.             int i = 0;
  132.             while (i<numberOfGroups){
  133.                 player.sendMessage(Colors.LightBlue+groups[i]);
  134.                 i++;
  135.             }
  136.            
  137.         }
  138.          if ((split[0].equalsIgnoreCase("/reg")) && (player.canUseCommand("/reg"))) {
  139.                 Player playerToWhitelist = etc.getServer().matchPlayer(split[1]);
  140.                 if (playerToWhitelist != null)
  141.                 {
  142.                   playerToWhitelist.addGroup("logged_out");
  143.                   addUser(playerToWhitelist, "logged_in");
  144.                   player.sendMessage(Colors.Green+  playerToWhitelist.getName() + " was successfully added to the trusted users");
  145.                   playerToWhitelist.sendMessage(Colors.Green+"You have been made a trusted user!");
  146.                 } else {
  147.                   player.sendMessage("Player not found!");
  148.                 }return true;
  149.               }
  150.               if ((split[0].equalsIgnoreCase("/vip")) && (player.canUseCommand("/vip"))) {
  151.                 Player playerToWhitelist = etc.getServer().matchPlayer(split[1]);
  152.                 if (playerToWhitelist != null)
  153.                 {
  154.                   playerToWhitelist.addGroup("vip");
  155.                   addUser(playerToWhitelist, "vip");
  156.                   player.sendMessage("§6" + playerToWhitelist.getName() + " was successfully added to the group 'vip'");
  157.                   playerToWhitelist.sendMessage("§3You have been made a VIP!");
  158.                 } else {
  159.                   player.sendMessage(Colors.Red+"Player not found!");
  160.                 }return true;
  161.               }
  162.         if(split[0].equalsIgnoreCase("/register")){
  163.             if(split.length==1)
  164.             {
  165.                 player.sendMessage(Colors.Red+"Usage: /register <password>");
  166.             }
  167.             if(split.length==2){
  168.                     try {
  169.                         register(player,split[1]);
  170.                     } catch (NoSuchAlgorithmException e) {
  171.                         player.sendMessage(Colors.Red+"Could not register your password. Please talk to ttocskcaj Error: 00001");
  172.                     } catch (UnsupportedEncodingException e) {
  173.                         player.sendMessage(Colors.Red+"Could not register your password. Please talk to ttocskcaj Error: 00002");
  174.                     }
  175.            
  176.             }
  177.             return true;
  178.         }
  179.         if(split[0].equalsIgnoreCase("/login")){
  180.             if(split.length==1)
  181.             {
  182.                 player.sendMessage("Usage: /login <password>");
  183.             }
  184.             if(split.length==2){
  185.                     try {
  186.                         login(player,split[1]);
  187.                     } catch (NoSuchAlgorithmException e) {
  188.                         player.sendMessage(Colors.Red+"Could not login. Please talk to ttocskcaj Error: 00003");
  189.                     } catch (UnsupportedEncodingException e) {
  190.                         player.sendMessage(Colors.Red+"Could not login. Please talk to ttocskcaj Error: 00004");
  191.                     }
  192.                    
  193.             }
  194.        
  195.  
  196.             return true;
  197.         }
  198.         return false;
  199.     }
  200.    
  201.    
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement