Archived
0

Update to APIv4. I hope this no borke git.

This commit is contained in:
Pepich
2017-09-17 15:34:22 +02:00
parent e0fee3b145
commit 77c8fa3fb7
47 changed files with 1248 additions and 989 deletions

View File

@@ -1,11 +0,0 @@
package com.redstoner.exceptions;
public class PlayerNotFoundException extends Exception
{
private static final long serialVersionUID = -7517266613348837760L;
public PlayerNotFoundException()
{
super("That player could not be found!");
}
}

View File

@@ -12,14 +12,16 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Abot implements Module, Listener
{
private File answerFile = new File(Main.plugin.getDataFolder(), "abot.json");
@@ -40,7 +42,7 @@ public class Abot implements Module, Listener
if (hideperm == null || !event.getPlayer().hasPermission((String) hideperm))
{
event.setCancelled(true);
Utils.sendMessage(event.getPlayer(), null, (String) entry.get("message"), '&');
getLogger().message(event.getPlayer(), (String) entry.get("message"));
return;
}
}
@@ -54,7 +56,7 @@ public class Abot implements Module, Listener
answers = JsonManager.getArray(answerFile);
if (answers == null)
answers = new JSONArray();
Utils.sendMessage(sender, null, "Loaded the abot.json file!");
getLogger().message(sender, "Loaded the abot.json file!");
}
@Override
@@ -70,7 +72,7 @@ public class Abot implements Module, Listener
{
return "command abot {\n" +
" reload {" +
" help Reloads answes from the .json file.;\n" +
" help Reloads answers from the .json file.;\n" +
" run abot_reload;\n" +
" perm utils.abot.reload;" +
" }\n" +

View File

@@ -3,6 +3,7 @@ package com.redstoner.modules.adminchat;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import java.util.regex.Pattern;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -13,8 +14,10 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
@@ -23,8 +26,9 @@ import com.redstoner.modules.Module;
/** AdminChat module. Allows staff to chat to other staff using /ac \<message\> as well as a one char prefix or a toggle.
*
* @author Pepich */
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 2, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Adminchat implements Module, Listener
{
private static final char defaultKey = ',';
@@ -109,7 +113,7 @@ public class Adminchat implements Module, Listener
{
return recipient.hasPermission("utils.ac");
}
}, '&');
});
return true;
}
@@ -123,7 +127,7 @@ public class Adminchat implements Module, Listener
{
return recipient.hasPermission("utils.ac");
}
}, '&');
});
return true;
}
@@ -138,12 +142,12 @@ public class Adminchat implements Module, Listener
if (actoggled.contains(((Player) sender).getUniqueId()))
{
actoggled.remove(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "ACT now §cdisabled");
getLogger().message(sender, "ACT now §cdisabled");
}
else
{
actoggled.add(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "ACT now §aenabled");
getLogger().message(sender, "ACT now §aenabled");
}
return true;
}
@@ -158,10 +162,10 @@ public class Adminchat implements Module, Listener
if (!actoggled.contains(((Player) sender).getUniqueId()))
{
actoggled.add(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "ACT now §aenabled");
getLogger().message(sender, "ACT now §aenabled");
}
else
Utils.sendMessage(sender, null, "ACT was already enabled");
getLogger().message(sender, "ACT was already enabled");
return true;
}
@@ -175,11 +179,11 @@ public class Adminchat implements Module, Listener
if (actoggled.contains(((Player) sender).getUniqueId()))
{
actoggled.remove(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "ACT now §cdisabled");
getLogger().message(sender, "ACT now §cdisabled");
}
else
{
Utils.sendMessage(sender, null, "ACT was already disabled");
getLogger().message(sender, "ACT was already disabled");
}
return true;
}
@@ -196,7 +200,7 @@ public class Adminchat implements Module, Listener
if (event.getMessage().startsWith(getKey(player)))
{
event.setCancelled(true);
acSay(event.getPlayer(), event.getMessage().replaceFirst(getKey(player), ""));
acSay(event.getPlayer(), event.getMessage().replaceFirst(Pattern.quote(getKey(player)), ""));
}
else if (actoggled.contains(event.getPlayer().getUniqueId()))
{
@@ -216,7 +220,7 @@ public class Adminchat implements Module, Listener
{
if (key.length() > 1)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
@@ -225,7 +229,7 @@ public class Adminchat implements Module, Listener
getAcKey(sender);
return true;
}
Utils.sendMessage(sender, null, "Set your key to §6" + key);
getLogger().message(sender, "Set your key to §6" + key);
keys.put(((Player) sender).getUniqueId().toString(), key + "");
saveKeys();
return true;
@@ -246,7 +250,7 @@ public class Adminchat implements Module, Listener
* @param sender the issuer of the command. */
public void getAcKey(CommandSender sender)
{
Utils.sendMessage(sender, null, "Your current ackey is §6" + getKey((Player) sender));
getLogger().message(sender, "Your current ackey is §6" + getKey((Player) sender));
}
/** Saves the keys. */

View File

@@ -2,24 +2,38 @@ package com.redstoner.modules.adminnotes;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.json.simple.JSONArray;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import de.pepich.chestapi.CallbackHandler;
import de.pepich.chestapi.ClickableInventory;
import de.pepich.chestapi.DefaultSize;
import net.nemez.chatapi.click.ClickCallback;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 0, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class AdminNotes implements Module, Listener
{
JSONArray notes;
@@ -38,12 +52,13 @@ public class AdminNotes implements Module, Listener
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!");
Message m = new Message(e.getPlayer(), null);
m.appendSendChat(getLogger().getPrefix(), "/an list");
m.appendSendChat("&cThere are " + notes.size() + " open notes!", "/an list");
m.send();
}
}
}
@Override
@@ -61,7 +76,7 @@ public class AdminNotes implements Module, Listener
temp.add(note);
temp.add((double) System.currentTimeMillis() / 1000);
notes.add(temp);
Utils.sendMessage(sender, null, "§aNote added!");
getLogger().message(sender, "&aNote added!");
saveNotes();
}
@@ -71,19 +86,20 @@ public class AdminNotes implements Module, Listener
if (id < notes.size() && id >= 0 && notes.get(id) != null)
{
notes.remove(id);
Utils.sendMessage(sender, null, "§aNote " + id + " has been removed!");
getLogger().message(sender, "&aNote " + id + " has been removed!");
saveNotes();
}
else
{
Utils.sendMessage(sender, null, "§cThat note does not exist!");
getLogger().message(sender, "&cThat note does not exist!");
}
}
@Command(hook = "an_list")
public void list(CommandSender sender)
{
Utils.sendModuleHeader(sender);
Message m = new Message(sender, null);
m.appendText(getLogger().getHeader());
for (Object note : notes)
{
String string = ChatColor.YELLOW + "" + notes.indexOf(note) + ": ";
@@ -91,8 +107,79 @@ public class AdminNotes implements Module, Listener
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);
m.appendCallbackHover(string, new ClickCallback(true, true, null)
{
@Override
public void run(CommandSender sender)
{
if (notes.contains(note))
showMenu((Player) sender, notes.indexOf(note));
else
getLogger().message(sender, true, "That note no longer exists!");
}
}, "Click to show note options.");
m.appendText("\n");
}
m.send();
}
public void showMenu(Player player, int index)
{
String note_text = ((String) ((JSONArray) notes.get(index)).get(1));
if (note_text.length() > 15)
note_text = note_text.substring(0, 15) + "...";
ClickableInventory inv = new ClickableInventory("Note " + index + ": " + note_text, DefaultSize.FINAL_FIXED(9));
ItemStack addItem = new ItemStack(Material.BOOK_AND_QUILL);
ItemMeta addMeta = addItem.getItemMeta();
addMeta.setDisplayName("§aAdd note!");
addItem.setItemMeta(addMeta);
inv.set(1, addItem, new CallbackHandler()
{
@Override
public void run(Player player, ClickType type)
{
Message m = new Message(player, null);
m.appendSuggest(getLogger().getPrefix(), "/an add ");
m.appendSuggest("Click me to add a note!", "/an add ");
m.send();
player.closeInventory();
}
});
ItemStack deleteItem = new ItemStack(Material.WOOL, 1, (short) 14);
ItemMeta deleteMeta = deleteItem.getItemMeta();
deleteMeta.setDisplayName("§cDelete note!");
deleteMeta.setLore(Arrays.asList(new String[] {"Shift click to execute!"}));
deleteItem.setItemMeta(deleteMeta);
inv.set(3, deleteItem, new CallbackHandler()
{
@Override
public void run(Player player, ClickType type)
{
if (type == ClickType.SHIFT_LEFT)
{
delNote(player, index);
player.closeInventory();
}
else
getLogger().message(player, true, "You need to shift click to execute this!");
}
});
ItemStack closeItem = new ItemStack(Material.BARRIER);
ItemMeta closeMeta = closeItem.getItemMeta();
closeMeta.setDisplayName("§eClose menu");
closeItem.setItemMeta(closeMeta);
inv.set(9, closeItem, new CallbackHandler()
{
@Override
public void run(Player player, ClickType type)
{
player.closeInventory();
}
});
inv.show(player);
}
public void saveNotes()
@@ -105,10 +192,8 @@ public class AdminNotes implements Module, Listener
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" +
" perm utils.an;" +

View File

