Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.66 KB | None | 0 0
  1. package me.lackoSK.bp.chat;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.concurrent.TimeUnit;
  6.  
  7. import me.lackoSK.bp.BungeeMain;
  8. import me.lackoSK.bp.utils.Utils;
  9. import net.md_5.bungee.api.ProxyServer;
  10. import net.md_5.bungee.api.connection.ProxiedPlayer;
  11. import net.md_5.bungee.api.event.ChatEvent;
  12. import net.md_5.bungee.api.plugin.Listener;
  13. import net.md_5.bungee.event.EventHandler;
  14.  
  15. public class AntiSwear implements Listener {
  16.  
  17.     private final BungeeMain pl;
  18.     private final ArrayList<String> allowedCmds;
  19.     private final HashMap<ProxiedPlayer, Integer> antispam;
  20.     @EventHandler
  21.     public void onQut(net.md_5.bungee.api.event.PlayerDisconnectEvent event) {
  22.         if (antispam.get(event.getPlayer()) != null) antispam.remove(event.getPlayer());
  23.     }
  24.     @SuppressWarnings({ "unchecked", "rawtypes" })
  25.     public AntiSwear(BungeeMain main) {
  26.         this.pl = main;
  27.  
  28.         ProxyServer.getInstance().getPluginManager().registerListener(pl, this);
  29.         this.allowedCmds = new ArrayList<>();
  30.         this.antispam = new HashMap();
  31.         allowedCmds.addAll(pl.config.getConfig().getStringList("AuthAllowedCmds"));
  32.  
  33.         pl.getProxy().getScheduler().schedule(pl, () -> {
  34.             if(antispam.keySet() != null)
  35.                 for (final ProxiedPlayer player : antispam.keySet()) {
  36.                     if (!player.isConnected()) antispam.remove(player);
  37.  
  38.                     if (antispam.get(player) >= 1)
  39.                         antispam.put(player, antispam.get(player) - 1);
  40.                     else
  41.                         antispam.remove(player);
  42.                 }
  43.         }, 10, 1, TimeUnit.SECONDS);
  44.     }
  45.  
  46.     @EventHandler
  47.     public void chatEvent(ChatEvent event) {
  48.  
  49.         if(event.getSender() == null) return;
  50.         if(!event.getSender().isConnected()) return;
  51.  
  52.         final ProxiedPlayer player = (ProxiedPlayer) event.getSender();
  53.  
  54.         if(player == null) return;
  55.  
  56.         if (player.getServer().getInfo().getName().contains(pl.config.getConfig().getString("AuthServersName")))
  57.             if(event.isCommand()) {
  58.                 if(allowedCmds.contains(event.getMessage().split(" ")[0].toLowerCase().substring(1)))
  59.                     return;
  60.                 if(!allowedCmds.contains(event.getMessage().split(" ")[0].toLowerCase().substring(1))) {
  61.                     event.setCancelled(true);
  62.                     return;
  63.                 }
  64.             } else {
  65.                 event.setCancelled(true);
  66.                 return;
  67.             }
  68.  
  69.         if (event.isCommand() && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("msg")
  70.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("tell")
  71.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("r")
  72.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("reply")
  73.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("whisper")
  74.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("privatemsg")
  75.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("pm")
  76.                 && !event.getMessage().substring(1).split(" ")[0].equalsIgnoreCase("privatemessage"))
  77.  
  78.             return;
  79.  
  80.         if (antispam.get(player) != null && !event.isCommand() &&
  81.                 antispam.get(player) >= 1) {
  82.             event.setCancelled(true);
  83.             final int seconds = antispam.get(player);
  84.             Utils.send(player, pl.config.getConfig().getString("messages.AntiSpam").replaceAll("<second>",
  85.                     seconds + "").replaceAll("&", "§"));
  86.             return;
  87.         }
  88.  
  89.         for (final String badWord : pl.asm.getBadWords())
  90.             if (event.getMessage().toLowerCase().replaceAll(" ", "").contains(badWord.toLowerCase())) {
  91.  
  92.                 Utils.send(player, pl.config.getConfig().getString("messages.BadWordMessage").replaceAll("&", "§").replaceAll("<word>", badWord));
  93.  
  94.                 event.setCancelled(true);
  95.                 return;
  96.  
  97.             }
  98.  
  99.         if (!event.isCommand() && (!player.hasPermission("pwb.bypass.spam") || (!player.hasPermission("pwb.admin"))))
  100.             antispam.put(player, 6);
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement