diff options
Diffstat (limited to 'src')
13 files changed, 145 insertions, 45 deletions
diff --git a/src/main/java/com/redstoner/modules/afk/AFK.cmd b/src/main/java/com/redstoner/modules/afk/AFK.cmd index 6353e33..c9921e5 100644 --- a/src/main/java/com/redstoner/modules/afk/AFK.cmd +++ b/src/main/java/com/redstoner/modules/afk/AFK.cmd @@ -13,6 +13,14 @@ command afk { run afksilent -s; } + [optional:-s] [bool:ignoreMovement] { + run afkignore -s ignoreMovement; + } + + [optional:-s] [bool:ignoreMovement] [string:reason...] { + run afkfull -s ignoreMovement reason; + } + [optional:-s] [string:reason...] { run afkreason -s reason; } diff --git a/src/main/java/com/redstoner/modules/afk/AFK.java b/src/main/java/com/redstoner/modules/afk/AFK.java index ee96137..417f32e 100644 --- a/src/main/java/com/redstoner/modules/afk/AFK.java +++ b/src/main/java/com/redstoner/modules/afk/AFK.java @@ -15,7 +15,7 @@ import org.bukkit.event.HandlerList; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 1, revision = 0, compatible = 4) public class AFK implements Module { private AFKListener listener; @@ -63,11 +63,52 @@ public class AFK implements Module { return afk(sender, silent, ""); } + @Command(hook = "afkignore") + public boolean afk(CommandSender sender, boolean silent, boolean ignoreMovement) { + return afk(sender, silent, ignoreMovement, ""); + } + @Command(hook = "afkreason") public boolean afk(CommandSender sender, boolean silent, String reason) { - if (AFKUtil.isAfk(sender)) { + if (silent == false && reason.equals("help")) + return false; + + return afkmain(sender, silent, reason, false); + } + + @Command(hook = "afkfull") + public boolean afk(CommandSender sender, boolean silent, boolean ignoreMovement, String reason) { + boolean oldIgnoringMovement = AFKUtil.isIgnoringMovement(sender); + DataManager.setState(sender, "afk_ignoreMovement", ignoreMovement); + + if (AFKUtil.isAfk(sender) && oldIgnoringMovement != ignoreMovement) { + if (ignoreMovement) + getLogger().message(sender, "Your movements will now be ignored."); + else + getLogger().message(sender, "Your movements will no longer be ignored."); + return afkmain(sender, silent, reason, true); + } + else if (AFKUtil.isAfk(sender)) { + if (ignoreMovement) + getLogger().message(sender, "Your movements will still be ignored."); + else + getLogger().message(sender, "Your movements will still not be ignored."); + return afkmain(sender, silent, reason, true); + } + return afkmain(sender, silent, reason, false); + } + + public boolean afkmain(CommandSender sender, boolean silent, String reason, boolean keepAFK) { + boolean isAFK = AFKUtil.isAfk(sender); + + if ( isAFK && reason.equals("") && !keepAFK) AFKUtil.unAfk(sender, silent); - } else { + + else if (isAFK && !reason.equals("")) { + DataManager.setData(sender, "afk_reason", reason); + getLogger().message(sender, "Your reason has been updated."); + } + else if (!keepAFK) { DataManager.setData(sender, "afk_time", System.currentTimeMillis()); DataManager.setData(sender, "afk_reason", reason); DataManager.setState(sender, "afk_silent", silent); @@ -78,7 +119,7 @@ public class AFK implements Module { return true; } - + private boolean getListenSetting(String name, String def) { return DataManager.getConfigOrDefault(name, def).equals("listen"); } diff --git a/src/main/java/com/redstoner/modules/afk/AFKListener.java b/src/main/java/com/redstoner/modules/afk/AFKListener.java index fab0b5e..a4b4154 100644 --- a/src/main/java/com/redstoner/modules/afk/AFKListener.java +++ b/src/main/java/com/redstoner/modules/afk/AFKListener.java @@ -1,6 +1,8 @@ package com.redstoner.modules.afk; import com.redstoner.misc.Utils; + +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.*; @@ -33,12 +35,17 @@ public class AFKListener implements Listener { @EventHandler public void onMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + + if (!AFKUtil.isAfk(player) || AFKUtil.isVanished(player) || AFKUtil.isIgnoringMovement(player)) + return; + double distance = event.getFrom().distance(event.getTo()); boolean moved = distance > 0; boolean looked = (event.getFrom().getPitch() != event.getTo().getPitch()) || (event.getFrom().getYaw() != event.getTo().getYaw()); - if ((move && moved) || (look && looked)) AFKUtil.checkedUnAfk(event.getPlayer()); + if ((move && moved) || (look && looked)) AFKUtil.unAfk(event.getPlayer()); } @EventHandler diff --git a/src/main/java/com/redstoner/modules/afk/AFKUtil.java b/src/main/java/com/redstoner/modules/afk/AFKUtil.java index 3746632..22f4284 100644 --- a/src/main/java/com/redstoner/modules/afk/AFKUtil.java +++ b/src/main/java/com/redstoner/modules/afk/AFKUtil.java @@ -8,10 +8,15 @@ import org.bukkit.entity.Player; public class AFKUtil { protected static void unAfk(CommandSender sender, boolean silent) { DataManager.setState(sender, "afk", false); - + DataManager.setState(sender, "afk_ignoreMovement", false); + if (!silent) Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); } + protected static void unAfk(CommandSender sender) { + unAfk(sender, isSilent(sender)); + } + protected static boolean isAfk(CommandSender sender) { return DataManager.getState(sender, "afk"); } @@ -23,7 +28,11 @@ public class AFKUtil { protected static boolean isSilent(CommandSender sender) { return DataManager.getState(sender, "afk_silent"); } - + + protected static boolean isIgnoringMovement(CommandSender sender) { + return DataManager.getState(sender, "afk_ignoreMovement"); + } + protected static void checkedUnAfk(Player player) { if (isAfk(player) && !isVanished(player)) unAfk(player, isSilent(player)); } diff --git a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.cmd b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.cmd index 5e1206c..a0d8fb2 100644 --- a/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.cmd +++ b/src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.cmd @@ -3,7 +3,7 @@ command bpm { alias toggle; alias mod; - perm blockplacemods.use; + perm utils.blockplacemods; type player; [empty] { diff --git a/src/main/java/com/redstoner/modules/chat/Chat.cmd b/src/main/java/com/redstoner/modules/chat/Chat.cmd index fcd91fc..a93763c 100644 --- a/src/main/java/com/redstoner/modules/chat/Chat.cmd +++ b/src/main/java/com/redstoner/modules/chat/Chat.cmd @@ -81,7 +81,7 @@ command unmute { command chatonly { alias co; - perm utilschat.chatonly; + perm utils.chat.chatonly; [empty] { run chatonly; help Shows that you're onlu able to chat, nothing else.; diff --git a/src/main/java/com/redstoner/modules/discord/Discord.java b/src/main/java/com/redstoner/modules/discord/Discord.java index 22999ec..cdef453 100644 --- a/src/main/java/com/redstoner/modules/discord/Discord.java +++ b/src/main/java/com/redstoner/modules/discord/Discord.java @@ -25,7 +25,7 @@ import com.redstoner.modules.Module; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 0, revision = 2, compatible = 4) public class Discord implements Module { private MysqlTable table; @@ -87,28 +87,33 @@ public class Discord implements Module { String token = null; int tries = 0; - while (token == null) { - token = randomToken(8); - Object[] results = table.get("token", new MysqlConstraint("token", ConstraintOperator.EQUAL, token)); + Object[] existingToken = table.get("token", new MysqlConstraint("uuid", ConstraintOperator.EQUAL, pUUID)); + + if (existingToken.length > 0) + token = (String) existingToken[0]; + else { + while (token == null) { + token = randomToken(8); + Object[] results = table.get("token", new MysqlConstraint("token", ConstraintOperator.EQUAL, token)); + + if (results.length > 0) { + token = null; + tries++; + } + + if (tries > 10) break; + } - if (results.length > 0) { - token = null; - tries++; + if (token == null) { + new Message(sender, null).appendText( + "\n&4Could not find an unused token in 10 tries (a 1 in over 20 trillion chance)! Please take a screenshot and run the command again!") + .send(); + return; } - if (tries > 10) break; - } + table.insert(token, pUUID, "0"); - if (token == null) { - new Message(sender, null).appendText( - "\n&4Could not find an unused token in 10 tries (a 1 in over 20 trillion chance)! Please take a screenshot and run the command again!") - .send(); - return; } - - table.delete(new MysqlConstraint("uuid", ConstraintOperator.EQUAL, pUUID)); - table.insert(pUUID, token); - new Message(sender, null).appendText("\n&cRedstoner&7 has a &2Discord&7 Now! \nClick ") .appendLinkHover("&e" + inviteLink, inviteLink, "&aClick to Join").appendText("&7 to join. \n\nTo sync you rank, copy ") .appendSuggestHover("&e" + token, token, "&aClick to Copy").appendText("&7 into &3#rank-sync&7.\n").send(); diff --git a/src/main/java/com/redstoner/modules/naming/Naming.cmd b/src/main/java/com/redstoner/modules/naming/Naming.cmd index f21f15a..35a2dc6 100644 --- a/src/main/java/com/redstoner/modules/naming/Naming.cmd +++ b/src/main/java/com/redstoner/modules/naming/Naming.cmd @@ -19,6 +19,6 @@ command lore { [optional:-a] [string:lore...] { run lore -a lore; type player; - help Adds lore to item in hand.; + help Adds lore to item in hand. Use &e-a&b to append to the lore.; } }
\ No newline at end of file diff --git a/src/main/java/com/redstoner/modules/naming/Naming.java b/src/main/java/com/redstoner/modules/naming/Naming.java index f445336..a70a6d1 100644 --- a/src/main/java/com/redstoner/modules/naming/Naming.java +++ b/src/main/java/com/redstoner/modules/naming/Naming.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import org.bukkit.Bukkit; +import org.bukkit.GameMode; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; @@ -20,7 +21,7 @@ import com.redstoner.modules.Module; import net.md_5.bungee.api.ChatColor; @Commands(CommandHolderType.File) -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 1, revision = 0, compatible = 4) public class Naming implements Module { @Command(hook = "anvil") @@ -34,8 +35,20 @@ public class Naming implements Module @Command(hook = "name") public void name(CommandSender sender, String name) { + Player player = (Player) sender; + + if (player.getGameMode() == GameMode.SURVIVAL) { + int level = player.getLevel(); + if (level < 1) { + getLogger().message(sender, true, "You don't have enough levels to rename the item."); + return; + } + else + player.setLevel(level-1); + } + name = ChatColor.translateAlternateColorCodes('&', name); - ItemStack item = ((Player) sender).getInventory().getItemInMainHand(); + ItemStack item = player.getInventory().getItemInMainHand(); ItemMeta meta = item.getItemMeta(); if (meta == null) { @@ -44,14 +57,26 @@ public class Naming implements Module } meta.setDisplayName(name); item.setItemMeta(meta); - getLogger().message(sender, "Name set to " + name); - ((Player) sender).updateInventory(); + getLogger().message(sender, "Name set to &f&o" + name + "&7."); + player.updateInventory(); } @Command(hook = "lore") public void lore(CommandSender sender, boolean append, String lore) { - ItemStack item = ((Player) sender).getInventory().getItemInMainHand(); + Player player = (Player) sender; + + if (player.getGameMode() == GameMode.SURVIVAL) { + int level = player.getLevel(); + if (level < 1) { + getLogger().message(sender, true, "You don't have enough levels to rename the item."); + return; + } + else + player.setLevel(level-1); + } + + ItemStack item = player.getInventory().getItemInMainHand(); ItemMeta meta = item.getItemMeta(); if (meta == null) { @@ -69,7 +94,10 @@ public class Naming implements Module currentLore.add(lore); meta.setLore(currentLore); item.setItemMeta(meta); - getLogger().message(sender, "Lore set to " + lore); - ((Player) sender).updateInventory(); + if (append) + getLogger().message(sender, "Appended the following line to the lore: &5&o" + lore + "&7."); + else + getLogger().message(sender, "Lore set to &5&o" + lore + "&7."); + player.updateInventory(); } } diff --git a/src/main/java/com/redstoner/modules/saylol/Saylol.java b/src/main/java/com/redstoner/modules/saylol/Saylol.java index a523615..cd33f97 100644 --- a/src/main/java/com/redstoner/modules/saylol/Saylol.java +++ b/src/main/java/com/redstoner/modules/saylol/Saylol.java @@ -25,7 +25,7 @@ import net.nemez.chatapi.click.ClickCallback; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 0, revision = 1, compatible = 4) public class Saylol implements Module { private long lastLol = 0; @@ -295,6 +295,6 @@ public class Saylol implements Module public void clickAction(Player player, int index) { if (player.hasPermission("utils.lol.id")) - Bukkit.dispatchCommand(player, "lol id " + index); + Bukkit.getScheduler().callSyncMethod(ModuleLoader.getPlugin(), () -> Bukkit.dispatchCommand(player, "lol id " + index)); } } diff --git a/src/main/java/com/redstoner/modules/seen/Seen.cmd b/src/main/java/com/redstoner/modules/seen/Seen.cmd index 213aa34..7a22e20 100644 --- a/src/main/java/com/redstoner/modules/seen/Seen.cmd +++ b/src/main/java/com/redstoner/modules/seen/Seen.cmd @@ -23,7 +23,7 @@ command firstseen { } } command playtime { - perm utils.playtime; + perm utils.seen.playtime; [empty] { type player; run playtimeDef; diff --git a/src/main/java/com/redstoner/modules/survival/Survival.java b/src/main/java/com/redstoner/modules/survival/Survival.java index 54d05fd..87a0f36 100644 --- a/src/main/java/com/redstoner/modules/survival/Survival.java +++ b/src/main/java/com/redstoner/modules/survival/Survival.java @@ -20,11 +20,13 @@ import com.redstoner.misc.Main; import com.redstoner.modules.Module; import com.redstoner.modules.datamanager.DataManager; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; import net.nemez.chatapi.ChatAPI; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 5, minor = 0, revision = 5, compatible = 4) +@Version(major = 5, minor = 0, revision = 7, compatible = 4) public class Survival implements Module, Listener { @EventHandler @@ -42,13 +44,13 @@ public class Survival implements Module, Listener { @EventHandler public void onLeave(PlayerQuitEvent e) { if (e.getPlayer().getGameMode() == GameMode.SURVIVAL) - checkSleep(e.getPlayer().getWorld()); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> checkSleep(e.getPlayer().getWorld()), 2); } @EventHandler public void onGamemodeChange(PlayerGameModeChangeEvent e) { if (e.getNewGameMode() == GameMode.SURVIVAL || e.getPlayer().getGameMode() == GameMode.SURVIVAL) - Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> checkSleep(e.getPlayer().getWorld()), 20); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> checkSleep(e.getPlayer().getWorld()), 2); } boolean suspendEvents = false; diff --git a/src/main/java/com/redstoner/modules/teleport/Teleport.cmd b/src/main/java/com/redstoner/modules/teleport/Teleport.cmd index ca78ab5..b6323d7 100644 --- a/src/main/java/com/redstoner/modules/teleport/Teleport.cmd +++ b/src/main/java/com/redstoner/modules/teleport/Teleport.cmd @@ -84,7 +84,7 @@ command tpall { command tpaccept { alias tpyes; - perm utils.teleport.request; + perm utils.teleport.tpa; type player; [empty] { @@ -99,7 +99,7 @@ command tpaccept { command tpcancel { alias tpastop; - perm utils.teleport.request; + perm utils.teleport.tpa; type player; [empty] { @@ -114,7 +114,7 @@ command tpcancel { command tpdeny { alias tpno; - perm utils.teleport.request; + perm utils.teleport.tpa; type player; [empty] { @@ -131,7 +131,7 @@ command tplist { alias etplist; alias tpl; alias etpl; - perm utils.teleport.request; + perm utils.teleport.tpa; type player; [empty] { |