Added command /gettime that returns the game time converted to real life time format.

This commit is contained in:
天クマ 2025-04-10 15:15:24 -03:00
commit 023106b3bc
6 changed files with 115 additions and 65 deletions

View file

@ -7,6 +7,6 @@
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/tenkumaLib"/>
<classpathentry kind="lib" path="E:/craftbukkit-1060.jar"/>
<classpathentry kind="lib" path="/home/adrian/archive/minecraft-jar/craftbukkit-1060.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

14
ascii.txt Normal file
View file

@ -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

19
plugin.yml Normal file → Executable file
View file

@ -1,6 +1,13 @@
author: tenkuma
database: false
main: gd.rf.adrianvictor.stuff.GhostsAndStuff
name: GhostsAndStuff
url: https://adrianvictor.rf.gd
version: '1.1'
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

118
src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java Normal file → Executable file
View file

@ -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<String> 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<String> 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);
}
}
}
}

View file

@ -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;
}
}