summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinenash <minenash@protonmail.com>2019-01-30 18:06:51 -0500
committerGitHub <noreply@github.com>2019-01-30 18:06:51 -0500
commitc6e54b99be3e4f7fcfea1bc9c92c5b6c6dd11072 (patch)
tree8d56a5813c607e060990958d5f0364728097f3e0
parenta79d3aff11b4bba957accbfe4d8522c012d63bde (diff)
parentf02d7b37537dcc50a84183c60c4defc4f994d954 (diff)
Merge pull request #43 from RedstonerServer/dev
Merge dev into master
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFK.cmd8
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFK.java49
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFKListener.java9
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFKUtil.java13
-rw-r--r--src/main/java/com/redstoner/modules/blockplacemods/BlockPlaceMods.cmd2
-rw-r--r--src/main/java/com/redstoner/modules/chat/Chat.cmd2
-rw-r--r--src/main/java/com/redstoner/modules/discord/Discord.java41
-rw-r--r--src/main/java/com/redstoner/modules/naming/Naming.cmd2
-rw-r--r--src/main/java/com/redstoner/modules/naming/Naming.java42
-rw-r--r--src/main/java/com/redstoner/modules/saylol/Saylol.java4
-rw-r--r--src/main/java/com/redstoner/modules/seen/Seen.cmd2
-rw-r--r--src/main/java/com/redstoner/modules/survival/Survival.java8
-rw-r--r--src/main/java/com/redstoner/modules/teleport/Teleport.cmd8
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] {