From aeeaa83745c784743a1e47851e7320989e161993 Mon Sep 17 00:00:00 2001 From: tenkuma Date: Wed, 19 Mar 2025 06:42:38 -0300 Subject: [PATCH] First. --- .classpath | 12 +++++ .project | 17 ++++++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 9 ++++ .../adrianvictor/stuff/GhostsAndStuff.class | Bin 0 -> 2897 bytes .../rf/adrianvictor/stuff/RainbowChat.class | Bin 0 -> 1740 bytes .../adrianvictor/stuff/SkibidiBlocker.class | Bin 0 -> 2887 bytes config.yml | 6 +++ plugin.yml | 6 +++ .../rf/adrianvictor/stuff/GhostsAndStuff.java | 49 ++++++++++++++++++ src/gd/rf/adrianvictor/stuff/RainbowChat.java | 42 +++++++++++++++ .../rf/adrianvictor/stuff/SkibidiBlocker.java | 49 ++++++++++++++++++ 12 files changed, 192 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class create mode 100644 bin/gd/rf/adrianvictor/stuff/RainbowChat.class create mode 100644 bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class create mode 100644 config.yml create mode 100644 plugin.yml create mode 100644 src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java create mode 100644 src/gd/rf/adrianvictor/stuff/RainbowChat.java create mode 100644 src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..b902d9c --- /dev/null +++ b/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..c1b32af --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + GhostsAndStuff + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..acdbf9c --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class b/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class new file mode 100644 index 0000000000000000000000000000000000000000..1110fa0919fb625b3dbfd2ca9b6c0622220b5d58 GIT binary patch literal 2897 zcmX^0Z`VEs1_l#`9(D#MMh5lt6#b$!{lt`_%*4F1%;b{%BK_i$(zG;v_l*4Fl48fa zlwc5-oq>gsK{3B5T|cQbJ3F&PzaXbHJu^=~E3qt5-z%{!F#ybGWME6q&r8cpXJpXu z!D4hyW|F=$SV3t~Vo7Fxo@<3QBLh=GE+d1Y52oo5LwytT64O(QtQi^Da`MyDQ;QfG zWN;bolb;S!XOo$iSz^b?z^tJe#>l|poS%})#lXzK&%?mYz{AME?~|FA>Q|bZlv)&$ zn3R*s$ROmCpPZNzmROVt;zI>lN-{Ew85uOOS%xi;tQi?N^YdIXi$P{^GB7fT@i1^Q zaB(n5Ffs^b7AqvBX6B_Uq(J0T^tc$L7-ZNPq!}5ca0Hc4emW0>EQ1^)150LJT0SF# zsD=+X#B&n!()EK&iZb)ktwBEI$j@`l1KA2PQxW7#B}N7{4J<(l){clUYt1k&21W)I z9tKqgHAV)`^wg5z)S@y_7>jCXBI}0;TXQpLFlezeXfiSgBE=U(l7~T?L5Gn+AU(AN zCFU3zlu^xsCLR<;)}R2><6&TD;9zGkU}R9k5hiHKhl9b0k%0@6==3UcbGR7v8B9O{ zV9Ll4LQDW)1}L`Z1|?ij+R_XIIn$hnft7&`WR)ckgB2)6apmMEra+tq3Qrpz23wFY zH%QnwKczG$wU~p!o{@nkvsj_HB(bO@GcR3_oxzcjK?RFHA&Dy}F*7eIzuY+^v4o4k zfkBaj!G)1Q$|pZD1(b|(!KNx8DdJ>sWAI>SaA#zYMv9u$vedj1eOC~v5>i=^%EREv z;Kj(m9pK{_=^7O8?BN)~$RLXx)95;^IT?Hy{MZ?M85!hp7#vWPnO~GyQpv;M&k(@K zz~Ygao`II7kxhjux8`ODVhCYp2u3v-Tk_yx2xSOkWZ*4IP0uVYNi70@WTC5n;l z0QuD#(_20u-Fc}+Sfs#4s=(cbtQW;a&^!~t!w|_31xfCZn1_~Wj0_s6$-T5BGe;ki zL{UpWYYv7OMh3p(?98OhluW0b{N(J^A})qFh6Hwoct!>lq|nA`1`k6bLlPqcS9)rR zQ+|F$4=6Ml8BDNP2gz1oSA!H;YoZHqGvqMju`}c{GVp=RB)C!@hJ1zsMh5oGV%OY) zl1gwP9>u{>#K_=?>Q;r!Vue(2sh6UokW^Ztke9De4sxqPd1_IrLP1e}S!POVikWw+AGwOLvu0%A4K7Jc&h||#0Bd7sXklbf zBhImm3|ztarA5i9ZkeE}Rv5Kqp$7^vMg|_wyu8#R=bXgi;?!bxhE7HXF$~ke8I+NM z1C~V@8CXEMoI#O+k%5_k0gPE0*cd>7oq+>Hf$Cod1_l-eMo`Vqz{tSMz`&r-z{tSJ zz`($&wVi=)BLf2i6N3N)0|OgakcUB#fq{Vs%w}Z}Vi0CvU|?hr0gHe%TQD$z<+!xA zFo+6?Z)1=|n83xr#K6EH%)rSYf@BI8+!T4ZDNRt@9JF>bNJVOGXHeM6AgZOcjX`-Q zgE}L_Rt8KtR>(b>t6 z&B!p5fgh}(a2rGMat6iS3}um8Ac5@+6(F4;b9Le7g2Isn91}(iJPZsBiVU0#N(@2_ z$_&a3stg7UY7CYP8VoKBnhb#qS`1MP+6=J_It*D1x(w9}24MebLHq#qA16aGLp4JU z10#bAgE>PjLmdMXLl%P|Lp?(c12aPdG?pQ9jSNf-O$-bS{0z*083NfEn%Nn0xPLLo kGB7c;f)hv^LpuWlgAfA~gAYRoLzjajgBwE!L$`w@02NUXAOHXW literal 0 HcmV?d00001 diff --git a/bin/gd/rf/adrianvictor/stuff/RainbowChat.class b/bin/gd/rf/adrianvictor/stuff/RainbowChat.class new file mode 100644 index 0000000000000000000000000000000000000000..4e344ef902a7db47d6c556f3ee2d721782bb2064 GIT binary patch literal 1740 zcmX^0Z`VEs1_l#`Xm$oBMh2Di6#b$!{lt`_%*4F1%;b{%BK_i$(zG=Fpv26)r2KN{ zjKmUl1{OvJwfv%V{iM?D?93AV)UwpP68(al#LCnn{QxlKlUZDnnwMI{$iP;RQ<|Qc z$H<`UgQNu_sGpTsmZ|Mg|t={FGEK24)6s z9tL&>9!3Uc4b3o421W)x9tKthHbw@1pUk{eztY^K)S{5Yq?}Yn1|gsPpu)(&la^nU zn^*!C0tJ)?rh!=O;9yW=WMDqDyo!rKgF%a(L6ea|0No)x4B8Ajj126Vc`2zC{%MR1 zVpz=f)bs=yp~u6Z&tSmFz*$_HR16L*Mg~z0Pb@ZrLeGeY!I;5>k%29-pdd9bg^@uQ zi^-UJq2X^0GQtdGggGOFDY8!IjKreg)WXu#yyR4CPb{`0OweGkgvfU@J;3F3l-nWRS#25wKujWMI#QB}E|&Ro09Qtl+q3WMK3JIkY6PsKgVL7#JBi zQu9)vOzx7@ijt6gZ~|mx;0-QGOwRUAEP&=;uHgLAqU2P!Oi&INKq{~FK*^0kk%5tc znSp_Uk%0kJEHE%IFflMPurqKlFfwp5Ffh0=FflMOFfedwZD-)p(%#CzyAiC0pMima z53G}ifrWvWfs=ucL4bjQK@6grL6AX+0R*@hgc;Zv7#SEDL>NRNW-=x-urP2iFferQ zW)O?q&LH8dy^TR~2ZOvHvl+{BhBRFvRZ*604C-dAqO42{7zA~6L0sK!42I#$83I8( zQPyn?rs1NjtO;gp%Nf{O*ce6Gbhj~BEMnl-6=mDTU?a$|e8Ka^w z#26G9#2M5WBp3`CBpFN?WEkuiWEor-ZbG zG#I)VG{J!q1o19BP`Vj>8T=R+88{f48T=Un7?>CY7^)cp8G;y?8H5=s7=jr>7+4q- z7$O-$8A2FX8C)1l8NwJs7}yxH8Tc5&8G;zt86p@M7^E23|1pTMgOCQ}9|l>*KMX>Q QOd>xSBtg*^367{J02EKFJOBUy literal 0 HcmV?d00001 diff --git a/bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class b/bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class new file mode 100644 index 0000000000000000000000000000000000000000..4f862522f2d8b74e34309f7cb12776468fb574f3 GIT binary patch literal 2887 zcmX^0Z`VEs1_l#`Y3vM4j121ODf&fe`iUt;nTdI2naL&jMf$}hrD_uoD7T%0z3??3~V5l5Dx=8 z0|z4mzfWdfs$XetQfg61Vp2{jBZH7nesW??SYlBohz}KHDaptzW@OOBW;3=xwPs{s zkB5W`hy@D;p8PyWfI4R+mM}8tpm-KbxPz3rf}+D(GmMKthCz;oXp}9h0J1wywaQ;MJ@&-1`~D$V@3uk+$oud!IZ&_ zk%7HDu_!MyFP)J=6pLFl!?+nN7_8VCEEyU2z;OY01`mTZgAF4CduFj~Zb3;UIN?Td zFxW9N$Y6I`DoB|k2ZIA6gEVS@IwuyV2B+o~XO?7^rGf(1iHE_N!3B~WobvN?QWNtS z8N{%-FG@2C3L}FqvYn9p1Irdjc0vOQY;^$-Lm|jZ93}Y>^`Jaa%)?LuO7kq4d1?8eU@7Ba zC}*f(WZ+0oEeX#r%1MF5I#Mu!MZrN>#luj|P{YW;ot|0(Ds~|Si8yM=!z8S^8R{4s z*cs{>83fQx<6&rIXkujGFD@y{%ue;mOwTBRWI!vFA{K5GN=XHcHn=X3=dx3+IT%_P z8PxEEF;WPFvOpUTLpwP4W+WE-fm1sxxO4_p8%XX2i=kGph+>|Rfjt*iR0}~0Eu_e> zW@O-j#x=OSWMmM4sDT$C){G3ip!kR9d`1SwC`JZuBwdUQVxV9^)NqvrsnA+Z1kLJySd7!(;88JHOu7?>CsKou|p z2(UA7fJGP?I2pJY7#X-37#JcMn851zwYD?xXlZX{;MdaG${@HAtWcPNfkB9Yg@J*A zmw|H69XfIB!d*h z8YYk_>%%I#UUF*usB=n2nhBc$a$YMV!>s>Npzvg20EK55gD3+7gD?Xtg9w8#gBXK2gE)f% zg9L*jgA{`ngEWINgA9WSgFJ&XgCau|gAzkLgEB)Ng9^h0233X?3~CH388jI-F=#Pd zVbErH!=S_PmO+u>JA(l@PV5-iKw%7zlOGHn44n*&46F>F8M+v{8JHM^8J;rqF!VAo zGdMGBW$0t*XJBE7VwlV@fuWm$m0=T^ u{xe82u(LBTvNOm)L>L*^8N3)6{xd|OiG!uVGR|l+5FHGR3{$|VY$^b);|(ML literal 0 HcmV?d00001 diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..609576c --- /dev/null +++ b/config.yml @@ -0,0 +1,6 @@ + +# Strikes a lightning to the player who says specific words +skibidiBlocker: true +skibidiBlockerCaseSensitive: false +skibidiBlockerWords: + - 'skibidi' diff --git a/plugin.yml b/plugin.yml new file mode 100644 index 0000000..090c47f --- /dev/null +++ b/plugin.yml @@ -0,0 +1,6 @@ +author: tenkuma +database: false +main: gd.rf.adrianvictor.stuff.GhostsAndStuff +name: GhostsAndStuff +url: https://adrianvictor.rf.gd +version: '1.0' \ No newline at end of file diff --git a/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java new file mode 100644 index 0000000..5fbdded --- /dev/null +++ b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java @@ -0,0 +1,49 @@ +package gd.rf.adrianvictor.stuff; + +import gd.rf.adrianvictor.lib.ConfigurationEx; +import gd.rf.adrianvictor.lib.Log; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.Event.Type; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; +import java.util.List; + +public class GhostsAndStuff extends JavaPlugin { + ConfigurationEx config; + PluginManager pm; + Log logger; + + @Override + public void onDisable() { + logger.info("is being disabled."); + } + + @Override + public void onEnable() { + logger = new Log(this); + pm = this.getServer().getPluginManager(); + config = new ConfigurationEx(this, "config.yml", logger); + config.loadConfig(); + loadModules(); + logger.info("is starting."); + } + + public void loadModules() { + PlayerListener rainbowChat = new RainbowChat(this); + logger.info("Loading module RainbowChat"); + pm.registerEvent(Type.PLAYER_CHAT, rainbowChat, Priority.High, this); + + 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."); + } else { + PlayerListener verboseWorldChange = new SkibidiBlocker(this, logger); + pm.registerEvent(Type.PLAYER_CHAT, verboseWorldChange, Priority.High, this); + } + } + } +} diff --git a/src/gd/rf/adrianvictor/stuff/RainbowChat.java b/src/gd/rf/adrianvictor/stuff/RainbowChat.java new file mode 100644 index 0000000..1d6e0fd --- /dev/null +++ b/src/gd/rf/adrianvictor/stuff/RainbowChat.java @@ -0,0 +1,42 @@ +package gd.rf.adrianvictor.stuff; + +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.plugin.java.JavaPlugin; + +import gd.rf.adrianvictor.lib.Color; + +public class RainbowChat extends PlayerListener { + JavaPlugin plugin; + + public RainbowChat(JavaPlugin _plugin) { + plugin = _plugin; + } + + public void onPlayerChat(PlayerChatEvent event) { + StringBuilder result = new StringBuilder(); + String message = Color.formatColors(event.getMessage()); + int index = 0; + + while (index < message.length()) { + int startIndex = message.indexOf("§z", index); + if (startIndex == -1) { + result.append(message.substring(index)); + break; + } + + result.append(message, index, startIndex); + int endIndex = startIndex + 2; + + while (endIndex < message.length() && message.charAt(endIndex) != '§') { + endIndex++; + } + + String textToColor = message.substring(startIndex + 2, endIndex); + result.append(Color.rainbow(textToColor)); + + index = endIndex; + } + event.setMessage(result.toString()); +} +} diff --git a/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java b/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java new file mode 100644 index 0000000..7d5e97c --- /dev/null +++ b/src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java @@ -0,0 +1,49 @@ +package gd.rf.adrianvictor.stuff; + +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.Log; + +public class SkibidiBlocker extends PlayerListener { + JavaPlugin plugin; + Log logger; + + public SkibidiBlocker(JavaPlugin _plugin, Log _logger) { + plugin = _plugin; + logger = _logger; + } + + public void onPlayerChat(PlayerChatEvent event) { + String message = event.getMessage(); + List blockedWords = plugin.getConfiguration().getStringList("skibidiBlockerWords", null); + + if (blockedWords == null) { + logger.warning("Blocked words list is null!"); + return; + } + if (blockedWords.isEmpty()) { + logger.warning("Blocked words list is empty!"); + return; + } + + boolean caseSensitive = plugin.getConfiguration().getBoolean("skibidiBlockerCaseSensitive", true); + + for (String blockedWord : blockedWords) { + 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; + } + } + } + } +}