From 6fc6fb67cf9e8a5220b3e5f198b53bfeb02c01cb Mon Sep 17 00:00:00 2001 From: Adrian Victor Date: Wed, 19 Mar 2025 16:35:46 -0300 Subject: [PATCH] Finished SkibidiBlocker and added AntiSpam --- .classpath | 2 +- bin/.gitignore | 1 + .../adrianvictor/stuff/GhostsAndStuff.class | Bin 2897 -> 2991 bytes .../rf/adrianvictor/stuff/RainbowChat.class | Bin 1740 -> 2042 bytes .../adrianvictor/stuff/SkibidiBlocker.class | Bin 2887 -> 2842 bytes config.yml | 9 ++++++ plugin.yml | 2 +- src/gd/rf/adrianvictor/stuff/AntiSpam.java | 30 ++++++++++++++++++ .../rf/adrianvictor/stuff/GhostsAndStuff.java | 15 +++++++-- src/gd/rf/adrianvictor/stuff/RainbowChat.java | 2 +- .../rf/adrianvictor/stuff/SkibidiBlocker.java | 24 +++++++------- 11 files changed, 67 insertions(+), 18 deletions(-) create mode 100644 bin/.gitignore create mode 100644 src/gd/rf/adrianvictor/stuff/AntiSpam.java diff --git a/.classpath b/.classpath index b902d9c..3fd8cf9 100644 --- a/.classpath +++ b/.classpath @@ -7,6 +7,6 @@ - + diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..9b3a425 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/gd/ diff --git a/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class b/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class index 1110fa0919fb625b3dbfd2ca9b6c0622220b5d58..700fdea9081fd80b8065da70b7c8b8779133f0da 100644 GIT binary patch delta 812 zcmca8wq9J|)W2Q(7#J8#7$&eYFflTyPcCE^p6tOWve7)0nTv~ok-?FN!HL0nasaD? zh$|xlM`B({W^h4bE*FD4gC{$K$K+M4n#^7d-jlDfs znU|Db?wpZW!p@K~xu02+Etx@)gCTwLK4w{Q4u(ud2EO9#%%seeOsAau z|5=q3a~TbF zB_ji~hGrB8L*?XMY#w6OJPb7qa*Pb@<%vaknR)5#40W)O)n*stu4QQ8Vc=$HWMpuf z{FX^|av{6?=g@KiUnSp^}gVr_%2O$@hZ47QR z8Dw`e_(W=LXYljU+QOi_iNRlc6GN!hPKIb!2C%Y3h%&X^49Os6sUT&dLTTF=B(bZ{ zfT;J=+QJ|zlm$`-vMh&j8$*4bkM=PJ9_^hBMT`tH8Ti2}Dz-6HEoV^N%}^Vu1rpfK zQ11&hSO@NqjSLJ7EDQn+3=B?SQi*|=L772}L4`q`L4(1BL6gCjL5snSL7O3*L7yRo z!GIx`!H}VX!HA)i!I+_s!GvKVgDFG(JO(p{^$eB_g5VU&3JM7ZAqHUv1_m((K?YZb zCI&_ZTLvkHBrvOj!JMI)p@o5wVIG4ZLn}iQ0~13V0|NsO10w@OuAPCAp@V^efscVz zUH=b*E;~ap_b&!n1}2711_lNuhAxI~1_lNp1}26uh8~7KE(b}50EQlheg{ba8`ZT4 delta 705 zcmZ24eo>6~)W2Q(7#J8#7<$+lm?kH%%S`rTj;K<0JGEqR%A}BF4FDbv= zIU})zi@||Gk%Pg7kwMBQKQSdUFI^!wKczG$RRKv6CxaV<2RnoNiEOnG9Kzd)Ykoa~Sg28FCpJ__7kq67@?< zGIR8OGK))i81fkk7#Y|zi(PXIN-7x{m^Cz`I2ej1v$A^#m+&x@GRQG9u$Lzm{3|bIRFbFXSGcYi4 zG88jZGt@9JGPp39Gt@HFF)%S?F$gl$Gt@9JGc+(TFz`U-Y-$-A8JHNF7#JA%8JPbv y1hO+Uvoqvy|6-73U}9)xU|?WkXk%z+U|Jq`pv%sn!^ogGF;}skhe3})pOHZzJ+;I+KQApay|gH?Br`vckwHU4 z(?L?1<^H3x$sBZF{JVrE`aez|i-Vu^2lN@iMSY7qy6 zF(U(G6&HgkgE>2c86$%VhIv+44CG<3V6bFl;7m^~fw-EH!2*j{CfhQpa)JD7&BI{B zU_1F4ldYjW4}$}P93ulqNj^j?7lRXn3p;}|BZB~XSnx2oGPq6dW>V#FV({Q$@MQ3s zyn{)D%?D(f?_^D8D{ChPe;$SahCoIJww%%NV_DttLZAc!Z*x{bj*T$GhH z!HjJ=16vClqbQs1HU_^%4E(yHY}*)u1R3;~FZlmj7o-Fv5N5@$BgwvlArfSWD4Q9J zC<{pa!v8heI@=iRwlTy^{>Z9SZ_Oai;K(4s;KLxv;Ljk#5Xm6R5YHgbki?+Ckjfy> zP{p9k(8i#`Fo8jhVG4sN!(0XphNTRe3<3-c3_%dzG6*sVF@V4_hIobq21W)BhItH$ z3`q=33<3<(7?K%M7?>G^874ENGNduEFjzB0GNd!4F|abkGniU2WH6*LurahT@G)dE wq%g2EWHB%>NHMVgV-RBpAt%N^3>J)k7=##^M1C?zaxgG5WHT@@Ffrr+0JXKf1ONa4 delta 575 zcmeyxe}>zuoop}<|XBqb1{f9xbrZ0Fvu}7aFpajT*Sp7#o)!m;LYH}$iP*cTH>2p zT%4Gm%E%z9F}aXgm@#a#601LBeKG?J0|x^GL-%e5vB>QV6298o7$kQv$onyyu`Fju z(-l$`W!c7{ZpJFg%Cvw%P)8TU)!oKm7`~h#5X2K@-Ns-VF3QT9V8*tbfvts&QIt)0 z8-v9n27X;pwrvbHf(*+S{C}+rQUT&SSh4F!vhQGU2ALr$!e+)I$^ufq@c(peoox(m z+Za42%d;!hD=>&Ns4++|7&1sQm@vpN*fGd5xG=~wxHBj)crnN`#4{)}WHYERlrpF> zR5FM%G%;u}bTMc$2rw`(1VOySAjlxZ00P|%z6^d0j0_wM%?$nw0SrtG0u0p*feb+m z%nZT|6%4@)Aq*@G3Jj49p$s7mtPCy;rdAAL3?U3`4A~5P4B-qx4D1XM3=9lX4DA0H i#MnVdgYgf8EaM*rAx0*VpA3>542%qs3=9lR3{e0Cb!wde diff --git a/bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class b/bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class index 4f862522f2d8b74e34309f7cb12776468fb574f3..e823fc3867b98770ef6eb0628dfbffd74223d23f 100644 GIT binary patch delta 770 zcmX>uHcO1_)W2Q(7#J8#7$$Dy5@40)V2EU75G~HmOv+5jbjrz3&Q2`~OD#&uFHW6o z&T5*@!4S{LAcIxjH?_DpF+G)oA(4?mI3y#pSRu1mAyFYIF-4&~zbHkIi$RManTH{T zA(fGVGd;B=xTGjEFP)LWLc=F3u`E$PCowNwA0lWy*^o_z$C`^FogtH*A%l@YX5xHt z8Rz_*{30HPEQV}G2A;J1qTIw1uuw50gW6;RHdRM!ZiZZje0GLBMh1!eqICVF((LTa z68+S?lFX7y{eYar%G4qrh5`mNMh5QU)Vvg^i$S`Ico>QqN+$QRsc_^nl<_c>GgM68 z$)+V&#Zbe}P|e67fMi~Heo;;e4?`_O-DE~~e-3U2FNOvlhQ`S)>`Qrh(lYZBbD#!K zR_8d(%g?~VAi%)MAjrVSAT;?qhY=U!R|Xaa4h9B>Ba@9eee3fi*>*B`GBO-s@V8u!%l`uCWdg3RrQPvv;OyOWME)mVGw3usAmXb z5Mf|o5M^Lx5MvN#kYEsJkYrF`kYZ3|kYUhbkYzAtkYg}mP-JjsP-2K;P+^E?P-RGE zP-DnoP-na^wK;Q^N6GJltBLgeL zeufr?Rt6>pVTO$i?rjY149pD942=vO44n)t3{ed63|$PZ46F>P49pDO46O|84A~5R zP*x8E0|O5OBUo!2LoWj}LmvYJLo5UP8T|ynZ*S; ziIskdxv5+X{tPKR457o{j@BqtW9Dr73>6{qGEXO?7^rE2Pd zH0JOy*Ff!H0~f+1Z&T z`r-LSIVn60jSNkb`PltUI2c+O8PxE&8_Ch!3|*B`GBO-s@V8}?GB+Zc)JA(m(2m=Fy9RnLEbQnY##27%}2SW!#Cj%n` zE5m1oE{1LfCI(@Krwly|y$s9@&J0@_`WX5dSQw%hCNoT6=w@JLn8?7uz{9`@RW*r$ znPD>6$*g}F6xkX4*%>T^{xe82u(LBTvNKFR$t7SF1?9* lastMessages = new HashMap<>(); + private JavaPlugin plugin; + + public AntiSpam(JavaPlugin plugin) { + this.plugin = plugin; + } + + public void onPlayerChat(PlayerChatEvent event) { + if (lastMessages.containsKey(event.getPlayer().getUniqueId()) && lastMessages.get(event.getPlayer().getUniqueId()).contains(event.getMessage())) { + event.setCancelled(true); + event.getPlayer().sendMessage("Stop spamming."); + + if (plugin.getConfiguration().getBoolean("antiSpamLightning", false)) PlayerEx.strikeLightning(event.getPlayer()); + } + lastMessages.put(event.getPlayer().getUniqueId(), event.getMessage()); + } +} diff --git a/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java index 5fbdded..c003638 100644 --- a/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java +++ b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java @@ -28,15 +28,24 @@ public class GhostsAndStuff extends JavaPlugin { loadModules(); logger.info("is starting."); } - public void loadModules() { - PlayerListener rainbowChat = new RainbowChat(this); + + // AntiSpam + if (this.getConfiguration().getBoolean("antiSpam", true)) { + PlayerListener antiSpam = new AntiSpam(this); + pm.registerEvent(Type.PLAYER_CHAT, antiSpam, Priority.High, this); + } + + // RainbowChat + if (this.getConfiguration().getBoolean("rainbowChat", true)) { + PlayerListener rainbowChat = new RainbowChat(this); logger.info("Loading module RainbowChat"); pm.registerEvent(Type.PLAYER_CHAT, rainbowChat, Priority.High, this); + } + // SkibidiBlocker if (this.getConfiguration().getBoolean("skibidiBlocker", true)) { logger.info("Loading module SkibidiBlocker"); - List words = this.getConfiguration().getStringList("skibidiBlockerWords", null); if (words == null || words.isEmpty()) { logger.warning("SkibidiBlocker is enabled, but no words were provided. Disabling."); diff --git a/src/gd/rf/adrianvictor/stuff/RainbowChat.java b/src/gd/rf/adrianvictor/stuff/RainbowChat.java index 1d6e0fd..7746e97 100644 --- a/src/gd/rf/adrianvictor/stuff/RainbowChat.java +++ b/src/gd/rf/adrianvictor/stuff/RainbowChat.java @@ -19,7 +19,7 @@ public class RainbowChat extends PlayerListener { int index = 0; while (index < message.length()) { - int startIndex = message.indexOf("§z", index); + int startIndex = message.indexOf("§" + plugin.getConfiguration().getString("rainbowChatModifier", "z"), index); if (startIndex == -1) { result.append(message.substring(index)); break; diff --git a/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java b/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java index 7d5e97c..081bd33 100644 --- a/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java +++ b/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java @@ -4,6 +4,8 @@ import java.util.List; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerListener; import org.bukkit.plugin.java.JavaPlugin; + +import gd.rf.adrianvictor.lib.Color; import gd.rf.adrianvictor.lib.Log; public class SkibidiBlocker extends PlayerListener { @@ -29,20 +31,18 @@ public class SkibidiBlocker extends PlayerListener { } boolean caseSensitive = plugin.getConfiguration().getBoolean("skibidiBlockerCaseSensitive", true); - for (String blockedWord : blockedWords) { + String finalMessage; if (!caseSensitive) { - if (message.toLowerCase().contains(blockedWord.toLowerCase())) { - logger.info(event.getPlayer().getDisplayName() + " said a blocked word (case insensitive)."); - event.getPlayer().getWorld().strikeLightning(event.getPlayer().getLocation()); // Ensure it works - return; - } - } else { - if (message.contains(blockedWord)) { - logger.info(event.getPlayer().getDisplayName() + " said a blocked word (case sensitive)."); - event.getPlayer().getWorld().strikeLightning(event.getPlayer().getLocation()); - return; - } + finalMessage = message.toLowerCase(); + } else { + finalMessage = message; + } + if (message.contains(blockedWord.toLowerCase())) { + if (plugin.getConfiguration().getBoolean("skibidiBlockerVerbose", true)) { + event.getPlayer().sendMessage(Color.formatColors(plugin.getConfiguration().getString("skibidiBlockerVerboseMessage", "This is a bad word."))); + } + event.getPlayer().getWorld().strikeLightning(event.getPlayer().getLocation()); } } }