@@ -14,9 +14,10 @@ import org.bukkit.event.Listener;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import com.redstoner.modules.blockplacemods.mods.Mod;
import com.redstoner.modules.blockplacemods.mods.ModAbstract;
@@ -24,17 +25,15 @@ import com.redstoner.modules.blockplacemods.mods.ModToggledAbstract;
import com.redstoner.utils.CommandException;
import com.redstoner.utils.CommandMap;
@Commands(CommandHolderType.None)
@AutoRegisterListener
@Version(major = 3, minor = 2, revision = 9, compatible = 3)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public final class BlockPlaceMods implements Module, Listener
{
public static String PREFIX = ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + "BPM" + ChatColor.GRAY + "]"
+ ChatColor.GREEN;
@Override
public boolean onEnable()
{
ModAbstract.registerAll();
ModAbstract.registerAll(getLogger());
for (Mod mod : new ArrayList<>(ModAbstract.getMods().values()))
{
mod.registerListeners();
@@ -50,11 +49,18 @@ public final class BlockPlaceMods implements Module, Listener
}
catch (ReflectiveOperationException ex)
{
ex.printStackTrace();
return false;
}
return true;
}
@Override
public void postEnable()
{
setPrefix("BPM");
}
@Override
public void onDisable()
{
@@ -100,7 +106,7 @@ public final class BlockPlaceMods implements Module, Listener
{
String[] args = new ArrayList<>(Arrays.asList(input.split(" "))).stream()
.filter(x -> x != null && !x.trim().isEmpty()).toArray(String[]::new);
String prefix = PREFIX;
String prefix = "";
String message;
try
{
@@ -109,7 +115,7 @@ public final class BlockPlaceMods implements Module, Listener
Mod target = ModAbstract.getMod(args[0].toLowerCase());
if (target != null)
{
prefix += "&7[&2" + capitalize(target.getName()) + "&7]&a";
prefix += "&7[&2" + capitalize(target.getName()) + "&7]:&a ";
if (!(sender instanceof Player))
{
message = "&cYou must be a player to use any block place mod";
@@ -142,7 +148,7 @@ public final class BlockPlaceMods implements Module, Listener
message = " &cAn unexpected error occurred while executing this command.";
t.printStackTrace();
}
Utils.sendMessage(sender, prefix, message, '&');
getLogger().message(sender, prefix + message);
}
private String commandHelp(CommandSender sender, String[] args)

View File

@@ -1,21 +1,28 @@
package com.redstoner.modules.blockplacemods.mods;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.datamanager.DataManager;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryType;
import java.util.*;
import com.redstoner.misc.Main;
import com.redstoner.modules.ModuleLogger;
import com.redstoner.modules.datamanager.DataManager;
public abstract class ModAbstract implements Mod, Listener
{
private static final Map<String, Mod> mods = new HashMap<>();
private final String name;
private final Set<String> aliases;
private static ModuleLogger logger;
public static Map<String, Mod> getMods()
{
@@ -27,15 +34,18 @@ public abstract class ModAbstract implements Mod, Listener
return mods.get(name);
}
public static void registerMod(Mod mod) {
public static void registerMod(Mod mod)
{
mods.put(mod.getName(), mod);
for (String alias : mod.getAliases()) {
for (String alias : mod.getAliases())
{
mods.putIfAbsent(alias, mod);
}
}
public static void registerAll()
public static void registerAll(final ModuleLogger logger)
{
ModAbstract.logger = logger;
registerMod(new ModToggledCauldron());
registerMod(new ModToggledPiston());
registerMod(new ModToggledStep());
@@ -49,11 +59,12 @@ public abstract class ModAbstract implements Mod, Listener
{
this.name = Objects.requireNonNull(name);
this.aliases = new HashSet<>(2);
Utils.info("Loaded mod " + name);
logger.info("Loaded mod " + name);
}
@Override
public String getName() {
public String getName()
{
return name;
}

View File

@@ -1,5 +1,6 @@
package com.redstoner.modules.blockplacemods.mods;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
@@ -26,7 +27,9 @@ public class ModToggledCauldron extends ModToggledAbstract
public void onPlayerInteract(PlayerInteractEvent event)
{
if (event.getAction() == Action.RIGHT_CLICK_BLOCK && !event.getPlayer().isSneaking()
&& event.getClickedBlock().getType() == Material.CAULDRON && hasEnabled(event.getPlayer()))
&& event.getClickedBlock().getType() == Material.CAULDRON && hasEnabled(event.getPlayer())
&& (event.getPlayer().getGameMode() == GameMode.CREATIVE)
&& (event.getPlayer().getInventory().getItemInMainHand().getType() == Material.AIR))
{
Block block = event.getClickedBlock();
block.setData((byte) ((block.getData() - 1) & 0x3));
@@ -38,7 +41,7 @@ public class ModToggledCauldron extends ModToggledAbstract
public void onBlockPlace(BlockPlaceEvent event)
{
if (event.getBlock().getType() == Material.CAULDRON && !event.getPlayer().isSneaking()
&& hasEnabled(event.getPlayer()))
&& hasEnabled(event.getPlayer()) && (event.getPlayer().getGameMode() == GameMode.CREATIVE))
{
event.getBlock().setData((byte) 3);
}

View File

@@ -3,6 +3,7 @@ package com.redstoner.modules.buildchat;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import java.util.regex.Pattern;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -13,8 +14,10 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
@@ -23,8 +26,9 @@ import com.redstoner.modules.Module;
/** BuildTeamChat module. Allows the build team to chat privately using /bc \<message\> as well as a one char prefix or a toggle.
*
* @author Pepich */
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class BuildChat implements Module, Listener
{
private static final char defaultKey = ';';
@@ -109,7 +113,7 @@ public class BuildChat implements Module, Listener
{
return recipient.hasPermission("utils.bc");
}
}, '&');
});
return true;
}
@@ -123,7 +127,7 @@ public class BuildChat implements Module, Listener
{
return recipient.hasPermission("utils.bc");
}
}, '&');
});
return true;
}
@@ -138,12 +142,12 @@ public class BuildChat implements Module, Listener
if (bctoggled.contains(((Player) sender).getUniqueId()))
{
bctoggled.remove(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "BCT now §cdisabled");
getLogger().message(sender, "BCT now §cdisabled");
}
else
{
bctoggled.add(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "BCT now §aenabled");
getLogger().message(sender, "BCT now §aenabled");
}
return true;
}
@@ -158,10 +162,10 @@ public class BuildChat implements Module, Listener
if (!bctoggled.contains(((Player) sender).getUniqueId()))
{
bctoggled.add(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "BCT now §aenabled");
getLogger().message(sender, "BCT now §aenabled");
}
else
Utils.sendMessage(sender, null, "BCT was already enabled");
getLogger().message(sender, "BCT was already enabled");
return true;
}
@@ -173,9 +177,9 @@ public class BuildChat implements Module, Listener
public boolean bcToggleOffCommand(CommandSender sender)
{
if (bctoggled.remove(((Player) sender).getUniqueId().toString()))
Utils.sendMessage(sender, null, "BCT now §cdisabled");
getLogger().message(sender, "BCT now §cdisabled");
else
Utils.sendMessage(sender, null, "BCT was already disabled");
getLogger().message(sender, "BCT was already disabled");
return true;
}
@@ -191,7 +195,7 @@ public class BuildChat implements Module, Listener
if (event.getMessage().startsWith(getKey(player)))
{
event.setCancelled(true);
bcSay(event.getPlayer(), event.getMessage().replaceFirst(getKey(player), ""));
bcSay(event.getPlayer(), event.getMessage().replaceFirst(Pattern.quote(getKey(player)), ""));
}
else if (bctoggled.contains(event.getPlayer().getUniqueId()))
{
@@ -211,7 +215,7 @@ public class BuildChat implements Module, Listener
{
if (key.length() > 1)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
@@ -220,7 +224,7 @@ public class BuildChat implements Module, Listener
getBcKey(sender);
return true;
}
Utils.sendMessage(sender, null, "Set your key to §6" + key);
getLogger().message(sender, "Set your key to §6" + key);
keys.put(((Player) sender).getUniqueId().toString(), key + "");
saveKeys();
return true;
@@ -241,7 +245,7 @@ public class BuildChat implements Module, Listener
* @param sender the issuer of the command. */
public void getBcKey(CommandSender sender)
{
Utils.sendMessage(sender, null, "Your current bckey is §6" + getKey((Player) sender));
getLogger().message(sender, "Your current bckey is §6" + getKey((Player) sender));
}
/** Saves the keys. */

View File

@@ -5,21 +5,15 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 0, compatible = 3)
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class BuildTeam implements Module
{
@Override
public void postEnable()
{
CommandManager.registerCommand(getClass().getResourceAsStream("BuildTeam.cmd"), this, Main.plugin);
}
@Command(hook = "teleport")
public boolean teleport(CommandSender sender, String target_name)
{
@@ -32,7 +26,7 @@ public class BuildTeam implements Module
return true;
}
player.teleport(target);
Utils.sendMessage(sender, null, "Teleported you to &e" + target.getDisplayName() + "&7!", '&');
getLogger().message(sender, "Teleported you to &e" + target.getDisplayName() + "&7!");
return true;
}
@@ -41,7 +35,7 @@ public class BuildTeam implements Module
{
if (!target_name.matches("^\\w{2,16}$"))
{
Utils.sendErrorMessage(sender, null, "This doesn't look like a valid playername!");
getLogger().message(sender, true, "This doesn't look like a valid playername!");
return true;
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target_name + " group add +buildteam");
@@ -53,7 +47,7 @@ public class BuildTeam implements Module
{
if (!target_name.matches("^\\w{2,16}$"))
{
Utils.sendErrorMessage(sender, null, "This doesn't look like a valid playername!");
getLogger().message(sender, true, "This doesn't look like a valid playername!");
return true;
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target_name + " group remove +buildteam");

View File

@@ -1,284 +0,0 @@
package com.redstoner.modules.challenge;
import java.io.File;
import java.util.Random;
import org.bukkit.command.CommandSender;
import org.json.simple.JSONArray;
import com.nemez.cmdmgr.Command;
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;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
public class Challenge implements Module
{
private File challengeLocation = new File(Main.plugin.getDataFolder(), "challenges.json");
private JSONArray challenges;
@Override
public boolean onEnable()
{
challenges = JsonManager.getArray(challengeLocation);
if (challenges == null)
challenges = new JSONArray();
return true;
}
@Override
public void onDisable()
{
saveChallenges();
}
@SuppressWarnings("unchecked")
@Command(hook = "addchallenge")
public boolean addChallenge(CommandSender sender, String text)
{
if (challenges.contains(text))
Utils.sendErrorMessage(sender, null, "That challenge already exists!");
else
{
Utils.sendMessage(sender, null, "Successfully added a new challenge!");
challenges.add(text);
saveChallenges();
}
return true;
}
@Command(hook = "delchallenge")
public boolean delChallenge(CommandSender sender, int id)
{
if (challenges.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no challenges yet!");
return true;
}
if (id < 0 || id >= challenges.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (challenges.size() - 1));
return true;
}
Utils.sendMessage(sender, null, "Successfully deleted the challenge: " + challenges.remove(id), '&');
saveChallenges();
return true;
}
@SuppressWarnings("unchecked")
@Command(hook = "setchallenge")
public boolean setChallenge(CommandSender sender, int id, String text)
{
if (challenges.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no challenges yet!");
return true;
}
if (id < 0 || id >= challenges.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (challenges.size() - 1));
return true;
}
Utils.sendMessage(sender, null,
"Successfully changed the challenge: &a" + challenges.get(id) + " &7to: &e" + text, '&');
challenges.set(id, text);
saveChallenges();
return true;
}
@Command(hook = "challengeid")
public boolean challengeId(CommandSender sender, int id)
{
if (challenges.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no challenges yet!");
return true;
}
if (id < 0 || id >= challenges.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (challenges.size() - 1));
return true;
}
Utils.sendMessage(sender, null, "&a" + challenges.get(id), '&');
return true;
}
@Command(hook = "challenge")
public boolean challenge(CommandSender sender)
{
if (challenges.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no challenges yet!");
return true;
}
int id = (new Random()).nextInt(challenges.size());
Utils.sendMessage(sender, null, "&a" + challenges.get(id), '&');
return true;
}
@Command(hook = "listchallenges")
public boolean listChallenges(CommandSender sender, int page)
{
if (challenges.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no challenges yet!");
return true;
}
page = page - 1;
int start = page * 10;
int end = start + 10;
int pages = (int) Math.ceil(challenges.size() / 10d);
if (start < 0)
{
Utils.sendErrorMessage(sender, null, "Page number too small, must be at least 0!");
return true;
}
if (start > challenges.size())
{
Utils.sendErrorMessage(sender, null, "Page number too big, must be at most " + pages + "!");
return true;
}
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", "&ePage " + (page + 1) + "/" + pages + ":", '&');
for (int i = start; i < end && i < challenges.size(); i++)
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + challenges.get(i), '&');
return true;
}
@Command(hook = "listchallengesdef")
public boolean listChallengesDefault(CommandSender sender)
{
return listChallenges(sender, 1);
}
@Command(hook = "searchchallenge")
public boolean search(CommandSender sender, boolean insensitive, String text)
{
Utils.sendModuleHeader(sender);
boolean found = false;
if (insensitive)
{
text = text.toLowerCase();
for (int i = 0; i < challenges.size(); i++)
{
if (((String) challenges.get(i)).toLowerCase().contains(text))
{
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + challenges.get(i), '&');
found = true;
}
}
}
else
{
for (int i = 0; i < challenges.size(); i++)
{
if (((String) challenges.get(i)).contains(text))
{
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + challenges.get(i), '&');
found = true;
}
}
}
if (!found)
{
Utils.sendMessage(sender, "", "&cCouldn't find any matching challenges.", '&');
}
return true;
}
@Command(hook = "matchchallenge")
public boolean match(CommandSender sender, boolean insensitive, String regex)
{
Utils.sendModuleHeader(sender);
boolean found = false;
if (insensitive)
{
regex = regex.toLowerCase();
for (int i = 0; i < challenges.size(); i++)
{
if (((String) challenges.get(i)).toLowerCase().matches(regex))
{
Utils.sendMessage(sender, "", "&a" + i + ": " + challenges.get(i), '&');
found = true;
}
}
}
else
{
for (int i = 0; i < challenges.size(); i++)
{
if (((String) challenges.get(i)).matches(regex))
{
Utils.sendMessage(sender, "", "&a" + i + ": " + challenges.get(i), '&');
found = true;
}
}
}
if (!found)
{
Utils.sendMessage(sender, "", "&cCouldn't find any matching challenges.", '&');
}
return true;
}
public void saveChallenges()
{
JsonManager.save(challenges, challengeLocation);
}
// @noformat
@Override
public String getCommandString()
{
return "command challenge {\n" +
" add [string:text...] {\n" +
" help Adds a challenge.;\n" +
" run addchallenge text;\n" +
" perm utils.challenge.add;\n" +
" }\n" +
" del [int:id] {\n" +
" help Removes a challenge.;\n" +
" run delchallenge id;\n" +
" perm utils.challenge.admin;\n" +
" }\n" +
" set [int:id] [string:text...] {\n" +
" help Sets a challenge.;\n" +
" run setchallenge id text;\n" +
" perm utils.challenge.admin;\n" +
" }\n" +
" id [int:id] {\n" +
" help Get a paticular challenge.;\n" +
" run challengeid id;\n" +
" perm utils.challenge.id;\n" +
" }\n" +
" list [int:page] {\n" +
" help Shows challenges.;\n" +
" run listchallenges page;\n" +
" perm utils.challenge.list;\n" +
" }\n" +
" list {\n" +
" help Shows challenges.;\n" +
" run listchallengesdef;\n" +
" perm utils.challenge.list;\n" +
" }\n" +
" search [flag:-i] [string:text...] {\n" +
" help Search challenges.;\n" +
" run searchchallenge -i text;\n" +
" perm utils.challenge.search;\n" +
" }\n" +
" match [flag:-i] [string:regex...] {\n" +
" help Search challenges. But better.;\n" +
" run matchchallenge -i regex;\n" +
" perm utils.challenge.match;\n" +
" }\n" +
" [empty] {\n" +
" help Gives a challenge.;\n" +
" run challenge;\n" +
" perm utils.challenge;\n" +
" }\n" +
"}";
}
// @format
}

View File

@@ -1,6 +1,7 @@
package com.redstoner.modules.chatalias;
import java.io.File;
import java.util.ArrayList;
import java.util.Set;
import java.util.UUID;
import java.util.regex.Pattern;
@@ -20,21 +21,22 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import net.nemez.chatapi.ChatAPI;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 6, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Chatalias implements Module, Listener
{
// to export chatalias data to json:
// pyeval [save_json_file("aliases/" + uuid, shared['modules']['chatalias'].data[uuid]) for uuid in shared['modules']['chatalias'].data]
// HANDLE WITH CARE! This will create an array of null entries the size of len(data)!
private final String[] commands = new String[] {"e?r", "e?m .+? ", "e?t", "e?w", "e?msg .+? ", "e?message .+? ",
"e?whisper .+? ", "e?me", "cg say", "ac"};
private final String[] commands = new String[] {"e?r", "e?m .+?", "e?t", "e?w", "e?msg .+?", "e?message .+?",
"e?whisper .+?", "e?me", "cgsay", "ac", "bc"};
private JSONObject aliases = new JSONObject();
@Override
@@ -114,12 +116,12 @@ public class Chatalias implements Module, Listener
}
if (event.getMessage().length() > maxLength)
{
Utils.sendErrorMessage(player, null, "The generated message is too long!");
getLogger().message(player, true, "The generated message is too long!");
event.setCancelled(true);
return;
}
}
event.setMessage(Utils.colorify(event.getMessage(), player));
event.setMessage(ChatAPI.colorify(null, event.getMessage()));
if (changed)
saveAliases(uuid);
}
@@ -130,11 +132,11 @@ public class Chatalias implements Module, Listener
if (event.isCancelled())
return;
boolean listening = false;
String regex = "";
String command = "";
for (String s : commands)
{
regex = "^\\/(.*:)?" + s + ".*";
if (event.getMessage().matches(regex))
command = "^\\/(.*:)?" + s + " ";
if (event.getMessage().matches(command + ".*"))
{
listening = true;
break;
@@ -145,9 +147,9 @@ public class Chatalias implements Module, Listener
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
JSONObject playerAliases = (JSONObject) aliases.get(uuid.toString());
String command = event.getMessage().replaceFirst(regex.replaceAll("\\.\\*$", ""), "");
command = event.getMessage().replace(command, "");
event.setMessage(event.getMessage().replaceFirst(Pattern.quote(command), "§§"));
String temp = event.getMessage().replaceAll(command, "");
command = event.getMessage().replaceAll(Pattern.quote(temp) + "$", "");
event.setMessage(event.getMessage().replaceFirst(Pattern.quote(command), ""));
for (Object key : playerAliases.keySet())
{
String keyword = (String) key;
@@ -174,12 +176,12 @@ public class Chatalias implements Module, Listener
}
if (event.getMessage().length() > maxLength)
{
Utils.sendErrorMessage(player, null, "The generated message is too long!");
getLogger().message(player, true, "The generated message is too long!");
event.setCancelled(true);
return;
}
}
event.setMessage(command + event.getMessage().substring(2));
event.setMessage(command + event.getMessage());
}
@SuppressWarnings("unchecked")
@@ -188,7 +190,7 @@ public class Chatalias implements Module, Listener
{
if (regex && keyword.equals(".*"))
{
Utils.sendErrorMessage(sender, null, "You may not define the wildcard regex as an alias.");
getLogger().message(sender, true, "You may not define the wildcard regex as an alias.");
return true;
}
Player player = (Player) sender;
@@ -208,16 +210,16 @@ public class Chatalias implements Module, Listener
}
if (data.size() == maxAmount)
{
Utils.sendErrorMessage(sender, null, "You already reached your maximum of aliases!");
getLogger().message(sender, true, "You already reached your maximum of aliases!");
return true;
}
}
data.put(keyword, replacement);
if (sender.hasPermission("essentials.chat.color"))
Utils.sendMessage(sender, null,
"Successfully created alias " + keyword.substring(3) + " §7-> " + replacement + " §7for you.", '&');
getLogger().message(sender,
"Successfully created alias " + keyword.substring(3) + " §7-> " + replacement + " §7for you.");
else
Utils.sendMessage(sender, null,
getLogger().message(sender,
"Successfully created alias " + keyword.substring(3) + " §7-> " + replacement + " §7for you.");
saveAliases(uuid);
return true;
@@ -232,14 +234,13 @@ public class Chatalias implements Module, Listener
keyword = (regex ? "R: " : "N: ") + keyword;
if (data.remove(keyword) != null)
{
Utils.sendMessage(sender, null, "Successfully removed the alias!");
getLogger().message(sender, "Successfully removed the alias!");
saveAliases(uuid);
return true;
}
else
{
Utils.sendErrorMessage(sender, null,
"That alias doesn't exist! Hint: regex/no regex does matter for this.");
getLogger().message(sender, true, "That alias doesn't exist! Hint: regex/no regex does matter for this.");
return true;
}
}
@@ -247,17 +248,13 @@ public class Chatalias implements Module, Listener
@Command(hook = "listaliases")
public boolean listAliases(CommandSender sender)
{
Utils.sendModuleHeader(sender);
ArrayList<String> message = new ArrayList<String>();
Player player = (Player) sender;
UUID uuid = player.getUniqueId();
JSONObject data = (JSONObject) aliases.get(uuid.toString());
for (Object key : data.keySet())
{
if (sender.hasPermission("essentials.chat.color"))
Utils.sendMessage(sender, "", (String) key + " §7-> " + data.get(key), '&');
else
Utils.sendMessage(sender, "", (String) key + " §7-> " + data.get(key));
}
message.add((String) key + " §7-> " + data.get(key));
getLogger().message(sender, message.toArray(new String[] {}));
return true;
}
@@ -303,7 +300,7 @@ public class Chatalias implements Module, Listener
aliases.put(uuid.toString(), playerAliases.get("data"));
else
{
Utils.error("Unknown data format for alias set of player " + uuid.toString());
getLogger().error("Unknown data format for alias set of player " + uuid.toString());
aliases.put(uuid.toString(), ((JSONObject) defaults.get("data")).clone());
saveAliases(uuid);
}

View File

