Reverted merge.
This commit is contained in:
@@ -30,10 +30,10 @@ import com.redstoner.modules.datamanager.DataManager;
|
||||
|
||||
@Commands(CommandHolderType.File)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 5, compatible = 5)
|
||||
@Version(major = 4, minor = 0, revision = 4, compatible = 4)
|
||||
public class AFK implements Module, Listener
|
||||
{
|
||||
private CustomListener listener;
|
||||
private CustomListener listener = new CustomListener();
|
||||
boolean move = true, look = false;
|
||||
|
||||
@Override
|
||||
@@ -43,7 +43,7 @@ public class AFK implements Module, Listener
|
||||
DataManager.setConfig("indicator", "&7[AFK]");
|
||||
String[] choices = new String[] {"listen", "ignore"};
|
||||
DataManager.setConfig("move", "listen", choices);
|
||||
DataManager.setConfig("look", "ignore", choices);
|
||||
DataManager.setConfig("look", "listen", choices);
|
||||
DataManager.setConfig("chat", "listen", choices);
|
||||
DataManager.setConfig("interact", "listen", choices);
|
||||
DataManager.setConfig("command", "ignore", choices);
|
||||
@@ -53,10 +53,10 @@ public class AFK implements Module, Listener
|
||||
public void migrate(Version old)
|
||||
{
|
||||
Module.super.migrate(old);
|
||||
if ((old.major() == 4) && (old.minor() == 0) && (old.revision() == 3))
|
||||
if ((old.major() == 4) && (old.minor() == 0) && (old.revision()) == 3)
|
||||
{
|
||||
String[] choices = new String[] {"listen", "ignore"};
|
||||
DataManager.setConfig("look", "ignore", choices);
|
||||
DataManager.setConfig("look", "listen", choices);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,6 @@ public class AFK implements Module, Listener
|
||||
public void postEnable()
|
||||
{
|
||||
Module.super.postEnable();
|
||||
listener = new CustomListener();
|
||||
update_afk_listeners(Bukkit.getConsoleSender());
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.redstoner.modules.Module;
|
||||
* @author Pepich */
|
||||
@Commands(CommandHolderType.String)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
||||
public class BuildChat implements Module, Listener
|
||||
{
|
||||
private static final char defaultKey = ';';
|
||||
@@ -45,7 +45,7 @@ public class BuildChat implements Module, Listener
|
||||
keys = new JSONObject();
|
||||
saveKeys();
|
||||
}
|
||||
bctoggled = new ArrayList<>();
|
||||
bctoggled = new ArrayList<UUID>();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ public class BuildChat implements Module, Listener
|
||||
@Command(hook = "bct_off")
|
||||
public boolean bcToggleOffCommand(CommandSender sender)
|
||||
{
|
||||
if (bctoggled.remove(((Player) sender).getUniqueId()))
|
||||
if (bctoggled.remove(((Player) sender).getUniqueId().toString()))
|
||||
getLogger().message(sender, "BCT now §cdisabled");
|
||||
else
|
||||
getLogger().message(sender, "BCT was already disabled");
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
command me {
|
||||
perm utils.me;
|
||||
[string:text...] {
|
||||
help /me's in chat.;
|
||||
run me text;
|
||||
}
|
||||
}
|
||||
command chat {
|
||||
alias speak;
|
||||
[string:message...] {
|
||||
perm utils.chat;
|
||||
run chat message;
|
||||
help A way to speak in normal chat with normal formatting if you have ACT or CGT on.;
|
||||
}
|
||||
}
|
||||
command shrug {
|
||||
[string:message...] {
|
||||
perm utils.shrug;
|
||||
run shrug message;
|
||||
help Appends the shrug emoticon to the end of your message.;
|
||||
}
|
||||
}
|
||||
command say {
|
||||
[string:message...] {
|
||||
perm utils.say;
|
||||
run say message;
|
||||
help A replacement for the default say command to make the format be more consistant.;
|
||||
}
|
||||
}
|
||||
command sayn {
|
||||
[string:name] [string:message...] {
|
||||
perm utils.sayn;
|
||||
type console;
|
||||
run sayn name message;
|
||||
help A replacement for the default say command to make the format be more consistant.;
|
||||
}
|
||||
}
|
||||
|
||||
command mute {
|
||||
[string:player] {
|
||||
perm utils.chat.admin;
|
||||
run mute player;
|
||||
help Mutes a player.;
|
||||
}
|
||||
}
|
||||
|
||||
command unmute {
|
||||
[string:player] {
|
||||
perm utils.chat.admin;
|
||||
run unmute player;
|
||||
help Unmutes a player.;
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
package com.redstoner.modules.chat;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
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.player.AsyncPlayerChatEvent;
|
||||
|
||||
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.CommandHolderType;
|
||||
import com.redstoner.misc.Utils;
|
||||
import com.redstoner.modules.Module;
|
||||
import com.redstoner.modules.datamanager.DataManager;
|
||||
import com.redstoner.modules.ignore.Ignore;
|
||||
|
||||
@Commands(CommandHolderType.File)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
public class Chat implements Module, Listener
|
||||
{
|
||||
|
||||
@Override
|
||||
public void firstLoad()
|
||||
{
|
||||
Module.super.firstLoad();
|
||||
DataManager.setConfig("chat", " %n §7→§r %m");
|
||||
DataManager.setConfig("me", " §7- %n §7⇦ %m");
|
||||
DataManager.setConfig("say", " §7[§9%n§7]:§r %m");
|
||||
DataManager.setConfig("shrug", " %n §7→§r %m ¯\\_(ツ)_/¯");
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
String message = event.getMessage();
|
||||
event.setCancelled(true);
|
||||
broadcastFormatted("chat", player, message);
|
||||
}
|
||||
|
||||
@Command(hook = "me")
|
||||
public boolean me(CommandSender sender, String message)
|
||||
{
|
||||
broadcastFormatted("me", sender, message);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "chat")
|
||||
public boolean chat(CommandSender sender, String message)
|
||||
{
|
||||
broadcastFormatted("chat", sender, message);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "say")
|
||||
public boolean say(CommandSender sender, String message)
|
||||
{
|
||||
String name;
|
||||
if (sender instanceof Player)
|
||||
name = ((Player) sender).getName();
|
||||
else
|
||||
name = "§9CONSOLE";
|
||||
broadcastFormatted("say", sender, message, name);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "sayn")
|
||||
public boolean say(CommandSender sender, String name, String message)
|
||||
{
|
||||
broadcastFormatted("say", sender, message, name);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "shrug")
|
||||
public boolean shrug(CommandSender sender, String message)
|
||||
{
|
||||
broadcastFormatted("shrug", sender, message);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "mute")
|
||||
public boolean mute(CommandSender sender, String player)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if (p == null)
|
||||
{
|
||||
getLogger().message(sender, true, "That player couldn't be found!");
|
||||
return true;
|
||||
}
|
||||
DataManager.setData(p, "muted", true);
|
||||
getLogger().message(sender, "Muted player &e" + Utils.getName(p) + "&7!");
|
||||
getLogger().message(p, "You have been &cmuted&7!");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "unmute")
|
||||
public boolean unmute(CommandSender sender, String player)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if (p == null)
|
||||
{
|
||||
getLogger().message(sender, true, "That player couldn't be found!");
|
||||
return true;
|
||||
}
|
||||
DataManager.setData(p, "muted", false);
|
||||
getLogger().message(sender, "Unmuted player &e" + Utils.getName(p) + "&7!");
|
||||
getLogger().message(p, "You have been &aunmuted&7!");
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean broadcastFormatted(String format, CommandSender sender, String message)
|
||||
{
|
||||
return broadcastFormatted(format, sender, message, Utils.getName(sender));
|
||||
}
|
||||
|
||||
public boolean broadcastFormatted(String format, CommandSender sender, String message, String name)
|
||||
{
|
||||
if ((boolean) DataManager.getOrDefault(sender, "muted", false))
|
||||
{
|
||||
Utils.noPerm(sender, "You have been muted!");
|
||||
getLogger().info(" &7User &e" + Utils.getName(sender) + " &7tried to &e" + format + " &7(&e" + message
|
||||
+ "&7) while being &cmuted&7.");
|
||||
return false;
|
||||
}
|
||||
String raw = (String) DataManager.getConfigOrDefault(format, " %n §7→§r %m");
|
||||
String formatted = raw.replace("%n", name).replace("%m", message);
|
||||
Utils.broadcast("", formatted, ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -32,11 +32,11 @@ import net.nemez.chatapi.ChatAPI;
|
||||
|
||||
@Commands(CommandHolderType.String)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
public class Chatalias implements Module, Listener
|
||||
{
|
||||
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, say, sayn .+?, chat, shrug"};
|
||||
"e?whisper .+?", "e?me", "cgsay", "ac", "bc"};
|
||||
private JSONObject aliases = new JSONObject();
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.redstoner.misc.JsonManager;
|
||||
import com.redstoner.misc.Main;
|
||||
import com.redstoner.misc.Utils;
|
||||
import com.redstoner.modules.Module;
|
||||
import com.redstoner.modules.ignore.Ignore;
|
||||
import com.redstoner.modules.socialspy.Socialspy;
|
||||
|
||||
import net.nemez.chatapi.ChatAPI;
|
||||
@@ -34,7 +33,7 @@ import net.nemez.chatapi.ChatAPI;
|
||||
* @author Pepich */
|
||||
@Commands(CommandHolderType.String)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
public class Chatgroups implements Module, Listener
|
||||
{
|
||||
private static final char defaultKey = ':';
|
||||
@@ -359,16 +358,13 @@ public class Chatgroups implements Module, Listener
|
||||
String name = Utils.getName(sender);
|
||||
String group = getGroup(sender);
|
||||
message = ChatAPI.colorify(null, message);
|
||||
|
||||
BroadcastFilter ignore = ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null;
|
||||
Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter()
|
||||
{
|
||||
@Override
|
||||
public boolean sendTo(CommandSender recipient)
|
||||
{
|
||||
|
||||
String rgroup = getGroup(recipient);
|
||||
if ( rgroup != null && (ignore == null? true : ignore.sendTo(recipient)) )
|
||||
if (rgroup != null)
|
||||
return rgroup.equals(group);
|
||||
else
|
||||
return false;
|
||||
|
||||
@@ -31,4 +31,8 @@ command config {
|
||||
type console;
|
||||
help Deletes all config settings of a given module.;
|
||||
}
|
||||
remove [string:module] [string:key] {
|
||||
run remove module key;
|
||||
help Deletes the specified config setting;
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,7 @@ import com.redstoner.modules.Module;
|
||||
|
||||
@Commands(CommandHolderType.Stream)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 1, revision = 5, compatible = 4)
|
||||
@Version(major = 4, minor = 1, revision = 4, compatible = 4)
|
||||
public final class DataManager implements CoreModule, Listener
|
||||
{
|
||||
protected final File dataFolder = new File(Main.plugin.getDataFolder(), "data");
|
||||
@@ -651,7 +651,7 @@ public final class DataManager implements CoreModule, Listener
|
||||
if (prefix == null || prefix.equals(""))
|
||||
return list;
|
||||
for (String s : list)
|
||||
if (s.toLowerCase().startsWith(prefix.toLowerCase()))
|
||||
if (s.startsWith(prefix))
|
||||
subset.add(s);
|
||||
return subset;
|
||||
}
|
||||
@@ -675,6 +675,7 @@ public final class DataManager implements CoreModule, Listener
|
||||
case "list":
|
||||
case "get":
|
||||
case "set":
|
||||
case "remove":
|
||||
{
|
||||
event.setCompletions(
|
||||
subsetWhereStartsWith(module_index, arguments.length == 3 ? arguments[2] : ""));
|
||||
@@ -688,6 +689,7 @@ public final class DataManager implements CoreModule, Listener
|
||||
{
|
||||
case "get":
|
||||
case "set":
|
||||
case "remove":
|
||||
{
|
||||
Object o = config_data.get(arguments[2]);
|
||||
if (o == null)
|
||||
@@ -769,6 +771,16 @@ public final class DataManager implements CoreModule, Listener
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "remove")
|
||||
public boolean remove(CommandSender sender, String module, String key)
|
||||
{
|
||||
if (removeConfig_(module, key))
|
||||
getLogger().message(sender, "Successfully deleted the config entry §e" + module + "." + key + "§7!");
|
||||
else
|
||||
getLogger().message(sender, true, "Could not delete the config entry §e" + module + "." + key + "§7!");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "remove_all")
|
||||
public boolean remove_all(CommandSender sender, String module)
|
||||
{
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
command ignore {
|
||||
[string:player] {
|
||||
perm utils.ignore;
|
||||
run ignore player;
|
||||
type player;
|
||||
help Ignores or Unignores a player.;
|
||||
}
|
||||
[empty] {
|
||||
perm utils.ignore;
|
||||
run list;
|
||||
type player;
|
||||
help Lists everyone you ignore.;
|
||||
}
|
||||
}
|
||||
command unignore {
|
||||
[string:player] {
|
||||
perm utils.ignore;
|
||||
run unignore player;
|
||||
type player;
|
||||
help Unignore a player.;
|
||||
}
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
package com.redstoner.modules.ignore;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.json.simple.JSONArray;
|
||||
|
||||
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.coremods.moduleLoader.ModuleLoader;
|
||||
import com.redstoner.misc.BroadcastFilter;
|
||||
import com.redstoner.misc.CommandHolderType;
|
||||
import com.redstoner.misc.Utils;
|
||||
import com.redstoner.modules.Module;
|
||||
import com.redstoner.modules.datamanager.DataManager;
|
||||
|
||||
import net.nemez.chatapi.click.Message;
|
||||
|
||||
@Commands(CommandHolderType.File)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
||||
public class Ignore implements Module
|
||||
{
|
||||
|
||||
@Command(hook = "unignore", async = AsyncType.ALWAYS)
|
||||
public boolean unignore(CommandSender sender, String player)
|
||||
{
|
||||
return ignore(sender, player, false);
|
||||
}
|
||||
|
||||
@Command(hook = "ignore", async = AsyncType.ALWAYS)
|
||||
public boolean ignore(CommandSender sender, String player)
|
||||
{
|
||||
return ignore(sender, player, true);
|
||||
}
|
||||
|
||||
@Command(hook = "list", async = AsyncType.ALWAYS)
|
||||
public boolean list(CommandSender sender)
|
||||
{
|
||||
getLogger().message(sender, "§7You are currently ignoring:");
|
||||
|
||||
JSONArray ignores = (JSONArray) DataManager.getOrDefault(sender, "ignores", new JSONArray());
|
||||
|
||||
if (ignores.isEmpty())
|
||||
{
|
||||
new Message(sender, null).appendText(" §7Nobody \\o/").send();
|
||||
return true;
|
||||
}
|
||||
|
||||
String players;
|
||||
OfflinePlayer pi = Bukkit.getOfflinePlayer(UUID.fromString((String) ignores.get(0)));
|
||||
players = " §3" + pi.getName() + "§7";
|
||||
|
||||
for (int i = 1; i < ignores.size(); i++)
|
||||
{
|
||||
OfflinePlayer p = Bukkit.getOfflinePlayer(UUID.fromString((String) ignores.get(i)));
|
||||
players += ", §3" + p.getName() + "§7";
|
||||
}
|
||||
|
||||
Message m = new Message(sender, null);
|
||||
m.appendText(players);
|
||||
m.send();
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked", "deprecation"})
|
||||
public boolean ignore(CommandSender sender, String player, boolean allowIgnore)
|
||||
{
|
||||
JSONArray ignores = (JSONArray) DataManager.getOrDefault(sender, "ignores", new JSONArray());
|
||||
|
||||
Player p = Utils.isUUID(player) ? Bukkit.getPlayer(UUID.fromString(player)) : Bukkit.getPlayer(player);
|
||||
|
||||
OfflinePlayer op = Utils.isUUID(player) ? Bukkit.getOfflinePlayer(UUID.fromString(player))
|
||||
: Bukkit.getOfflinePlayer(player);
|
||||
|
||||
String pName = p != null ? p.getDisplayName() : op.getName();
|
||||
String pUUID = p != null ? p.getUniqueId().toString() : op.getUniqueId().toString();
|
||||
String sUUID = ((Player) sender).getUniqueId().toString();
|
||||
|
||||
if (pUUID.equals(sUUID))
|
||||
{
|
||||
getLogger().message(sender, true, "§7You can't ignore yourself :P");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ignores.contains(pUUID))
|
||||
{
|
||||
ignores.remove(pUUID);
|
||||
getLogger().message(sender, "§7You are no longer ignoring §3" + pName + "§7.");
|
||||
}
|
||||
else if (!allowIgnore)
|
||||
{
|
||||
getLogger().message(sender, "§7You weren't ignoring §3" + pName + "§7.");
|
||||
}
|
||||
else
|
||||
{
|
||||
ignores.add(pUUID);
|
||||
getLogger().message(sender, "§7You are now ignoring §3" + pName + "§7.");
|
||||
}
|
||||
DataManager.setData(sender, "ignores", ignores);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public static BroadcastFilter getIgnoredBy(CommandSender sender)
|
||||
{
|
||||
try
|
||||
{
|
||||
Module mod = ModuleLoader.getModule("Ignore");
|
||||
Method m = mod.getClass().getDeclaredMethod("_getIgnoredBy", CommandSender.class);
|
||||
m.setAccessible(true);
|
||||
return (BroadcastFilter) m.invoke(mod, sender);
|
||||
}
|
||||
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
|
||||
| InvocationTargetException e)
|
||||
{}
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private BroadcastFilter _getIgnoredBy(CommandSender sender)
|
||||
{
|
||||
return new BroadcastFilter()
|
||||
{
|
||||
|
||||
private final String sUUID = sender instanceof Player ? ((Player) sender).getUniqueId().toString()
|
||||
: "CONSOLE";
|
||||
|
||||
@Override
|
||||
public boolean sendTo(CommandSender recipient)
|
||||
{
|
||||
if (sUUID.equals("CONSOLE"))
|
||||
return true;
|
||||
|
||||
if (recipient instanceof Player)
|
||||
{
|
||||
Player player = (Player) recipient;
|
||||
|
||||
if (player.hasPermission("utils.ignore.override"))
|
||||
return true;
|
||||
|
||||
JSONArray ignores = (JSONArray) DataManager.getOrDefault(recipient, "ignores", new JSONArray());
|
||||
return !ignores.contains(sUUID);
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
50
src/com/redstoner/modules/illumination/Illumination.java
Normal file
50
src/com/redstoner/modules/illumination/Illumination.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package com.redstoner.modules.illumination;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
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.CommandHolderType;
|
||||
import com.redstoner.modules.Module;
|
||||
|
||||
@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);
|
||||
|
||||
@Command(hook = "illuminate")
|
||||
public void illuminate(CommandSender sender)
|
||||
{
|
||||
Player player = (Player) sender;
|
||||
if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION))
|
||||
{
|
||||
player.removePotionEffect(PotionEffectType.NIGHT_VISION);
|
||||
getLogger().message(sender, "Night Vision Disabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
player.addPotionEffect(effect, true);
|
||||
getLogger().message(sender, "Night Vision Enabled.");
|
||||
}
|
||||
}
|
||||
|
||||
// @noformat
|
||||
@Override
|
||||
public String getCommandString()
|
||||
{
|
||||
return "command nightvision {\n" +
|
||||
" [empty] {\n" +
|
||||
" run illuminate;\n" +
|
||||
" type player;\n" +
|
||||
" help Gives the player infinte night vision;\n" +
|
||||
" perm utils.illuminate;\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
}
|
||||
// @format
|
||||
}
|
||||
@@ -8,8 +8,6 @@ import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -63,24 +61,17 @@ public class LogHandler extends Thread
|
||||
regex = "^.*" + regex;
|
||||
if (!regex.endsWith("$"))
|
||||
regex += ".*$";
|
||||
boolean singleFile = true;
|
||||
if (fileName.contains("*"))
|
||||
singleFile = false;
|
||||
File logFolder = Logs.getLogsDir();
|
||||
Pattern fileNamePattern;
|
||||
try
|
||||
{
|
||||
fileNamePattern = Pattern.compile(fileName);
|
||||
}
|
||||
catch (PatternSyntaxException e)
|
||||
{
|
||||
Logs.logger.message(sender, true, "An error occured trying to compile the filename pattern!");
|
||||
stillSearching.remove(sender);
|
||||
return;
|
||||
}
|
||||
File[] files = logFolder.listFiles(new FilenameFilter()
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean accept(File dir, String name)
|
||||
{
|
||||
return fileNamePattern.matcher(name).matches();
|
||||
return name.matches(fileName);
|
||||
}
|
||||
});
|
||||
totalFiles = files.length;
|
||||
@@ -94,17 +85,6 @@ public class LogHandler extends Thread
|
||||
Logs.logger.message(sender, "A total of &e" + totalFiles + "&7 files will be searched!");
|
||||
|
||||
boolean progress = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "progress", true);
|
||||
Pattern searchPattern;
|
||||
try
|
||||
{
|
||||
searchPattern = Pattern.compile(regex);
|
||||
}
|
||||
catch (PatternSyntaxException e)
|
||||
{
|
||||
Logs.logger.message(sender, true, "An error occured trying to compile the search pattern!");
|
||||
stillSearching.remove(sender);
|
||||
return;
|
||||
}
|
||||
for (File file : files)
|
||||
{
|
||||
if (file.getName().endsWith(".gz"))
|
||||
@@ -112,13 +92,13 @@ public class LogHandler extends Thread
|
||||
|
||||
BufferedReader inputReader = new BufferedReader(
|
||||
new InputStreamReader(new GZIPInputStream(new FileInputStream(file))));
|
||||
matches += searchStream(inputReader, searchPattern, sender, file.getName());
|
||||
matches += searchStream(inputReader, regex, sender, singleFile, file.getName());
|
||||
inputReader.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
BufferedReader inputReader = new BufferedReader(new FileReader(file));
|
||||
matches += searchStream(inputReader, searchPattern, sender, file.getName());
|
||||
matches += searchStream(inputReader, regex, sender, singleFile, file.getName());
|
||||
inputReader.close();
|
||||
}
|
||||
filesSearched++;
|
||||
@@ -157,8 +137,8 @@ public class LogHandler extends Thread
|
||||
* @param filename the name of the file that is currently being searched
|
||||
* @return how many matches it found
|
||||
* @throws IOException if something goes wrong */
|
||||
private int searchStream(BufferedReader inputReader, Pattern searchPattern, CommandSender sender, String filename)
|
||||
throws IOException
|
||||
private int searchStream(BufferedReader inputReader, String regex, CommandSender sender, boolean singleFile,
|
||||
String filename) throws IOException
|
||||
{
|
||||
String format = (String) DataManager.getOrDefault(Utils.getID(sender), "Logs", "format", Logs.defaultFormat);
|
||||
boolean colors = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "colors", true);
|
||||
@@ -172,7 +152,7 @@ public class LogHandler extends Thread
|
||||
{
|
||||
totalLines++;
|
||||
currentLine++;
|
||||
if (searchPattern.matcher(line).matches())
|
||||
if (line.matches(regex))
|
||||
{
|
||||
if (((p != null) && (!p.isOnline())))
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.redstoner.modules.ModuleLogger;
|
||||
import com.redstoner.modules.datamanager.DataManager;
|
||||
|
||||
@Commands(CommandHolderType.File)
|
||||
@Version(major = 4, minor = 0, revision = 4, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||
public class Logs implements Module
|
||||
{
|
||||
public static final String defaultFormat = "§7 > %f: %r";
|
||||
|
||||
@@ -27,17 +27,4 @@ command reply {
|
||||
help Sends a direct message to the last person you talked to.;
|
||||
perm utils.message;
|
||||
}
|
||||
}
|
||||
|
||||
command pmtoggle {
|
||||
[empty] {
|
||||
help Turns off your toggle.;
|
||||
type player;
|
||||
run pmtoggle_off;
|
||||
}
|
||||
[string:player] {
|
||||
help Turns on your pmtoggle and locks onto <player>.;
|
||||
type player;
|
||||
run pmtoggle player;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,10 @@
|
||||
package com.redstoner.modules.message;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
import com.nemez.cmdmgr.Command;
|
||||
import com.nemez.cmdmgr.Command.AsyncType;
|
||||
@@ -21,15 +16,13 @@ import com.redstoner.misc.CommandHolderType;
|
||||
import com.redstoner.misc.Utils;
|
||||
import com.redstoner.modules.Module;
|
||||
import com.redstoner.modules.datamanager.DataManager;
|
||||
import com.redstoner.modules.ignore.Ignore;
|
||||
import com.redstoner.modules.socialspy.Socialspy;
|
||||
|
||||
@Commands(CommandHolderType.File)
|
||||
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
public class Message implements Module
|
||||
{
|
||||
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<>();
|
||||
HashMap<Player, String> toggles = new HashMap<Player, String>();
|
||||
|
||||
@Command(hook = "message", async = AsyncType.ALWAYS)
|
||||
public boolean message(CommandSender sender, String target, String message)
|
||||
@@ -44,10 +37,6 @@ public class Message implements Module
|
||||
getLogger().message(sender, true, "That player couldn't be found!");
|
||||
return true;
|
||||
}
|
||||
else if (ModuleLoader.exists("Ignore")? !Ignore.getIgnoredBy(sender).sendTo(p) : true) {
|
||||
getLogger().message(sender, true, Utils.getName(p) + " has ignored you. Your message was not sent.");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ModuleLoader.getModule("Socialspy") != null)
|
||||
@@ -88,10 +77,6 @@ public class Message implements Module
|
||||
getLogger().message(sender, true, "You don't have anyone to reply to!");
|
||||
return true;
|
||||
}
|
||||
else if (ModuleLoader.exists("Ignore")? !Ignore.getIgnoredBy(sender).sendTo(target) : true) {
|
||||
getLogger().message(sender, true, Utils.getName(target) + " has ignored you. Your message was not sent.");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ModuleLoader.getModule("Socialspy") != null)
|
||||
@@ -116,56 +101,4 @@ public class Message implements Module
|
||||
replyTargets.put(target, sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS)
|
||||
public boolean pmtoggle_off(CommandSender sender)
|
||||
{
|
||||
Player player = (Player) sender;
|
||||
if (toggles.remove(player) != null)
|
||||
getLogger().message(player, "Your pmtoggle was removed!");
|
||||
else
|
||||
getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle <player> to enabled it.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "pmtoggle", async = AsyncType.ALWAYS)
|
||||
public boolean pmtoggle(CommandSender sender, String player)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if (p == null && !player.equals("CONSOLE"))
|
||||
{
|
||||
getLogger().message(sender, "§cThat player couldn't be found!");
|
||||
return true;
|
||||
}
|
||||
toggles.put((Player) sender, player);
|
||||
getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
if (toggles.containsKey(player))
|
||||
{
|
||||
Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage());
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unlikely-arg-type")
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event)
|
||||
{
|
||||
toggles.remove(event.getPlayer());
|
||||
String player = event.getPlayer().getName();
|
||||
if (toggles.containsValue(player))
|
||||
for (Entry<Player, String> entry : toggles.entrySet())
|
||||
if (entry.getValue().equals(player))
|
||||
{
|
||||
toggles.remove(player);
|
||||
getLogger().message(entry.getKey(),
|
||||
"We removed your pmtoggle for &6" + player + "&7, as they left the game.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
command tempadd {
|
||||
perm pex;
|
||||
[string:user] [string:group] {
|
||||
help Adds a user to a group for 1w.;
|
||||
run tempadddef user group;
|
||||
}
|
||||
[string:user] [string:group] [string:duration] {
|
||||
help Adds a user to a group for a specified duration.;
|
||||
run tempadd user group duration;
|
||||
}
|
||||
}
|
||||
command echo {
|
||||
[string:text...] {
|
||||
help Echoes back to you.;
|
||||
run echo text;
|
||||
}
|
||||
}
|
||||
command ping {
|
||||
[empty] {
|
||||
help Pongs :D;
|
||||
run ping;
|
||||
}
|
||||
[string:password] {
|
||||
help Pongs :D;
|
||||
run ping2 password;
|
||||
}
|
||||
}
|
||||
command sudo {
|
||||
perm utils.sudo;
|
||||
[string:name] [string:command...] {
|
||||
help Sudo'es another user (or console);
|
||||
run sudo name command;
|
||||
}
|
||||
}
|
||||
command hasperm {
|
||||
[flag:-f] [string:name] [string:node] {
|
||||
perm utils.hasperm;
|
||||
run hasperm -f name node;
|
||||
help Checks if a player has a given permission node or not. Returns \"true/false\" in chat. When -f is set, it returns it unformatted.;
|
||||
}
|
||||
}
|
||||
command nightvision {
|
||||
alias nv;
|
||||
[empty] {
|
||||
run illuminate;
|
||||
type player;
|
||||
help Gives the player infinte night vision;
|
||||
perm utils.illuminate;
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,6 @@ import org.bukkit.event.block.BlockFromToEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -28,12 +26,13 @@ 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.File)
|
||||
@Commands(CommandHolderType.String)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
||||
public class Misc implements Module, Listener
|
||||
{
|
||||
private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop",
|
||||
@@ -169,6 +168,36 @@ public class Misc implements Module, Listener
|
||||
return ((CraftPlayer) player).getHandle().ping;
|
||||
}
|
||||
|
||||
@Command(hook = "me")
|
||||
public boolean me(CommandSender sender, String text)
|
||||
{
|
||||
String name;
|
||||
if (sender instanceof Player)
|
||||
name = ((Player) sender).getDisplayName();
|
||||
else
|
||||
name = "§9" + sender.getName();
|
||||
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 = 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" + ChatAPI.colorify(sender, name) + "§7]: ", "§r" + ChatAPI.colorify(null, message),
|
||||
null);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "sudo")
|
||||
public boolean sudo(CommandSender sender, String name, String command)
|
||||
{
|
||||
@@ -261,21 +290,73 @@ public class Misc implements Module, Listener
|
||||
return event.isCancelled();
|
||||
}
|
||||
|
||||
PotionEffect nightvision = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false);
|
||||
|
||||
@Command(hook = "illuminate")
|
||||
public void illuminate(CommandSender sender)
|
||||
// @noformat
|
||||
@Override
|
||||
public String getCommandString()
|
||||
{
|
||||
Player player = (Player) sender;
|
||||
if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION))
|
||||
{
|
||||
player.removePotionEffect(PotionEffectType.NIGHT_VISION);
|
||||
getLogger().message(sender, "Night Vision Disabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
player.addPotionEffect(nightvision, true);
|
||||
getLogger().message(sender, "Night Vision Enabled.");
|
||||
}
|
||||
return "command tempadd {\n" +
|
||||
" perm pex;\n" +
|
||||
" [string:user] [string:group] {\n" +
|
||||
" help Adds a user to a group for 1w.;\n" +
|
||||
" run tempadddef user group;\n" +
|
||||
" }\n" +
|
||||
" [string:user] [string:group] [string:duration] {\n" +
|
||||
" help Adds a user to a group for a specified duration.;\n" +
|
||||
" run tempadd user group duration;\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"command echo {\n" +
|
||||
" [string:text...] {\n" +
|
||||
" help Echoes back to you.;\n" +
|
||||
" run echo text;\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"command ping {\n" +
|
||||
" [empty] {\n" +
|
||||
" help Pongs :D;\n" +
|
||||
" run ping;\n" +
|
||||
" }\n" +
|
||||
" [string:password] {\n" +
|
||||
" help Pongs :D;\n" +
|
||||
" run ping2 password;\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"command me {\n" +
|
||||
" perm utils.me;\n" +
|
||||
" [string:text...] {\n" +
|
||||
" help /me's in chat.;\n" +
|
||||
" run me text;\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"command sudo {\n" +
|
||||
" perm utils.sudo;\n" +
|
||||
" [string:name] [string:command...] {\n" +
|
||||
" help Sudo'es another user (or console);\n" +
|
||||
" run sudo name command;\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"command hasperm {\n" +
|
||||
" [flag:-f] [string:name] [string:node] {\n" +
|
||||
" perm utils.hasperm;\n" +
|
||||
" run hasperm -f name node;\n" +
|
||||
" help Checks if a player has a given permission node or not. Returns \"true/false\" in chat. When -f is set, it returns it unformatted.;\n" +
|
||||
" }\n" +
|
||||
"}" +
|
||||
"command say {\n" +
|
||||
" [string:message...] {\n" +
|
||||
" perm utils.say;\n" +
|
||||
" run say message;\n" +
|
||||
" help A replacement for the default say command to make the format be more consistant.;\n" +
|
||||
" }\n" +
|
||||
"}" +
|
||||
"command sayn {\n" +
|
||||
" [string:name] [string:message...] {\n" +
|
||||
" perm utils.sayn;\n" +
|
||||
" type console;\n" +
|
||||
" run sayn name message;\n" +
|
||||
" help A replacement for the default say command to make the format be more consistant.;\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
// @format
|
||||
}
|
||||
|
||||
@@ -17,10 +17,9 @@ import com.redstoner.annotations.Version;
|
||||
import com.redstoner.misc.JsonManager;
|
||||
import com.redstoner.misc.Main;
|
||||
import com.redstoner.modules.Module;
|
||||
import com.redstoner.modules.datamanager.DataManager;
|
||||
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||
@SuppressWarnings("unchecked")
|
||||
public class OnlinePlayers implements Module, Listener
|
||||
{
|
||||
@@ -34,7 +33,7 @@ public class OnlinePlayers implements Module, Listener
|
||||
saveFile = new File(Main.plugin.getDataFolder(), "players.json");
|
||||
output = new JSONObject();
|
||||
players = new JSONArray();
|
||||
output.put("dataFormat", "v2");
|
||||
output.put("dataFormat", "v1");
|
||||
rescan();
|
||||
}
|
||||
|
||||
@@ -64,8 +63,6 @@ public class OnlinePlayers implements Module, Listener
|
||||
jsonPlayer.put("name", player.getName());
|
||||
jsonPlayer.put("UUID", player.getUniqueId().toString());
|
||||
jsonPlayer.put("joined", System.currentTimeMillis());
|
||||
jsonPlayer.put("vanished", DataManager.getState(player, "vanished"));
|
||||
jsonPlayer.put("afk", DataManager.getState(player, "afk"));
|
||||
players.add(jsonPlayer);
|
||||
save();
|
||||
}
|
||||
|
||||
102
src/com/redstoner/modules/pmtoggle/Pmtoggle.java
Normal file
102
src/com/redstoner/modules/pmtoggle/Pmtoggle.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package com.redstoner.modules.pmtoggle;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
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.AsyncPlayerChatEvent;
|
||||
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.CommandHolderType;
|
||||
import com.redstoner.modules.Module;
|
||||
|
||||
@Commands(CommandHolderType.String)
|
||||
@AutoRegisterListener
|
||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
||||
public class Pmtoggle implements Module, Listener
|
||||
{
|
||||
HashMap<Player, String> toggles = new HashMap<Player, String>();
|
||||
|
||||
@Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS)
|
||||
public boolean pmtoggle_off(CommandSender sender)
|
||||
{
|
||||
Player player = (Player) sender;
|
||||
if (toggles.remove(player) != null)
|
||||
getLogger().message(player, "Your pmtoggle was removed!");
|
||||
else
|
||||
getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle <player> to enabled it.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "pmtoggle", async = AsyncType.ALWAYS)
|
||||
public boolean pmtoggle(CommandSender sender, String player)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if (p == null && !player.equals("CONSOLE"))
|
||||
{
|
||||
getLogger().message(sender, "§cThat player couldn't be found!");
|
||||
return true;
|
||||
}
|
||||
toggles.put((Player) sender, player);
|
||||
getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
if (toggles.containsKey(player))
|
||||
{
|
||||
Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage());
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event)
|
||||
{
|
||||
toggles.remove(event.getPlayer());
|
||||
String player = event.getPlayer().getName();
|
||||
if (toggles.containsValue(player))
|
||||
{
|
||||
for (Entry<Player, String> entry : toggles.entrySet())
|
||||
{
|
||||
if (entry.getValue().equals(player))
|
||||
{
|
||||
toggles.remove(player);
|
||||
getLogger().message(entry.getKey(),
|
||||
"We removed your pmtoggle for &6" + player + "&7, as they left the game.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @noformat
|
||||
@Override
|
||||
public String getCommandString()
|
||||
{
|
||||
return "command pmtoggle {\n" +
|
||||
" [empty] {\n" +
|
||||
" help Turns off your toggle.;\n" +
|
||||
" type player;\n" +
|
||||
" run pmtoggle_off;\n" +
|
||||
" }\n" +
|
||||
" [string:player] {\n" +
|
||||
" help Turns on your pmtoggle and locks onto <player>.;\n" +
|
||||
" type player;\n" +
|
||||
" run pmtoggle player;\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
}
|
||||
// @format
|
||||
}
|
||||
@@ -26,7 +26,7 @@ import net.md_5.bungee.api.ChatColor;
|
||||
*
|
||||
* @author Redempt */
|
||||
@Commands(CommandHolderType.String)
|
||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
||||
public class Reports implements Module
|
||||
{
|
||||
private int task = 0;
|
||||
@@ -40,9 +40,13 @@ public class Reports implements Module
|
||||
reports = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "reports.json"));
|
||||
archived = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "archived_reports.json"));
|
||||
if (reports == null)
|
||||
{
|
||||
reports = new JSONArray();
|
||||
}
|
||||
if (archived == null)
|
||||
{
|
||||
archived = new JSONArray();
|
||||
}
|
||||
// Notify online staff of open reports
|
||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.plugin, () ->
|
||||
{
|
||||
@@ -54,13 +58,11 @@ public class Reports implements Module
|
||||
{
|
||||
if (player.hasPermission("utils.report"))
|
||||
{
|
||||
getLogger().message(player, "&cThere are &e" + reports.size()
|
||||
+ " &copen reports!");
|
||||
player.sendMessage(ChatColor.RED + "There are " + ChatColor.YELLOW + reports.size() + ChatColor.RED
|
||||
+ " open reports!");
|
||||
}
|
||||
}
|
||||
getLogger().info("&cThere are &e" + reports.size()
|
||||
+ " &copen reports!");
|
||||
}, 2400, 2400);
|
||||
} , 2400, 2400);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -90,7 +92,7 @@ public class Reports implements Module
|
||||
Player player = (Player) sender;
|
||||
if (id > reports.size() - 1 || id < 0)
|
||||
{
|
||||
getLogger().message(sender, true, "Invalid ID!");
|
||||
sender.sendMessage(ChatColor.RED + "Invalid ID!");
|
||||
return;
|
||||
}
|
||||
JSONObject report = (JSONObject) reports.get(id);
|
||||
@@ -112,7 +114,7 @@ public class Reports implements Module
|
||||
// Check for invalid ID
|
||||
if (id > reports.size() - 1 || id < 0)
|
||||
{
|
||||
getLogger().message(sender, true, "Invalid ID!");
|
||||
sender.sendMessage(ChatColor.RED + "Invalid ID!");
|
||||
return;
|
||||
}
|
||||
// Move report to archived reports
|
||||
|
||||
Reference in New Issue
Block a user