ChatManagerFactory.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.gmail.nossr50.chat;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import org.bukkit.plugin.Plugin;
  5. import org.jetbrains.annotations.NotNull;
  6. import org.jetbrains.annotations.Nullable;
  7. import com.gmail.nossr50.datatypes.chat.ChatMode;
  8. public final class ChatManagerFactory {
  9. private static final Map<Plugin, AdminChatManager> adminChatManagers = new HashMap<>();
  10. private static final Map<Plugin, PartyChatManager> partyChatManagers = new HashMap<>();
  11. /**
  12. * This is a static utility class, therefore we don't want any instances of
  13. * this class. Making the constructor private prevents accidents like that.
  14. */
  15. private ChatManagerFactory() {}
  16. @Nullable
  17. public static ChatManager getChatManager(@NotNull Plugin plugin, @NotNull ChatMode mode) {
  18. switch (mode) {
  19. case ADMIN:
  20. if (!adminChatManagers.containsKey(plugin)) {
  21. adminChatManagers.put(plugin, new AdminChatManager(plugin));
  22. }
  23. return adminChatManagers.get(plugin);
  24. case PARTY:
  25. if (!partyChatManagers.containsKey(plugin)) {
  26. partyChatManagers.put(plugin, new PartyChatManager(plugin));
  27. }
  28. return partyChatManagers.get(plugin);
  29. default:
  30. return null;
  31. }
  32. }
  33. }