Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.lackoSK.bp.chat;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.concurrent.TimeUnit;
- import me.lackoSK.bp.BungeeMain;
- import me.lackoSK.bp.utils.Utils;
- import net.md_5.bungee.api.ProxyServer;
- import net.md_5.bungee.api.connection.ProxiedPlayer;
- import net.md_5.bungee.api.event.ChatEvent;
- import net.md_5.bungee.api.plugin.Listener;
- import net.md_5.bungee.event.EventHandler;
- public class AntiSwear implements Listener {
- private final BungeeMain pl;
- private final ArrayList<String> allowedCmds;
- private final HashMap<ProxiedPlayer, Integer> antispam;
- @EventHandler
- public void onQut(net.md_5.bungee.api.event.PlayerDisconnectEvent event) {
- if (antispam.get(event.getPlayer()) != null) antispam.remove(event.getPlayer());
- }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public AntiSwear(BungeeMain main) {
- this.pl = main;
- ProxyServer.getInstance().getPluginManager().registerListener(pl, this);
- this.allowedCmds = new ArrayList<>();
- this.antispam = new HashMap();
- allowedCmds.addAll(pl.config.getConfig().getStringList("AuthAllowedCmds"));
- pl.getProxy().getScheduler().schedule(pl, () -> {
- if(antispam.keySet() != null)
- for (final ProxiedPlayer player : antispam.keySet()) {
- if (!player.isConnected()) antispam.remove(player);
- if (antispam.get(player) >= 1)
- antispam.put(player, antispam.get(player) - 1);
- else
- antispam.remove(player);
- }
- }, 10, 1, TimeUnit.SECONDS);
- }
- @EventHandler
- public void chatEvent(ChatEvent event) {
- if(event.getSender() == null) return;
- if(!event.getSender().isConnected()) return;
- final ProxiedPlayer player = (ProxiedPlayer) event.getSender();
- if(player == null) return;
- if (player.getServer().getInfo().getName().contains(pl.config.getConfig().getString("AuthServersName")))
- if(event.isCommand()) {
- if(allowedCmds.contains(event.getMessage().split(" ")[0].toLowerCase().substring(1)))
- return;
- if(!allowedCmds.contains(event.getMessage().split(" ")[0].toLowerCase().substring(1))) {
- event.setCancelled(true);
- return;
- }
- } else {
- event.setCancelled(true);
- return;
- }
- if (event.isCommand() && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("msg")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("tell")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("r")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("reply")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("whisper")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("privatemsg")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("pm")
- && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("privatemessage"))
- return;
- if (antispam.get(player) != null && !event.isCommand() &&
- antispam.get(player) >= 1) {
- event.setCancelled(true);
- final int seconds = antispam.get(player);
- Utils.send(player, pl.config.getConfig().getString("messages.AntiSpam").replaceAll("<second>",
- seconds + "").replaceAll("&", "§"));
- return;
- }
- for (final String badWord : pl.asm.getBadWords())
- if (event.getMessage().toLowerCase().replaceAll(" ", "").contains(badWord.toLowerCase())) {
- Utils.send(player, pl.config.getConfig().getString("messages.BadWordMessage").replaceAll("&", "§").replaceAll("<word>", badWord));
- event.setCancelled(true);
- return;
- }
- if (!event.isCommand() && (!player.hasPermission("pwb.bypass.spam") || (!player.hasPermission("pwb.admin"))))
- antispam.put(player, 6);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement