@@ -13,6 +13,14 @@ command afk {
|
|||||||
run afksilent -s;
|
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...] {
|
[optional:-s] [string:reason...] {
|
||||||
run afkreason -s reason;
|
run afkreason -s reason;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@Commands(CommandHolderType.File)
|
||||||
@AutoRegisterListener
|
@AutoRegisterListener
|
||||||
@Version(major = 5, minor = 0, revision = 0, compatible = 4)
|
@Version(major = 5, minor = 1, revision = 0, compatible = 4)
|
||||||
public class AFK implements Module {
|
public class AFK implements Module {
|
||||||
private AFKListener listener;
|
private AFKListener listener;
|
||||||
|
|
||||||
@@ -63,11 +63,52 @@ public class AFK implements Module {
|
|||||||
return afk(sender, silent, "");
|
return afk(sender, silent, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(hook = "afkignore")
|
||||||
|
public boolean afk(CommandSender sender, boolean silent, boolean ignoreMovement) {
|
||||||
|
return afk(sender, silent, ignoreMovement, "");
|
||||||
|
}
|
||||||
|
|
||||||
@Command(hook = "afkreason")
|
@Command(hook = "afkreason")
|
||||||
public boolean afk(CommandSender sender, boolean silent, String reason) {
|
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);
|
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_time", System.currentTimeMillis());
|
||||||
DataManager.setData(sender, "afk_reason", reason);
|
DataManager.setData(sender, "afk_reason", reason);
|
||||||
DataManager.setState(sender, "afk_silent", silent);
|
DataManager.setState(sender, "afk_silent", silent);
|
||||||
@@ -78,7 +119,7 @@ public class AFK implements Module {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean getListenSetting(String name, String def) {
|
private boolean getListenSetting(String name, String def) {
|
||||||
return DataManager.getConfigOrDefault(name, def).equals("listen");
|
return DataManager.getConfigOrDefault(name, def).equals("listen");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.redstoner.modules.afk;
|
package com.redstoner.modules.afk;
|
||||||
|
|
||||||
import com.redstoner.misc.Utils;
|
import com.redstoner.misc.Utils;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
@@ -33,12 +35,17 @@ public class AFKListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onMove(PlayerMoveEvent event) {
|
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());
|
double distance = event.getFrom().distance(event.getTo());
|
||||||
|
|
||||||
boolean moved = distance > 0;
|
boolean moved = distance > 0;
|
||||||
boolean looked = (event.getFrom().getPitch() != event.getTo().getPitch()) || (event.getFrom().getYaw() != event.getTo().getYaw());
|
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
|
@EventHandler
|
||||||
|
|||||||
@@ -8,10 +8,15 @@ import org.bukkit.entity.Player;
|
|||||||
public class AFKUtil {
|
public class AFKUtil {
|
||||||
protected static void unAfk(CommandSender sender, boolean silent) {
|
protected static void unAfk(CommandSender sender, boolean silent) {
|
||||||
DataManager.setState(sender, "afk", false);
|
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);
|
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) {
|
protected static boolean isAfk(CommandSender sender) {
|
||||||
return DataManager.getState(sender, "afk");
|
return DataManager.getState(sender, "afk");
|
||||||
}
|
}
|
||||||
@@ -23,7 +28,11 @@ public class AFKUtil {
|
|||||||
protected static boolean isSilent(CommandSender sender) {
|
protected static boolean isSilent(CommandSender sender) {
|
||||||
return DataManager.getState(sender, "afk_silent");
|
return DataManager.getState(sender, "afk_silent");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static boolean isIgnoringMovement(CommandSender sender) {
|
||||||
|
return DataManager.getState(sender, "afk_ignoreMovement");
|
||||||
|
}
|
||||||
|
|
||||||
protected static void checkedUnAfk(Player player) {
|
protected static void checkedUnAfk(Player player) {
|
||||||
if (isAfk(player) && !isVanished(player)) unAfk(player, isSilent(player));
|
if (isAfk(player) && !isVanished(player)) unAfk(player, isSilent(player));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ command bpm {
|
|||||||
alias toggle;
|
alias toggle;
|
||||||
alias mod;
|
alias mod;
|
||||||
|
|
||||||
perm blockplacemods.use;
|
perm utils.blockplacemods;
|
||||||
type player;
|
type player;
|
||||||
|
|
||||||
[empty] {
|
[empty] {
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ command unmute {
|
|||||||
|
|
||||||
command chatonly {
|
command chatonly {
|
||||||
alias co;
|
alias co;
|
||||||
perm utilschat.chatonly;
|
perm utils.chat.chatonly;
|
||||||
[empty] {
|
[empty] {
|
||||||
run chatonly;
|
run chatonly;
|
||||||
help Shows that you're onlu able to chat, nothing else.;
|
help Shows that you're onlu able to chat, nothing else.;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import com.redstoner.modules.Module;
|
|||||||
import net.nemez.chatapi.click.Message;
|
import net.nemez.chatapi.click.Message;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@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 {
|
public class Discord implements Module {
|
||||||
private MysqlTable table;
|
private MysqlTable table;
|
||||||
|
|
||||||
@@ -87,28 +87,33 @@ public class Discord implements Module {
|
|||||||
String token = null;
|
String token = null;
|
||||||
int tries = 0;
|
int tries = 0;
|
||||||
|
|
||||||
while (token == null) {
|
Object[] existingToken = table.get("token", new MysqlConstraint("uuid", ConstraintOperator.EQUAL, pUUID));
|
||||||
token = randomToken(8);
|
|
||||||
Object[] results = table.get("token", new MysqlConstraint("token", ConstraintOperator.EQUAL, token));
|
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) {
|
if (results.length > 0) {
|
||||||
token = null;
|
token = null;
|
||||||
tries++;
|
tries++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tries > 10) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tries > 10) break;
|
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.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 ")
|
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 ")
|
.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();
|
.appendSuggestHover("&e" + token, token, "&aClick to Copy").appendText("&7 into &3#rank-sync&7.\n").send();
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ command lore {
|
|||||||
[optional:-a] [string:lore...] {
|
[optional:-a] [string:lore...] {
|
||||||
run lore -a lore;
|
run lore -a lore;
|
||||||
type player;
|
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.;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
@@ -20,7 +21,7 @@ import com.redstoner.modules.Module;
|
|||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@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
|
public class Naming implements Module
|
||||||
{
|
{
|
||||||
@Command(hook = "anvil")
|
@Command(hook = "anvil")
|
||||||
@@ -34,8 +35,20 @@ public class Naming implements Module
|
|||||||
@Command(hook = "name")
|
@Command(hook = "name")
|
||||||
public void name(CommandSender sender, String 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);
|
name = ChatColor.translateAlternateColorCodes('&', name);
|
||||||
ItemStack item = ((Player) sender).getInventory().getItemInMainHand();
|
ItemStack item = player.getInventory().getItemInMainHand();
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
if (meta == null)
|
if (meta == null)
|
||||||
{
|
{
|
||||||
@@ -44,14 +57,26 @@ public class Naming implements Module
|
|||||||
}
|
}
|
||||||
meta.setDisplayName(name);
|
meta.setDisplayName(name);
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
getLogger().message(sender, "Name set to " + name);
|
getLogger().message(sender, "Name set to &f&o" + name + "&7.");
|
||||||
((Player) sender).updateInventory();
|
player.updateInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Command(hook = "lore")
|
@Command(hook = "lore")
|
||||||
public void lore(CommandSender sender, boolean append, String 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();
|
ItemMeta meta = item.getItemMeta();
|
||||||
if (meta == null)
|
if (meta == null)
|
||||||
{
|
{
|
||||||
@@ -69,7 +94,10 @@ public class Naming implements Module
|
|||||||
currentLore.add(lore);
|
currentLore.add(lore);
|
||||||
meta.setLore(currentLore);
|
meta.setLore(currentLore);
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
getLogger().message(sender, "Lore set to " + lore);
|
if (append)
|
||||||
((Player) sender).updateInventory();
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import net.nemez.chatapi.click.ClickCallback;
|
|||||||
import net.nemez.chatapi.click.Message;
|
import net.nemez.chatapi.click.Message;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@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
|
public class Saylol implements Module
|
||||||
{
|
{
|
||||||
private long lastLol = 0;
|
private long lastLol = 0;
|
||||||
@@ -295,6 +295,6 @@ public class Saylol implements Module
|
|||||||
public void clickAction(Player player, int index)
|
public void clickAction(Player player, int index)
|
||||||
{
|
{
|
||||||
if (player.hasPermission("utils.lol.id"))
|
if (player.hasPermission("utils.lol.id"))
|
||||||
Bukkit.dispatchCommand(player, "lol id " + index);
|
Bukkit.getScheduler().callSyncMethod(ModuleLoader.getPlugin(), () -> Bukkit.dispatchCommand(player, "lol id " + index));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ command firstseen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
command playtime {
|
command playtime {
|
||||||
perm utils.playtime;
|
perm utils.seen.playtime;
|
||||||
[empty] {
|
[empty] {
|
||||||
type player;
|
type player;
|
||||||
run playtimeDef;
|
run playtimeDef;
|
||||||
|
|||||||
@@ -20,11 +20,13 @@ import com.redstoner.misc.Main;
|
|||||||
import com.redstoner.modules.Module;
|
import com.redstoner.modules.Module;
|
||||||
import com.redstoner.modules.datamanager.DataManager;
|
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;
|
import net.nemez.chatapi.ChatAPI;
|
||||||
|
|
||||||
@Commands(CommandHolderType.File)
|
@Commands(CommandHolderType.File)
|
||||||
@AutoRegisterListener
|
@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 {
|
public class Survival implements Module, Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@@ -42,13 +44,13 @@ public class Survival implements Module, Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onLeave(PlayerQuitEvent e) {
|
public void onLeave(PlayerQuitEvent e) {
|
||||||
if (e.getPlayer().getGameMode() == GameMode.SURVIVAL)
|
if (e.getPlayer().getGameMode() == GameMode.SURVIVAL)
|
||||||
checkSleep(e.getPlayer().getWorld());
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> checkSleep(e.getPlayer().getWorld()), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onGamemodeChange(PlayerGameModeChangeEvent e) {
|
public void onGamemodeChange(PlayerGameModeChangeEvent e) {
|
||||||
if (e.getNewGameMode() == GameMode.SURVIVAL || e.getPlayer().getGameMode() == GameMode.SURVIVAL)
|
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;
|
boolean suspendEvents = false;
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ command tpall {
|
|||||||
|
|
||||||
command tpaccept {
|
command tpaccept {
|
||||||
alias tpyes;
|
alias tpyes;
|
||||||
perm utils.teleport.request;
|
perm utils.teleport.tpa;
|
||||||
type player;
|
type player;
|
||||||
|
|
||||||
[empty] {
|
[empty] {
|
||||||
@@ -99,7 +99,7 @@ command tpaccept {
|
|||||||
|
|
||||||
command tpcancel {
|
command tpcancel {
|
||||||
alias tpastop;
|
alias tpastop;
|
||||||
perm utils.teleport.request;
|
perm utils.teleport.tpa;
|
||||||
type player;
|
type player;
|
||||||
|
|
||||||
[empty] {
|
[empty] {
|
||||||
@@ -114,7 +114,7 @@ command tpcancel {
|
|||||||
|
|
||||||
command tpdeny {
|
command tpdeny {
|
||||||
alias tpno;
|
alias tpno;
|
||||||
perm utils.teleport.request;
|
perm utils.teleport.tpa;
|
||||||
type player;
|
type player;
|
||||||
|
|
||||||
[empty] {
|
[empty] {
|
||||||
@@ -131,7 +131,7 @@ command tplist {
|
|||||||
alias etplist;
|
alias etplist;
|
||||||
alias tpl;
|
alias tpl;
|
||||||
alias etpl;
|
alias etpl;
|
||||||
perm utils.teleport.request;
|
perm utils.teleport.tpa;
|
||||||
type player;
|
type player;
|
||||||
|
|
||||||
[empty] {
|
[empty] {
|
||||||
|
|||||||
Reference in New Issue
Block a user