From b083135a7abc72f4122be335bd0cfe710c93865a Mon Sep 17 00:00:00 2001 From: Pepich Date: Thu, 2 Feb 2017 18:04:01 +0100 Subject: [PATCH] Added Adminnotes module --- src/com/redstoner/misc/Main.java | 8 +- .../modules/adminnotes/AdminNotes.java | 134 ++++++++++++++++++ 2 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 src/com/redstoner/modules/adminnotes/AdminNotes.java diff --git a/src/com/redstoner/misc/Main.java b/src/com/redstoner/misc/Main.java index db24596..9e87e01 100644 --- a/src/com/redstoner/misc/Main.java +++ b/src/com/redstoner/misc/Main.java @@ -6,6 +6,7 @@ import com.redstoner.annotations.Version; import com.redstoner.coremods.debugger.Debugger; import com.redstoner.coremods.moduleLoader.ModuleLoader; import com.redstoner.modules.adminchat.Adminchat; +import com.redstoner.modules.adminnotes.AdminNotes; import com.redstoner.modules.chatgroups.Chatgroups; import com.redstoner.modules.check.Check; import com.redstoner.modules.damnspam.DamnSpam; @@ -17,7 +18,7 @@ import com.redstoner.modules.warn.Warn; /** Main class. Duh. * * @author Pepich */ -@Version(major = 1, minor = 1, revision = 5, compatible = -1) +@Version(major = 1, minor = 1, revision = 6, compatible = -1) public class Main extends JavaPlugin { public static JavaPlugin plugin; @@ -30,6 +31,7 @@ public class Main extends JavaPlugin ModuleLoader.init(); // TODO: Add modules (this also loads them if necessary) ModuleLoader.addModule(Adminchat.class); + ModuleLoader.addModule(AdminNotes.class); ModuleLoader.addModule(Chatgroups.class); ModuleLoader.addModule(Check.class); ModuleLoader.addModule(DamnSpam.class); @@ -40,8 +42,4 @@ public class Main extends JavaPlugin // And enable them ModuleLoader.enableModules(); } - - @Override - public void onDisable() - {} } diff --git a/src/com/redstoner/modules/adminnotes/AdminNotes.java b/src/com/redstoner/modules/adminnotes/AdminNotes.java new file mode 100644 index 0000000..db49014 --- /dev/null +++ b/src/com/redstoner/modules/adminnotes/AdminNotes.java @@ -0,0 +1,134 @@ +package com.redstoner.modules.adminnotes; + +import java.io.File; +import java.text.SimpleDateFormat; + +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.json.simple.JSONArray; + +import com.nemez.cmdmgr.Command; +import com.redstoner.annotations.AutoRegisterListener; +import com.redstoner.annotations.Version; +import com.redstoner.misc.JsonManager; +import com.redstoner.misc.Main; +import com.redstoner.misc.Utils; +import com.redstoner.modules.Module; + +@AutoRegisterListener +@Version(major = 1, minor = 0, revision = 0, compatible = 1) +public class AdminNotes implements Module, Listener +{ + private boolean enabled = false; + JSONArray notes; + File saveFile = new File(Main.plugin.getDataFolder(), "adminnotes.json"); + + @Override + public void onEnable() + { + notes = JsonManager.getArray(saveFile); + enabled = true; + } + + @EventHandler + public void onJoin(PlayerJoinEvent e) + { + if (e.getPlayer().hasPermission("utils.adminnotes")) + { + if (notes.size() > 0) + { + Utils.sendMessage(e.getPlayer(), null, "§cThere are " + notes.size() + " open notes!"); + } + } + } + + @Override + public void onDisable() + { + saveNotes(); + enabled = false; + } + + @SuppressWarnings("unchecked") + @Command(hook = "an_create") + public void createNote(CommandSender sender, String note) + { + JSONArray temp = new JSONArray(); + temp.add(sender.getName()); + temp.add(note); + temp.add((double) System.currentTimeMillis() / 1000); + notes.add(temp); + Utils.sendMessage(sender, null, "§aNote added!"); + saveNotes(); + } + + @Command(hook = "an_del") + public void delNote(CommandSender sender, int id) + { + if (id < notes.size() && id >= 0 && notes.get(id) != null) + { + notes.remove(id); + Utils.sendMessage(sender, null, "§aNote " + id + " has been removed!"); + saveNotes(); + } + else + { + Utils.sendMessage(sender, null, "§cThat note does not exist!"); + } + } + + @Command(hook = "an_list") + public void list(CommandSender sender) + { + Utils.sendModuleHeader(sender); + for (Object note : notes) + { + String string = ChatColor.YELLOW + "" + notes.indexOf(note) + ": "; + string += "§a" + ((JSONArray) note).get(1); + string += "\n§e - " + ((JSONArray) note).get(0) + ", §6"; + SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy HH:mm"); + string += format.format((double) ((JSONArray) note).get(2) * 1000); + Utils.sendMessage(sender, "", string); + } + } + + public void saveNotes() + { + JsonManager.save(notes, saveFile); + } + + @Override + public boolean enabled() + { + return enabled; + } + + // @noformat + @Override + public String getCommandString() + { + return "command an {\n" + + " perm utils.adminnotes;\n" + + " \n" + + " add [string:note...] {\n" + + " type player;\n" + + " help Creates a new admin note;\n" + + " run an_create note;\n" + + " }\n" + + " \n" + + " del [int:id] {\n" + + " help Deletes an admin note;\n" + + " run an_del id;\n" + + " }\n" + + " \n" + + " list {\n" + + " help Lists all notes;\n" + + " run an_list;\n" + + " }\n" + + "}"; + } + // @format +}