Solved Store Player Nicknames

Discussion in 'Plugin Development' started by Meatiex, Aug 26, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Meatiex

    I want to make player nicknames, I made some code to save the nickname and the player can chat with it, but i'm thinking this could cause lag if a lot of people are chating, any ideas if I should leave it as is or could someone help me with some kind of array list thing for nicknames to load into? Thanks :D
     
  2. Offline

    Gamesareme

    Meatiex you could try a hashmap
     
  3. Offline

    baugh70

    Meatiex player.setDisplayName(ChatColor.DARK_AQUA + "name");
     
  4. Offline

    Meatiex

    Thank you so much, it worked great :D
    I don't want to use display name because my chat is across more than one server.


    If you were wondering how I did it:
    Code:java
    1. public class Nick implements Listener {
    2.  
    3. public static Map<String, String> map = new HashMap<String, String>();
    4.  
    5. @EventHandler
    6. public void join (PlayerJoinEvent event) {
    7.  
    8. File f = new File("C:/UserData/Players/" + event.getPlayer().getName() + ".txt");
    9. if(!f.exists()) {
    10. map.put(event.getPlayer().getName(), event.getPlayer().getName());
    11. event.getPlayer().sendMessage(ChatColor.YELLOW + "Your Nickname Isn't Setup!");
    12. return;
    13. }
    14.  
    15. try(FileInputStream inputStream = new FileInputStream("C:/UserData/Players/" + event.getPlayer().getName() + ".txt")) {
    16. String nick;
    17. nick = IOUtils.toString(inputStream);
    18. map.put(event.getPlayer().getName(), nick);
    19. } catch (IOException e) {}
    20. }
    21.  
    22. @EventHandler
    23. public void chat(AsyncPlayerChatEvent event) {
    24. String nick = map.get(event.getPlayer().getName());
    25. event.setFormat(nick.replaceAll("[^A-Za-z0-9^\\&]", "").replaceAll("&", "ยง") + ChatColor.WHITE + ": " + event.getMessage());
    26. }
    27.  
    28. }
    29.  

    Code:java
    1. public class Nick implements CommandExecutor {
    2. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    3.  
    4. if ((sender instanceof Player)) {
    5. Player player = (Player)sender;
    6. if (player.hasPermission("meatie.nick")) {
    7. if (args.length == 1) {
    8.  
    9. File file = new File("C:/UserData/Players/" + player.getName() + ".txt");
    10. try {
    11. PrintWriter writer = new PrintWriter(file, "UTF-8");
    12. String nick = args[0].replaceAll("[^A-Za-z0-9^\\&]", "").replace("&k", "").replaceAll("&l", "").replaceAll("&m", "").replaceAll("&n", "").replaceAll("&o", "")
    13. .replace("&K", "").replaceAll("&L", "").replaceAll("&M", "").replaceAll("&N", "").replaceAll("&O", "");
    14. writer.println(nick);
    15. writer.close();
    16. String dnick = nick.replace("&a", "").replace("&A", "").replace("&b", "").replace("&B", "").replace("&c", "").replace("&C", "").replace("&d", "").replace("&D", "")
    17. .replace("&e", "").replace("&E", "").replace("&1", "").replace("&2", "").replace("&3", "").replace("&4", "").replace("&5", "").replace("&6", "").replace("&7", "")
    18. .replace("&8", "").replace("&9", "");
    19. player.sendMessage(ChatColor.GREEN + "Nickname Now " + ChatColor.RED + dnick);
    20. me.Meatie.Listiner.Nick.map.put(sender.getName(), nick);
    21. } catch (IOException e) {e.printStackTrace();}
    22. } else {
    23. player.sendMessage(ChatColor.RED + "/nick <name>");
    24. }
    25. }
    26. }
    27. return true;
    28. }
    29.  
    30. }
    31.  
     
  5. Offline

    Gamesareme

Thread Status:
Not open for further replies.

Share This Page