From 023106b3bc776a5af118944efdec5971b172f13c Mon Sep 17 00:00:00 2001 From: tenkuma Date: Thu, 10 Apr 2025 15:15:24 -0300 Subject: [PATCH] Added command /gettime that returns the game time converted to real life time format. --- .classpath | 2 +- ascii.txt | 14 +++ .../adrianvictor/stuff/GhostsAndStuff.class | Bin 2991 -> 3259 bytes plugin.yml | 19 ++- .../rf/adrianvictor/stuff/GhostsAndStuff.java | 118 +++++++++--------- .../adrianvictor/stuff/command/GetTime.java | 27 ++++ 6 files changed, 115 insertions(+), 65 deletions(-) create mode 100644 ascii.txt mode change 100644 => 100755 plugin.yml mode change 100644 => 100755 src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java create mode 100755 src/gd/rf/adrianvictor/stuff/command/GetTime.java diff --git a/.classpath b/.classpath index 3fd8cf9..a20094d 100644 --- a/.classpath +++ b/.classpath @@ -7,6 +7,6 @@ - + diff --git a/ascii.txt b/ascii.txt new file mode 100644 index 0000000..7be2d13 --- /dev/null +++ b/ascii.txt @@ -0,0 +1,14 @@ + XXXXXXXXX + XXX XXX + XX XX + X XXX + X XXX X X +X X X XXX X +X X X X +X X X XXXX X + X XXX XXXXXX XX X + X XXXX X X + XX XXXX XX XX + XXX XXXX XXX + XXXXXXXXX + ghosts 'n stuff \ No newline at end of file diff --git a/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class b/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class index 700fdea9081fd80b8065da70b7c8b8779133f0da..0c0e08ef89801daefea934847320b9d27e652370 100644 GIT binary patch delta 1135 zcmZ24zFU&_)W2Q(7#J8#80NDxFilQimznIx$hXm4n>m?-!G@86Jw3IgBr`Xai-D2B zj)%dX!GV#1D?PQuIX^cyF)xLY!A!#^E3qt5KPNFST|c;_C^IkJTGJ=LC|y6PG&?)9 zL_Zm#Qa>Q4G(9s9s?VC8!HJPUW1@g$Jxty`wIl>=ks|{?7lSKro>n?IhRd>BaESrhoPRKVRA2O zi%WPIS{d3H8Q3$6U2_XcDj6A=H8i6*7&<1ivU>=3@i25V$T2domnRnGW#*-`GxSbQ zVAtX9Vd&>!;AWV>$lx^jEtBfxJ?wv2<}fmdO^#<3n|z5QfsuEzF{dM|2m>dB=;TUH zdCqAJYz&MH3=9F27jhcM3t4Ytu-(nz7`dInc^iX^);0z&tt||qLcZG=BsVfJFfcI) zFfcGEF>o+2Fi0}+Fi0^-GDtIMGsrL)F~~AFF~~8vF~~FcGbk_!GB7akKul&3Vi0Cv zU|?kMnJmvGTJJ9u%(9IkbS8uBZieVct?dl4K3ZECbT=`?X>Vdk(b~z7#mbPSEMQMNfk_nxUItYLF$OgTbp|a469#Pt zTLv8lHwImXa0Ww$6b2)PTn1x?3I-E~Rt8gsJ_a*}i45ip^B61`)-zax17)%iw@`Kn z!$bx~23rOxhC(o_g29|&62oK$MuvF|f(%m_CNeNFOofIZL~a@bBg1qC1_nL`R(1V9 u47%(LP29g2WEq$kW`N^mCc`WS1_mJpCWcgo*$i_XBpKovW;4ulkOTk|s0<$f delta 921 zcmdljxn7*>)W2Q(7#J8#7$$7wieNV3Vqj#j;bE|4;9+Fo&dE zCU>(Mu!S*1urq{DKFF%V9LW$h`30*kXADCeJ3}lZgZ$(TY!W=aiFt|XsYN^t@eB!* zo!GjCk{B7dixM;QlJd))GZIVK8B!+SXVYX$W>Dl{NT1BdE-#wN$iP>eotc!GlIfI_ zpPZdq#KDj~*@<0AF_)1+7*!@bzbK^`T>TT1tpb?49psuQ5+1FlmD`N2v_qk)G){~GO(8?7UgB; zrL!~CP2`oCT*4v1QOnT4!@$kZxVeWzg^{s$@R z7#JBC7#t?gb_NCp2?ibpNd`#3Sq6IsIR-%n1_mC8DGWjk!VC-yjG&liU}WHBU|>vPU}a!tU|`swwT;0+ z$c1GagWF67+1(62ky_gs{Cu>wFz9Y#@YmkN5UN$blOdXw0jw?&qE2l$Lo!HRDoCBE zP}(*INn{NO^%)TLeqiTkfs}!4%VFHckmsX)jDbgcCqoe&|+|7 z&}Il{&}T?tFkr}KFl4A;Fk)zBFlOjuFkzU;V9GF$!Hi)&gC#hWOc+=}Aps2~F$O^f zSB55VXh|_7F*L<7Ffvpym@_mpv@kF-%wrH_Xk}<(U}9*41~5dfoq>^|gMop8kAYQP v{||#MJ3}$|F9ul#CWcOMlyxz5GcYg+F)%TNG4wF>IY=@DF!V6=J4gZmSpmTy diff --git a/plugin.yml b/plugin.yml old mode 100644 new mode 100755 index 070a198..c7af3e1 --- a/plugin.yml +++ b/plugin.yml @@ -1,6 +1,13 @@ -author: tenkuma -database: false -main: gd.rf.adrianvictor.stuff.GhostsAndStuff -name: GhostsAndStuff -url: https://adrianvictor.rf.gd -version: '1.1' \ No newline at end of file +author: tenkuma +main: gd.rf.adrianvictor.stuff.GhostsAndStuff +name: GhostsAndStuff +url: https://adrianvictor.rf.gd +version: '0.5' +commands: + gettime: + description: Prints the time for the current world. + usage: /gettime + permissions: + ghosts.gettime: + description: Allows the player to use the gettime command" + default: true \ No newline at end of file diff --git a/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java old mode 100644 new mode 100755 index c003638..aff05b3 --- a/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java +++ b/src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java @@ -1,58 +1,60 @@ -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() { - - // 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."); - } else { - PlayerListener verboseWorldChange = new SkibidiBlocker(this, logger); - pm.registerEvent(Type.PLAYER_CHAT, verboseWorldChange, Priority.High, this); - } - } - } -} +package gd.rf.adrianvictor.stuff; + +import gd.rf.adrianvictor.lib.ConfigurationEx; +import gd.rf.adrianvictor.stuff.command.*; +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(); + this.getCommand("gettime").setExecutor(new GetTime()); + loadModules(); + logger.info("is starting."); + } + public void loadModules() { + + // 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."); + } else { + PlayerListener verboseWorldChange = new SkibidiBlocker(this, logger); + pm.registerEvent(Type.PLAYER_CHAT, verboseWorldChange, Priority.High, this); + } + } + } +} diff --git a/src/gd/rf/adrianvictor/stuff/command/GetTime.java b/src/gd/rf/adrianvictor/stuff/command/GetTime.java new file mode 100755 index 0000000..3ed0ee9 --- /dev/null +++ b/src/gd/rf/adrianvictor/stuff/command/GetTime.java @@ -0,0 +1,27 @@ +package gd.rf.adrianvictor.stuff.command; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import gd.rf.adrianvictor.lib.Color; +public class GetTime implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (command.getName().equalsIgnoreCase("gettime")) { + if (sender instanceof Player) { + Player player = (Player) sender; + long totalTicks = player.getWorld().getTime(); + int totalMinutes = (int) (totalTicks * 1440 / 24000); + int hours = (totalMinutes / 60) + 6; + int minutes = totalMinutes % 60; + + sender.sendMessage(Color.formatColors("The time for " + player.getWorld().getName() + " is &a" + hours + " hours &rand &a" + minutes + " minutes &r(&a" + player.getWorld().getTime() + " ticks&r)")); + } else { + sender.sendMessage("This command can only be run by a player."); + } + return true; + } + return false; + } +}