Skip to content

Commit 9d65830

Browse files
authored
Merge pull request #117 from Gadse-KastCraft/premium-vanish-support
More PremiumVanish support
2 parents 80436df + 41e40e4 commit 9d65830

4 files changed

Lines changed: 19 additions & 8 deletions

File tree

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.olivermartin410.plugins.TChatInfo;
1414
import com.olivermartin410.plugins.TGroupChatInfo;
1515

16+
import de.myzelyam.api.vanish.BungeeVanishAPI;
1617
import net.md_5.bungee.api.ChatColor;
1718
import net.md_5.bungee.api.ProxyServer;
1819
import net.md_5.bungee.api.chat.ComponentBuilder;
@@ -388,7 +389,7 @@ public void onChat(ChatEvent event) {
388389

389390
DebugManager.log("Does player have simple colour permission? " + (player.hasPermission("multichat.chat.colour.simple")||player.hasPermission("multichat.chat.color.simple")));
390391

391-
DebugManager.log("Does player have rgb colour permission? " + (player.hasPermission("multichat.chat.colour.rgb")||player.hasPermission("multichat.chat.color.rgb")));
392+
DebugManager.log("Does player have rgb colour permission? " + (player.hasPermission("multichat.chat.colour.rgb")||player.hasPermission("multichat.chat.color.rgb")));
392393

393394
// Let server know players channel preference
394395
BungeeComm.sendPlayerChannelMessage(player.getName(), Channel.getChannel(player.getUniqueId()).getName(), Channel.getChannel(player.getUniqueId()), player.getServer().getInfo(), (player.hasPermission("multichat.chat.colour")||player.hasPermission("multichat.chat.color")||player.hasPermission("multichat.chat.colour.simple")||player.hasPermission("multichat.chat.color.simple")), (player.hasPermission("multichat.chat.colour")||player.hasPermission("multichat.chat.color")||player.hasPermission("multichat.chat.colour.rgb")||player.hasPermission("multichat.chat.color.rgb")));
@@ -493,7 +494,12 @@ public void onLogin(PostLoginEvent event) {
493494
ConsoleManager.log("Refreshed UUID-Name lookup: " + uuid.toString());
494495

495496
if ( ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().getBoolean("showjoin") == true ) {
496-
497+
498+
// PremiumVanish support, return as early as possible to avoid loading unnecessary resources
499+
if (MultiChat.premiumVanish && MultiChat.hideVanishedStaffInJoin && BungeeVanishAPI.isInvisible(player)) {
500+
return;
501+
}
502+
497503
String joinformat = ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().getString("serverjoin");
498504
String silentformat = ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().getString("silentjoin");
499505
String welcomeMessage = ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().getString("welcome_message");
@@ -515,10 +521,11 @@ public void onLogin(PostLoginEvent event) {
515521
if (ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().contains("private_welcome")) {
516522
privateWelcome = ConfigManager.getInstance().getHandler("joinmessages.yml").getConfig().getBoolean("private_welcome");
517523
}
518-
524+
525+
boolean broadcastJoin = !player.hasPermission("multichat.staff.silentjoin");
519526
for (ProxiedPlayer onlineplayer : ProxyServer.getInstance().getPlayers()) {
520527

521-
if (!player.hasPermission("multichat.staff.silentjoin")) {
528+
if (broadcastJoin) {
522529

523530
if (firstJoin && broadcastWelcome) {
524531
onlineplayer.sendMessage(TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', welcomeMessage)));

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class MultiChat extends Plugin implements Listener {
9797
public static boolean premiumVanish = false;
9898
public static boolean hideVanishedStaffInMsg = true;
9999
public static boolean hideVanishedStaffInStaffList = true;
100+
public static boolean hideVanishedStaffInJoin = true;
100101

101102
public static List<String> legacyServers = new ArrayList<String>();
102103

@@ -378,6 +379,7 @@ public void onEnable() {
378379
if (configYML.contains("premium_vanish")) {
379380
hideVanishedStaffInMsg = configYML.getBoolean("premium_vanish.prevent_message");
380381
hideVanishedStaffInStaffList = configYML.getBoolean("premium_vanish.prevent_staff_list");
382+
hideVanishedStaffInJoin = configYML.getBoolean("premium_vanish.silence_join");
381383
}
382384

383385
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,17 @@ public void execute(CommandSender sender, String[] args) {
150150
Channel.getGlobalChannel().addServer(server);
151151
}
152152

153-
// Manage premiumVanish dependency
154153
if (ProxyServer.getInstance().getPluginManager().getPlugin("PremiumVanish") != null) {
155154
MultiChat.premiumVanish = true;
156-
System.out.println("[MultiChat] Hooked with PremiumVanish!");
157155

158156
if (ConfigManager.getInstance().getHandler("config.yml").getConfig().contains("premium_vanish")) {
159-
MultiChat.hideVanishedStaffInMsg = ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("premium_vanish.prevent_message");
160-
MultiChat.hideVanishedStaffInStaffList = ConfigManager.getInstance().getHandler("config.yml").getConfig().getBoolean("premium_vanish.prevent_staff_list");
157+
MultiChat.hideVanishedStaffInMsg = ConfigManager.getInstance().getHandler("config.yml").getConfig().getSection("premium_vanish").getBoolean("prevent_message");
158+
MultiChat.hideVanishedStaffInStaffList = ConfigManager.getInstance().getHandler("config.yml").getConfig().getSection("premium_vanish").getBoolean("prevent_staff_list");
159+
MultiChat.hideVanishedStaffInJoin = ConfigManager.getInstance().getHandler("config.yml").getConfig().getSection("premium_vanish").getBoolean("silence_join");
161160
}
162161

162+
} else {
163+
MultiChat.premiumVanish = false;
163164
}
164165

165166
MessageManager.sendMessage(sender, "command_multichat_reload_completed");

multichat/src/main/resources/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ privacy_settings:
270270
premium_vanish:
271271
prevent_message: true # Prevent players being able to /msg vanished staff
272272
prevent_staff_list: true # Prevent vanished staff showing up in /staff
273+
silence_join: true # Prevent vanished players sending a join message
273274

274275
# Legacy (PRE-1.16) Servers
275276
# Listing servers here will mark them as 'LEGACY' servers

0 commit comments

Comments
 (0)