Skip to content

Commit 58cca41

Browse files
authored
Merge pull request #107 from MultiChat/v19
Version 1.9.2
2 parents dc01e74 + 0e4a27c commit 58cca41

22 files changed

Lines changed: 338 additions & 64 deletions

multichat/dependency-reduced-pom.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>xyz.olivermartin.multichat</groupId>
55
<artifactId>multichat</artifactId>
6-
<version>1.9-snapshot.20.5.1</version>
6+
<version>1.9.2</version>
77
<build>
88
<plugins>
99
<plugin>
@@ -23,6 +23,10 @@
2323
<pattern>com.zaxxer.hikari</pattern>
2424
<shadedPattern>xyz.olivermartin.shadedlib.hikari</shadedPattern>
2525
</relocation>
26+
<relocation>
27+
<pattern>org.slf4j</pattern>
28+
<shadedPattern>xyz.olivermartin.shadedlib.slf4j</shadedPattern>
29+
</relocation>
2630
</relocations>
2731
</configuration>
2832
</plugin>
@@ -276,6 +280,18 @@
276280
</exclusion>
277281
</exclusions>
278282
</dependency>
283+
<dependency>
284+
<groupId>com.github.MyzelYam</groupId>
285+
<artifactId>PremiumVanishAPI</artifactId>
286+
<version>2.0.2</version>
287+
<scope>provided</scope>
288+
<exclusions>
289+
<exclusion>
290+
<artifactId>jsr305</artifactId>
291+
<groupId>com.google.code.findbugs</groupId>
292+
</exclusion>
293+
</exclusions>
294+
</dependency>
279295
</dependencies>
280296
</project>
281297

multichat/pom.xml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>xyz.olivermartin.multichat</groupId>
77
<artifactId>multichat</artifactId>
8-
<version>1.9.1</version>
8+
<version>1.9.2</version>
99

1010
<repositories>
1111

@@ -58,6 +58,10 @@
5858
<pattern>com.zaxxer.hikari</pattern>
5959
<shadedPattern>xyz.olivermartin.shadedlib.hikari</shadedPattern>
6060
</relocation>
61+
<relocation>
62+
<pattern>org.slf4j</pattern>
63+
<shadedPattern>xyz.olivermartin.shadedlib.slf4j</shadedPattern>
64+
</relocation>
6165
</relocations>
6266
</configuration>
6367
<executions>
@@ -90,6 +94,12 @@
9094
<version>2.6.1</version>
9195
</dependency>
9296

97+
<dependency>
98+
<groupId>org.slf4j</groupId>
99+
<artifactId>slf4j-simple</artifactId>
100+
<version>1.7.21</version>
101+
</dependency>
102+
93103
<dependency>
94104
<groupId>org.xerial</groupId>
95105
<artifactId>sqlite-jdbc</artifactId>
@@ -148,6 +158,13 @@
148158
<scope>provided</scope>
149159
</dependency>
150160

161+
<dependency>
162+
<groupId>com.github.MyzelYam</groupId>
163+
<artifactId>PremiumVanishAPI</artifactId>
164+
<version>2.0.2</version>
165+
<scope>provided</scope>
166+
</dependency>
167+
151168
</dependencies>
152169

153170
</project>