@@ -16,9 +16,11 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
@@ -28,8 +30,9 @@ import com.redstoner.modules.socialspy.Socialspy;
/** The ChatGroups module. Allows people to have private sub-chats that can be accessed via a single char prefix or a toggle.
*
* @author Pepich */
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 1, revision = 2, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Chatgroups implements Module, Listener
{
private static final char defaultKey = ':';
@@ -116,11 +119,11 @@ public class Chatgroups implements Module, Listener
{
String group = getGroup(sender);
if (group == null)
Utils.sendErrorMessage(sender, null, "You are not in a chatgroup!");
getLogger().message(sender, true, "You are not in a chatgroup!");
else
{
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", "Your current chatgroup is: §6" + group);
ArrayList<String> message = new ArrayList<String>();
message.add("§7Your current chatgroup is: §6" + group);
ArrayList<String> players = new ArrayList<String>();
Iterator<String> iter = groups.keySet().iterator();
while (iter.hasNext())
@@ -148,7 +151,8 @@ public class Chatgroups implements Module, Listener
sb.append("&7, &9");
}
sb.delete(sb.length() - 2, sb.length());
Utils.sendMessage(sender, "", sb.toString(), '&');
message.add(sb.toString());
getLogger().message(sender, message.toArray(new String[] {}));
}
return true;
}
@@ -158,7 +162,7 @@ public class Chatgroups implements Module, Listener
* @param sender the issuer of the command. */
public void getCgKey(CommandSender sender)
{
Utils.sendMessage(sender, null, "Your current cgkey is §6" + getKey((Player) sender));
getLogger().message(sender, "Your current cgkey is §6" + getKey((Player) sender));
}
/** Sets the cgkey of a Player.
@@ -172,7 +176,7 @@ public class Chatgroups implements Module, Listener
{
if (key.length() > 1)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
@@ -181,7 +185,7 @@ public class Chatgroups implements Module, Listener
getCgKey(sender);
return true;
}
Utils.sendMessage(sender, null, "Set your key to §6" + key);
getLogger().message(sender, "Set your key to §6" + key);
keys.put(((Player) sender).getUniqueId().toString(), key + "");
saveKeys();
return true;
@@ -198,15 +202,15 @@ public class Chatgroups implements Module, Listener
if (cgtoggled.contains(((Player) sender).getUniqueId()))
{
cgtoggled.remove(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "CGT now §cdisabled");
getLogger().message(sender, "CGT now §cdisabled");
}
else
{
cgtoggled.add(((Player) sender).getUniqueId());
Utils.sendMessage(sender, null, "CGT now §aenabled");
getLogger().message(sender, "CGT now §aenabled");
}
else
Utils.sendErrorMessage(sender, null, "You are not in a chatgroup!");
getLogger().message(sender, true, "You are not in a chatgroup!");
return true;
}
@@ -220,12 +224,12 @@ public class Chatgroups implements Module, Listener
String group = removeGroup(sender);
if (group == null)
{
Utils.sendErrorMessage(sender, null, "You were not in a chatgroup!");
getLogger().message(sender, true, "You were not in a chatgroup!");
return true;
}
String name = Utils.getName(sender);
sendToGroup(group, "&9" + name + " &7left the group!");
Utils.sendMessage(sender, null, "Successfully removed you from your group!");
getLogger().message(sender, "Successfully removed you from your group!");
if (sender instanceof Player)
cgtoggled.remove(((Player) sender).getUniqueId());
return true;
@@ -242,7 +246,7 @@ public class Chatgroups implements Module, Listener
String pname = Utils.getName(sender);
String group = getGroup(sender);
if (group != null && group.equals(name))
Utils.sendErrorMessage(sender, null, "You were already in group §6" + name);
getLogger().message(sender, true, "You were already in group §6" + name);
else
{
setGroup(sender, null);
@@ -250,7 +254,7 @@ public class Chatgroups implements Module, Listener
sendToGroup(group, "&9" + pname + " &7left the group!");
sendToGroup(name, "&9" + pname + " &7joined the group!");
setGroup(sender, name);
Utils.sendMessage(sender, null, "Successfully joined group §6" + name);
getLogger().message(sender, "Successfully joined group §6" + name);
}
return true;
}
@@ -267,7 +271,7 @@ public class Chatgroups implements Module, Listener
if (group != null)
sendToGroup(sender, message);
else
Utils.sendErrorMessage(sender, null, "You are not in a chatgroup right now!");
getLogger().message(sender, true, "You are not in a chatgroup right now!");
return true;
}
@@ -350,7 +354,6 @@ public class Chatgroups implements Module, Listener
* @param message the message to be sent. */
private void sendToGroup(CommandSender sender, String message)
{
message = Utils.colorify(message, sender);
String name = Utils.getName(sender);
String group = getGroup(sender);
Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter()
@@ -364,7 +367,7 @@ public class Chatgroups implements Module, Listener
else
return false;
}
}, '&');
});
if (ModuleLoader.getModule("Socialspy") != null)
{
Socialspy.spyBroadcast(sender, "§e" + group + " §a(cg)", message, "/cg", new BroadcastFilter()
@@ -378,7 +381,7 @@ public class Chatgroups implements Module, Listener
}
if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group))
{
Utils.info(name + " in " + group + ": " + message + " §8(hidden)");
getLogger().info(name + " in " + group + ": " + message + " §8(hidden)");
}
}
@@ -415,7 +418,7 @@ public class Chatgroups implements Module, Listener
}
if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group))
{
Utils.info("In " + group + ": " + message + " §8(hidden)");
getLogger().info("In " + group + ": " + message + " §8(hidden)");
}
}

View File

@@ -1,8 +0,0 @@
package com.redstoner.modules.chatonly;
import com.redstoner.annotations.Version;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 0, compatible = 3)
public class ChatOnly implements Module
{}

View File

@@ -25,7 +25,6 @@ import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.misc.mysql.JSONManager;
import com.redstoner.misc.mysql.MysqlHandler;
import com.redstoner.misc.mysql.elements.ConstraintOperator;
@@ -34,7 +33,7 @@ import com.redstoner.misc.mysql.elements.MysqlDatabase;
import com.redstoner.misc.mysql.elements.MysqlTable;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 3, compatible = 3)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Check implements Module, Listener
{
MysqlTable table;
@@ -45,7 +44,7 @@ public class Check implements Module, Listener
Map<Serializable, Serializable> config = JSONManager.getConfiguration("check.json");
if (config == null || !config.containsKey("database") || !config.containsKey("table"))
{
Utils.error("Could not load the Check config file, disabling!");
getLogger().error("Could not load the Check config file, disabling!");
return false;
}
try
@@ -56,7 +55,7 @@ public class Check implements Module, Listener
}
catch (NullPointerException e)
{
Utils.error("Could not use the Check config, disabling!");
getLogger().error("Could not use the Check config, disabling!");
return false;
}
return true;
@@ -72,14 +71,13 @@ public class Check implements Module, Listener
@Command(hook = "checkCommand", async = AsyncType.ALWAYS)
public void checkCommand(final CommandSender sender, final String player)
{
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", "&7Please note that the data may not be fully accurate!", '&');
getLogger().message(sender, "&7Please note that the data may not be fully accurate!");
OfflinePlayer oPlayer;
oPlayer = Bukkit.getPlayer(player);
if (oPlayer == null)
oPlayer = Bukkit.getServer().getOfflinePlayer(player);
sendData(sender, oPlayer);
if (ModuleLoader.getModule("Tag") != null)
if (ModuleLoader.exists("Tag"))
Bukkit.dispatchCommand(sender, "tag check " + player);
}
@@ -215,7 +213,7 @@ public class Check implements Module, Listener
String firstJoin = getFirstJoin(player);
String lastSeen = getLastSeen(player);
firstJoin = (firstJoin.equals("1970-01-01 01:00")) ? "&eNever" : "&7(yyyy-MM-dd hh:mm:ss) &e" + firstJoin;
lastSeen = (lastSeen.equals("1970-1-1 1:0")) ? "&eNever" : "&7(yyyy-MM-dd hh:mm:ss) &e" + lastSeen;
lastSeen = (lastSeen.equals("1970-1-1 01:00")) ? "&eNever" : "&7(yyyy-MM-dd hh:mm:ss) &e" + lastSeen;
Object[] websiteData = getWebsiteData(player);
String websiteUrl = (websiteData[0] == null) ? "None" : (String) websiteData[0];
String email = (websiteData[0] == null) ? "Unknown" : (String) websiteData[1];
@@ -225,23 +223,26 @@ public class Check implements Module, Listener
if (namesUsed == null)
namesUsed = "None";
// messages
Utils.sendMessage(sender, "", "&7Data provided by Redstoner:", '&');
Utils.sendMessage(sender, "", "&6> UUID: &e" + player.getUniqueId(), '&');
Utils.sendMessage(sender, "", "&6> First joined: " + firstJoin, '&');
Utils.sendMessage(sender, "", "&6> Last seen: " + lastSeen, '&');
Utils.sendMessage(sender, "", "&6> Website account: &e" + websiteUrl, '&');
Utils.sendMessage(sender, "", "&6> email: &e" + email, '&');
if (emailNotConfirmed)
Utils.sendMessage(sender, "", "&6> &4Email NOT Confirmed!", '&');
Utils.sendMessage(sender, "", "&7Data provided by ipinfo:", '&');
Utils.sendMessage(sender, "", "&6> Country: &e" + country, '&');
Utils.sendMessage(sender, "", "&7Data provided by Mojang:", '&');
Utils.sendMessage(sender, "", "&6> All ingame names used so far: &e" + namesUsed, '&');
// @noformat
String[] message = new String[] {
"&7Data provided by Redstoner:",
"&6> UUID: &e" + player.getUniqueId(),
"&6> First joined: " + firstJoin,
"&6> Last seen: " + lastSeen,
"&6> Website account: &e" + websiteUrl,
"&6> email: &e" + (emailNotConfirmed ? "&6> &4Email NOT Confirmed!" : email),
"&7Data provided by ipinfo:",
"&6> Country: &e" + country,
"&7Data provided by Mojang:",
"&6> All ingame names used so far: &e" + namesUsed
};
//@format
getLogger().message(sender, message);
}
catch (Exception e)
{
e.printStackTrace();
Utils.sendErrorMessage(sender, null, "&cSorry, something went wrong while fetching data", '&');
getLogger().message(sender, true, "Sorry, something went wrong while fetching data");
}
}
@@ -250,7 +251,7 @@ public class Check implements Module, Listener
public String getCommandString()
{
return "command check {\n" +
" perm utils.check;\n" +
" perm getLogger().check;\n" +
" \n" +
" [string:player] {\n" +
" run checkCommand player;\n" +

View File

@@ -1,17 +1,20 @@
package com.redstoner.modules.clear;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Clear implements Module
{
{
@Command(hook = "clear")
public boolean clearInventory(CommandSender sender)
{
@@ -19,7 +22,23 @@ public class Clear implements Module
Inventory inv = player.getInventory();
for (int i = 0; i < 36; i++)
inv.clear(i);
Utils.sendMessage(sender, null, "Cleared your inventory!");
getLogger().message(sender, "Cleared your inventory!");
return true;
}
@Command(hook = "clearother")
public boolean clearOtherInventory(CommandSender sender, String name)
{
Player player = Bukkit.getPlayer(name);
if (player == null)
getLogger().message(sender, true, "That player couldn't be found!");
else
{
Inventory inv = player.getInventory();
for (int i = 0; i < 36; i++)
inv.clear(i);
getLogger().message(sender, "Cleared " + player.getDisplayName() + "&7's inventory!");
}
return true;
}
@@ -29,11 +48,16 @@ public class Clear implements Module
{
return "command clear{\n" +
" [empty] {\n" +
" help clears your inventory;\n" +
" help Clears your inventory;\n" +
" type player;\n" +
" perm utils.clear;\n" +
" run clear;\n" +
" }\n" +
" [string:player] {\n" +
" help Clears someone elses inventory;\n" +
" perm utils.admin.clear;\n" +
" run clearother player;\n" +
" }\n" +
"}";
}
// @format

View File

@@ -1,105 +0,0 @@
package com.redstoner.modules.clearonjoin;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
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.Version;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 1, revision = 0, compatible = 2)
public class ClearOnJoin implements Module, Listener
{
private File listLocation = new File(Main.plugin.getDataFolder(), "clearonjoins.json");
private JSONArray list;
@SuppressWarnings({ "unchecked", "deprecation" })
@Command(hook = "clearonjoin")
public void clearOnJoin(CommandSender sender, String player)
{
list.add("!" + Bukkit.getServer().getOfflinePlayer(player).getUniqueId().toString());
saveList();
Utils.sendMessage(sender, null, player + "'s inventory will be cleared next time they join.");
}
@SuppressWarnings("unchecked")
@Command(hook = "clearonjoinself")
public void clearOnJoinSelf(CommandSender sender)
{
String name = ((Player)sender).getUniqueId().toString();
if (list.contains(name))
{
list.remove(name);
Utils.sendMessage(sender, null, "Your inventory will no longer be cleared upon joining.");
saveList();
return;
}
list.add(name);
saveList();
Utils.sendMessage(sender, null, "Your inventory will now be cleared upon joining.");
}
@EventHandler
public void uponJoin(PlayerJoinEvent e)
{
Player player = e.getPlayer();
String playerUUID = player.getUniqueId().toString();
String playerName = player.getName();
if (list.contains(playerName) || list.contains(playerUUID))
{
e.getPlayer().getInventory().clear();
Utils.sendMessage(player, null, "Inventory cleared.");
}
else if (list.contains("!" + playerName))
{
player.getInventory().clear();
list.remove("!" + playerName);
saveList();
Utils.sendMessage(player, null, "Inventory cleared.");
}
}
public void saveList()
{
JsonManager.save(list, listLocation);
}
@Override
public boolean onEnable()
{
list = JsonManager.getArray(listLocation);
if (list == null)
list = new JSONArray();
Bukkit.getServer().getPluginManager().registerEvents(this, Main.plugin);
return true;
}
// @noformat
@Override
public String getCommandString()
{
return "command clearonjoin {\n" +
" [string:name] {\n" +
" help Clears that player's inventory the next time they join.;\n" +
" run clearonjoin name;\n" +
" perm utils.clearonjoin.other;\n" +
" }\n" +
" [empty] {\n" +
" help Clears your inventory every time you join.;\n" +
" run clearonjoinself;\n" +
" perm utils.clearonjoin.self;\n" +
" }\n" +
"}";
}
// @format
}

View File

@@ -15,14 +15,16 @@ import org.json.simple.JSONArray;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 0, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Cycle implements Module, Listener
{
private File cycleFile = new File(Main.plugin.getDataFolder(), "cycle.json");
@@ -54,11 +56,11 @@ public class Cycle implements Module, Listener
UUID uid = ((Player) sender).getUniqueId();
if (no_cyclers.remove(uid.toString()))
{
Utils.sendMessage(sender, null, "Cycle enabled!");
getLogger().message(sender, "Cycle enabled!");
saveCyclers();
}
else
Utils.sendMessage(sender, null, "Cycle was already enabled!");
getLogger().message(sender, "Cycle was already enabled!");
return true;
}
@@ -69,12 +71,12 @@ public class Cycle implements Module, Listener
UUID uid = ((Player) sender).getUniqueId();
if (!no_cyclers.contains(uid.toString()))
{
Utils.sendMessage(sender, null, "Cycle disabled!");
getLogger().message(sender, "Cycle disabled!");
no_cyclers.add(uid.toString());
saveCyclers();
}
else
Utils.sendMessage(sender, null, "Cycle was already disabled!");
getLogger().message(sender, "Cycle was already disabled!");
return true;
}
@@ -89,9 +91,9 @@ public class Cycle implements Module, Listener
int prev_slot = event.getPreviousSlot();
int new_slot = event.getNewSlot();
if (prev_slot == 0 && new_slot == 8)
shift(player, true);
else if (prev_slot == 8 && new_slot == 0)
shift(player, false);
else if (prev_slot == 8 && new_slot == 0)
shift(player, true);
}
private void shift(Player player, boolean down)

View File

