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 700fdea..0c0e08e 100644
Binary files a/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class and b/bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class differ
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;
+ }
+}