multichat/src/main/java/xyz/olivermartin/multichat/bungee/MultiChat.java

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@
3737
*/
3838
public class MultiChat extends Plugin implements Listener {
3939

40-
public static final String LATEST_VERSION = "1.9.1";
40+
public static final String LATEST_VERSION = "1.9.2";
4141

4242
public static final String[] ALLOWED_VERSIONS = new String[] {
4343

4444
LATEST_VERSION,
45+
"1.9.1",
4546
"1.9",
4647
"1.8.2",
4748
"1.8.1",
@@ -92,6 +93,10 @@ public class MultiChat extends Plugin implements Listener {
9293

9394
private static MultiChat instance;
9495

96+
public static boolean premiumVanish = false;
97+
public static boolean hideVanishedStaffInMsg = true;
98+
public static boolean hideVanishedStaffInStaffList = true;
99+
95100
public static MultiChat getInstance() {
96101
return instance;
97102
}
@@ -132,9 +137,10 @@ public void run() {
132137

133138
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) {
134139

135-
getProxy();
136140
for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) {
137-
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
141+
if (player.getServer() != null) {
142+
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
143+
}
138144
}
139145

140146
}
@@ -170,7 +176,9 @@ public void run() {
170176
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) {
171177

172178
ProxiedPlayer player = getProxy().getPlayer(playername);
173-
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
179+
if (player.getServer() != null) {
180+
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
181+
}
174182

175183
}
176184
} catch (NullPointerException ex) { /* EMPTY */ }
@@ -188,7 +196,9 @@ public void run() {
188196
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) {
189197

190198
ProxiedPlayer player = getProxy().getPlayer(playername);
191-
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
199+
if (player.getServer() != null) {
200+
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
201+
}
192202

193203
}
194204
}
@@ -207,7 +217,9 @@ public void run() {
207217
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) {
208218

209219
ProxiedPlayer player = getProxy().getPlayer(playername);
210-
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
220+
if (player.getServer() != null) {
221+
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
222+
}
211223

212224
}
213225

@@ -226,7 +238,9 @@ public void run() {
226238
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("fetch_spigot_display_names") == true) {
227239

228240
ProxiedPlayer player = getProxy().getPlayer(playername);
229-
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
241+
if (player.getServer() != null) {
242+
BungeeComm.sendMessage(player.getName(), player.getServer().getInfo());
243+
}
230244

231245
}
232246

@@ -348,6 +362,17 @@ public void onEnable() {
348362
// Fetch display names of all players
349363
fetchDisplayNames();
350364

365+
// Manage premiumVanish dependency
366+
if (ProxyServer.getInstance().getPluginManager().getPlugin("PremiumVanish") != null) {
367+
premiumVanish = true;
368+
369+
if (configYML.contains("premium_vanish")) {
370+
hideVanishedStaffInMsg = configYML.getBoolean("premium_vanish.prevent_message");
371+
hideVanishedStaffInStaffList = configYML.getBoolean("premium_vanish.prevent_staff_list");
372+
}
373+
374+
}
375+
351376
} else {
352377
getLogger().info("Config incorrect version! Please repair or delete it!");
353378
}

