Archived
0

Reverted merge.

This commit is contained in:
Logan Fick
2018-01-28 22:07:25 -05:00
parent 1e565cc98e
commit b0b140fbf3
20 changed files with 307 additions and 584 deletions

View File

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

View File

@@ -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");

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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
}

View File

@@ -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())))
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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
}

View File

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