@@ -1,8 +1,11 @@
|
|||||||
package dev.zxq5.fantasysmp;
|
package dev.zxq5.fantasysmp;
|
||||||
|
|
||||||
|
import dev.zxq5.fantasysmp.events.Chat;
|
||||||
import dev.zxq5.fantasysmp.events.HereticWarner;
|
import dev.zxq5.fantasysmp.events.HereticWarner;
|
||||||
import dev.zxq5.fantasysmp.events.StevenKillCheck;
|
import dev.zxq5.fantasysmp.events.StevenKillCheck;
|
||||||
import dev.zxq5.fantasysmp.events.XrayDetector;
|
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.items.*;
|
||||||
import dev.zxq5.fantasysmp.warps.Warp;
|
import dev.zxq5.fantasysmp.warps.Warp;
|
||||||
import dev.zxq5.fantasysmp.warps.Warper;
|
import dev.zxq5.fantasysmp.warps.Warper;
|
||||||
@@ -19,6 +22,7 @@ public final class Fantasysmp extends JavaPlugin {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
Warp.loadWarps();
|
Warp.loadWarps();
|
||||||
|
Team.loadTeams();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -30,6 +34,9 @@ public final class Fantasysmp extends JavaPlugin {
|
|||||||
getCommand("warp").setExecutor(new Warper());
|
getCommand("warp").setExecutor(new Warper());
|
||||||
getCommand("rewarps").setExecutor(new Warper());
|
getCommand("rewarps").setExecutor(new Warper());
|
||||||
getCommand("warps").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);
|
getServer().getPluginManager().registerEvents(new StevenKillCheck(), this);
|
||||||
|
|
||||||
@@ -42,6 +49,11 @@ public final class Fantasysmp extends JavaPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
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 "disband" -> this.handleDisband(player, args);
|
||||||
case "setwarp" -> this.handleSetWarp(player, args);
|
case "setwarp" -> this.handleSetWarp(player, args);
|
||||||
case "delwarp" -> this.handleDelWarp(player, args);
|
case "delwarp" -> this.handleDelWarp(player, args);
|
||||||
|
case "colour" -> this.handleSetColour(player, args);
|
||||||
case "warp" -> this.handleWarp(player, args);
|
case "warp" -> this.handleWarp(player, args);
|
||||||
case "kick" -> this.handleKick(player, args);
|
case "kick" -> this.handleKick(player, args);
|
||||||
case "log" -> this.handleLog(player, args);
|
case "log" -> this.handleLog(player, args);
|
||||||
@@ -99,6 +100,18 @@ public class Commands implements CommandExecutor {
|
|||||||
Team.createTeam(player, args[1]);
|
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) {
|
public void handleRename(Player player, String[] args) {
|
||||||
if (args.length != 2) {
|
if (args.length != 2) {
|
||||||
Chat.error(player, "Usage: /team rename <new name>");
|
Chat.error(player, "Usage: /team rename <new name>");
|
||||||
@@ -110,7 +123,10 @@ public class Commands implements CommandExecutor {
|
|||||||
return;
|
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) {
|
public void handleSetTag(Player player, String[] args) {
|
||||||
@@ -119,10 +135,16 @@ public class Commands implements CommandExecutor {
|
|||||||
return;
|
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, "Invalid tag!");
|
||||||
Chat.error(player, "tags should be 3-8 chars, alphanumeric and have no spaces");
|
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) {
|
public void handleTransfer(Player player, String[] args) {
|
||||||
@@ -151,8 +173,10 @@ public class Commands implements CommandExecutor {
|
|||||||
Chat.error(player, "Usage: /team leave");
|
Chat.error(player, "Usage: /team leave");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Team team = Team.fromMember(player);
|
||||||
|
if (team == null) return;
|
||||||
|
|
||||||
Team.leaveTeam(player);
|
team.leaveTeam(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleDisband(Player player, String[] args) {
|
public void handleDisband(Player player, String[] args) {
|
||||||
@@ -160,8 +184,10 @@ public class Commands implements CommandExecutor {
|
|||||||
Chat.error(player, "Usage: /team disband");
|
Chat.error(player, "Usage: /team disband");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Team team = Team.fromMember(player);
|
||||||
|
if (team == null) return;
|
||||||
|
|
||||||
Team.disbandTeam(player);
|
team.disbandTeam(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleSetWarp(Player player, String[] args) {
|
public void handleSetWarp(Player player, String[] args) {
|
||||||
@@ -183,6 +209,8 @@ public class Commands implements CommandExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Team team = Team.fromMember(player);
|
Team team = Team.fromMember(player);
|
||||||
|
if (team == null) return;
|
||||||
|
|
||||||
Warp warp = Warp.getTeamWarp(team, args[1]);
|
Warp warp = Warp.getTeamWarp(team, args[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,8 +219,10 @@ public class Commands implements CommandExecutor {
|
|||||||
Chat.error(player, "Usage: /team kick <player>");
|
Chat.error(player, "Usage: /team kick <player>");
|
||||||
return;
|
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) {
|
public void handleLog(Player player, String[] args) {
|
||||||
@@ -201,7 +231,10 @@ public class Commands implements CommandExecutor {
|
|||||||
return;
|
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]";
|
String result = "Logs: [\n " + String.join("\n ", logs) + "\n]";
|
||||||
Chat.info(player, result);
|
Chat.info(player, result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,16 +3,19 @@ package dev.zxq5.fantasysmp.groups;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import dev.zxq5.fantasysmp.chatutils.Chat;
|
import dev.zxq5.fantasysmp.chatutils.Chat;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.bukkit.Bukkit.broadcastMessage;
|
||||||
import static org.bukkit.Bukkit.getServer;
|
import static org.bukkit.Bukkit.getServer;
|
||||||
|
|
||||||
public class Team {
|
public class Team {
|
||||||
private static ArrayList<Team> teams;
|
private static ArrayList<Team> teams;
|
||||||
|
private final static String FILENAME = "teams.json";
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private String ownerUUID;
|
private String ownerUUID;
|
||||||
@@ -27,12 +30,21 @@ public class Team {
|
|||||||
this.teamUUID = UUID.randomUUID().toString();
|
this.teamUUID = UUID.randomUUID().toString();
|
||||||
this.ownerUUID = creator.getUniqueId().toString();
|
this.ownerUUID = creator.getUniqueId().toString();
|
||||||
this.members = new ArrayList<>();
|
this.members = new ArrayList<>();
|
||||||
|
this.logs = new ArrayList<>();
|
||||||
members.add(creator.getUniqueId().toString());
|
members.add(creator.getUniqueId().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Team createTeam(Player creator, String name) {
|
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 team = new Team(creator, name, name);
|
||||||
|
team.logs.add(creator.getName() + " created the team.");
|
||||||
teams.add(team);
|
teams.add(team);
|
||||||
|
|
||||||
|
Chat.success(creator, "You created " + team.name + ".");
|
||||||
return team;
|
return team;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,6 +52,8 @@ public class Team {
|
|||||||
for (Team team : teams) {
|
for (Team team : teams) {
|
||||||
if (team.members.contains(member.getUniqueId().toString())) return team;
|
if (team.members.contains(member.getUniqueId().toString())) return team;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Team.error(member, Error.TEAM_NOT_FOUND);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,111 +65,166 @@ public class Team {
|
|||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void renameTeam(Player player, String newName) {
|
public void renameTeam(Player player, String newName) {
|
||||||
for (Team team : teams) {
|
if (!this.ownerUUID.equals(player.getUniqueId().toString())) {
|
||||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
Team.error(player, Error.NO_PERMISSION);
|
||||||
|
|
||||||
team.name = newName;
|
|
||||||
team.log(player.getName() + " renamed the team to " + newName + ".");
|
|
||||||
return;
|
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);
|
Player newOwner = getServer().getPlayer(playerName);
|
||||||
for (Team team : teams) {
|
if (newOwner == null) {
|
||||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
Team.error(player, Error.PLAYER_NOT_FOUND);
|
||||||
|
|
||||||
team.ownerUUID = newOwner.getUniqueId().toString();
|
|
||||||
team.log(player.getName() + " transferred ownership to " + newOwner.getName() + ".");
|
|
||||||
return;
|
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);
|
Player removedPlayer = getServer().getPlayer(playerName);
|
||||||
|
|
||||||
if (removedPlayer == null) {
|
if (removedPlayer == null) {
|
||||||
Chat.error(remover, "Player not found!");
|
Team.error(remover, Error.PLAYER_NOT_FOUND);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String removerUUID = remover.getUniqueId().toString();
|
String removerUUID = remover.getUniqueId().toString();
|
||||||
String removedPlayerUUID = removedPlayer.getUniqueId().toString();
|
String removedPlayerUUID = removedPlayer.getUniqueId().toString();
|
||||||
|
|
||||||
for (Team team : teams) {
|
if (removedPlayerUUID.equals(this.ownerUUID)) {
|
||||||
if (!team.members.contains(removerUUID)) continue;
|
Team.error(remover, Error.TEAM_OWNER);
|
||||||
|
|
||||||
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.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void leaveTeam(Player player) {
|
if (!this.ownerUUID.equals(removerUUID)) {
|
||||||
for (Team team : teams) {
|
Team.error(remover, Error.NO_PERMISSION);
|
||||||
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.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void disbandTeam(Player player) {
|
if (!this.members.contains(removedPlayerUUID)) {
|
||||||
for (Team team : teams) {
|
Team.error(remover, Error.PLAYER_NOT_FOUND);
|
||||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
|
||||||
|
|
||||||
teams.remove(team);
|
|
||||||
team.log(player.getName() + " disbanded the team.");
|
|
||||||
return;
|
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) {
|
public void leaveTeam(Player member) {
|
||||||
for (Team team : teams) {
|
if (this.ownerUUID.equals(member.getUniqueId().toString())) {
|
||||||
if (!team.ownerUUID.equals(player.getUniqueId().toString())) continue;
|
Team.error(member, Error.TEAM_OWNER);
|
||||||
|
|
||||||
team.members.add(player.getUniqueId().toString());
|
|
||||||
team.log(player.getName() + " joined the team.");
|
|
||||||
return;
|
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) {
|
public void disbandTeam(Player member) {
|
||||||
for (Team team : teams) {
|
if (!this.ownerUUID.equals(member.getUniqueId().toString())) {
|
||||||
if (team.ownerUUID.equals(player.getUniqueId().toString())) {
|
Team.error(member, Error.NO_PERMISSION);
|
||||||
return team.logs;
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void log(String message) {
|
public void log(String message) {
|
||||||
this.logs.add(message);
|
this.logs.add(message);
|
||||||
|
Team.saveTeams();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void loadTeams() throws Exception {
|
public static void loadTeams() throws Exception {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "warps.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
createTeamsFile();
|
createTeamsFile();
|
||||||
@@ -170,20 +239,26 @@ public class Team {
|
|||||||
reader.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void saveTeams() throws Exception {
|
public static void saveTeams() {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "teams.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
String json = gson.toJson(teams);
|
String json = gson.toJson(teams);
|
||||||
Writer writer = new FileWriter(file);
|
|
||||||
writer.write(json);
|
try {
|
||||||
writer.close();
|
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() {
|
public static void createTeamsFile() {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "teams.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
try {
|
try {
|
||||||
@@ -202,4 +277,32 @@ public class Team {
|
|||||||
public String getUUID() {
|
public String getUUID() {
|
||||||
return this.teamUUID;
|
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 {
|
public class Warp {
|
||||||
|
|
||||||
|
private static final String FILENAME = "warps.json";
|
||||||
private static Warp[] warps;
|
private static Warp[] warps;
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private String setby;
|
private String setby;
|
||||||
private String world;
|
private String world;
|
||||||
|
private String teamUUID;
|
||||||
private WarpType type;
|
private WarpType type;
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -37,7 +39,7 @@ public class Warp {
|
|||||||
|
|
||||||
public static void loadWarps() throws Exception {
|
public static void loadWarps() throws Exception {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "warps.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
createWarpFile();
|
createWarpFile();
|
||||||
@@ -54,7 +56,7 @@ public class Warp {
|
|||||||
|
|
||||||
public static void saveWarps() throws Exception {
|
public static void saveWarps() throws Exception {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "warps.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
String json = gson.toJson(warps);
|
String json = gson.toJson(warps);
|
||||||
@@ -65,7 +67,7 @@ public class Warp {
|
|||||||
|
|
||||||
public static void createWarpFile() {
|
public static void createWarpFile() {
|
||||||
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
File dataFolder = getServer().getPluginManager().getPlugin("Fantasysmp").getDataFolder();
|
||||||
File file = new File(dataFolder, "warps.json");
|
File file = new File(dataFolder, FILENAME);
|
||||||
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -47,12 +47,21 @@ commands:
|
|||||||
usage: /warp <warp name>
|
usage: /warp <warp name>
|
||||||
permission: fantasysmp.warps
|
permission: fantasysmp.warps
|
||||||
|
|
||||||
|
team:
|
||||||
|
description: team commands
|
||||||
|
usage: /team <subcommand>
|
||||||
|
permission: fantasysmp.teams
|
||||||
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
fantasysmp.items:
|
fantasysmp.items:
|
||||||
description: create custom items from plugin
|
description: create custom items from plugin
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
|
fantasysmp.teams:
|
||||||
|
description: team commands
|
||||||
|
default: true
|
||||||
|
|
||||||
fantasysmp.warps:
|
fantasysmp.warps:
|
||||||
description: teleport to custom warps
|
description: teleport to custom warps
|
||||||
default: true
|
default: true
|
||||||
@@ -73,4 +82,5 @@ permissions:
|
|||||||
fantasysmp.manage_warps: true
|
fantasysmp.manage_warps: true
|
||||||
fantasysmp.home: true
|
fantasysmp.home: true
|
||||||
fantasysmp.warps: true
|
fantasysmp.warps: true
|
||||||
|
fantasysmp.teams: true
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user