added funny death messages #11
@@ -1,8 +1,11 @@
|
||||
package dev.zxq5.fantasysmp;
|
||||
|
||||
import dev.zxq5.fantasysmp.events.Chat;
|
||||
import dev.zxq5.fantasysmp.events.HereticWarner;
|
||||
import dev.zxq5.fantasysmp.events.StevenKillCheck;
|
||||
import dev.zxq5.fantasysmp.events.XrayDetector;
|
||||
import dev.zxq5.fantasysmp.groups.Commands;
|
||||
import dev.zxq5.fantasysmp.groups.Team;
|
||||
import dev.zxq5.fantasysmp.items.*;
|
||||
import dev.zxq5.fantasysmp.warps.Warp;
|
||||
import dev.zxq5.fantasysmp.warps.Warper;
|
||||
@@ -19,6 +22,7 @@ public final class Fantasysmp extends JavaPlugin {
|
||||
|
||||
try {
|
||||
Warp.loadWarps();
|
||||
Team.loadTeams();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -30,6 +34,9 @@ public final class Fantasysmp extends JavaPlugin {
|
||||
getCommand("warp").setExecutor(new Warper());
|
||||
getCommand("rewarps").setExecutor(new Warper());
|
||||
getCommand("warps").setExecutor(new Warper());
|
||||
getCommand("team").setExecutor(new Commands());
|
||||
|
||||
getServer().getPluginManager().registerEvents(new Chat(), this);
|
||||
|
||||
getServer().getPluginManager().registerEvents(new StevenKillCheck(), this);
|
||||
|
||||
@@ -42,6 +49,11 @@ public final class Fantasysmp extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
// Plugin shutdown logic
|
||||
try {
|
||||
Warp.saveWarps();
|
||||
Team.saveTeams();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package dev.zxq5.fantasysmp.events;
|
||||
|
||||
import dev.zxq5.fantasysmp.groups.Team;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
public class Chat implements Listener {
|
||||
@EventHandler
|
||||
public void onChat(org.bukkit.event.player.AsyncPlayerChatEvent event) {
|
||||
Team team = Team.fromMember(event.getPlayer());
|
||||
if (team != null) {
|
||||
event.setFormat(ChatColor.WHITE + "[" + team.getTag() + ChatColor.WHITE + "]" + ChatColor.RESET + " <%s> %s");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,7 @@ public class Commands implements CommandExecutor {
|
||||
case "disband" -> this.handleDisband(player, args);
|
||||
case "setwarp" -> this.handleSetWarp(player, args);
|
||||
case "delwarp" -> this.handleDelWarp(player, args);
|
||||
case "colour" -> this.handleSetColour(player, args);
|
||||
case "warp" -> this.handleWarp(player, args);
|
||||
case "kick" -> this.handleKick(player, args);
|
||||
case "log" -> this.handleLog(player, args);
|
||||
@@ -99,6 +100,18 @@ public class Commands implements CommandExecutor {
|
||||
Team.createTeam(player, args[1]);
|
||||
}
|
||||
|
||||
public void handleSetColour(Player player, String[] args) {
|
||||
if (args.length != 2) {
|
||||
Chat.error(player, "Usage: /team colour <color>");
|
||||
return;
|
||||
}
|
||||
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
team.setColour(player, args[1]);
|
||||
}
|
||||
|
||||
public void handleRename(Player player, String[] args) {
|
||||
if (args.length != 2) {
|
||||
Chat.error(player, "Usage: /team rename <new name>");
|
||||
@@ -110,7 +123,10 @@ public class Commands implements CommandExecutor {
|
||||
return;
|
||||
}
|
||||
|
||||
Team.renameTeam(player, args[1]);
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
team.renameTeam(player, args[1]);
|
||||
}
|
||||
|
||||
public void handleSetTag(Player player, String[] args) {
|
||||
@@ -119,10 +135,16 @@ public class Commands implements CommandExecutor {
|
||||
return;
|
||||
}
|
||||
|
||||
if (args[1].length < 3 || args[1].contains(" ") || args[1].contains("\t") || args.length > 8) {
|
||||
if (args[1].length() < 3 || args[1].contains(" ") || args[1].contains("\t") || args[1].length() > 8) {
|
||||
Chat.error(player, "Invalid tag!");
|
||||
Chat.error(player, "tags should be 3-8 chars, alphanumeric and have no spaces");
|
||||
return;
|
||||
}
|
||||
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
team.changeTeamTag(player, args[1]);
|
||||
}
|
||||
|
||||
public void handleTransfer(Player player, String[] args) {
|
||||
@@ -151,8 +173,10 @@ public class Commands implements CommandExecutor {
|
||||
Chat.error(player, "Usage: /team leave");
|
||||
return;
|
||||
}
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
Team.leaveTeam(player);
|
||||
team.leaveTeam(player);
|
||||
}
|
||||
|
||||
public void handleDisband(Player player, String[] args) {
|
||||
@@ -160,8 +184,10 @@ public class Commands implements CommandExecutor {
|
||||
Chat.error(player, "Usage: /team disband");
|
||||
return;
|
||||
}
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
Team.disbandTeam(player);
|
||||
team.disbandTeam(player);
|
||||
}
|
||||
|
||||
public void handleSetWarp(Player player, String[] args) {
|
||||
@@ -183,6 +209,8 @@ public class Commands implements CommandExecutor {
|
||||
return;
|
||||
}
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
Warp warp = Warp.getTeamWarp(team, args[1]);
|
||||
}
|
||||
|
||||
@@ -191,8 +219,10 @@ public class Commands implements CommandExecutor {
|
||||
Chat.error(player, "Usage: /team kick <player>");
|
||||
return;
|
||||
}
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
Team.removePlayer(player, args[1]);
|
||||
team.removePlayer(player, args[1]);
|
||||
}
|
||||
|
||||
public void handleLog(Player player, String[] args) {
|
||||
@@ -201,7 +231,10 @@ public class Commands implements CommandExecutor {
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> logs = Team.getLogs(player);
|
||||
Team team = Team.fromMember(player);
|
||||
if (team == null) return;
|
||||
|
||||
ArrayList<String> logs = team.getLogs(player);
|
||||
String result = "Logs: [\n " + String.join("\n ", logs) + "\n]";
|
||||
Chat.info(player, result);
|
||||
}
|
||||
|
||||
@@ -3,16 +3,19 @@ package dev.zxq5.fantasysmp.groups;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import dev.zxq5.fantasysmp.chatutils.Chat;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.bukkit.Bukkit.broadcastMessage;
|
||||
import static org.bukkit.Bukkit.getServer;
|
||||
|
||||
public class Team {
|
||||
private static ArrayList<Team> teams;
|
||||
private final static String FILENAME = "teams.json";
|
||||
|
||||
private String name;
|
||||
private String ownerUUID;
|
||||
@@ -27,12 +30,21 @@ public class Team {
|
||||
this.teamUUID = UUID.randomUUID().toString();
|
||||
this.ownerUUID = creator.getUniqueId().toString();
|
||||
this.members = new ArrayList<>();
|
||||
this.logs = new ArrayList<>();
|
||||
members.add(creator.getUniqueId().toString());
|
||||
}
|
||||
|
||||
public static Team createTeam(Player creator, String name) {
|
||||
if (Team.fromMember(creator) != null) {
|
||||
Team.error(creator, Error.SELF_IN_TEAM);
|
||||
return null;
|
||||
}
|
||||
|
||||
Team team = new Team(creator, name, name);
|
||||
team.logs.add(creator.getName() + " created the team.");
|
||||
teams.add(team);
|
||||
|
||||
Chat.success(creator, "You created " + team.name + ".");
|
||||
return team;
|
||||
}
|
||||
|
||||
@@ -40,6 +52,8 @@ public class Team {
|
||||
for (Team team : teams) {
|
||||
if (team.members.contains(member.getUniqueId().toString())) return team;
|
||||
}
|
||||
|
||||
Team.error(member, Error.TEAM_NOT_FOUND);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -51,111 +65,166 @@ public class Team {
|
||||
return names;
|
||||
}
|
||||
|
||||
public static void renameTeam(Player player, String newName) {
|
||||
for (Team team : teams) {
|
||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
||||
|
||||
team.name = newName;
|
||||
team.log(player.getName() + " renamed the team to " + newName + ".");
|
||||
public void renameTeam(Player player, String newName) {
|
||||
if (!this.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
Team.error(player, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
String oldName = this.name;
|
||||
this.name = newName;
|
||||
this.log(player.getName() + " renamed the team to " + newName + ".");
|
||||
|
||||
Chat.success(player, "You renamed " + oldName + " to " + newName + ".");
|
||||
}
|
||||
|
||||
public static void transferTeam(Player player, String playerName) {
|
||||
public void changeTeamTag(Player player, String newTag) {
|
||||
if (!this.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
Team.error(player, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
this.tag = newTag;
|
||||
this.log(player.getName() + " changed the team tag to " + newTag + ".");
|
||||
|
||||
Chat.success(player, "You changed the tag of " + this.name + " to " + newTag + ".");
|
||||
}
|
||||
|
||||
public void setColour (Player player, String colour) {
|
||||
if (!this.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
Team.error(player, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (colour) {
|
||||
case "red" -> this.tag = ChatColor.RED + this.tag;
|
||||
case "green" -> this.tag = ChatColor.GREEN + this.tag;
|
||||
case "blue" -> this.tag = ChatColor.BLUE + this.tag;
|
||||
case "yellow" -> this.tag = ChatColor.YELLOW + this.tag;
|
||||
case "aqua" -> this.tag = ChatColor.AQUA + this.tag;
|
||||
case "dark_aqua" -> this.tag = ChatColor.DARK_AQUA + this.tag;
|
||||
case "dark_blue" -> this.tag = ChatColor.DARK_BLUE + this.tag;
|
||||
case "dark_gray" -> this.tag = ChatColor.DARK_GRAY + this.tag;
|
||||
case "dark_green" -> this.tag = ChatColor.DARK_GREEN + this.tag;
|
||||
case "dark_purple" -> this.tag = ChatColor.DARK_PURPLE + this.tag;
|
||||
case "gold" -> this.tag = ChatColor.GOLD + this.tag;
|
||||
case "gray" -> this.tag = ChatColor.GRAY + this.tag;
|
||||
case "light_purple" -> this.tag = ChatColor.LIGHT_PURPLE + this.tag;
|
||||
case "white" -> this.tag = ChatColor.WHITE + this.tag;
|
||||
case "black" -> this.tag = ChatColor.BLACK + this.tag;
|
||||
}
|
||||
|
||||
this.log(player.getName() + " changed the team colour to " + colour + ".");
|
||||
Chat.success(player, "You changed the colour of " + this.name + " to " + colour + ".");
|
||||
}
|
||||
|
||||
public void transferTeam(Player player, String playerName) {
|
||||
if (!this.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
Team.error(player, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
Player newOwner = getServer().getPlayer(playerName);
|
||||
for (Team team : teams) {
|
||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
||||
|
||||
team.ownerUUID = newOwner.getUniqueId().toString();
|
||||
team.log(player.getName() + " transferred ownership to " + newOwner.getName() + ".");
|
||||
if (newOwner == null) {
|
||||
Team.error(player, Error.PLAYER_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
|
||||
String newUUID = newOwner.getUniqueId().toString();
|
||||
if (!this.members.contains(newUUID)) {
|
||||
Team.error(player, Error.PLAYER_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
|
||||
this.ownerUUID = newUUID;
|
||||
this.log(player.getName() + " transferred ownership to " + newOwner.getName() + ".");
|
||||
|
||||
Chat.success(player, "You transferred ownership of " + this.name + " to " + newOwner.getName() + ".");
|
||||
}
|
||||
|
||||
public static void removePlayer(Player remover, String playerName) {
|
||||
public void removePlayer(Player remover, String playerName) {
|
||||
Player removedPlayer = getServer().getPlayer(playerName);
|
||||
|
||||
if (removedPlayer == null) {
|
||||
Chat.error(remover, "Player not found!");
|
||||
Team.error(remover, Error.PLAYER_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
|
||||
String removerUUID = remover.getUniqueId().toString();
|
||||
String removedPlayerUUID = removedPlayer.getUniqueId().toString();
|
||||
|
||||
for (Team team : teams) {
|
||||
if (!team.members.contains(removerUUID)) continue;
|
||||
|
||||
if (!team.ownerUUID.equals(removerUUID)) {
|
||||
Chat.error(remover, "You do not have permission to remove players from this team.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!team.members.contains(removedPlayerUUID)) {
|
||||
Chat.error(remover, "This player is not in your team.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (removedPlayerUUID.equals(team.ownerUUID)) {
|
||||
Chat.error(remover, "You cannot remove yourself!");
|
||||
return;
|
||||
}
|
||||
|
||||
team.members.remove(removedPlayerUUID);
|
||||
team.log(remover.getName() + " removed " + removedPlayer.getName() + " from the team.");
|
||||
if (removedPlayerUUID.equals(this.ownerUUID)) {
|
||||
Team.error(remover, Error.TEAM_OWNER);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public static void leaveTeam(Player player) {
|
||||
for (Team team : teams) {
|
||||
if (!team.members.contains(player.getUniqueId().toString())) continue;
|
||||
if (team.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
player.sendMessage("You cannot leave a team that you own!");
|
||||
}
|
||||
|
||||
team.members.remove(player.getUniqueId().toString());
|
||||
team.log(player.getName() + " left the team.");
|
||||
if (!this.ownerUUID.equals(removerUUID)) {
|
||||
Team.error(remover, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public static void disbandTeam(Player player) {
|
||||
for (Team team : teams) {
|
||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
||||
|
||||
teams.remove(team);
|
||||
team.log(player.getName() + " disbanded the team.");
|
||||
if (!this.members.contains(removedPlayerUUID)) {
|
||||
Team.error(remover, Error.PLAYER_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
|
||||
this.members.remove(removedPlayerUUID);
|
||||
this.log(remover.getName() + " removed " + removedPlayer.getName() + " from the team.");
|
||||
|
||||
Chat.success(remover, "You removed " + removedPlayer.getName() + " from " + this.name + ".");
|
||||
}
|
||||
|
||||
public static void addMember(Player player) {
|
||||
for (Team team : teams) {
|
||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
||||
|
||||
team.members.add(player.getUniqueId().toString());
|
||||
team.log(player.getName() + " joined the team.");
|
||||
public void leaveTeam(Player member) {
|
||||
if (this.ownerUUID.equals(member.getUniqueId().toString())) {
|
||||
Team.error(member, Error.TEAM_OWNER);
|
||||
return;
|
||||
}
|
||||
|
||||
this.members.remove(member.getUniqueId().toString());
|
||||
this.log(member.getName() + " left the team.");
|
||||
|
||||
Chat.success(member, "You left " + this.name + ".");
|
||||
}
|
||||
|
||||
public static ArrayList<String> getLogs(Player player) {
|
||||
for (Team team : teams) {
|
||||
if (team.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||
return team.logs;
|
||||
}
|
||||
public void disbandTeam(Player member) {
|
||||
if (!this.ownerUUID.equals(member.getUniqueId().toString())) {
|
||||
Team.error(member, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
teams.remove(this);
|
||||
this.log(member.getName() + " disbanded the team.");
|
||||
|
||||
Chat.success(member, "You disbanded " + this.name + ".");
|
||||
}
|
||||
|
||||
public void addMember(Player member) {
|
||||
if (!this.ownerUUID.equals(member.getUniqueId().toString())) {
|
||||
Team.error(member, Error.NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
this.members.add(member.getUniqueId().toString());
|
||||
this.log(member.getName() + " joined the team.");
|
||||
|
||||
Chat.success(member, "You joined " + this.name + ".");
|
||||
}
|
||||
|
||||
public ArrayList<String> getLogs(Player member) {
|
||||
if (this.ownerUUID.equals(member.getUniqueId().toString())) return this.logs;
|
||||
|
||||
Team.error(member, Error.NO_PERMISSION);
|
||||
return null;
|
||||
}
|
||||
|
||||
public void log(String message) {
|
||||
this.logs.add(message);
|
||||
Team.saveTeams();
|
||||
}
|
||||
|
||||
public static void loadTeams() throws Exception {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "warps.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
if (!file.exists()) {
|
||||
createTeamsFile();
|
||||
@@ -170,20 +239,26 @@ public class Team {
|
||||
reader.close();
|
||||
}
|
||||
|
||||
public static void saveTeams() throws Exception {
|
||||
public static void saveTeams() {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "teams.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
Gson gson = new Gson();
|
||||
String json = gson.toJson(teams);
|
||||
Writer writer = new FileWriter(file);
|
||||
writer.write(json);
|
||||
writer.close();
|
||||
|
||||
try {
|
||||
Writer writer = new FileWriter(file);
|
||||
writer.write(json);
|
||||
writer.close();
|
||||
} catch (Exception e) {
|
||||
broadcastMessage("Error saving teams. Please contact an admin.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void createTeamsFile() {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "teams.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
if (!file.exists()) {
|
||||
try {
|
||||
@@ -202,4 +277,32 @@ public class Team {
|
||||
public String getUUID() {
|
||||
return this.teamUUID;
|
||||
}
|
||||
|
||||
public String getTag() {
|
||||
return this.tag;
|
||||
}
|
||||
|
||||
public static void error(Player player, Error error) {
|
||||
Chat.error(player, switch (error) {
|
||||
case NO_PERMISSION -> "You do not have permission to do that!";
|
||||
case SELF_IN_TEAM -> "You are already in a team!";
|
||||
case NOT_IN_TEAM -> "You are not in a team!";
|
||||
case TEAM_NOT_FOUND -> "Team not found!";
|
||||
case PLAYER_NOT_FOUND -> "Player not found!";
|
||||
case ALREADY_TAKEN -> "That name is already taken!";
|
||||
case PLAYER_IN_TEAM -> "That player is already in a team!";
|
||||
case TEAM_OWNER -> "You cannot do this to/as the owner!";
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
enum Error {
|
||||
NO_PERMISSION,
|
||||
TEAM_OWNER,
|
||||
SELF_IN_TEAM,
|
||||
NOT_IN_TEAM,
|
||||
TEAM_NOT_FOUND,
|
||||
PLAYER_NOT_FOUND,
|
||||
ALREADY_TAKEN,
|
||||
PLAYER_IN_TEAM,
|
||||
}
|
||||
@@ -17,11 +17,13 @@ import static org.bukkit.Bukkit.getServer;
|
||||
|
||||
public class Warp {
|
||||
|
||||
private static final String FILENAME = "warps.json";
|
||||
private static Warp[] warps;
|
||||
|
||||
private String name;
|
||||
private String setby;
|
||||
private String world;
|
||||
private String teamUUID;
|
||||
private WarpType type;
|
||||
private int x;
|
||||
private int y;
|
||||
@@ -37,7 +39,7 @@ public class Warp {
|
||||
|
||||
public static void loadWarps() throws Exception {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "warps.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
if (!file.exists()) {
|
||||
createWarpFile();
|
||||
@@ -54,7 +56,7 @@ public class Warp {
|
||||
|
||||
public static void saveWarps() throws Exception {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "warps.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
Gson gson = new Gson();
|
||||
String json = gson.toJson(warps);
|
||||
@@ -65,7 +67,7 @@ public class Warp {
|
||||
|
||||
public static void createWarpFile() {
|
||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||
File file = new File(dataFolder, "warps.json");
|
||||
File file = new File(dataFolder, FILENAME);
|
||||
|
||||
if (!file.exists()) {
|
||||
try {
|
||||
|
||||
@@ -47,12 +47,21 @@ commands:
|
||||
usage: /warp <warp name>
|
||||
permission: fantasysmp.warps
|
||||
|
||||
team:
|
||||
description: team commands
|
||||
usage: /team <subcommand>
|
||||
permission: fantasysmp.teams
|
||||
|
||||
|
||||
permissions:
|
||||
fantasysmp.items:
|
||||
description: create custom items from plugin
|
||||
default: false
|
||||
|
||||
fantasysmp.teams:
|
||||
description: team commands
|
||||
default: true
|
||||
|
||||
fantasysmp.warps:
|
||||
description: teleport to custom warps
|
||||
default: true
|
||||
@@ -73,4 +82,5 @@ permissions:
|
||||
fantasysmp.manage_warps: true
|
||||
fantasysmp.home: true
|
||||
fantasysmp.warps: true
|
||||
fantasysmp.teams: true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user