Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.security.*;
- public class Listener extends PluginListener{
- PropertiesFile user_data;
- PropertiesFile MBLogin_Groups;
- public void onPlayerMove(Player player, Location from, Location to) {
- if (player.isInGroup("logged_out")){
- player.teleportTo(from);
- }
- }
- public boolean onBlockDestroy(Player player, Block block) {
- if (player.isInGroup("logged_out")){
- return true;
- }
- return false;
- }
- public boolean onBlockCreate(Player player, Block block) {
- if (player.isInGroup("logged_out")){
- return true;
- }
- return false;
- }
- public void register(Player player, String password) throws NoSuchAlgorithmException, UnsupportedEncodingException{
- if (user_data==null){
- user_data = new PropertiesFile("user_data.properties");
- }
- else {
- user_data.load();
- }
- if (!user_data.keyExists(player.getName())){
- String username = player.getName();
- String passwordMd5 = MD5(password);
- user_data.setString(username, passwordMd5);
- player.sendMessage(Colors.LightGreen+"Thankyou for registering. You can now use /login to login.");
- }
- else{
- player.sendMessage(Colors.Red+"You have already registered!");
- }
- }
- public void login(Player player, String password) throws NoSuchAlgorithmException, UnsupportedEncodingException{
- String username = player.getName();
- String passwordMd5 = MD5(password);
- if (user_data==null){
- user_data = new PropertiesFile("user_data.properties");
- }
- else {
- user_data.load();
- }
- if (MBLogin_Groups==null){
- MBLogin_Groups= new PropertiesFile("MBLogin_Groups.properties");
- }
- else {
- MBLogin_Groups.load();
- }
- if (user_data.keyExists(username)){
- String realPassword = user_data.getString(username);
- if(realPassword.equals(passwordMd5)){
- String group = MBLogin_Groups.getString(username);
- player.addGroup(group);
- player.sendMessage(Colors.Green+"Thankyou for logging on. Have fun.");
- }
- if(!realPassword.equals(passwordMd5)){
- player.kick(Colors.Red+"You entered the wrong password!");
- }
- }
- else{
- player.sendMessage(Colors.Red+"You have not registered!");
- }
- }
- private static String convertToHex(byte[] data) {
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < data.length; i++) {
- int halfbyte = (data[i] >>> 4) & 0x0F;
- int two_halfs = 0;
- do {
- if ((0 <= halfbyte) && (halfbyte <= 9))
- buf.append((char) ('0' + halfbyte));
- else
- buf.append((char) ('a' + (halfbyte - 10)));
- halfbyte = data[i] & 0x0F;
- } while(two_halfs++ < 1);
- }
- return buf.toString();
- }
- public static String MD5(String text)
- throws NoSuchAlgorithmException, UnsupportedEncodingException {
- MessageDigest md;
- md = MessageDigest.getInstance("MD5");
- byte[] md5hash = new byte[32];
- md.update(text.getBytes("iso-8859-1"), 0, text.length());
- md5hash = md.digest();
- return convertToHex(md5hash);
- }
- public void onLogin(Player player){
- if (player.isInGroup("logged_out")){
- player.sendMessage("Welcome " + player.getName());
- player.sendMessage("Use /login <password> to start editing map");
- player.sendMessage("If you have not yet registered. Use /register <password>");
- }
- else {
- player.sendMessage("Welcome " + player.getName());
- player.sendMessage("You have to become a trusted user to start editing the map.");
- player.sendMessage("Please talk to one of the moderators or admins.");
- }
- }
- public void addUser(Player player, String group)
- {
- File users = new File("users.txt");
- try
- {
- FileWriter writer = new FileWriter(users, true);
- writer.write(player.getName() + ":logged_out" +
- System.getProperty("line.separator"));
- writer.flush();
- writer.close();
- }
- catch (IOException localIOException)
- {
- }
- if (MBLogin_Groups==null){
- MBLogin_Groups= new PropertiesFile("MBLogin_Groups.properties");
- }
- else {
- MBLogin_Groups.load();
- }
- MBLogin_Groups.setString(player.getName(), group);
- }
- public boolean onCommand(Player player, String[] split){
- if ((split[0].equalsIgnoreCase("/groups"))) {
- String[] groups = player.getGroups();
- int numberOfGroups = groups.length;
- player.sendMessage(Colors.LightBlue+"You are in "+numberOfGroups +" groups");
- int i = 0;
- while (i<numberOfGroups){
- player.sendMessage(Colors.LightBlue+groups[i]);
- i++;
- }
- return true;
- }
- if ((split[0].equalsIgnoreCase("/reg")) && (player.canUseCommand("/reg"))) {
- Player playerToWhitelist = etc.getServer().matchPlayer(split[1]);
- if (playerToWhitelist != null)
- {
- playerToWhitelist.addGroup("logged_out");
- addUser(playerToWhitelist, "logged_in");
- player.sendMessage(Colors.Green+ playerToWhitelist.getName() + " was successfully added to the trusted users");
- playerToWhitelist.sendMessage(Colors.Green+"You have been made a trusted user!");
- } else {
- player.sendMessage("Player not found!");
- }return true;
- }
- if ((split[0].equalsIgnoreCase("/vip")) && (player.canUseCommand("/vip"))) {
- Player playerToWhitelist = etc.getServer().matchPlayer(split[1]);
- if (playerToWhitelist != null)
- {
- playerToWhitelist.addGroup("vip");
- addUser(playerToWhitelist, "vip");
- player.sendMessage("§6" + playerToWhitelist.getName() + " was successfully added to the group 'vip'");
- playerToWhitelist.sendMessage("§3You have been made a VIP!");
- } else {
- player.sendMessage(Colors.Red+"Player not found!");
- }return true;
- }
- if(split[0].equalsIgnoreCase("/register")){
- if(split.length==1)
- {
- player.sendMessage(Colors.Red+"Usage: /register <password>");
- }
- if(split.length==2){
- try {
- register(player,split[1]);
- } catch (NoSuchAlgorithmException e) {
- player.sendMessage(Colors.Red+"Could not register your password. Please talk to ttocskcaj Error: 00001");
- } catch (UnsupportedEncodingException e) {
- player.sendMessage(Colors.Red+"Could not register your password. Please talk to ttocskcaj Error: 00002");
- }
- }
- return true;
- }
- if(split[0].equalsIgnoreCase("/login")){
- if(split.length==1)
- {
- player.sendMessage("Usage: /login <password>");
- }
- if(split.length==2){
- try {
- login(player,split[1]);
- } catch (NoSuchAlgorithmException e) {
- player.sendMessage(Colors.Red+"Could not login. Please talk to ttocskcaj Error: 00003");
- } catch (UnsupportedEncodingException e) {
- player.sendMessage(Colors.Red+"Could not login. Please talk to ttocskcaj Error: 00004");
- }
- }
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement