|
4 | 4 | import java.util.Optional; |
5 | 5 | import java.util.Set; |
6 | 6 |
|
| 7 | +import de.myzelyam.api.vanish.BungeeVanishAPI; |
7 | 8 | import net.md_5.bungee.api.CommandSender; |
8 | 9 | import net.md_5.bungee.api.ProxyServer; |
9 | 10 | import net.md_5.bungee.api.connection.ProxiedPlayer; |
|
15 | 16 | import xyz.olivermartin.multichat.bungee.ConfigManager; |
16 | 17 | import xyz.olivermartin.multichat.bungee.Events; |
17 | 18 | import xyz.olivermartin.multichat.bungee.MessageManager; |
| 19 | +import xyz.olivermartin.multichat.bungee.MultiChat; |
18 | 20 | import xyz.olivermartin.multichat.bungee.MultiChatUtil; |
19 | 21 | import xyz.olivermartin.multichat.bungee.PrivateMessageManager; |
20 | 22 |
|
@@ -54,24 +56,39 @@ public void execute(CommandSender sender, String[] args) { |
54 | 56 |
|
55 | 57 | if ((sender instanceof ProxiedPlayer)) { |
56 | 58 |
|
57 | | - ProxiedPlayer player = (ProxiedPlayer)sender; |
58 | | - toggleresult = Events.togglePM(player.getUniqueId(), target.getUniqueId()); |
| 59 | + boolean permittedToMessage = true; |
59 | 60 |
|
60 | | - if (toggleresult == true) { |
| 61 | + if (MultiChat.premiumVanish && MultiChat.hideVanishedStaffInMsg) { |
| 62 | + if (BungeeVanishAPI.isInvisible(target) && !sender.hasPermission("multichat.chat.msg.vanished")) { |
| 63 | + permittedToMessage = false; |
| 64 | + } |
| 65 | + } |
| 66 | + |
| 67 | + if (permittedToMessage) { |
| 68 | + |
| 69 | + ProxiedPlayer player = (ProxiedPlayer)sender; |
| 70 | + toggleresult = Events.togglePM(player.getUniqueId(), target.getUniqueId()); |
61 | 71 |
|
62 | | - Configuration config = ConfigManager.getInstance().getHandler("config.yml").getConfig(); |
| 72 | + if (toggleresult == true) { |
63 | 73 |
|
64 | | - if (config.contains("toggle_pm") ? config.getBoolean("toggle_pm") == false : false) { |
| 74 | + Configuration config = ConfigManager.getInstance().getHandler("config.yml").getConfig(); |
65 | 75 |
|
66 | | - toggleresult = Events.togglePM(player.getUniqueId(), target.getUniqueId()); |
67 | | - MessageManager.sendMessage(sender, "command_msg_no_toggle"); |
| 76 | + if (config.contains("toggle_pm") ? config.getBoolean("toggle_pm") == false : false) { |
| 77 | + |
| 78 | + toggleresult = Events.togglePM(player.getUniqueId(), target.getUniqueId()); |
| 79 | + MessageManager.sendMessage(sender, "command_msg_no_toggle"); |
| 80 | + |
| 81 | + } else { |
| 82 | + MessageManager.sendSpecialMessage(sender, "command_msg_toggle_on", target.getName()); |
| 83 | + } |
68 | 84 |
|
69 | 85 | } else { |
70 | | - MessageManager.sendSpecialMessage(sender, "command_msg_toggle_on", target.getName()); |
| 86 | + MessageManager.sendMessage(sender, "command_msg_toggle_off"); |
71 | 87 | } |
72 | 88 |
|
73 | 89 | } else { |
74 | | - MessageManager.sendMessage(sender, "command_msg_toggle_off"); |
| 90 | + // Vanished staff member |
| 91 | + MessageManager.sendMessage(sender, "command_msg_not_online"); |
75 | 92 | } |
76 | 93 |
|
77 | 94 | } else { |
@@ -120,30 +137,45 @@ public void execute(CommandSender sender, String[] args) { |
120 | 137 |
|
121 | 138 | ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]); |
122 | 139 |
|
123 | | - if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) { |
124 | | - |
125 | | - BungeeComm.sendMessage(sender.getName(), ((ProxiedPlayer)sender).getServer().getInfo()); |
126 | | - BungeeComm.sendMessage(target.getName(), target.getServer().getInfo()); |
| 140 | + boolean permittedToMessage = true; |
127 | 141 |
|
| 142 | + if (MultiChat.premiumVanish && MultiChat.hideVanishedStaffInMsg) { |
| 143 | + if (BungeeVanishAPI.isInvisible(target) && !sender.hasPermission("multichat.chat.msg.vanished")) { |
| 144 | + permittedToMessage = false; |
| 145 | + } |
128 | 146 | } |
129 | 147 |
|
130 | | - if (!ConfigManager.getInstance().getHandler("config.yml").getConfig().getStringList("no_pm").contains(((ProxiedPlayer)sender).getServer().getInfo().getName())) { |
| 148 | + if (permittedToMessage) { |
131 | 149 |
|
132 | | - if (!ConfigManager.getInstance().getHandler("config.yml").getConfig().getStringList("no_pm").contains(target.getServer().getInfo().getName())) { |
| 150 | + if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) { |
133 | 151 |
|
134 | | - if (ChatControl.ignores(((ProxiedPlayer)sender).getUniqueId(), target.getUniqueId(), "private_messages")) { |
135 | | - ChatControl.sendIgnoreNotifications(target, sender, "private_messages"); |
136 | | - return; |
137 | | - } |
| 152 | + BungeeComm.sendMessage(sender.getName(), ((ProxiedPlayer)sender).getServer().getInfo()); |
| 153 | + BungeeComm.sendMessage(target.getName(), target.getServer().getInfo()); |
| 154 | + |
| 155 | + } |
| 156 | + |
| 157 | + if (!ConfigManager.getInstance().getHandler("config.yml").getConfig().getStringList("no_pm").contains(((ProxiedPlayer)sender).getServer().getInfo().getName())) { |
| 158 | + |
| 159 | + if (!ConfigManager.getInstance().getHandler("config.yml").getConfig().getStringList("no_pm").contains(target.getServer().getInfo().getName())) { |
| 160 | + |
| 161 | + if (ChatControl.ignores(((ProxiedPlayer)sender).getUniqueId(), target.getUniqueId(), "private_messages")) { |
| 162 | + ChatControl.sendIgnoreNotifications(target, sender, "private_messages"); |
| 163 | + return; |
| 164 | + } |
138 | 165 |
|
139 | | - PrivateMessageManager.getInstance().sendMessage(message, (ProxiedPlayer)sender, target); |
| 166 | + PrivateMessageManager.getInstance().sendMessage(message, (ProxiedPlayer)sender, target); |
| 167 | + |
| 168 | + } else { |
| 169 | + MessageManager.sendMessage(sender, "command_msg_disabled_target"); |
| 170 | + } |
140 | 171 |
|
141 | 172 | } else { |
142 | | - MessageManager.sendMessage(sender, "command_msg_disabled_target"); |
| 173 | + MessageManager.sendMessage(sender, "command_msg_disabled_sender"); |
143 | 174 | } |
144 | 175 |
|
145 | 176 | } else { |
146 | | - MessageManager.sendMessage(sender, "command_msg_disabled_sender"); |
| 177 | + // Vanished staff member |
| 178 | + MessageManager.sendMessage(sender, "command_msg_not_online"); |
147 | 179 | } |
148 | 180 |
|
149 | 181 | } else if (args[0].equalsIgnoreCase("console")) { |
@@ -214,9 +246,17 @@ public Iterable<String> onTabComplete(CommandSender sender, String[] args) { |
214 | 246 | for ( ProxiedPlayer player : ProxyServer.getInstance().getPlayers() ) { |
215 | 247 |
|
216 | 248 | if ( player.getName().toLowerCase().startsWith( search ) ) { |
| 249 | + |
217 | 250 | if (!Events.hiddenStaff.contains(player.getUniqueId())) { |
218 | | - matches.add( player.getName() ); |
| 251 | + if (MultiChat.premiumVanish) { |
| 252 | + if (!BungeeVanishAPI.isInvisible(player)) { |
| 253 | + matches.add(player.getName()); |
| 254 | + } |
| 255 | + } else { |
| 256 | + matches.add(player.getName()); |
| 257 | + } |
219 | 258 | } |
| 259 | + |
220 | 260 | } |
221 | 261 |
|
222 | 262 | } |
|
0 commit comments