Bläddra i källkod

Change some stuff around with ChatManager, change ChatAPI to route
through ChatManager.

GJ 12 år sedan
förälder
incheckning
85b909a7ab

+ 6 - 36
src/main/java/com/gmail/nossr50/api/ChatAPI.java

@@ -1,13 +1,8 @@
 package com.gmail.nossr50.api;
 
-import org.bukkit.entity.Player;
-
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
-import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
-import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Users;
+import com.gmail.nossr50.party.PartyManager;
+import com.gmail.nossr50.util.ChatManager;
 
 public final class ChatAPI {
 
@@ -23,22 +18,8 @@ public final class ChatAPI {
      * @param message The message to send
      */
     public static void sendPartyChat(String sender, String party, String message) {
-        McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(sender, party, message);
-        mcMMO.p.getServer().getPluginManager().callEvent(chatEvent);
-
-        if (chatEvent.isCancelled()) {
-            return;
-        }
-
-        mcMMO.p.getLogger().info("[P](" + chatEvent.getParty() + ")" + "<" + chatEvent.getSender() + "> " + chatEvent.getMessage());
-
-        for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
-            if (Users.getProfile(player).inParty()) {
-                if (Users.getProfile(player).getParty().getName().equalsIgnoreCase(chatEvent.getParty())) {
-                    player.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Prefix", new Object[] {chatEvent.getSender()} ) + chatEvent.getMessage());
-                }
-            }
-        }
+        ChatManager chatManager = new ChatManager(mcMMO.p, sender, message);
+        chatManager.handlePartyChat(PartyManager.getInstance().getParty(party));
     }
 
     /**
@@ -50,18 +31,7 @@ public final class ChatAPI {
      * @param message The message to send
      */
     public static void sendAdminChat(String sender, String message) {
-        McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(sender, message);
-        mcMMO.p.getServer().getPluginManager().callEvent(chatEvent);
-
-        if (chatEvent.isCancelled()) {
-            return;
-        }
-
-        mcMMO.p.getLogger().info("[A]<" + chatEvent.getSender() + "> " + chatEvent.getMessage());
-
-        for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
-            if (Permissions.adminChat(player) || player.isOp())
-                player.sendMessage(LocaleLoader.getString("Commands.AdminChat.Prefix", new Object[] {chatEvent.getSender()} ) + chatEvent.getMessage());
-        }
+        ChatManager chatManager = new ChatManager(mcMMO.p, sender, message);
+        chatManager.handleAdminChat();
     }
 }

+ 13 - 3
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -23,6 +23,7 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.party.Party;
 import com.gmail.nossr50.runnables.BleedTimer;
 import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.skills.Skills;
@@ -344,12 +345,21 @@ public class PlayerListener implements Listener {
         }
 
         if (profile.getPartyChatMode()) {
-            ChatManager chatManager = new ChatManager(plugin, player, event);
-            chatManager.handlePartyChat();
+            Party party = profile.getParty();
+
+            if (party == null) {
+                player.sendMessage(LocaleLoader.getString("Commands.Party.None"));
+                return;
+            }
+
+            ChatManager chatManager = new ChatManager(plugin, player.getName(), event.getMessage());
+            chatManager.handlePartyChat(party);
+            event.setCancelled(true);
         }
         else if (profile.getAdminChatMode()) {
-            ChatManager chatManager = new ChatManager(plugin, player, event);
+            ChatManager chatManager = new ChatManager(plugin, player.getName(), event.getMessage());
             chatManager.handleAdminChat();
+            event.setCancelled(true);
         }
     }
 

+ 7 - 21
src/main/java/com/gmail/nossr50/util/ChatManager.java

@@ -1,7 +1,6 @@
 package com.gmail.nossr50.util;
 
 import org.bukkit.entity.Player;
-import org.bukkit.event.player.AsyncPlayerChatEvent;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
@@ -11,19 +10,17 @@ import com.gmail.nossr50.party.Party;
 
 public class ChatManager {
     private mcMMO plugin;
-    private Player player;
     private String playerName;
-    private AsyncPlayerChatEvent event;
+    private String message;
 
-    public ChatManager (mcMMO plugin, Player player, AsyncPlayerChatEvent event) {
+    public ChatManager (mcMMO plugin, String playerName, String message) {
         this.plugin = plugin;
-        this.player = player;
-        this.playerName = player.getName();
-        this.event = event;
+        this.playerName = playerName;
+        this.message = message;
     }
 
     public void handleAdminChat() {
-        McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(playerName, event.getMessage());
+        McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(playerName, message);
         plugin.getServer().getPluginManager().callEvent(chatEvent);
 
         if (chatEvent.isCancelled()) {
@@ -39,21 +36,12 @@ public class ChatManager {
                 otherPlayer.sendMessage(LocaleLoader.getString("Commands.AdminChat.Prefix", new Object[] {playerName}) + adminMessage);
             }
         }
-
-        event.setCancelled(true);
     }
 
-    public void handlePartyChat() {
-        Party party = Users.getProfile(player).getParty();
-
-        if (party == null) {
-            player.sendMessage(LocaleLoader.getString("Commands.Party.None"));
-            return;
-        }
-
+    public void handlePartyChat(Party party) {
         String partyName = party.getName();
 
-        McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(playerName, partyName, event.getMessage());
+        McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(playerName, partyName, message);
         plugin.getServer().getPluginManager().callEvent(chatEvent);
 
         if (chatEvent.isCancelled()) {
@@ -67,7 +55,5 @@ public class ChatManager {
         for (Player member : party.getOnlineMembers()) {
             member.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Prefix", new Object[] {playerName}) + partyMessage);
         }
-
-        event.setCancelled(true);
     }
 }