multichat/src/main/java/xyz/olivermartin/multichat/bungee/MultiChatUtil.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ public static String getMessageFromArgs(String[] args, int start, int end) {
1818
String message = "";
1919
for (String arg : args) {
2020
if (counter >= start && counter <= end) {
21-
message = message + arg + " ";
21+
if (counter != end) {
22+
message = message + arg + " ";
23+
} else {
24+
message = message + arg;
25+
}
2226
}
2327
counter++;
2428
}

multichat/src/main/java/xyz/olivermartin/multichat/bungee/commands/DisplayCommand.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import net.md_5.bungee.api.chat.TextComponent;
77
import net.md_5.bungee.api.connection.ProxiedPlayer;
88
import net.md_5.bungee.api.plugin.Command;
9+
import net.md_5.bungee.config.Configuration;
910
import xyz.olivermartin.multichat.bungee.ChatControl;
11+
import xyz.olivermartin.multichat.bungee.ConfigManager;
1012
import xyz.olivermartin.multichat.bungee.ConsoleManager;
1113
import xyz.olivermartin.multichat.bungee.MessageManager;
1214
import xyz.olivermartin.multichat.bungee.MultiChatUtil;
@@ -45,9 +47,15 @@ public void execute(CommandSender sender, String[] args) {
4547
public static void displayMessage(String message) {
4648

4749
message = ChatControl.applyChatRules(message, "display_command", "").get();
50+
Configuration config = ConfigManager.getInstance().getHandler("config.yml").getConfig();
4851

4952
for (ProxiedPlayer onlineplayer : ProxyServer.getInstance().getPlayers()) {
50-
onlineplayer.sendMessage(TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', message)));
53+
if (onlineplayer.getServer() != null) {
54+
if (!config.getStringList("no_global").contains(
55+
onlineplayer.getServer().getInfo().getName())) {
56+
onlineplayer.sendMessage(TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', message)));
57+
}
58+
}
5159
}
5260

5361
// Trigger PostBroadcastEvent

multichat/src/main/java/xyz/olivermartin/multichat/bungee/commands/MsgCommand.java

Lines changed: 63 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Optional;
55
import java.util.Set;
66

7+
import de.myzelyam.api.vanish.BungeeVanishAPI;
78
import net.md_5.bungee.api.CommandSender;
89
import net.md_5.bungee.api.ProxyServer;
910
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -15,6 +16,7 @@
1516
import xyz.olivermartin.multichat.bungee.ConfigManager;
1617
import xyz.olivermartin.multichat.bungee.Events;
1718
import xyz.olivermartin.multichat.bungee.MessageManager;
19+
import xyz.olivermartin.multichat.bungee.MultiChat;
1820
import xyz.olivermartin.multichat.bungee.MultiChatUtil;
1921
import xyz.olivermartin.multichat.bungee.PrivateMessageManager;
2022

@@ -54,24 +56,39 @@ public void execute(CommandSender sender, String[] args) {
5456

5557
if ((sender instanceof ProxiedPlayer)) {
5658

57-
ProxiedPlayer player = (ProxiedPlayer)sender;
58-
toggleresult = Events.togglePM(player.getUniqueId(), target.getUniqueId());
59+
boolean permittedToMessage = true;
5960

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());
6171

62-
Configuration config = ConfigManager.getInstance().getHandler("config.yml").getConfig();
72+
if (toggleresult == true) {
6373

64-
if (config.contains("toggle_pm") ? config.getBoolean("toggle_pm") == false : false) {
74+
Configuration config = ConfigManager.getInstance().getHandler("config.yml").getConfig();
6575

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+
}
6884

6985
} else {
70-
MessageManager.sendSpecialMessage(sender, "command_msg_toggle_on", target.getName());
86+
MessageManager.sendMessage(sender, "command_msg_toggle_off");
7187
}
7288

7389
} else {
74-
MessageManager.sendMessage(sender, "command_msg_toggle_off");
90+
// Vanished staff member
91+
MessageManager.sendMessage(sender, "command_msg_not_online");
7592
}
7693

7794
} else {
@@ -120,30 +137,45 @@ public void execute(CommandSender sender, String[] args) {
120137

121138
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
122139

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;
127141

142+
if (MultiChat.premiumVanish && MultiChat.hideVanishedStaffInMsg) {
143+
if (BungeeVanishAPI.isInvisible(target) && !sender.hasPermission("multichat.chat.msg.vanished")) {
144+
permittedToMessage = false;
145+
}
128146
}
129147

130-
if (!ConfigManager.getInstance().getHandler("config.yml").getConfig().getStringList("no_pm").contains(((ProxiedPlayer)sender).getServer().getInfo().getName())) {
148+
if (permittedToMessage) {
131149

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) {
133151

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+
}
138165

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+
}
140171

141172
} else {
142-
MessageManager.sendMessage(sender, "command_msg_disabled_target");
173+
MessageManager.sendMessage(sender, "command_msg_disabled_sender");
143174
}
144175

145176
} else {
146-
MessageManager.sendMessage(sender, "command_msg_disabled_sender");
177+
// Vanished staff member
178+
MessageManager.sendMessage(sender, "command_msg_not_online");
147179
}
148180

149181
} else if (args[0].equalsIgnoreCase("console")) {
@@ -214,9 +246,17 @@ public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
214246
for ( ProxiedPlayer player : ProxyServer.getInstance().getPlayers() ) {
215247

216248
if ( player.getName().toLowerCase().startsWith( search ) ) {
249+
217250
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+
}
219258
}
259+
220260
}
221261

222262
}

0 commit comments

Comments
 (0)