Advertisement
Guest User

Untitled

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