@@ -31,13 +31,15 @@ import org.json.simple.parser.ParseException;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class DamnSpam implements Module, Listener
{
File configFile = new File(Main.plugin.getDataFolder(), "DamnSpam.json");
@@ -47,7 +49,7 @@ public class DamnSpam implements Module, Listener
HashMap<Material, int[][]> attachedBlocks;
HashMap<Player, SpamInput> players;
int maxTimeout = 240;
String timeoutErrorString = "&cThe timeout must be -1 or within 0 and " + maxTimeout;
String timeoutErrorString = "The timeout must be -1 or within 0 and " + maxTimeout;
@Override
public boolean onEnable()
@@ -141,10 +143,10 @@ public class DamnSpam implements Module, Listener
destroyingInput = true;
else if (!isAcceptableTimeout(seconds))
{
Utils.sendMessage(sender, null, "&cThe timeout must be -1 or within 0 and " + maxTimeout, '&');
getLogger().message(sender, true, "The timeout must be -1 or within 0 and " + maxTimeout);
return;
}
Utils.sendMessage(sender, null, "&aPlease click the input you would like to set.", '&');
getLogger().message(sender, "Please click the input you would like to set.");
setPlayer((Player) sender, destroyingInput, seconds, seconds);
}
@@ -160,10 +162,10 @@ public class DamnSpam implements Module, Listener
}
else if (!(isAcceptableTimeout(secondsOn) && isAcceptableTimeout(secondsOff)))
{
Utils.sendMessage(sender, null, "&cThe timeout must be -1 or within 0 and " + maxTimeout, '&');
getLogger().message(sender, true, "The timeout must be -1 or within 0 and " + maxTimeout);
return;
}
Utils.sendMessage(sender, null, "&aPlease click the input you would like to set.", '&');
getLogger().message(sender, "Please click the input you would like to set.");
setPlayer((Player) sender, destroyingInput, secondsOff, secondsOn);
}
@@ -183,7 +185,7 @@ public class DamnSpam implements Module, Listener
{
if (!acceptedInputs.contains(block.getType()))
{
Utils.sendMessage(player, null, "&cThat block is not an acceptable input!", '&');
getLogger().message(player, true, "That block is not an acceptable input!");
return true;
}
String typeStr = block.getType().toString().toLowerCase().replace("_", " ");
@@ -193,8 +195,9 @@ public class DamnSpam implements Module, Listener
changingInput = false;
if (!buildCheck)
{
Utils.sendMessage(player, null,
"&cThere is no timeout to remove on this " + typeStr + "(by setting the timeout to 0)", '&');
getLogger().message(player, true,
"Something went wrong trying to change the timeout on this " + typeStr + "!");
event.setCancelled(true);
return true;
}
SpamInput input = players.get(player);
@@ -202,18 +205,18 @@ public class DamnSpam implements Module, Listener
{
if (!inputs.containsKey(locationStr))
{
Utils.sendMessage(player, null,
"&cThere is no timeout to remove on this " + typeStr + "(by setting the timeout to 0)",
'&');
getLogger().message(player, true,
"Something went wrong trying to change the timeout on this " + typeStr + "!");
event.setCancelled(true);
return true;
}
inputs.remove(locationStr);
Utils.sendMessage(player, null, "&aSuccessfully removed the timeout for this " + typeStr, '&');
getLogger().message(player, "Successfully removed the timeout for this " + typeStr);
}
else
{
inputs.put(locationStr, players.get(player));
Utils.sendMessage(player, null, "&aSuccessfully set a timeout for this " + typeStr, '&');
getLogger().message(player, "Successfully set a timeout for this " + typeStr);
}
event.setCancelled(true);
players.remove(player);
@@ -237,9 +240,8 @@ public class DamnSpam implements Module, Listener
: "the " + typeStr + " attached to that block");
if (!sender.isSneaking())
{
Utils.sendMessage(sender, null, "&cYou cannot destroy " + inputStr, '&');
Utils.sendMessage(sender, "", "&c&nSneak&c and break or set the timeout to 0 if you want to remove it.",
'&');
getLogger().message(sender, true, "You cannot destroy " + inputStr);
getLogger().message(sender, true, "Sneak and break or set the timeout to 0 if you want to remove it.");
event.setCancelled(true);
return;
}
@@ -247,11 +249,11 @@ public class DamnSpam implements Module, Listener
{
inputs.remove(posStr);
saveInputs();
Utils.sendMessage(sender, null, "&aSuccesfully removed " + inputStr, '&');
getLogger().message(sender, "Succesfully removed " + inputStr);
}
else
{
Utils.sendMessage(sender, null, "&cYou are not allowed to remove " + inputStr, '&');
getLogger().message(sender, true, "You are not allowed to remove " + inputStr);
event.setCancelled(true);
}
}
@@ -305,6 +307,8 @@ public class DamnSpam implements Module, Listener
@EventHandler(priority = EventPriority.HIGHEST)
public void onInteract(PlayerInteractEvent event)
{
if (event.getClickedBlock() == null)
return;
boolean register = attemptInputRegister(event.getPlayer(), event.getClickedBlock(), event);
if (!register && event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && !event.isCancelled())
{
@@ -326,13 +330,13 @@ public class DamnSpam implements Module, Listener
if (checktime == -1)
{
event.setCancelled(true);
Utils.sendMessage(sender, null, "&cThis " + btype + " is locked permanently by /damnspam.", '&');
getLogger().message(sender, "This " + btype + " is locked permanently by /damnspam.");
}
else if (timeLeft > 0)
{
event.setCancelled(true);
Utils.sendMessage(sender, null, "&cThis " + btype + " has a damnspam timeout of " + checktime
+ ", with " + timeLeft + " left.", '&');
getLogger().message(sender, "This " + btype + " has a damnspam timeout of " + checktime + ", with "
+ timeLeft + " left.");
}
else
{

View File

@@ -4,6 +4,7 @@ import java.io.File;
import java.io.FilenameFilter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.UUID;
import org.bukkit.Bukkit;
@@ -18,20 +19,24 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.Stream)
@AutoRegisterListener
@Version(major = 3, minor = 2, revision = 2, compatible = 3)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public final class DataManager implements CoreModule, Listener
{
protected final File dataFolder = new File(Main.plugin.getDataFolder(), "data");
protected JSONObject data = new JSONObject();
protected HashMap<String, HashMap<String, Boolean>> states = new HashMap<String, HashMap<String, Boolean>>();
@Override
public void postEnable()
@@ -42,6 +47,7 @@ public final class DataManager implements CoreModule, Listener
{
loadData_(p.getUniqueId().toString());
}
states.put(getID(Bukkit.getConsoleSender()), new HashMap<String, Boolean>());
CommandManager.registerCommand(getClass().getResourceAsStream("DataManager.cmd"), this, Main.plugin);
}
@@ -64,7 +70,7 @@ public final class DataManager implements CoreModule, Listener
}
catch (Exception e)
{
Utils.sendErrorMessage(sender, null, "Could not import data!");
getLogger().error("Could not import data!");
}
return true;
}
@@ -107,6 +113,7 @@ public final class DataManager implements CoreModule, Listener
if (playerData == null)
playerData = new JSONObject();
data.put(id.toString(), playerData);
states.put(id.toString(), new HashMap<String, Boolean>());
}
public static Object getOrDefault(CommandSender sender, String key, Object fallback)
@@ -511,6 +518,7 @@ public final class DataManager implements CoreModule, Listener
protected void saveAndUnload(CommandSender sender)
{
saveAndUnload(getID(sender));
states.remove(getID(sender));
}
protected void saveAndUnload(String id)
@@ -528,4 +536,50 @@ public final class DataManager implements CoreModule, Listener
id = "CONSOLE";
return id;
}
public static void setState(CommandSender sender, String key, boolean value)
{
try
{
Module mod = ModuleLoader.getModule("DataManager");
Method m = mod.getClass().getDeclaredMethod("setState_", CommandSender.class, String.class, boolean.class);
m.setAccessible(true);
m.invoke(mod, sender, key);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
protected void setState_(CommandSender sender, String key, boolean value)
{
String id = getID(sender);
HashMap<String, Boolean> lstates = states.get(id);
lstates.put(key, value);
states.put(id, lstates);
}
public static boolean getState(CommandSender sender, String key)
{
try
{
Module mod = ModuleLoader.getModule("DataManager");
Method m = mod.getClass().getDeclaredMethod("getState_", CommandSender.class, String.class);
m.setAccessible(true);
return (boolean) m.invoke(mod, sender, key);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
return false;
}
protected boolean getState_(CommandSender sender, String key)
{
String id = getID(sender);
HashMap<String, Boolean> lstates = states.get(id);
if (lstates == null)
return false;
return lstates.containsKey(key) ? lstates.get(key) : false;
}
}

View File

@@ -0,0 +1,45 @@
command rekmedaddy {
[empty] {
run rekmedaddy;
help Rek me harder;
}
}
command shear {
[empty] {
run shear;
help Sets your shear item to the item in your hand.;
}
clear {
run shear_clear;
help Resets your shear item;
}
perm utils.eastereggs.shear;
type player;
}
command stick {
[empty] {
run stick;
help Does stuff.;
type player;
}
}
command hidden {
[empty] {
run hidden;
help Does stuff.;
}
}
command remindmedaddy {
[empty] {
run remind;
help Does stuff.;
}
}
command deadbush {
[empty] {
run bush;
help Does stuff.;
}
}

View File

@@ -0,0 +1,359 @@
package com.redstoner.modules.eastereggs;
import java.io.File;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.modules.Module;
import com.redstoner.modules.datamanager.DataManager;
import com.redstoner.utils.ItemProperties;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Eastereggs implements Module, Listener
{
final File prefixFile = new File(Main.plugin.getDataFolder(), "eastereggs/prefix.json"),
itemFile = new File(Main.plugin.getDataFolder(), "eastereggs/item.json"),
modifierFile = new File(Main.plugin.getDataFolder(), "eastereggs/modifier.json"),
suffixFile = new File(Main.plugin.getDataFolder(), "eastereggs/suffix.json");
JSONArray prefix, item, modifier, suffix;
@Override
public boolean onEnable()
{
prefix = JsonManager.getArray(prefixFile);
item = JsonManager.getArray(itemFile);
modifier = JsonManager.getArray(modifierFile);
suffix = JsonManager.getArray(suffixFile);
return true;
}
@Command(hook = "rekmedaddy")
public boolean rekmedaddy(CommandSender sender)
{
Message m = new Message(sender, null);
m.appendTextHover("§c#BlameNyx", "§5No really. Blame Nyx.");
m.send();
return true;
}
@Command(hook = "remind")
public boolean remindmedaddy(CommandSender sender)
{
Message m = new Message(sender, null);
m.appendText("§cls = list");
m.send();
return true;
}
@Command(hook = "hidden")
public boolean hidden(CommandSender sender)
{
Message m = new Message(sender, null);
m.appendText("§dI am going to put cute stickers on your rotting corpse. <3");
m.send();
return true;
}
@Command(hook = "shear")
public boolean shear(CommandSender sender)
{
Player p = (Player) sender;
ItemStack item = p.getInventory().getItemInMainHand();
if (item == null)
return shear_clear(sender);
ItemProperties itemProps = new ItemProperties(item);
DataManager.setData(sender, "item", itemProps.toJSONObject());
setPrefix("Shear");
getLogger().message(sender, "Set ya shear item to whatever you have in ya hand m8!");
return true;
}
@Command(hook = "shear_clear")
public boolean shear_clear(CommandSender sender)
{
DataManager.removeData(sender, "item");
getLogger().message(sender, "Cleared ya shear!");
return true;
}
@EventHandler
public void onPlayerShear(PlayerInteractAtEntityEvent event)
{
if (event.getHand() == EquipmentSlot.OFF_HAND)
return;
Entity e = event.getRightClicked();
if (!(e instanceof Player))
return;
if (event.getPlayer().getInventory().getItemInMainHand().getType() != Material.SHEARS)
return;
Player target = (Player) e;
if (!target.hasPermission("utils.eastereggs.shear"))
return;
Player player = event.getPlayer();
if (!(player.getGameMode() == GameMode.CREATIVE))
return;
ItemProperties itemProps = new ItemProperties();
Object o = DataManager.getData(target, "item");
ItemStack item;
if (o == null)
item = new ItemStack(Material.REDSTONE);
else
item = itemProps.loadFrom((JSONObject) o).toItemStack();
player.playSound(player.getLocation(), Sound.ENTITY_SHEEP_SHEAR, 1f, 1f);
player.getInventory().addItem(item);
}
@Command(hook = "stick")
public boolean stick(CommandSender sender)
{
setPrefix("Stick");
Player player = (Player) sender;
if (player.getGameMode() != GameMode.CREATIVE)
{
getLogger().message(sender, true, "§4The gods are angry with you, as you tried to cheat the system...");
return true;
}
Random random = new Random();
JSONObject prefx = (JSONObject) prefix.get(random.nextInt(prefix.size()));
JSONObject itm = (JSONObject) item.get(random.nextInt(item.size()));
JSONObject mod = (JSONObject) modifier.get(random.nextInt(modifier.size()));
JSONObject sufx = (JSONObject) suffix.get(random.nextInt(suffix.size()));
StringBuilder sb = new StringBuilder("§r");
sb.append(prefx.get("name"));
sb.append(" ");
sb.append(itm.get("name"));
sb.append(" of ");
sb.append(mod.get("name"));
sb.append(" ");
sb.append(sufx.get("name"));
String itemName = sb.toString().replace(" ", " ");
Object rawMaterialName;
if ((rawMaterialName = sufx.get("item")) == null)
if ((rawMaterialName = mod.get("item")) == null)
if ((rawMaterialName = itm.get("item")) == null)
if ((rawMaterialName = prefx.get("item")) == null)
rawMaterialName = "minecraft:stick";
Material material = Material.valueOf(((String) rawMaterialName).toUpperCase().replaceFirst(".+?:", ""));
if (material == null)
material = Material.STICK;
ItemStack resultingItem = new ItemStack(material);
ItemMeta meta = resultingItem.getItemMeta();
if (meta == null)
meta = Bukkit.getServer().getItemFactory().getItemMeta(material);
if (meta != null)
{
meta.setDisplayName(itemName);
// Enchantments
boolean override = false;
int overrideLvl = 0;
int totalMod = 0;
Object rawMod;
if ((rawMod = sufx.get("mod")) != null)
{
String stringMod = (String) rawMod;
if (stringMod.startsWith("="))
{
overrideLvl = Integer.parseInt(stringMod.replaceFirst("=", ""));
override = true;
}
else
{
totalMod += parseInt(stringMod);
}
}
if ((rawMod = mod.get("mod")) != null)
{
String stringMod = (String) rawMod;
if (stringMod.startsWith("="))
{
overrideLvl = Integer.parseInt(stringMod.replaceFirst("=", ""));
override = true;
}
else
{
totalMod += parseInt(stringMod);
}
}
if ((rawMod = itm.get("mod")) != null)
{
String stringMod = (String) rawMod;
if (stringMod.startsWith("="))
{
overrideLvl = Integer.parseInt(stringMod.replaceFirst("=", ""));
override = true;
}
else
{
totalMod += parseInt(stringMod);
}
}
if ((rawMod = prefx.get("mod")) != null)
{
String stringMod = (String) rawMod;
if (stringMod.startsWith("="))
{
overrideLvl = Integer.parseInt(stringMod.replaceFirst("=", ""));
override = true;
}
else
{
totalMod += parseInt(stringMod);
}
}
HashMap<Enchantment, Integer> enchants = parseEnchants(prefx, itm, mod, sufx);
if (enchants != null)
for (Entry<Enchantment, Integer> entry : enchants.entrySet())
{
Integer lvl = entry.getValue();
if (lvl == null)
lvl = 1;
meta.addEnchant(entry.getKey() == null ? getRandomValue(Enchantment.values()) : entry.getKey(),
override ? overrideLvl : (lvl + totalMod), true);
}
resultingItem.setItemMeta(meta);
}
getLogger().message(player, "§8You have received a gift from the gods!");
try
{
player.getInventory().addItem(resultingItem);
}
catch (Exception e)
{
e.printStackTrace();
}
return true;
}
public HashMap<Enchantment, Integer> parseEnchants(JSONObject prefx, JSONObject itm, JSONObject mod,
JSONObject sufx)
{
HashMap<Enchantment, Integer> result = new HashMap<Enchantment, Integer>();
Object raw;
if ((raw = sufx.get("ench")) != null)
{
if (raw instanceof String)
return null;
JSONArray rawArray = (JSONArray) raw;
for (Object o : rawArray)
{
JSONObject rawEnchant = (JSONObject) o;
result.put(Enchantment.getByName((String) rawEnchant.get("id")),
parseInt((String) rawEnchant.get("lvl")));
}
}
if ((raw = mod.get("ench")) != null)
{
if (raw instanceof String)
return null;
JSONArray rawArray = (JSONArray) raw;
for (Object o : rawArray)
{
JSONObject rawEnchant = (JSONObject) o;
result.put(Enchantment.getByName((String) rawEnchant.get("id")),
parseInt((String) rawEnchant.get("lvl")));
}
}
if ((raw = itm.get("ench")) != null)
{
if (raw instanceof String)
return null;
JSONArray rawArray = (JSONArray) raw;
for (Object o : rawArray)
{
JSONObject rawEnchant = (JSONObject) o;
result.put(Enchantment.getByName((String) rawEnchant.get("id")),
parseInt((String) rawEnchant.get("lvl")));
}
}
if ((raw = prefx.get("ench")) != null)
{
if (raw instanceof String)
return null;
JSONArray rawArray = (JSONArray) raw;
for (Object o : rawArray)
{
JSONObject rawEnchant = (JSONObject) o;
result.put(Enchantment.getByName((String) rawEnchant.get("id")),
parseInt((String) rawEnchant.get("lvl")));
}
}
return result;
}
@Command(hook = "bush")
public boolean bush(CommandSender sender)
{
Message m = new Message(sender, null);
m.appendText("§8There is no /deadbush");
m.send();
return true;
}
private static Integer parseInt(String raw)
{
if (raw == null)
return null;
else if (raw.startsWith("["))
{
String[] rawArray = raw.replace("[", "").replace("]", "").split(";");
if (rawArray.length != 2)
return null;
int lower = Integer.parseInt(rawArray[0]);
int upper = Integer.parseInt(rawArray[1]);
Random random = new Random();
return random.nextInt(upper - lower) + lower;
}
else
return Integer.valueOf(raw);
}
private static <T> T getRandomValue(T[] array)
{
Random random = new Random();
return array[random.nextInt(array.length)];
}
}

View File

@@ -10,18 +10,19 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 7, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class FirstSeen implements Module
{
@SuppressWarnings("deprecation")
@Command(hook = "firstseenP")
public void firstseen(CommandSender sender, String person)
{
Utils.sendMessage(sender, "", "&7Please note that the data may not be fully accurate!", '&');
OfflinePlayer oPlayer = Bukkit.getPlayer(person);
if (oPlayer == null)
oPlayer = Bukkit.getServer().getOfflinePlayer(person);
@@ -30,11 +31,11 @@ public class FirstSeen implements Module
String disDate = format.format(new Date(firstJoin));
if (disDate.equals("1969-12-31 19:00"))
{
Utils.sendMessage(sender, null, "&3" + oPlayer.getName() + "&c has never joined.", '&');
getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined.");
}
else
{
Utils.sendMessage(sender, null, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e.", '&');
getLogger().message(sender, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e.");
}
}
@@ -58,7 +59,7 @@ public class FirstSeen implements Module
Player player = Bukkit.getPlayer(name);
if (player == null)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!");
return true;
}
@@ -66,13 +67,12 @@ public class FirstSeen implements Module
int days = ticks_lived / 1728000;
int hours = (ticks_lived % 1728000) / 72000;
int minutes = (ticks_lived % 72000) / 1200;
Utils.sendMessage(sender, null,
"The player &e" + name + " &7has been on for "
getLogger().message(sender,
"The player &e" + name + " &7has been online for "
+ (days == 0 && hours == 0 && minutes == 0 ? "less than a minute."
: ("a total of: &e" + (days != 0 ? (days + "d ") : "")
+ ((hours != 0 || days != 0) ? (hours + "h ") : "")
+ ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : ""))),
'&');
+ ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : ""))));
return true;
}

