package xyz.etztech.qol.listeners; import github.scarsz.discordsrv.DiscordSRV; import github.scarsz.discordsrv.api.events.DiscordGuildMessagePreBroadcastEvent; import github.scarsz.discordsrv.api.events.GameChatMessagePreProcessEvent; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.etztech.qol.EtzTechUtil; import xyz.etztech.qol.Lang; import xyz.etztech.qol.QoL; import github.scarsz.discordsrv.api.Subscribe; import xyz.etztech.qol.commands.DiscordIgnoreCommand; public class DiscordSRVListener { private final QoL plugin; public DiscordSRVListener(QoL plugin) { this.plugin = plugin; DiscordSRV.api.subscribe(this); } @Subscribe public void gameChatMessagePreProcess(GameChatMessagePreProcessEvent event) { if (QoL.hasSM(event.getPlayer())) { event.setCancelled(true); } } @Subscribe public void discordGuildMessagePreBroadcastEvent(DiscordGuildMessagePreBroadcastEvent event) { event.getRecipients().removeIf(recipient -> { if (recipient instanceof Player) { Player player = (Player) recipient; return player.hasMetadata(DiscordIgnoreCommand.DISCORD_IGNORE_METADATA); } else { return false; } }); } }