Reverted reversion of reverted revert. Aka "un-deleted" everything
This commit is contained in:
@@ -30,10 +30,10 @@ import com.redstoner.modules.datamanager.DataManager;
|
|||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@Commands(CommandHolderType.File)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 4, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 5, compatible = 5)
|
||||||
public class AFK implements Module, Listener
|
public class AFK implements Module, Listener
|
||||||
{
|
{
|
||||||
private CustomListener listener = new CustomListener();
|
private CustomListener listener;
|
||||||
boolean move = true, look = false;
|
boolean move = true, look = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -43,7 +43,7 @@ public class AFK implements Module, Listener
|
|||||||
DataManager.setConfig("indicator", "&7[AFK]");
|
DataManager.setConfig("indicator", "&7[AFK]");
|
||||||
String[] choices = new String[] {"listen", "ignore"};
|
String[] choices = new String[] {"listen", "ignore"};
|
||||||
DataManager.setConfig("move", "listen", choices);
|
DataManager.setConfig("move", "listen", choices);
|
||||||
DataManager.setConfig("look", "listen", choices);
|
DataManager.setConfig("look", "ignore", choices);
|
||||||
DataManager.setConfig("chat", "listen", choices);
|
DataManager.setConfig("chat", "listen", choices);
|
||||||
DataManager.setConfig("interact", "listen", choices);
|
DataManager.setConfig("interact", "listen", choices);
|
||||||
DataManager.setConfig("command", "ignore", choices);
|
DataManager.setConfig("command", "ignore", choices);
|
||||||
@@ -53,10 +53,10 @@ public class AFK implements Module, Listener
|
|||||||
public void migrate(Version old)
|
public void migrate(Version old)
|
||||||
{
|
{
|
||||||
Module.super.migrate(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"};
|
String[] choices = new String[] {"listen", "ignore"};
|
||||||
DataManager.setConfig("look", "listen", choices);
|
DataManager.setConfig("look", "ignore", choices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,6 +64,7 @@ public class AFK implements Module, Listener
|
|||||||
public void postEnable()
|
public void postEnable()
|
||||||
{
|
{
|
||||||
Module.super.postEnable();
|
Module.super.postEnable();
|
||||||
|
listener = new CustomListener();
|
||||||
update_afk_listeners(Bukkit.getConsoleSender());
|
update_afk_listeners(Bukkit.getConsoleSender());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import com.redstoner.modules.Module;
|
|||||||
* @author Pepich */
|
* @author Pepich */
|
||||||
@Commands(CommandHolderType.String)
|
@Commands(CommandHolderType.String)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||||
public class BuildChat implements Module, Listener
|
public class BuildChat implements Module, Listener
|
||||||
{
|
{
|
||||||
private static final char defaultKey = ';';
|
private static final char defaultKey = ';';
|
||||||
@@ -45,7 +45,7 @@ public class BuildChat implements Module, Listener
|
|||||||
keys = new JSONObject();
|
keys = new JSONObject();
|
||||||
saveKeys();
|
saveKeys();
|
||||||
}
|
}
|
||||||
bctoggled = new ArrayList<UUID>();
|
bctoggled = new ArrayList<>();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ public class BuildChat implements Module, Listener
|
|||||||
@Command(hook = "bct_off")
|
@Command(hook = "bct_off")
|
||||||
public boolean bcToggleOffCommand(CommandSender sender)
|
public boolean bcToggleOffCommand(CommandSender sender)
|
||||||
{
|
{
|
||||||
if (bctoggled.remove(((Player) sender).getUniqueId().toString()))
|
if (bctoggled.remove(((Player) sender).getUniqueId()))
|
||||||
getLogger().message(sender, "BCT now §cdisabled");
|
getLogger().message(sender, "BCT now §cdisabled");
|
||||||
else
|
else
|
||||||
getLogger().message(sender, "BCT was already disabled");
|
getLogger().message(sender, "BCT was already disabled");
|
||||||
|
|||||||
53
src/com/redstoner/modules/chat/Chat.cmd
Normal file
53
src/com/redstoner/modules/chat/Chat.cmd
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
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.;
|
||||||
|
}
|
||||||
|
}
|
||||||
136
src/com/redstoner/modules/chat/Chat.java
Normal file
136
src/com/redstoner/modules/chat/Chat.java
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
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)
|
@Commands(CommandHolderType.String)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||||
public class Chatalias implements Module, Listener
|
public class Chatalias implements Module, Listener
|
||||||
{
|
{
|
||||||
private final String[] commands = new String[] {"e?r", "e?m .+?", "e?t", "e?w", "e?msg .+?", "e?message .+?",
|
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"};
|
"e?whisper .+?", "e?me", "cgsay", "ac", "bc, say, sayn .+?, chat, shrug"};
|
||||||
private JSONObject aliases = new JSONObject();
|
private JSONObject aliases = new JSONObject();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.redstoner.misc.JsonManager;
|
|||||||
import com.redstoner.misc.Main;
|
import com.redstoner.misc.Main;
|
||||||
import com.redstoner.misc.Utils;
|
import com.redstoner.misc.Utils;
|
||||||
import com.redstoner.modules.Module;
|
import com.redstoner.modules.Module;
|
||||||
|
import com.redstoner.modules.ignore.Ignore;
|
||||||
import com.redstoner.modules.socialspy.Socialspy;
|
import com.redstoner.modules.socialspy.Socialspy;
|
||||||
|
|
||||||
import net.nemez.chatapi.ChatAPI;
|
import net.nemez.chatapi.ChatAPI;
|
||||||
@@ -33,7 +34,7 @@ import net.nemez.chatapi.ChatAPI;
|
|||||||
* @author Pepich */
|
* @author Pepich */
|
||||||
@Commands(CommandHolderType.String)
|
@Commands(CommandHolderType.String)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
||||||
public class Chatgroups implements Module, Listener
|
public class Chatgroups implements Module, Listener
|
||||||
{
|
{
|
||||||
private static final char defaultKey = ':';
|
private static final char defaultKey = ':';
|
||||||
@@ -358,13 +359,16 @@ public class Chatgroups implements Module, Listener
|
|||||||
String name = Utils.getName(sender);
|
String name = Utils.getName(sender);
|
||||||
String group = getGroup(sender);
|
String group = getGroup(sender);
|
||||||
message = ChatAPI.colorify(null, message);
|
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()
|
Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean sendTo(CommandSender recipient)
|
public boolean sendTo(CommandSender recipient)
|
||||||
{
|
{
|
||||||
|
|
||||||
String rgroup = getGroup(recipient);
|
String rgroup = getGroup(recipient);
|
||||||
if (rgroup != null)
|
if ( rgroup != null && (ignore == null? true : ignore.sendTo(recipient)) )
|
||||||
return rgroup.equals(group);
|
return rgroup.equals(group);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -31,8 +31,4 @@ command config {
|
|||||||
type console;
|
type console;
|
||||||
help Deletes all config settings of a given module.;
|
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)
|
@Commands(CommandHolderType.Stream)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 1, revision = 4, compatible = 4)
|
@Version(major = 4, minor = 1, revision = 5, compatible = 4)
|
||||||
public final class DataManager implements CoreModule, Listener
|
public final class DataManager implements CoreModule, Listener
|
||||||
{
|
{
|
||||||
protected final File dataFolder = new File(Main.plugin.getDataFolder(), "data");
|
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(""))
|
if (prefix == null || prefix.equals(""))
|
||||||
return list;
|
return list;
|
||||||
for (String s : list)
|
for (String s : list)
|
||||||
if (s.startsWith(prefix))
|
if (s.toLowerCase().startsWith(prefix.toLowerCase()))
|
||||||
subset.add(s);
|
subset.add(s);
|
||||||
return subset;
|
return subset;
|
||||||
}
|
}
|
||||||
@@ -675,7 +675,6 @@ public final class DataManager implements CoreModule, Listener
|
|||||||
case "list":
|
case "list":
|
||||||
case "get":
|
case "get":
|
||||||
case "set":
|
case "set":
|
||||||
case "remove":
|
|
||||||
{
|
{
|
||||||
event.setCompletions(
|
event.setCompletions(
|
||||||
subsetWhereStartsWith(module_index, arguments.length == 3 ? arguments[2] : ""));
|
subsetWhereStartsWith(module_index, arguments.length == 3 ? arguments[2] : ""));
|
||||||
@@ -689,7 +688,6 @@ public final class DataManager implements CoreModule, Listener
|
|||||||
{
|
{
|
||||||
case "get":
|
case "get":
|
||||||
case "set":
|
case "set":
|
||||||
case "remove":
|
|
||||||
{
|
{
|
||||||
Object o = config_data.get(arguments[2]);
|
Object o = config_data.get(arguments[2]);
|
||||||
if (o == null)
|
if (o == null)
|
||||||
@@ -771,16 +769,6 @@ public final class DataManager implements CoreModule, Listener
|
|||||||
return true;
|
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")
|
@Command(hook = "remove_all")
|
||||||
public boolean remove_all(CommandSender sender, String module)
|
public boolean remove_all(CommandSender sender, String module)
|
||||||
{
|
{
|
||||||
|
|||||||
22
src/com/redstoner/modules/ignore/Ignore.cmd
Normal file
22
src/com/redstoner/modules/ignore/Ignore.cmd
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
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.;
|
||||||
|
}
|
||||||
|
}
|
||||||
159
src/com/redstoner/modules/ignore/Ignore.java
Normal file
159
src/com/redstoner/modules/ignore/Ignore.java
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,6 +8,8 @@ import java.io.FilenameFilter;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.regex.PatternSyntaxException;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -61,17 +63,24 @@ public class LogHandler extends Thread
|
|||||||
regex = "^.*" + regex;
|
regex = "^.*" + regex;
|
||||||
if (!regex.endsWith("$"))
|
if (!regex.endsWith("$"))
|
||||||
regex += ".*$";
|
regex += ".*$";
|
||||||
boolean singleFile = true;
|
|
||||||
if (fileName.contains("*"))
|
|
||||||
singleFile = false;
|
|
||||||
File logFolder = Logs.getLogsDir();
|
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()
|
File[] files = logFolder.listFiles(new FilenameFilter()
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File dir, String name)
|
public boolean accept(File dir, String name)
|
||||||
{
|
{
|
||||||
return name.matches(fileName);
|
return fileNamePattern.matcher(name).matches();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
totalFiles = files.length;
|
totalFiles = files.length;
|
||||||
@@ -85,6 +94,17 @@ public class LogHandler extends Thread
|
|||||||
Logs.logger.message(sender, "A total of &e" + totalFiles + "&7 files will be searched!");
|
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);
|
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)
|
for (File file : files)
|
||||||
{
|
{
|
||||||
if (file.getName().endsWith(".gz"))
|
if (file.getName().endsWith(".gz"))
|
||||||
@@ -92,13 +112,13 @@ public class LogHandler extends Thread
|
|||||||
|
|
||||||
BufferedReader inputReader = new BufferedReader(
|
BufferedReader inputReader = new BufferedReader(
|
||||||
new InputStreamReader(new GZIPInputStream(new FileInputStream(file))));
|
new InputStreamReader(new GZIPInputStream(new FileInputStream(file))));
|
||||||
matches += searchStream(inputReader, regex, sender, singleFile, file.getName());
|
matches += searchStream(inputReader, searchPattern, sender, file.getName());
|
||||||
inputReader.close();
|
inputReader.close();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BufferedReader inputReader = new BufferedReader(new FileReader(file));
|
BufferedReader inputReader = new BufferedReader(new FileReader(file));
|
||||||
matches += searchStream(inputReader, regex, sender, singleFile, file.getName());
|
matches += searchStream(inputReader, searchPattern, sender, file.getName());
|
||||||
inputReader.close();
|
inputReader.close();
|
||||||
}
|
}
|
||||||
filesSearched++;
|
filesSearched++;
|
||||||
@@ -137,8 +157,8 @@ public class LogHandler extends Thread
|
|||||||
* @param filename the name of the file that is currently being searched
|
* @param filename the name of the file that is currently being searched
|
||||||
* @return how many matches it found
|
* @return how many matches it found
|
||||||
* @throws IOException if something goes wrong */
|
* @throws IOException if something goes wrong */
|
||||||
private int searchStream(BufferedReader inputReader, String regex, CommandSender sender, boolean singleFile,
|
private int searchStream(BufferedReader inputReader, Pattern searchPattern, CommandSender sender, String filename)
|
||||||
String filename) throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
String format = (String) DataManager.getOrDefault(Utils.getID(sender), "Logs", "format", Logs.defaultFormat);
|
String format = (String) DataManager.getOrDefault(Utils.getID(sender), "Logs", "format", Logs.defaultFormat);
|
||||||
boolean colors = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "colors", true);
|
boolean colors = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "colors", true);
|
||||||
@@ -152,7 +172,7 @@ public class LogHandler extends Thread
|
|||||||
{
|
{
|
||||||
totalLines++;
|
totalLines++;
|
||||||
currentLine++;
|
currentLine++;
|
||||||
if (line.matches(regex))
|
if (searchPattern.matcher(line).matches())
|
||||||
{
|
{
|
||||||
if (((p != null) && (!p.isOnline())))
|
if (((p != null) && (!p.isOnline())))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import com.redstoner.modules.ModuleLogger;
|
|||||||
import com.redstoner.modules.datamanager.DataManager;
|
import com.redstoner.modules.datamanager.DataManager;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@Commands(CommandHolderType.File)
|
||||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 4, compatible = 4)
|
||||||
public class Logs implements Module
|
public class Logs implements Module
|
||||||
{
|
{
|
||||||
public static final String defaultFormat = "§7 > %f: %r";
|
public static final String defaultFormat = "§7 > %f: %r";
|
||||||
|
|||||||
@@ -27,4 +27,17 @@ command reply {
|
|||||||
help Sends a direct message to the last person you talked to.;
|
help Sends a direct message to the last person you talked to.;
|
||||||
perm utils.message;
|
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,10 +1,15 @@
|
|||||||
package com.redstoner.modules.message;
|
package com.redstoner.modules.message;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.CommandSender;
|
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;
|
||||||
import com.nemez.cmdmgr.Command.AsyncType;
|
import com.nemez.cmdmgr.Command.AsyncType;
|
||||||
@@ -16,13 +21,15 @@ import com.redstoner.misc.CommandHolderType;
|
|||||||
import com.redstoner.misc.Utils;
|
import com.redstoner.misc.Utils;
|
||||||
import com.redstoner.modules.Module;
|
import com.redstoner.modules.Module;
|
||||||
import com.redstoner.modules.datamanager.DataManager;
|
import com.redstoner.modules.datamanager.DataManager;
|
||||||
|
import com.redstoner.modules.ignore.Ignore;
|
||||||
import com.redstoner.modules.socialspy.Socialspy;
|
import com.redstoner.modules.socialspy.Socialspy;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@Commands(CommandHolderType.File)
|
||||||
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
||||||
public class Message implements Module
|
public class Message implements Module
|
||||||
{
|
{
|
||||||
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<>();
|
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<>();
|
||||||
|
HashMap<Player, String> toggles = new HashMap<Player, String>();
|
||||||
|
|
||||||
@Command(hook = "message", async = AsyncType.ALWAYS)
|
@Command(hook = "message", async = AsyncType.ALWAYS)
|
||||||
public boolean message(CommandSender sender, String target, String message)
|
public boolean message(CommandSender sender, String target, String message)
|
||||||
@@ -37,6 +44,10 @@ public class Message implements Module
|
|||||||
getLogger().message(sender, true, "That player couldn't be found!");
|
getLogger().message(sender, true, "That player couldn't be found!");
|
||||||
return true;
|
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
|
else
|
||||||
{
|
{
|
||||||
if (ModuleLoader.getModule("Socialspy") != null)
|
if (ModuleLoader.getModule("Socialspy") != null)
|
||||||
@@ -77,6 +88,10 @@ public class Message implements Module
|
|||||||
getLogger().message(sender, true, "You don't have anyone to reply to!");
|
getLogger().message(sender, true, "You don't have anyone to reply to!");
|
||||||
return true;
|
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
|
else
|
||||||
{
|
{
|
||||||
if (ModuleLoader.getModule("Socialspy") != null)
|
if (ModuleLoader.getModule("Socialspy") != null)
|
||||||
@@ -101,4 +116,56 @@ public class Message implements Module
|
|||||||
replyTargets.put(target, sender);
|
replyTargets.put(target, sender);
|
||||||
return true;
|
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.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
50
src/com/redstoner/modules/misc/Misc.cmd
Normal file
50
src/com/redstoner/modules/misc/Misc.cmd
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
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,6 +16,8 @@ import org.bukkit.event.block.BlockFromToEvent;
|
|||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
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.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
@@ -26,13 +28,12 @@ import com.redstoner.annotations.Version;
|
|||||||
import com.redstoner.misc.CommandHolderType;
|
import com.redstoner.misc.CommandHolderType;
|
||||||
import com.redstoner.misc.Utils;
|
import com.redstoner.misc.Utils;
|
||||||
import com.redstoner.modules.Module;
|
import com.redstoner.modules.Module;
|
||||||
|
|
||||||
import net.nemez.chatapi.ChatAPI;
|
import net.nemez.chatapi.ChatAPI;
|
||||||
import net.nemez.chatapi.click.Message;
|
import net.nemez.chatapi.click.Message;
|
||||||
|
|
||||||
@Commands(CommandHolderType.String)
|
@Commands(CommandHolderType.File)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
|
||||||
public class Misc implements Module, Listener
|
public class Misc implements Module, Listener
|
||||||
{
|
{
|
||||||
private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop",
|
private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop",
|
||||||
@@ -168,36 +169,6 @@ public class Misc implements Module, Listener
|
|||||||
return ((CraftPlayer) player).getHandle().ping;
|
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")
|
@Command(hook = "sudo")
|
||||||
public boolean sudo(CommandSender sender, String name, String command)
|
public boolean sudo(CommandSender sender, String name, String command)
|
||||||
{
|
{
|
||||||
@@ -290,73 +261,21 @@ public class Misc implements Module, Listener
|
|||||||
return event.isCancelled();
|
return event.isCancelled();
|
||||||
}
|
}
|
||||||
|
|
||||||
// @noformat
|
PotionEffect nightvision = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false);
|
||||||
@Override
|
|
||||||
public String getCommandString()
|
@Command(hook = "illuminate")
|
||||||
|
public void illuminate(CommandSender sender)
|
||||||
{
|
{
|
||||||
return "command tempadd {\n" +
|
Player player = (Player) sender;
|
||||||
" perm pex;\n" +
|
if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION))
|
||||||
" [string:user] [string:group] {\n" +
|
{
|
||||||
" help Adds a user to a group for 1w.;\n" +
|
player.removePotionEffect(PotionEffectType.NIGHT_VISION);
|
||||||
" run tempadddef user group;\n" +
|
getLogger().message(sender, "Night Vision Disabled.");
|
||||||
" }\n" +
|
}
|
||||||
" [string:user] [string:group] [string:duration] {\n" +
|
else
|
||||||
" help Adds a user to a group for a specified duration.;\n" +
|
{
|
||||||
" run tempadd user group duration;\n" +
|
player.addPotionEffect(nightvision, true);
|
||||||
" }\n" +
|
getLogger().message(sender, "Night Vision Enabled.");
|
||||||
"}\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,9 +17,10 @@ import com.redstoner.annotations.Version;
|
|||||||
import com.redstoner.misc.JsonManager;
|
import com.redstoner.misc.JsonManager;
|
||||||
import com.redstoner.misc.Main;
|
import com.redstoner.misc.Main;
|
||||||
import com.redstoner.modules.Module;
|
import com.redstoner.modules.Module;
|
||||||
|
import com.redstoner.modules.datamanager.DataManager;
|
||||||
|
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 4, minor = 0, revision = 2, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class OnlinePlayers implements Module, Listener
|
public class OnlinePlayers implements Module, Listener
|
||||||
{
|
{
|
||||||
@@ -33,7 +34,7 @@ public class OnlinePlayers implements Module, Listener
|
|||||||
saveFile = new File(Main.plugin.getDataFolder(), "players.json");
|
saveFile = new File(Main.plugin.getDataFolder(), "players.json");
|
||||||
output = new JSONObject();
|
output = new JSONObject();
|
||||||
players = new JSONArray();
|
players = new JSONArray();
|
||||||
output.put("dataFormat", "v1");
|
output.put("dataFormat", "v2");
|
||||||
rescan();
|
rescan();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,6 +64,8 @@ public class OnlinePlayers implements Module, Listener
|
|||||||
jsonPlayer.put("name", player.getName());
|
jsonPlayer.put("name", player.getName());
|
||||||
jsonPlayer.put("UUID", player.getUniqueId().toString());
|
jsonPlayer.put("UUID", player.getUniqueId().toString());
|
||||||
jsonPlayer.put("joined", System.currentTimeMillis());
|
jsonPlayer.put("joined", System.currentTimeMillis());
|
||||||
|
jsonPlayer.put("vanished", DataManager.getState(player, "vanished"));
|
||||||
|
jsonPlayer.put("afk", DataManager.getState(player, "afk"));
|
||||||
players.add(jsonPlayer);
|
players.add(jsonPlayer);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import net.md_5.bungee.api.ChatColor;
|
|||||||
*
|
*
|
||||||
* @author Redempt */
|
* @author Redempt */
|
||||||
@Commands(CommandHolderType.String)
|
@Commands(CommandHolderType.String)
|
||||||
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
|
||||||
public class Reports implements Module
|
public class Reports implements Module
|
||||||
{
|
{
|
||||||
private int task = 0;
|
private int task = 0;
|
||||||
@@ -40,13 +40,9 @@ public class Reports implements Module
|
|||||||
reports = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "reports.json"));
|
reports = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "reports.json"));
|
||||||
archived = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "archived_reports.json"));
|
archived = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "archived_reports.json"));
|
||||||
if (reports == null)
|
if (reports == null)
|
||||||
{
|
|
||||||
reports = new JSONArray();
|
reports = new JSONArray();
|
||||||
}
|
|
||||||
if (archived == null)
|
if (archived == null)
|
||||||
{
|
|
||||||
archived = new JSONArray();
|
archived = new JSONArray();
|
||||||
}
|
|
||||||
// Notify online staff of open reports
|
// Notify online staff of open reports
|
||||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.plugin, () ->
|
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.plugin, () ->
|
||||||
{
|
{
|
||||||
@@ -58,11 +54,13 @@ public class Reports implements Module
|
|||||||
{
|
{
|
||||||
if (player.hasPermission("utils.report"))
|
if (player.hasPermission("utils.report"))
|
||||||
{
|
{
|
||||||
player.sendMessage(ChatColor.RED + "There are " + ChatColor.YELLOW + reports.size() + ChatColor.RED
|
getLogger().message(player, "&cThere are &e" + reports.size()
|
||||||
+ " open reports!");
|
+ " &copen reports!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} , 2400, 2400);
|
getLogger().info("&cThere are &e" + reports.size()
|
||||||
|
+ " &copen reports!");
|
||||||
|
}, 2400, 2400);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +90,7 @@ public class Reports implements Module
|
|||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (id > reports.size() - 1 || id < 0)
|
if (id > reports.size() - 1 || id < 0)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.RED + "Invalid ID!");
|
getLogger().message(sender, true, "Invalid ID!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
JSONObject report = (JSONObject) reports.get(id);
|
JSONObject report = (JSONObject) reports.get(id);
|
||||||
@@ -114,7 +112,7 @@ public class Reports implements Module
|
|||||||
// Check for invalid ID
|
// Check for invalid ID
|
||||||
if (id > reports.size() - 1 || id < 0)
|
if (id > reports.size() - 1 || id < 0)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.RED + "Invalid ID!");
|
getLogger().message(sender, true, "Invalid ID!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Move report to archived reports
|
// Move report to archived reports
|
||||||
|
|||||||
Reference in New Issue
Block a user