View File

@@ -6,11 +6,13 @@ import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Illumination implements Module
{
PotionEffect effect = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false);
@@ -22,12 +24,12 @@ public class Illumination implements Module
if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION))
{
player.removePotionEffect(PotionEffectType.NIGHT_VISION);
Utils.sendMessage(sender, null, "Night Vision Disabled.");
getLogger().message(sender, "Night Vision Disabled.");
}
else
{
player.addPotionEffect(effect, true);
Utils.sendMessage(sender, null, "Night Vision Enabled.");
getLogger().message(sender, "Night Vision Enabled.");
}
}

View File

@@ -7,11 +7,14 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Imout implements Module
{
List<String> imout_toggle_list = new ArrayList<String>();
@@ -25,8 +28,7 @@ public class Imout implements Module
if (imout_toggle_list.contains(name))
{
symbol = "§a§l+";
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", "§eWelcome back! You are no longer hidden");
getLogger().message(sender, "§eWelcome back! You are no longer hidden", "");
s.performCommand("vanish off");
s.performCommand("act off");
imout_toggle_list.remove(name);
@@ -34,7 +36,7 @@ public class Imout implements Module
else
{
symbol = "§c§l-";
sender.sendMessage("§eYou just left... Or didn't you?");
getLogger().message(sender, "§e§oPoof!§e You are now gone!", "");
s.performCommand("vanish on");
s.performCommand("act on");
imout_toggle_list.add(name);

View File

@@ -1,26 +0,0 @@
package com.redstoner.modules.iplock;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
import org.json.simple.JSONObject;
import com.redstoner.annotations.Version;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 0, compatible = 3)
public class IPLock implements Module, Listener
{
JSONObject iplocks;
@Override
public void postEnable()
{}
public void onPlayerJoin(AsyncPlayerPreLoginEvent event)
{
event.getAddress().getHostAddress().toString();
event.setKickMessage("");
event.setLoginResult(Result.KICK_OTHER);
}
}

View File

@@ -12,11 +12,13 @@ import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class LagChunks implements Module
{
private List<LaggyChunk> laggyChunks = new ArrayList<LaggyChunk>();
@@ -43,16 +45,17 @@ public class LagChunks implements Module
{
if (laggyChunks.size() > 0)
{
Utils.sendModuleHeader(sender);
ArrayList<String> message = new ArrayList<String>();
for (LaggyChunk lc : laggyChunks)
{
Utils.sendMessage(sender, "", "§b[§a" + laggyChunks.indexOf(lc) + "§b]: §a" + lc.x + "§7, §a" + lc.y
+ "§7, §a" + lc.z + " §7(" + lc.world.getName() + ") §a- §b" + lc.amount + " entities");
message.add("§b[§a" + laggyChunks.indexOf(lc) + "§b]: §a" + lc.x + "§7, §a" + lc.y + "§7, §a" + lc.z
+ " §7(" + lc.world.getName() + ") §a- §b" + lc.amount + " entities");
}
Utils.sendMessage(sender, "", "§2-------------------");
message.add("§2-------------------");
getLogger().message(sender, message.toArray(new String[] {}));
}
else
Utils.sendMessage(sender, null, "Couldn't find any chunks with that many entities.");
getLogger().message(sender, true, "Couldn't find any chunks with that many entities.");
}
@Command(hook = "scan_cmd", async = AsyncType.ALWAYS)
@@ -69,11 +72,11 @@ public class LagChunks implements Module
if (number < laggyChunks.size())
{
player.teleport(laggyChunks.get(number).getLocation());
Utils.sendMessage(player, null, "§aTeleported to chunk " + number + "!");
getLogger().message(player, "§aTeleported to chunk " + number + "!");
}
else
{
Utils.sendErrorMessage(sender, null, "§4Invalid chunk number! Use §e/lc list §4to show laggy chunks!");
getLogger().message(sender, true, "§4Invalid chunk number! Use §e/lc list §4to show laggy chunks!");
}
}

View File

@@ -8,13 +8,16 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Main;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 2, compatible = 3)
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class List implements Module
{
private HashMap<String, Integer> onConsole;
@@ -23,7 +26,6 @@ public class List implements Module
public void postEnable()
{
onConsole = new HashMap<String, Integer>();
CommandManager.registerCommand(getClass().getResourceAsStream("List.cmd"), this, Main.plugin);
}
@Command(hook = "console_join")
@@ -40,7 +42,10 @@ public class List implements Module
public boolean console_leave(CommandSender sender, String name)
{
if (onConsole.containsKey(name))
onConsole.put(name, onConsole.get(name) - 1);
if (onConsole.get(name) == 1)
onConsole.remove(name);
else
onConsole.put(name, onConsole.get(name) - 1);
return true;
}
@@ -59,11 +64,9 @@ public class List implements Module
@Command(hook = "list_rank")
public boolean listRank(CommandSender sender, String rank)
{
Utils.sendModuleHeader(sender);
int onlinePlayers = Bukkit.getOnlinePlayers().size();
Utils.sendMessage(sender, "", "&7There are &e" + onlinePlayers + "&7 out of maximum &e" + Bukkit.getMaxPlayers()
+ "&7 players online.", '&');
getLogger().message(sender, "", "&7There are &e" + onlinePlayers + "&7 out of maximum &e"
+ Bukkit.getMaxPlayers() + "&7 players online.");
rank = rank.toLowerCase();
boolean all = rank.equals("all");
@@ -112,20 +115,18 @@ public class List implements Module
{
if (!all)
{
Utils.sendErrorMessage(sender, null, "You do not have permissions to see who's on console!");
getLogger().message(sender, true, "You do not have permissions to see who's on console!");
shownAnything = true;
}
}
}
if (!shownAnything)
{
Utils.sendErrorMessage(sender, "",
"Looks like I couldn't figure out what you meant. Try again with different parameters maybe?", '&');
Utils.sendMessage(sender, "",
"Possible parameters are: &eAll&7, &eStaff&7, &eVisitor&7, &eMember&7, &eBuilder&7, &eTrusted&7, &eMit&7, &eMod&7, &eAdmin&7 and &eLead",
'&');
Utils.sendMessage(sender, "", "You can also combine any of the parameters, like this: &eMember, Staff",
'&');
getLogger().message(sender,
new String[] {
"Looks like I couldn't figure out what you meant. Try again with different parameters maybe?",
"Possible parameters are: &eAll&7, &eStaff&7, &eVisitor&7, &eMember&7, &eBuilder&7, &eTrusted&7, &eMit&7, &eMod&7, &eAdmin&7 and &eLead",
"You can also combine any of the parameters, like this: &eMember, Staff"});
}
return true;
}
@@ -148,7 +149,9 @@ public class List implements Module
}
if (players != null)
{
Utils.sendMessage(sender, "", "&8[" + rank + "&8]&7: " + players, '&');
Message m = new Message(sender, null);
m.appendText("&8[" + rank + "&8]&7: " + players);
m.send();
return true;
}
return false;

View File

@@ -20,9 +20,10 @@ import org.bukkit.scheduler.BukkitScheduler;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.misc.mysql.JSONManager;
import com.redstoner.misc.mysql.MysqlHandler;
import com.redstoner.misc.mysql.elements.ConstraintOperator;
@@ -33,8 +34,9 @@ import com.redstoner.misc.mysql.elements.MysqlTable;
import com.redstoner.misc.mysql.types.text.VarChar;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class LoginSecurity implements Module, Listener
{
protected static Map<UUID, Location> loggingIn;
@@ -46,7 +48,7 @@ public class LoginSecurity implements Module, Listener
Map<Serializable, Serializable> config = JSONManager.getConfiguration("loginsecurity.json");
if (config == null || !config.containsKey("database") || !config.containsKey("table"))
{
Utils.sendErrorMessage(Bukkit.getConsoleSender(), null,
getLogger().message(Bukkit.getConsoleSender(), true,
"Could not load the LoginSecurity config file, disabling!");
return false;
}
@@ -60,8 +62,7 @@ public class LoginSecurity implements Module, Listener
}
catch (NullPointerException e)
{
Utils.sendErrorMessage(Bukkit.getConsoleSender(), null,
"Could not use the LoginSecurity config, disabling!");
getLogger().message(Bukkit.getConsoleSender(), true, "Could not use the LoginSecurity config, disabling!");
return false;
}
loggingIn = new HashMap<>();
@@ -212,7 +213,7 @@ public class LoginSecurity implements Module, Listener
{
return;
}
Utils.sendMessage(player, null, "You'll have to log in within 60s or you'll be kicked!");
getLogger().message(player, "You'll have to log in within 60s or you'll be kicked!");
loggingIn.put(player.getUniqueId(), player.getLocation());
BukkitScheduler scheduler = Bukkit.getScheduler();
RepeatingLoginRunnable repeatingRunnable = new RepeatingLoginRunnable(this, player);

View File

@@ -1,6 +1,7 @@
package com.redstoner.modules.mentio;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import java.util.regex.Pattern;
@@ -16,14 +17,18 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 2, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Mentio implements Module, Listener
{
private File mentioLocation = new File(Main.plugin.getDataFolder(), "mentio.json");
@@ -56,11 +61,11 @@ public class Mentio implements Module, Listener
playerMentios.add(player.getDisplayName().split(" ")[0].replaceAll("§[0-9a-fk-o]", ""));
}
if (playerMentios.contains(trigger))
Utils.sendErrorMessage(sender, null, "You already had that as a mentio!");
getLogger().message(sender, true, "You already had that as a mentio!");
else
{
playerMentios.add(trigger);
Utils.sendMessage(sender, null, "Successfully added the trigger §e" + trigger + " §7for you!");
getLogger().message(sender, "Successfully added the trigger §e" + trigger + " §7for you!");
mentios.put(uuid.toString(), playerMentios);
saveMentios();
}
@@ -81,10 +86,10 @@ public class Mentio implements Module, Listener
playerMentios.add(player.getDisplayName().split(" ")[0].replaceAll("§[0-9a-fk-o]", ""));
}
if (!playerMentios.remove(trigger))
Utils.sendErrorMessage(sender, null, "You didn't have that as a mentio!");
getLogger().message(sender, true, "You didn't have that as a mentio!");
else
{
Utils.sendMessage(sender, null, "Successfully removed the trigger §e" + trigger + " §7for you!");
getLogger().message(sender, "Successfully removed the trigger §e" + trigger + " §7for you!");
mentios.put(uuid.toString(), playerMentios);
saveMentios();
}
@@ -95,7 +100,7 @@ public class Mentio implements Module, Listener
@Command(hook = "listmentios")
public boolean listMentios(CommandSender sender)
{
Utils.sendModuleHeader(sender);
ArrayList<String> message = new ArrayList<String>();
Player player = (Player) sender;
UUID uuid = player.getUniqueId();
JSONArray playerMentios = (JSONArray) mentios.get(uuid.toString());
@@ -108,8 +113,9 @@ public class Mentio implements Module, Listener
for (Object raw : playerMentios)
{
String mentio = (String) raw;
Utils.sendMessage(sender, "&2 -> &e", mentio, '&');
message.add("&2 -> &e" + mentio);
}
getLogger().message(sender, message.toArray(new String[] {}));
return true;
}
@@ -144,10 +150,11 @@ public class Mentio implements Module, Listener
lastColorCodes += "§" + c;
lastChar = c;
}
Utils.sendMessage(player, "",
event.getFormat().replace("%1$s", event.getPlayer().getDisplayName()).replace("%2$s",
event.getMessage().replaceFirst("(?i)(" + Pattern.quote(mentio) + ")([^ ]*)",
"§a§o$1$2" + lastColorCodes)));
Message m = new Message(player, null);
m.appendText(event.getFormat().replace("%1$s", event.getPlayer().getDisplayName()).replace("%2$s",
event.getMessage().replaceFirst("(?i)(" + Pattern.quote(mentio) + ")([^ ]*)",
"§a§o$1$2" + lastColorCodes)));
m.send();
player.playSound(player.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1);
return;
}

View File

@@ -8,26 +8,23 @@ import org.bukkit.command.CommandSender;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.Main;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import com.redstoner.modules.socialspy.Socialspy;
@Version(major = 3, minor = 3, revision = 4, compatible = 3)
import net.nemez.chatapi.ChatAPI;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Message implements Module
{
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<CommandSender, CommandSender>();
@Override
public void postEnable()
{
CommandManager.registerCommand(getClass().getResourceAsStream("Message.cmd"), this, Main.plugin);
}
@Command(hook = "message", async = AsyncType.ALWAYS)
public boolean message(CommandSender sender, String target, String message)
{
@@ -38,12 +35,12 @@ public class Message implements Module
p = Bukkit.getPlayer(target);
if (p == null)
{
Utils.sendErrorMessage(sender, null, "That player couldn't be found!");
getLogger().message(sender, true, "That player couldn't be found!");
return true;
}
else
{
message = Utils.colorify(message, sender);
message = ChatAPI.colorify(sender, message);
if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.spyBroadcast(sender, p, message, "/m", new BroadcastFilter()
{
@@ -53,8 +50,15 @@ public class Message implements Module
return !(recipient.equals(sender) || recipient.equals(p));
}
});
Utils.sendMessage(sender, "&6[&cme &6-> " + Utils.getName(p) + "&6] ", "§f" + message, '&');
Utils.sendMessage(p, "&6[" + Utils.getName(sender) + " &6-> &cme&6] ", "§f" + message, '&');
net.nemez.chatapi.click.Message m = new net.nemez.chatapi.click.Message(sender, null);
m.appendText("&6[&cme &6-> " + Utils.getName(p) + "&6] " + "§f" + message);
m.send();
net.nemez.chatapi.click.Message m2 = new net.nemez.chatapi.click.Message(p, null);
m2.appendText("&6[" + Utils.getName(sender) + " &6-> &cme&6] " + "§f" + message);
m2.send();
replyTargets.put(sender, p);
replyTargets.put(p, sender);
}
@@ -67,12 +71,12 @@ public class Message implements Module
CommandSender target = replyTargets.get(sender);
if (target == null || ((target instanceof OfflinePlayer) && !((OfflinePlayer) target).isOnline()))
{
Utils.sendErrorMessage(sender, null, "You don't have anyone to reply to!");
getLogger().message(sender, true, "You don't have anyone to reply to!");
return true;
}
else
{
message = Utils.colorify(message, sender);
message = ChatAPI.colorify(sender, message);
if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.spyBroadcast(sender, target, message, "/r", new BroadcastFilter()
{
@@ -82,8 +86,14 @@ public class Message implements Module
return !(recipient.equals(sender) || recipient.equals(target));
}
});
Utils.sendMessage(sender, "&6[&cme &6-> " + Utils.getName(target) + "&6] ", "§f" + message, '&');
Utils.sendMessage(target, "&6[" + Utils.getName(sender) + " &6-> &cme&6] ", "§f" + message, '&');
net.nemez.chatapi.click.Message m = new net.nemez.chatapi.click.Message(sender, null);
m.appendText("&6[&cme &6-> " + Utils.getName(target) + "&6] " + "§f" + message);
m.send();
net.nemez.chatapi.click.Message m2 = new net.nemez.chatapi.click.Message(target, null);
m2.appendText("&6[" + Utils.getName(sender) + " &6-> &cme&6] " + "§f" + message);
m2.send();
}
replyTargets.put(sender, target);
replyTargets.put(target, sender);

