PlayerManager.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package me.km.playerbank;
  2. import java.util.HashMap;
  3. import java.util.UUID;
  4. import me.kcm.events.PlayerConnectionEvent;
  5. import me.km.module.Module;
  6. import me.km.databank.DataBank;
  7. import me.km.scoreboard.ScoreboardUtils;
  8. import me.km.world.ModDimensions;
  9. import net.minecraft.entity.player.EntityPlayer;
  10. import net.minecraft.util.text.TextFormatting;
  11. import net.minecraftforge.fml.common.eventhandler.EventPriority;
  12. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  13. import net.minecraftforge.fml.common.gameevent.PlayerEvent;
  14. public class PlayerManager extends Module
  15. {
  16. private final PlayerBank bank;
  17. private final HashMap<UUID, Integer> playerIds = new HashMap<>();
  18. public PlayerManager(String prefix, TextFormatting color, DataBank c)
  19. {
  20. super(prefix, color);
  21. bank = new PlayerBank();
  22. registerEvent(this);
  23. }
  24. public PlayerBank getDataBank()
  25. {
  26. return bank;
  27. }
  28. public int getPlayerId(UUID uuid)
  29. {
  30. Integer i = playerIds.get(uuid);
  31. if(i != null)
  32. {
  33. return i;
  34. }
  35. return bank.getId(uuid);
  36. }
  37. @SubscribeEvent(priority = EventPriority.HIGH)
  38. public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent e)
  39. {
  40. EntityPlayer p = e.player;
  41. if(p == null)
  42. {
  43. return;
  44. }
  45. if(bank.add(p.getUniqueID(), p.getName()))
  46. {
  47. sendToConsole(p.getName() + " was added.");
  48. int id = bank.getId(p.getUniqueID());
  49. if(id == -1)
  50. {
  51. // this should never happen
  52. sendToConsole(p.getName() + " has no id.");
  53. }
  54. else
  55. {
  56. playerIds.put(p.getUniqueID(), id);
  57. }
  58. }
  59. else
  60. {
  61. bank.changeName(p.getUniqueID(), p.getName());
  62. }
  63. }
  64. @SubscribeEvent(priority = EventPriority.LOW)
  65. public void onPlayerLeaveCleanup(PlayerEvent.PlayerLoggedOutEvent e)
  66. {
  67. EntityPlayer p = e.player;
  68. ScoreboardUtils.remove(p.getUniqueID());
  69. }
  70. @SubscribeEvent
  71. public void onPlayerConnection(PlayerConnectionEvent e)
  72. {
  73. ModDimensions.sendNotificationsForDimensions(e.getEntityPlayer());
  74. }
  75. }