2
0

ChatManager.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.gmail.nossr50.chat;
  2. import org.bukkit.entity.Player;
  3. import org.bukkit.plugin.Plugin;
  4. import com.gmail.nossr50.events.chat.McMMOChatEvent;
  5. import com.gmail.nossr50.locale.LocaleLoader;
  6. public abstract class ChatManager {
  7. protected Plugin plugin;
  8. protected boolean useDisplayNames;
  9. protected String chatPrefix;
  10. protected String displayName;
  11. protected String message;
  12. protected ChatManager(Plugin plugin, boolean useDisplayNames, String chatPrefix) {
  13. this.plugin = plugin;
  14. this.useDisplayNames = useDisplayNames;
  15. this.chatPrefix = chatPrefix;
  16. }
  17. protected void handleChat(McMMOChatEvent event) {
  18. plugin.getServer().getPluginManager().callEvent(event);
  19. if (event.isCancelled()) {
  20. return;
  21. }
  22. displayName = useDisplayNames ? event.getDisplayName() : event.getSender();
  23. message = LocaleLoader.formatString(chatPrefix, displayName) + " " + event.getMessage();
  24. sendMessage();
  25. }
  26. public void handleChat(String senderName, String message) {
  27. handleChat(senderName, senderName, message, false);
  28. }
  29. public void handleChat(Player player, String message, boolean isAsync) {
  30. handleChat(player.getName(), player.getDisplayName(), message, isAsync);
  31. }
  32. public void handleChat(String senderName, String displayName, String message) {
  33. handleChat(senderName, displayName, message, false);
  34. }
  35. public abstract void handleChat(String senderName, String displayName, String message, boolean isAsync);
  36. protected abstract void sendMessage();
  37. }