View File

@@ -8,6 +8,7 @@ import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockFromToEvent;
@@ -19,16 +20,23 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import net.nemez.chatapi.ChatAPI;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 22, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Misc implements Module, Listener
{
private final String[] sudoBlacklist = new String[] {".?+:?esudo", ".?+:?sudo", ".?+:?script.*", ".?+:?stop",
".?+:?modules"};
private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop",
"(.*:)?modules", "(.*:)?sayn", "(.*:)?pex", "(.*:)?console_.*", "(.*:)?op", "(.*:)?login", "(.*:)?register",
"(.*:)?.*pass"};
JSONObject config;
JSONArray unprotectedRegions;
@@ -38,34 +46,31 @@ public class Misc implements Module, Listener
Player player = event.getPlayer();
if (!player.hasPlayedBefore())
{
Utils.broadcast("", "\n&a&lPlease welcome &f" + player.getDisplayName() + " &a&lto Redstoner!\n", null,
'&');
Utils.sendMessage(player, "", " \n \n \n \n \n \n \n \n \n \n \n \n ", '&');
Utils.sendMessage(player, "", " &4Welcome to the Redstoner Server!", '&');
Utils.sendMessage(player, "", " &6Before you ask us things, take a quick", '&');
Utils.sendMessage(player, "", " &6look at &a&nredstoner.com/info", '&');
Utils.sendMessage(player, "", " \n&6thank you and happy playing ;)", '&');
Utils.sendMessage(player, "", " \n \n", '&');
Utils.broadcast("", "\n§a§lPlease welcome §f" + player.getDisplayName() + " §a§lto Redstoner!\n", null);
String[] message = new String[] {" \n \n \n \n \n \n \n \n \n \n \n \n ",
" &4Welcome to the Redstoner Server!", " &6Before you ask us things, take a quick",
" &6look at &a&nredstoner.com/info", " \n&6thank you and happy playing ;)", " \n \n"};
getLogger().message(player, message);
}
Material spawnBlock = player.getLocation().getBlock().getType();
if (spawnBlock == Material.PORTAL || spawnBlock == Material.ENDER_PORTAL)
{
Utils.sendMessage(player, "", "&4Looks like you spawned in a portal... Let me help you out", '&');
Utils.sendMessage(player, "", "&6You can use /back if you &nreally&6 want to go back", '&');
getLogger().message(player, "&4Looks like you spawned in a portal... Let me help you out");
getLogger().message(player, "&6You can use /back if you &nreally&6 want to go back");
player.teleport(player.getWorld().getSpawnLocation());
}
}
// Disables spectator teleportation
@EventHandler
public void onSpectatorTeleort(PlayerTeleportEvent event)
// Fixes MV end portal crashing
@EventHandler(priority = EventPriority.LOWEST)
public void onTeleport(PlayerTeleportEvent event)
{
Player player = event.getPlayer();
if (!event.isCancelled() && event.getCause() == TeleportCause.SPECTATE
&& !player.hasPermission("utils.tp.spectate"))
if (!event.isCancelled() && event.getCause() == TeleportCause.SPECTATE && !player.hasPermission("utils.tp"))
{
event.setCancelled(true);
Utils.sendErrorMessage(event.getPlayer(), null, "Spectator teleportation is disabled!");
getLogger().message(event.getPlayer(), true, "Spectator teleportation is disabled!");
}
}
@@ -107,18 +112,18 @@ public class Misc implements Module, Listener
}
catch (NumberFormatException e)
{
Utils.sendErrorMessage(sender, null, "That is not a valid number!");
getLogger().message(sender, true, "That is not a valid number!");
return true;
}
Bukkit.dispatchCommand(sender, "pex user " + user + " group add " + group + " * " + duration);
Utils.sendMessage(sender, null, "Added to group " + group + "for " + duration + " seconds.");
getLogger().message(sender, "Added to group " + group + "for " + duration + " seconds.");
return true;
}
@Command(hook = "echo")
public boolean echo(CommandSender sender, String text)
{
Utils.sendMessage(sender, "", "&f" + text, '&');
sender.sendMessage(text);
return true;
}
@@ -130,29 +135,24 @@ public class Misc implements Module, Listener
name = ((Player) sender).getDisplayName();
else
name = "§9" + sender.getName();
if (sender.hasPermission("essentials.chat.color"))
Utils.broadcast(" §7- " + name + " §7⇦ ", text, null, '&');
else
Utils.broadcast(" §7- " + name + " §7⇦ ", text, null);
text = ChatAPI.colorify(sender, text);
Utils.broadcast(" §7- " + name + " §7⇦ ", text, null);
return true;
}
@Command(hook = "say")
public boolean say(CommandSender sender, String message)
{
String name;
if (sender instanceof Player)
name = ((Player) sender).getDisplayName();
else
name = sender.getName();
Utils.broadcast(" &7[&9" + name.replaceAll("[^0-9a-zA-Z§&\\[\\]]", "") + "&7]: ", "&r" + message, null, '&');
String name = Utils.getName(sender);
Utils.broadcast(" §7[§9" + name.replaceAll("[^0-9a-zA-Z§&\\[\\]]", "") + "§7]: ",
"§r" + ChatAPI.colorify(null, message), null);
return true;
}
@Command(hook = "sayn")
public boolean say(CommandSender sender, String name, String message)
{
Utils.broadcast(" &7[&9" + name.replaceAll("[^0-9a-zA-Z§&\\[\\]]", "") + "&7]: ", "&r" + message, null, '&');
Utils.broadcast(" §7[§9" + name + "§7]: ", "§r" + ChatAPI.colorify(null, message), null);
return true;
}
@@ -168,7 +168,7 @@ public class Misc implements Module, Listener
target = Bukkit.getPlayer(name);
if (target == null)
{
Utils.sendErrorMessage(sender, null, "That player couldn't be found!");
getLogger().message(sender, false, "That player couldn't be found!");
return true;
}
if (command.startsWith("/") || target.equals(Bukkit.getConsoleSender()))
@@ -176,19 +176,19 @@ public class Misc implements Module, Listener
String[] args = command.split(" ");
for (String regex : sudoBlacklist)
{
if (args[0].matches(regex))
if (args[0].matches("\\/" + regex))
{
Utils.sendErrorMessage(sender, null, "You can't sudo anyone into using that command!");
getLogger().message(sender, true, "You can't sudo anyone into using that command!");
return true;
}
}
Bukkit.dispatchCommand(target, command.replaceFirst("/", ""));
Utils.sendMessage(sender, null, "Sudoed " + name + " into running " + command);
getLogger().message(sender, "Sudoed " + Utils.getName(target) + "&7 into running " + command);
}
else
{
((Player) target).chat(command);
Utils.sendMessage(sender, null, "Sudoed " + name + " into saying " + command);
getLogger().message(sender, "Sudoed " + Utils.getName(target) + "&7 into saying " + command);
}
return true;
}
@@ -204,19 +204,40 @@ public class Misc implements Module, Listener
}
catch (Exception e)
{
Utils.sendErrorMessage(sender, noformat ? "" : null,
noformat ? "&rERR: Invalid UUID" : "&rThat UUID is not valid!!", '&');
if (noformat)
sender.sendMessage("ERR: Invalid UUID");
else
getLogger().message(sender, "That UUID is not valid!");
return true;
}
else
p = Bukkit.getPlayer(name);
if (p == null)
{
Utils.sendErrorMessage(sender, noformat ? "" : null,
noformat ? "&rERR: Invalid player" : "&rThat player couldn't be found!", '&');
if (noformat)
{
Message m = new Message(sender, null);
m.appendText("ERR: Invalid player");
m.send();
}
else
{
getLogger().message(sender, "That player couldn't be found!");
}
return true;
}
Utils.sendMessage(sender, noformat ? "" : null, "&r" + p.hasPermission(node), '&');
if (noformat)
{
Message m = new Message(sender, null);
m.appendText("" + p.hasPermission(node));
m.send();
}
else
{
getLogger().message(sender, "" + p.hasPermission(node));
}
return true;
}

View File

@@ -7,45 +7,53 @@ import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 4, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Motd implements Module, Listener
{
private String default_motd, motd;
@Command(hook = "setmotd")
@Command(hook = "setmotd", async = AsyncType.ALWAYS)
public boolean setMotd(CommandSender sender, String motd)
{
if (motd.equals("--reset"))
this.motd = default_motd;
else
this.motd = motd;
Utils.sendMessage(sender, null, "The new motd is:\n" + this.motd, '&');
getLogger().message(sender, "The new motd is:\n" + this.motd);
return true;
}
@Command(hook = "getmotd")
@Command(hook = "getmotd", async = AsyncType.ALWAYS)
public boolean getMotd(CommandSender sender)
{
Utils.sendMessage(sender, null, motd == null ? default_motd : motd, '&');
getLogger().message(sender, motd == null ? default_motd : motd);
return true;
}
@EventHandler
public void onServerPing(ServerListPingEvent event)
{
event.setMotd(motd == null ? default_motd : motd);
event.setMotd(motd);
}
@Override
public boolean onEnable()
{
default_motd = Bukkit.getMotd();
if (default_motd == null)
{
default_motd = "§6Sample text\n§4FIX YOUR SERVER!";
}
motd = default_motd;
return true;
}

View File

@@ -13,13 +13,15 @@ import org.bukkit.event.server.ServerCommandEvent;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 3, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Nametags implements Module, Listener
{
@EventHandler
@@ -85,7 +87,7 @@ public class Nametags implements Module, Listener
{
for (Player p : Bukkit.getOnlinePlayers())
sortSpecific(p);
Utils.sendMessage(sender, null, "Sorted tab for ya!");
getLogger().message(sender, "Sorted tab for ya!");
return true;
}
@@ -95,12 +97,12 @@ public class Nametags implements Module, Listener
Player p = Bukkit.getPlayer(player);
if (p == null)
{
Utils.sendErrorMessage(sender, null, "That player couldn't be found!");
getLogger().message(sender, true, "That player couldn't be found!");
return true;
}
else
sortSpecific(p);
Utils.sendMessage(sender, null, "Sorted §e" + player + " §7for ya!");
getLogger().message(sender, "Sorted §e" + player + " §7for ya!");
return true;
}

View File

@@ -12,14 +12,15 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
import net.md_5.bungee.api.ChatColor;
@Version(major = 2, minor = 1, revision = 3, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Naming implements Module
{
@Command(hook = "anvil")
@@ -38,12 +39,13 @@ public class Naming implements Module
ItemMeta meta = item.getItemMeta();
if (meta == null)
{
Utils.sendErrorMessage(sender, null, "You can not rename that item!");
getLogger().message(sender, true, "You can not rename that item!");
return;
}
meta.setDisplayName(name);
item.setItemMeta(meta);
Utils.sendMessage(sender, null, "Name set to " + name);
getLogger().message(sender, "Name set to " + name);
((Player) sender).updateInventory();
}
@Command(hook = "lore")
@@ -53,7 +55,7 @@ public class Naming implements Module
ItemMeta meta = item.getItemMeta();
if (meta == null)
{
Utils.sendErrorMessage(sender, null, "You can not change the lore of that item!");
getLogger().message(sender, true, "You can not change the lore of that item!");
return;
}
List<String> currentLore;
@@ -67,7 +69,8 @@ public class Naming implements Module
currentLore.add(lore);
meta.setLore(currentLore);
item.setItemMeta(meta);
Utils.sendMessage(sender, null, "Lore set to " + lore);
getLogger().message(sender, "Lore set to " + lore);
((Player) sender).updateInventory();
}
// @noformat

View File

@@ -19,7 +19,7 @@ import com.redstoner.misc.Main;
import com.redstoner.modules.Module;
@AutoRegisterListener
@Version(major = 3, minor = 0, revision = 1, compatible = 3)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
@SuppressWarnings("unchecked")
public class OnlinePlayers implements Module, Listener
{

View File

@@ -14,12 +14,14 @@ import org.bukkit.event.player.PlayerQuitEvent;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Pmtoggle implements Module, Listener
{
HashMap<Player, String> toggles = new HashMap<Player, String>();
@@ -29,9 +31,9 @@ public class Pmtoggle implements Module, Listener
{
Player player = (Player) sender;
if (toggles.remove(player) != null)
Utils.sendMessage(player, null, "Your pmtoggle was removed!");
getLogger().message(player, "Your pmtoggle was removed!");
else
Utils.sendMessage(player, null, "You didn't have pmtoggle enabled! Use /pmtoggle <player> to enabled it.");
getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle <player> to enabled it.");
return true;
}
@@ -41,11 +43,11 @@ public class Pmtoggle implements Module, Listener
Player p = Bukkit.getPlayer(player);
if (p == null && !player.equals("CONSOLE"))
{
Utils.sendMessage(sender, null, "§cThat player couldn't be found!");
getLogger().message(sender, "§cThat player couldn't be found!");
return true;
}
toggles.put((Player) sender, player);
Utils.sendMessage(sender, null, "Locked your pmtoggle onto §6" + player + "§7.");
getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7.");
return true;
}
@@ -72,8 +74,8 @@ public class Pmtoggle implements Module, Listener
if (entry.getValue().equals(player))
{
toggles.remove(player);
Utils.sendMessage(entry.getKey(), null,
"We removed your pmtoggle for &6" + player + "&7, as they left the game.", '&');
getLogger().message(entry.getKey(),
"We removed your pmtoggle for &6" + player + "&7, as they left the game.");
}
}
}

View File

@@ -13,7 +13,9 @@ import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.modules.Module;
@@ -23,7 +25,8 @@ import net.md_5.bungee.api.ChatColor;
/** Report module. Allows reports to be created and handled by staff
*
* @author Redempt */
@Version(major = 2, minor = 0, revision = 0, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Reports implements Module
{
private int task = 0;

View File

@@ -3,38 +3,60 @@ package com.redstoner.modules.saylol;
import java.io.File;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.json.simple.JSONArray;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 0, compatible = 2)
import net.nemez.chatapi.click.ClickCallback;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Saylol implements Module
{
private long lastLol = 0;
private File lolLocation = new File(Main.plugin.getDataFolder(), "lol.json");
private JSONArray lols;
private JSONArray lols, handlers;
private final String LOL_PREFIX = "§8[§blol§8] ";
@SuppressWarnings("unchecked")
@Override
public boolean onEnable()
{
lols = JsonManager.getArray(lolLocation);
if (lols == null)
lols = new JSONArray();
handlers = new JSONArray();
for (int i = 0; i < lols.size(); i++)
handlers.add(new ClickCallback(true, true, "")
{
@Override
public void run(CommandSender sender)
{
if (handlers.contains(this))
clickAction((Player) sender, handlers.indexOf(this));
else
getLogger().message(sender, true, "That lol no longer exists!");
}
});
return true;
}
@Override
public void onDisable()
{
saveLols();
saveLolsSync();
}
@SuppressWarnings("unchecked")
@@ -42,11 +64,22 @@ public class Saylol implements Module
public boolean addLol(CommandSender sender, String text)
{
if (lols.contains(text))
Utils.sendErrorMessage(sender, null, "This lol already exists!");
getLogger().message(sender, true, "This lol already exists!");
else
{
Utils.sendMessage(sender, null, "Successfully added a new lol!");
getLogger().message(sender, "Successfully added a new lol!");
lols.add("&e" + text);
handlers.add(new ClickCallback(true, true, "")
{
@Override
public void run(CommandSender sender)
{
if (handlers.contains(this))
clickAction((Player) sender, handlers.indexOf(this));
else
getLogger().message(sender, true, "That lol no longer exists!");
}
});
saveLols();
}
return true;
@@ -57,15 +90,16 @@ public class Saylol implements Module
{
if (lols.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no lols yet!");
getLogger().message(sender, true, "There are no lols yet!");
return true;
}
if (id < 0 || id >= lols.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (lols.size() - 1));
getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1));
return true;
}
Utils.sendMessage(sender, null, "Successfully deleted the lol: " + lols.remove(id), '&');
getLogger().message(sender, "Successfully deleted the lol: " + lols.remove(id));
handlers.remove(id);
saveLols();
return true;
}
@@ -76,15 +110,15 @@ public class Saylol implements Module
{
if (lols.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no lols yet!");
getLogger().message(sender, true, "There are no lols yet!");
return true;
}
if (id < 0 || id >= lols.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (lols.size() - 1));
getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1));
return true;
}
Utils.sendMessage(sender, null, "Successfully changed the lol: &e" + lols.get(id) + " &7to: &e" + text, '&');
getLogger().message(sender, "Successfully changed the lol: &e" + lols.get(id) + " &7to: &e" + text);
lols.set(id, text);
saveLols();
return true;
@@ -95,19 +129,19 @@ public class Saylol implements Module
{
if (lols.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no lols yet!");
getLogger().message(sender, true, "There are no lols yet!");
return true;
}
long time = System.currentTimeMillis();
if (time - lastLol < 15000)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"You can't use saylol for another " + (14 - (int) Math.ceil((time - lastLol) / 1000)) + "s.");
return true;
}
if (id < 0 || id >= lols.size())
{
Utils.sendErrorMessage(sender, null, "The ID must be at least 0 and at most " + (lols.size() - 1));
getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1));
return true;
}
String name;
@@ -115,14 +149,14 @@ public class Saylol implements Module
name = ((Player) sender).getDisplayName();
else
name = "&9" + sender.getName();
Utils.broadcast("&8[&blol&8] ", name + "&8: &e" + lols.get(id), new BroadcastFilter()
Utils.broadcast(LOL_PREFIX, name + "&8: &e" + lols.get(id), new BroadcastFilter()
{
@Override
public boolean sendTo(CommandSender recipient)
{
return recipient.hasPermission("utils.lol.see");
}
}, '&');
});
lastLol = time;
return true;
}
@@ -132,13 +166,13 @@ public class Saylol implements Module
{
if (lols.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no lols yet!");
getLogger().message(sender, true, "There are no lols yet!");
return true;
}
long time = System.currentTimeMillis();
if (time - lastLol < 15000)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"You can't use saylol for another " + (14 - (int) Math.ceil((time - lastLol) / 1000)) + "s.");
return true;
}
@@ -149,14 +183,14 @@ public class Saylol implements Module
name = "&9" + sender.getName();
Random random = new Random();
int id = random.nextInt(lols.size());
Utils.broadcast("&8[&blol&8] ", name + "&8: &e" + lols.get(id), new BroadcastFilter()
Utils.broadcast(LOL_PREFIX, name + "&8: &e" + lols.get(id), new BroadcastFilter()
{
@Override
public boolean sendTo(CommandSender recipient)
{
return recipient.hasPermission("utils.lol.see");
}
}, '&');
});
lastLol = time;
return true;
}
@@ -166,7 +200,7 @@ public class Saylol implements Module
{
if (lols.size() == 0)
{
Utils.sendErrorMessage(sender, null, "There are no lols yet!");
getLogger().message(sender, true, "There are no lols yet!");
return true;
}
page = page - 1;
@@ -175,18 +209,20 @@ public class Saylol implements Module
int pages = (int) Math.ceil(lols.size() / 10d);
if (start < 0)
{
Utils.sendErrorMessage(sender, null, "Page number too small, must be at least 0!");
getLogger().message(sender, true, "Page number too small, must be at least 0!");
return true;
}
if (start > lols.size())
{
Utils.sendErrorMessage(sender, null, "Page number too big, must be at most " + pages + "!");
getLogger().message(sender, true, "Page number too big, must be at most " + pages + "!");
return true;
}
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", "&ePage " + (page + 1) + "/" + pages + ":", '&');
Message m = new Message(sender, null);
m.appendText(getLogger().getHeader().replace("\n", ""));
m.appendText("&ePage " + (page + 1) + "/" + pages + ":");
for (int i = start; i < end && i < lols.size(); i++)
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + lols.get(i), '&');
m.appendCallback("\n&a" + i + "&8: &e" + lols.get(i), getCallback(i));
m.send();
return true;
}
@@ -197,72 +233,50 @@ public class Saylol implements Module
}
@Command(hook = "searchlol")
public boolean search(CommandSender sender, boolean insensitive, String text)
public boolean search(CommandSender sender, boolean sensitive, String text)
{
Utils.sendModuleHeader(sender);
Message m = new Message(sender, null);
m.appendText(getLogger().getHeader().replace("\n", ""));
boolean found = false;
if (insensitive)
{
if (!sensitive)
text = text.toLowerCase();
for (int i = 0; i < lols.size(); i++)
{
if (((String) lols.get(i)).toLowerCase().contains(text))
{
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + lols.get(i), '&');
found = true;
}
}
}
else
for (int i = 0; i < lols.size(); i++)
{
for (int i = 0; i < lols.size(); i++)
String lol = (String) lols.get(i);
if ((sensitive ? lol : lol.toLowerCase()).contains(text))
{
if (((String) lols.get(i)).contains(text))
{
Utils.sendMessage(sender, "", "&a" + i + "&8: &e" + lols.get(i), '&');
found = true;
}
m.appendCallback("\n&a" + i + "&8: &e" + lol, getCallback(i));
found = true;
}
}
if (!found)
{
Utils.sendMessage(sender, "", "&cCouldn't find any matching lols.", '&');
}
getLogger().message(sender, "&cCouldn't find any matching lols.");
else
m.send();
return true;
}
@Command(hook = "matchlol")
public boolean match(CommandSender sender, boolean insensitive, String regex)
public boolean match(CommandSender sender, boolean sensitive, String regex)
{
Utils.sendModuleHeader(sender);
Message m = new Message(sender, null);
m.appendText(getLogger().getHeader().replace("\n", ""));
boolean found = false;
if (insensitive)
{
if (!sensitive)
regex = regex.toLowerCase();
for (int i = 0; i < lols.size(); i++)
{
if (((String) lols.get(i)).toLowerCase().matches(regex))
{
Utils.sendMessage(sender, "", "&a" + i + ": " + lols.get(i), '&');
found = true;
}
}
}
else
for (int i = 0; i < lols.size(); i++)
{
for (int i = 0; i < lols.size(); i++)
String lol = (String) lols.get(i);
if ((sensitive ? lol : lol.toLowerCase()).matches(regex))
{
if (((String) lols.get(i)).matches(regex))
{
Utils.sendMessage(sender, "", "&a" + i + ": " + lols.get(i), '&');
found = true;
}
m.appendCallback("\n&a" + i + "&8: &e" + lol, getCallback(i));
found = true;
}
}
if (!found)
{
Utils.sendMessage(sender, "", "&cCouldn't find any matching lols.", '&');
}
getLogger().message(sender, "&cCouldn't find any matching lols.");
else
m.send();
return true;
}
@@ -271,6 +285,22 @@ public class Saylol implements Module
JsonManager.save(lols, lolLocation);
}
public void saveLolsSync()
{
JsonManager.saveSync(lols, lolLocation);
}
public ClickCallback getCallback(int index)
{
return (ClickCallback) handlers.get(index);
}
public void clickAction(Player player, int index)
{
if (player.hasPermission("utils.lol.id"))
Bukkit.dispatchCommand(player, "lol id " + index);
}
// @noformat
@Override
public String getCommandString()

View File

@@ -4,11 +4,14 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 1, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Scriptutils implements Module
{
/** Prints Bukkit restart message

View File

@@ -16,20 +16,15 @@ import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 3, minor = 0, revision = 0, compatible = 3)
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class SignalStrength implements Module
{
@Override
public void postEnable()
{
CommandManager.registerCommand(this.getClass().getResourceAsStream("SignalStrength.cmd"), this, Main.plugin);
}
@Command(hook = "ss")
public boolean ss(CommandSender sender, int strength)
@@ -45,13 +40,13 @@ public class SignalStrength implements Module
Block target_block = player.getTargetBlock(new HashSet<Material>(), 5);
if (target_block == null)
{
Utils.sendErrorMessage(sender, null, "That command can only be used if a container is targeted!");
getLogger().message(sender, true, "That command can only be used if a container is targeted!");
return true;
}
Inventory inventory = getInventory(target_block);
if (inventory == null)
{
Utils.sendErrorMessage(sender, null, "That command can only be used if a container is targeted!");
getLogger().message(sender, true, "That command can only be used if a container is targeted!");
return true;
}
// --------Get the stack size and required amount of items to achieve the desired signal strength---------
@@ -60,7 +55,7 @@ public class SignalStrength implements Module
int item_count = required_item_count(strength, stack_size, slot_count);
if (item_count == -1)
{
Utils.sendErrorMessage(sender, null,
getLogger().message(sender, true,
"The desired signal strength could not be achieved with the requested item type");
return true;
}
@@ -70,7 +65,7 @@ public class SignalStrength implements Module
{
if (!canBuild(player, b))
{
Utils.sendErrorMessage(sender, "", "You can not build here!");
getLogger().message(sender, true, "You can not build here!");
return true;
}
}
@@ -86,7 +81,7 @@ public class SignalStrength implements Module
if (remaining > 0)
inv.setItem(full_stack_count, new ItemStack(item_type, remaining));
}
Utils.sendMessage(sender, null,
getLogger().message(sender,
"Comparators attached to this Inventory will now put out a signal strength of" + strength);
return true;
}

View File

@@ -8,11 +8,13 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Version(major = 1, minor = 0, revision = 1, compatible = 1)
@Commands(CommandHolderType.None)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
@AutoRegisterListener
public class SkullClick implements Module, Listener
{
@@ -22,7 +24,7 @@ public class SkullClick implements Module, Listener
@EventHandler
public void onClick(PlayerInteractEvent e)
{
// For some reason the event gets fired twice, this fixes it. Lol.
// The event gets fired twice, once for mainhand and once for offhand. This fixes that.
if (seen)
{
seen = false;
@@ -38,11 +40,11 @@ public class SkullClick implements Module, Listener
String owner = skull.getOwner();
if (owner == null || owner.equals(""))
{
Utils.sendMessage(e.getPlayer(), null, "§eThat skull has no owner.");
getLogger().message(e.getPlayer(), true, "That skull has no owner.");
}
else
{
Utils.sendMessage(e.getPlayer(), null, "§eThat's " + owner + ".");
getLogger().message(e.getPlayer(), "That's " + owner + ".");
}
if (!e.getPlayer().isSneaking())
{
@@ -51,10 +53,4 @@ public class SkullClick implements Module, Listener
}
}
}
@Override
public String getCommandString()
{
return null;
}
}

View File

@@ -58,8 +58,4 @@ command socialspy {
run migrate;
type console;
}
test {
run test;
type console;
}
}

View File

@@ -2,6 +2,7 @@ package com.redstoner.modules.socialspy;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import org.bukkit.Bukkit;
@@ -11,25 +12,22 @@ import org.bukkit.entity.Player;
import org.json.simple.JSONArray;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.Main;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule;
import com.redstoner.modules.Module;
import com.redstoner.modules.datamanager.DataManager;
@Version(major = 3, minor = 1, revision = 8, compatible = 3)
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Socialspy implements CoreModule
{
@Override
public void postEnable()
{
CommandManager.registerCommand(this.getClass().getResourceAsStream("Socialspy.cmd"), this, Main.plugin);
}
@Command(hook = "config_prefix_default")
public boolean prefixDefault(CommandSender sender)
{
@@ -39,7 +37,7 @@ public class Socialspy implements CoreModule
@Command(hook = "config_prefix")
public boolean prefix(CommandSender sender, String prefix)
{
Utils.sendMessage(sender, null, "Set your prefix to: " + prefix);
getLogger().message(sender, "Set your prefix to: " + prefix);
DataManager.setData(sender, "prefix", prefix);
return true;
}
@@ -53,7 +51,7 @@ public class Socialspy implements CoreModule
@Command(hook = "config_format")
public boolean configFormat(CommandSender sender, String format)
{
Utils.sendMessage(sender, null, "Set your format to: " + format);
getLogger().message(sender, "Set your format to: " + format);
DataManager.setData(sender, "format", format);
return true;
}
@@ -61,7 +59,7 @@ public class Socialspy implements CoreModule
@Command(hook = "stripcolor_on")
public boolean stripcolorOn(CommandSender sender)
{
Utils.sendMessage(sender, null, "Enabled stripping colors!");
getLogger().message(sender, "Enabled stripping colors!");
DataManager.setData(sender, "stripcolor", "on");
return true;
}
@@ -69,7 +67,7 @@ public class Socialspy implements CoreModule
@Command(hook = "stripcolor_off")
public boolean stripcolorOff(CommandSender sender)
{
Utils.sendMessage(sender, null, "Disabled stripping colors!");
getLogger().message(sender, "Disabled stripping colors!");
DataManager.setData(sender, "stripcolor", "off");
return true;
}
@@ -77,7 +75,7 @@ public class Socialspy implements CoreModule
@Command(hook = "stripcolor_partial")
public boolean stripcolor_partial(CommandSender sender)
{
Utils.sendMessage(sender, null, "Disabled stripping colors!");
getLogger().message(sender, "Disabled stripping colors!");
DataManager.setData(sender, "stripcolor", "partial");
return true;
}
@@ -86,7 +84,7 @@ public class Socialspy implements CoreModule
public boolean stripcolor(CommandSender sender)
{
boolean b = DataManager.getOrDefault(sender, "stripcolor", "on").equals("on");
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " stripping colors!");
getLogger().message(sender, (b ? "Disabled" : "Enabled") + " stripping colors!");
DataManager.setData(sender, "stripcolor", !b);
return true;
}
@@ -94,7 +92,7 @@ public class Socialspy implements CoreModule
@Command(hook = "on")
public boolean spyOn(CommandSender sender)
{
Utils.sendMessage(sender, null, "Enabled socialspy!");
getLogger().message(sender, "Enabled socialspy!");
DataManager.setData(sender, "enabled", true);
return true;
}
@@ -102,7 +100,7 @@ public class Socialspy implements CoreModule
@Command(hook = "off")
public boolean spyOff(CommandSender sender)
{
Utils.sendMessage(sender, null, "Disabled socialspy!");
getLogger().message(sender, "Disabled socialspy!");
DataManager.setData(sender, "enabled", false);
return true;
}
@@ -111,7 +109,7 @@ public class Socialspy implements CoreModule
public boolean spyToggle(CommandSender sender)
{
boolean b = (boolean) DataManager.getOrDefault(sender, "enabled", false);
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " socialspy!");
getLogger().message(sender, (b ? "Disabled" : "Enabled") + " socialspy!");
DataManager.setData(sender, "enabled", !b);
return true;
}
@@ -119,32 +117,30 @@ public class Socialspy implements CoreModule
@Command(hook = "format_help")
public boolean formatInfo(CommandSender sender)
{
Utils.sendModuleHeader(sender);
Utils.sendMessage(sender, "", " Format placeholders:");
Utils.sendMessage(sender, "", " &c%s&eender &7(display name) | &c%S&eender &7(real name)", '&');
Utils.sendMessage(sender, "", " &c%t&earget &7(display name) | &c%T&earget &7(real name)", '&');
Utils.sendMessage(sender, "", " &c%p&erefix &7(see prefix option)", '&');
Utils.sendMessage(sender, "", " &c%m&eessage", '&');
Utils.sendMessage(sender, "", " &c%c&eommand", '&');
Utils.sendMessage(sender, "", " Any other text will be put as literal text. Use %% to escape any %.", '&');
Utils.sendMessage(sender, "", " The default format is: §e" + getDefaultFormat());
Utils.sendMessage(sender, "", " The default prefix is: §e" + getDefaultPrefix());
getLogger().message(sender,
new String[] {" Format placeholders:", " &c%s&eender &7(display name) | &c%S&eender &7(real name)",
" &c%t&earget &7(display name) | &c%T&earget &7(real name)",
" &c%p&erefix &7(see prefix option)", " &c%m&eessage", " &c%c&eommand",
" Any other text will be put as literal text. Use %% to escape any %.",
" The default format is: §e" + getDefaultFormat(),
" The default prefix is: §e" + getDefaultPrefix()});
return true;
}
@Command(hook = "commands_list")
public boolean commands_list(CommandSender sender)
{
Utils.sendModuleHeader(sender);
ArrayList<String> message = new ArrayList<String>();
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
if (commands == null || commands.size() == 0)
Utils.sendErrorMessage(sender, "", "You are not listening to any commands!");
message.add("You are not listening to any commands!");
else
{
Utils.sendMessage(sender, "", "You are listening to the following " + commands.size() + " commands:");
Utils.sendMessage(sender, "", Arrays.toString(commands.toArray()).replace(", /", "&7, &e/")
.replace("[", "[&e").replace("]", "&7]"), '&');
message.add("You are listening to the following " + commands.size() + " commands:");
message.add(Arrays.toString(commands.toArray()).replace(", /", "&7, &e/").replace("[", "[&e").replace("]",
"&7]"));
}
getLogger().message(sender, message.toArray(new String[] {}));
return true;
}
@@ -164,7 +160,7 @@ public class Socialspy implements CoreModule
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
commands.add(command);
DataManager.setData(sender, "commands", commands);
Utils.sendMessage(sender, null, "You are now spying on &e" + command, '&');
getLogger().message(sender, "You are now spying on &e" + command);
return true;
}
@@ -174,7 +170,7 @@ public class Socialspy implements CoreModule
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
commands.remove(command);
DataManager.setData(sender, "commands", commands);
Utils.sendMessage(sender, null, "You are no longer spying on &e" + command, '&');
getLogger().message(sender, "You are no longer spying on &e" + command);
return true;
}
@@ -204,7 +200,11 @@ public class Socialspy implements CoreModule
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
{
Message m = new Message(p, null);
m.appendText(formatMessage(p, sender, target, message, command));
m.send();
}
}
else
DataManager.setData(sender, "enabled", false);
@@ -237,7 +237,11 @@ public class Socialspy implements CoreModule
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
{
Message m = new Message(p, null);
m.appendText(formatMessage(p, sender, target, message, command));
m.send();
}
}
else
DataManager.setData(sender, "enabled", false);
@@ -340,24 +344,4 @@ public class Socialspy implements CoreModule
DataManager.migrateAll("Message");
return true;
}
@Command(hook = "test")
public boolean test(CommandSender sender) throws InterruptedException
{
DataManager.setData(sender, "test", "&aTest1");
Thread.sleep(1);
Utils.sendMessage(sender, null,
"Wrote \"Test1\", got " + DataManager.getOrDefault(sender, "test", "&4fallback"), '&');
DataManager.setData(sender, "test", "&aTest2");
Thread.sleep(1);
Utils.sendMessage(sender, null,
"Wrote \"Test2\", got " + DataManager.getOrDefault(sender, "test", "&4fallback"), '&');
DataManager.setData(sender, "test", "&4DATA");
Thread.sleep(1);
DataManager.removeData(sender, "test");
Thread.sleep(1);
Utils.sendMessage(sender, null, "Removed data, got " + DataManager.getOrDefault(sender, "test", "&anothing"),
'&');
return true;
}
}

View File

@@ -1,6 +1,7 @@
package com.redstoner.modules.tag;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import org.bukkit.Bukkit;
@@ -11,13 +12,15 @@ import org.json.simple.JSONObject;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 0, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Tag implements Module
{
private File tagLocation = new File(Main.plugin.getDataFolder(), "tag.json");
@@ -45,10 +48,9 @@ public class Tag implements Module
OfflinePlayer player = Bukkit.getOfflinePlayer(name);
if (player == null)
{
Utils.sendErrorMessage(sender, null, "That player doesn't exist!");
getLogger().message(sender, true, "That player doesn't exist!");
return true;
}
Utils.sendModuleHeader(sender);
UUID uuid = player.getUniqueId();
JSONArray tagArray;
if (tags.containsKey(uuid.toString()))
@@ -58,7 +60,7 @@ public class Tag implements Module
tagArray.add(tag);
if (!tags.containsKey(uuid.toString()))
tags.put(uuid.toString(), tagArray);
Utils.sendMessage(sender, null, "Successfully added note &e" + tag + " &7to player &e" + name + "&7!", '&');
getLogger().message(sender, "Successfully added note &e" + tag + " &7to player &e" + name + "&7!");
saveTags();
return true;
}
@@ -69,36 +71,36 @@ public class Tag implements Module
{
if (id < 1)
{
Utils.sendErrorMessage(sender, null, "The ID you entered is too small, it must be at least 1!");
getLogger().message(sender, true, "The ID you entered is too small, it must be at least 1!");
return true;
}
OfflinePlayer player = Bukkit.getOfflinePlayer(name);
if (player == null)
{
Utils.sendErrorMessage(sender, null, "That player doesn't exist!");
getLogger().message(sender, true, "That player doesn't exist!");
return true;
}
UUID uuid = player.getUniqueId();
if (!tags.containsKey(uuid.toString()))
{
Utils.sendMessage(sender, null, "&eThere are no notes about that player.", '&');
getLogger().message(sender, true, "There are no notes about that player.");
return true;
}
JSONArray tagArray = (JSONArray) tags.get(uuid.toString());
int size = tagArray.size();
if (size == 0)
{
Utils.sendErrorMessage(sender, null,
"Empty entry found! You might consider running a database cleanup, contact an admin to do this.");
Utils.log("Found empty tag entry. Database cleanup is recommended.");
getLogger().message(sender, true, "There are no notes about that player.");
tags.remove(uuid.toString());
saveTags();
return true;
}
if (id > size)
{
Utils.sendErrorMessage(sender, null, "The number you entered is too big! It must be at most " + size + "!");
getLogger().message(sender, true, "The number you entered is too big! It must be at most " + size + "!");
return true;
}
Utils.sendMessage(sender, null, "Successfully removed note: &e" + tagArray.remove(id - 1), '&');
getLogger().message(sender, "Successfully removed note: &e" + tagArray.remove(id - 1));
if (tagArray.size() == 0)
tags.remove(uuid.toString());
saveTags();
@@ -112,27 +114,28 @@ public class Tag implements Module
OfflinePlayer player = Bukkit.getOfflinePlayer(name);
if (player == null)
{
Utils.sendErrorMessage(sender, null, "That player doesn't exist!");
getLogger().message(sender, true, "That player doesn't exist!");
return true;
}
Utils.sendModuleHeader(sender);
UUID uuid = player.getUniqueId();
if (!tags.containsKey(uuid.toString()))
{
Utils.sendMessage(sender, "", "&eThere are no notes about that player.", '&');
getLogger().message(sender, "There are no notes about that player.");
return true;
}
JSONArray tagArray = (JSONArray) tags.get(uuid.toString());
int size = tagArray.size();
Utils.sendMessage(sender, "", "There are " + size + " notes about this player:");
if (size == 0)
{
tags.remove(uuid.toString());
saveTags();
return true;
}
ArrayList<String> message = new ArrayList<String>();
message.add("There are &e" + size + "&7 notes about this player:");
for (int i = 0; i < size; i++)
Utils.sendMessage(sender, "", "&a" + (i + 1) + "&8: &e" + tagArray.get(i), '&');
message.add("&a" + (i + 1) + "&8: &e" + tagArray.get(i));
getLogger().message(sender, message.toArray(new String[] {}));
return true;
}

View File

@@ -16,12 +16,14 @@ import org.bukkit.event.player.PlayerQuitEvent;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@AutoRegisterListener
@Version(major = 2, minor = 0, revision = 3, compatible = 2)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Vanish implements Module, Listener
{
private ArrayList<UUID> vanished = new ArrayList<UUID>();
@@ -34,13 +36,13 @@ public class Vanish implements Module, Listener
if (vanished.contains(uid))
{
vanished.remove(uid);
Utils.sendMessage(sender, null, "You are no longer vanished!");
getLogger().message(sender, "You are no longer vanished!");
unvanishPlayer((Player) sender);
}
else
{
vanished.add(uid);
Utils.sendMessage(sender, null, "You are now vanished!");
getLogger().message(sender, "You are now vanished!");
vanishPlayer((Player) sender);
}
return true;
@@ -51,12 +53,12 @@ public class Vanish implements Module, Listener
{
UUID uid = ((Player) sender).getUniqueId();
if (vanished.contains(uid))
Utils.sendMessage(sender, null,
getLogger().message(sender,
"You were already vanished, however we refreshed the vanish for you just to be sure!");
else
{
vanished.add(uid);
Utils.sendMessage(sender, null, "You are now vanished!");
getLogger().message(sender, "You are now vanished!");
}
vanishPlayer((Player) sender);
return true;
@@ -67,12 +69,12 @@ public class Vanish implements Module, Listener
{
UUID uid = ((Player) sender).getUniqueId();
if (!vanished.contains(uid))
Utils.sendMessage(sender, null,
getLogger().message(sender,
"You were not vanished, however we refreshed the vanish for you just to be sure!");
else
{
vanished.remove(uid);
Utils.sendMessage(sender, null, "You are no longer vanished!");
getLogger().message(sender, "You are no longer vanished!");
}
unvanishPlayer((Player) sender);
return true;
@@ -84,7 +86,7 @@ public class Vanish implements Module, Listener
Player player = Bukkit.getPlayer(name);
if (player == null)
{
Utils.sendMessage(sender, null, "&cPlayer &6" + name + " &ccould not be found!", '&');
getLogger().message(sender, "&cPlayer &6" + name + " &ccould not be found!");
return true;
}
UUID uid = player.getUniqueId();
@@ -93,14 +95,14 @@ public class Vanish implements Module, Listener
if (vanished.contains(uid))
{
vanished.remove(uid);
Utils.sendMessage(sender, null, "Successfully unvanished player &6" + name, '&');
Utils.sendMessage(player, null, "You are no longer vanished!");
getLogger().message(sender, "Successfully unvanished &e" + player.getDisplayName());
getLogger().message(player, "You are no longer vanished!");
}
else
{
vanished.add(uid);
Utils.sendMessage(sender, null, "Successfully vanished player &6" + name, '&');
Utils.sendMessage(player, null, "You are now vanished!");
getLogger().message(sender, "Successfully vanished &e" + player.getDisplayName());
getLogger().message(player, "You are now vanished!");
}
return true;
}
@@ -109,8 +111,8 @@ public class Vanish implements Module, Listener
if (entry.getValue().contains(uid))
{
entry.getValue().remove(uid);
Utils.sendMessage(sender, null, "Successfully unvanished player &6" + name, '&');
Utils.sendMessage(player, null, "You are no longer vanished!");
getLogger().message(sender, "Successfully unvanished &e" + player.getDisplayName());
getLogger().message(player, "You are no longer vanished!");
if (entry.getValue().size() == 0)
vanishOthers.remove(entry.getKey());
return true;
@@ -122,8 +124,8 @@ public class Vanish implements Module, Listener
toAddTo = new ArrayList<UUID>();
toAddTo.add(uid);
vanishOthers.put(uuid, toAddTo);
Utils.sendMessage(sender, null, "Successfully vanished player &6" + name, '&');
Utils.sendMessage(player, null, "You are now vanished!");
getLogger().message(sender, "Successfully vanished &e" + player.getDisplayName());
getLogger().message(player, "You are now vanished!");
return true;
}

View File

@@ -4,11 +4,14 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 2, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Warn implements Module
{
@Command(hook = "warn")

View File

@@ -6,14 +6,15 @@ import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.json.simple.parser.ParseException;
import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.Command.AsyncType;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.mysql.Config;
import com.redstoner.misc.mysql.MysqlHandler;
import com.redstoner.misc.mysql.elements.ConstraintOperator;
@@ -22,7 +23,8 @@ import com.redstoner.misc.mysql.elements.MysqlDatabase;
import com.redstoner.misc.mysql.elements.MysqlTable;
import com.redstoner.modules.Module;
@Version(major = 2, minor = 0, revision = 4, compatible = 2)
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class WebToken implements Module
{
private static final int TOKEN_LENGTH = 6;
@@ -45,7 +47,7 @@ public class WebToken implements Module
}
if (config == null || !config.containsKey("database") || !config.containsKey("table"))
{
Utils.error("Could not load the WebToken config file, disabling!");
getLogger().error("Could not load the WebToken config file, disabling!");
config.put("database", "redstoner");
config.put("table", "webtoken");
return false;
@@ -57,7 +59,7 @@ public class WebToken implements Module
}
catch (NullPointerException e)
{
Utils.error("Could not use the WebToken config, disabling!");
getLogger().error("Could not use the WebToken config, aborting!");
return false;
}
return true;
@@ -116,11 +118,9 @@ public class WebToken implements Module
private void printToken(Player player, String email, String token)
{
Utils.sendModuleHeader(player);
Utils.sendMessage(player, "", "§aEmail: " + email);
Utils.sendMessage(player, "", "§aToken: " + token);
Utils.sendMessage(player, "", "§cIMPORTANT: never share the token with anyone!");
Utils.sendMessage(player, "", "§cIt could be used to claim your website account!");
String[] message = new String[] {"&aEmail: " + email, "&aToken: " + token,
"&cIMPORTANT: never share the token with anyone!", "&cIt could be used to claim your website account!"};
getLogger().message(player, message);
}
private String generateToken()
@@ -142,7 +142,7 @@ public class WebToken implements Module
return token;
}
@Command(hook = "token")
@Command(hook = "token", async = AsyncType.ALWAYS)
public void token(CommandSender sender)
{
Player player = (Player) sender;
@@ -152,8 +152,7 @@ public class WebToken implements Module
String token = query("token", uuid);
if (token == null)
{
Utils.sendErrorMessage(player, null, "§cYou don't have a token yet! Use " + ChatColor.YELLOW
+ "/gettoken <email>" + ChatColor.RED + " to get one.");
getLogger().message(player, true, "You don't have a token yet! Use &e/gettoken <email>&7 to get one.");
}
else
{
@@ -163,12 +162,30 @@ public class WebToken implements Module
}
catch (Exception e)
{
Utils.sendErrorMessage(player, null, "Error getting your token, please contact an admin!");
e.printStackTrace();
try
{
Thread.sleep(100);
String token = query("token", uuid);
if (token == null)
{
getLogger().message(player, true,
"You don't have a token yet! Use &e/gettoken <email>&7 to get one.");
}
else
{
String email = query("email", uuid);
printToken(player, email, token);
}
}
catch (Exception e2)
{
getLogger().message(player, true, "Error getting your token, please contact an admin!");
e2.printStackTrace();
}
}
}
@Command(hook = "gettoken")
@Command(hook = "gettoken", async = AsyncType.ALWAYS)
public void token(CommandSender sender, String email)
{
Player player = (Player) sender;
@@ -181,29 +198,28 @@ public class WebToken implements Module
String id = getNextId();
table.delete(new MysqlConstraint("uuid", ConstraintOperator.EQUAL, uuid));
table.insert(id, uuid, token, email);
player.sendMessage(ChatColor.GREEN + "Token generated!");
printToken(player, email, token);
}
catch (Exception e)
{
try
{
Thread.sleep(100);
String id = getNextId();
table.delete(new MysqlConstraint("uuid", ConstraintOperator.EQUAL, uuid));
table.insert(id, uuid, token, email);
player.sendMessage(ChatColor.GREEN + "Token generated!");
printToken(player, email, token);
}
catch (Exception e2)
{
Utils.sendErrorMessage(player, null, "Error getting your token, please contact an admin!");
getLogger().message(player, true, "Error getting your token, please contact an admin!");
e.printStackTrace();
}
}
}
else
{
Utils.sendErrorMessage(player, null, "Hmm... That doesn't look like a valid email!");
getLogger().message(player, true, "Hmm... That doesn't look like a valid email!");
}
}