From eb58419a3a701cecb222c2d6eac799d46fdec71d Mon Sep 17 00:00:00 2001
From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com>
Date: Tue, 30 Jun 2020 00:25:38 -0700
Subject: [PATCH] 1.16, overhaul of player data
---
TotalFreedomMod.iml | 40 +-
pom.xml | 20 +-
.../totalfreedommod/AntiNuke.java | 1 -
.../totalfreedommod/AntiSpam.java | 3 -
.../totalfreedommod/ChatManager.java | 14 +-
.../totalfreedom/totalfreedommod/Fuckoff.java | 2 +-
.../totalfreedommod/LoginProcess.java | 50 +--
.../totalfreedommod/MovementValidator.java | 10 +-
.../totalfreedom/totalfreedommod/Muter.java | 4 +-
.../totalfreedommod/ServerInterface.java | 8 +-
.../totalfreedommod/TotalFreedomMod.java | 15 +-
.../totalfreedommod/admin/Admin.java | 74 ++--
.../totalfreedommod/admin/AdminList.java | 38 +-
.../totalfreedommod/banning/BanManager.java | 33 +-
.../blocking/BlockBlocker.java | 6 +-
.../blocking/InteractBlocker.java | 16 +-
.../totalfreedommod/blocking/SignBlocker.java | 6 +-
.../bridge/LibsDisguisesBridge.java | 14 +-
.../totalfreedommod/command/Command_ban.java | 2 +-
.../totalfreedommod/command/Command_cage.java | 8 -
.../command/Command_clearchat.java | 51 +--
.../command/Command_coins.java | 8 +-
.../command/Command_disguisetoggle.java | 5 +-
.../command/Command_donator.java | 80 ++++
.../totalfreedommod/command/Command_doom.java | 2 +-
.../command/Command_fireball.java | 2 +-
.../command/Command_gadmin.java | 211 -----------
.../command/Command_glist.java | 24 +-
.../totalfreedommod/command/Command_glow.java | 32 ++
.../command/Command_grapplinghook.java | 2 +-
.../command/Command_lightningrod.java | 2 +-
.../command/Command_linkdiscord.java | 79 ++--
.../totalfreedommod/command/Command_list.java | 2 +-
.../command/Command_manageshop.java | 64 ++--
.../command/Command_manuallyverify.java | 57 +++
.../command/Command_massmurder.java | 42 +++
.../command/Command_mbconfig.java | 202 +++-------
.../command/Command_modifyitem.java | 9 +-
.../command/Command_myadmin.java | 49 +--
.../command/Command_mymasterbuilder.java | 237 ------------
.../command/Command_nickclean.java | 48 ++-
.../command/Command_notes.java | 32 +-
...y.java => Command_playerverification.java} | 53 +--
.../command/Command_realtime.java | 64 ----
.../totalfreedommod/command/Command_ride.java | 14 +-
.../command/Command_rideablepearl.java | 2 +-
.../command/Command_saconfig.java | 80 +---
.../totalfreedommod/command/Command_shop.java | 2 +-
.../totalfreedommod/command/Command_stop.java | 41 +-
.../totalfreedommod/command/Command_tag.java | 32 +-
.../totalfreedommod/command/Command_tban.java | 8 +-
.../command/Command_tempban.java | 2 +-
.../command/Command_trail.java | 18 +-
.../command/Command_unban.java | 2 +-
.../command/Command_uncage.java | 47 +++
.../command/Command_undisguiseall.java | 7 -
.../command/Command_unlinkdiscord.java | 39 +-
.../command/Command_unmute.java | 36 +-
.../command/Command_vanish.java | 22 +-
.../command/Command_verify.java | 292 +++------------
.../command/Command_verifynoadmin.java | 1 -
.../totalfreedommod/command/Command_warn.java | 2 +-
.../command/FreedomCommand.java | 14 +
.../totalfreedommod/config/ConfigEntry.java | 5 +
.../totalfreedommod/discord/Discord.java | 137 +------
.../discord/PrivateMessageListener.java | 35 +-
.../totalfreedommod/freeze/FreezeData.java | 2 +-
.../totalfreedommod/fun/ItemFun.java | 17 +-
.../totalfreedommod/fun/RealTimer.java | 71 ----
.../totalfreedommod/fun/Trailer.java | 5 +
.../httpd/module/Module_list.java | 4 +-
.../httpd/module/Module_logs.java | 2 +-
.../httpd/module/Module_players.java | 7 +-
.../httpd/module/Module_schematic.java | 6 +-
.../masterbuilder/MasterBuilder.java | 188 ----------
.../masterbuilder/MasterBuilderList.java | 295 ---------------
.../permissions/PermissionManager.java | 2 +-
.../totalfreedommod/player/PlayerData.java | 259 ++++++++++---
.../totalfreedommod/player/PlayerList.java | 352 ++++++++++++------
.../PlayerVerification.java | 203 ----------
.../playerverification/VPlayer.java | 166 ---------
.../totalfreedommod/rank/Displayable.java | 5 +-
.../totalfreedommod/rank/Rank.java | 23 +-
.../totalfreedommod/rank/RankManager.java | 78 ++--
.../totalfreedommod/rank/Title.java | 20 +-
.../totalfreedommod/shop/Shop.java | 164 +-------
.../totalfreedommod/shop/ShopData.java | 107 ------
.../totalfreedommod/sql/SQLite.java | 162 +++++++-
.../totalfreedommod/util/FUtil.java | 34 +-
.../totalfreedommod/util/Groups.java | 36 +-
.../world/WorldRestrictions.java | 4 +-
src/main/resources/admins.yml | 31 --
src/main/resources/bans.yml | 3 -
src/main/resources/config.yml | 8 +-
src/main/resources/masterbuilders.yml | 3 -
95 files changed, 1553 insertions(+), 3263 deletions(-)
create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_gadmin.java
create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_glow.java
create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_mymasterbuilder.java
rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_playerverify.java => Command_playerverification.java} (74%)
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_realtime.java
create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_uncage.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/fun/RealTimer.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilder.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilderList.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/playerverification/PlayerVerification.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/playerverification/VPlayer.java
delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/shop/ShopData.java
delete mode 100644 src/main/resources/admins.yml
delete mode 100644 src/main/resources/bans.yml
delete mode 100644 src/main/resources/masterbuilders.yml
diff --git a/TotalFreedomMod.iml b/TotalFreedomMod.iml
index c84a53a3..d37fef58 100644
--- a/TotalFreedomMod.iml
+++ b/TotalFreedomMod.iml
@@ -51,16 +51,18 @@
-
+
-
+
-
-
-
-
+
+
+
+
+
+
@@ -109,7 +111,6 @@
-
@@ -142,21 +143,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index ed03305a..9ba7a4e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,7 +138,7 @@
org.spigotmc
spigot
- 1.15-R0.1-SNAPSHOT
+ 1.16.1-R0.1-SNAPSHOT
provided
@@ -157,10 +157,9 @@
- com.github.TFPatches
- TF-LibsDisguises
- 11aea9b3cd
- provided
+ com.github.libraryaddict
+ LibsDisguises
+ 31672fce7b
@@ -201,7 +200,7 @@
com.destroystokyo.paper
paper-api
- 1.15.1-R0.1-SNAPSHOT
+ 1.16.1-R0.1-SNAPSHOT
provided
@@ -218,6 +217,13 @@
provided
+
+ org.bukkit
+ bukkit
+ 1.16.1-R0.1-SNAPSHOT
+ provided
+
+
com.github.ConnorLinfoot
ActionBarAPI
@@ -376,7 +382,7 @@
org.apache.maven.plugins
maven-shade-plugin
- 2.4.3
+ 3.2.4
package
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiNuke.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiNuke.java
index a25334d9..48f34c09 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/AntiNuke.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiNuke.java
@@ -4,7 +4,6 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
-import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
index 2fe8b7f0..59bdcb16 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
@@ -10,12 +10,9 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerKickEvent;
-import org.bukkit.event.player.PlayerLoginEvent;
-import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
public class AntiSpam extends FreedomService
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
index 4d50d6ba..1c0ebb51 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
@@ -1,20 +1,18 @@
package me.totalfreedom.totalfreedommod;
import com.google.common.base.Strings;
-import java.time.LocalDate;
-import java.time.Period;
import java.util.Date;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Displayable;
-import me.totalfreedom.totalfreedommod.shop.ShopData;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FSync;
import me.totalfreedom.totalfreedommod.util.FUtil;
import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg;
import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
+import net.md_5.bungee.api.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -41,7 +39,7 @@ public class ChatManager extends FreedomService
{
}
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
+ @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerChatFormat(AsyncPlayerChatEvent event)
{
try
@@ -66,9 +64,9 @@ public class ChatManager extends FreedomService
if (ConfigEntry.SHOP_REACTIONS_ENABLED.getBoolean() && !plugin.sh.reactionString.isEmpty() && message.equals(plugin.sh.reactionString))
{
event.setCancelled(true);
- ShopData data = plugin.sh.getData(player);
+ PlayerData data = plugin.pl.getData(player);
data.setCoins(data.getCoins() + plugin.sh.coinsPerReactionWin);
- plugin.sh.save(data);
+ plugin.pl.save(data);
plugin.sh.reactionString = "";
Date currentTime = new Date();
long seconds = (currentTime.getTime() - plugin.sh.reactionStartTime.getTime()) / 1000;
@@ -82,7 +80,7 @@ public class ChatManager extends FreedomService
if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player))
{
event.setCancelled(true);
- playerMsg(player, "Chat is currently disabled.", ChatColor.RED);
+ playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED);
return;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Fuckoff.java b/src/main/java/me/totalfreedom/totalfreedommod/Fuckoff.java
index 8db1fe14..693a5cb8 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/Fuckoff.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/Fuckoff.java
@@ -53,7 +53,7 @@ public class Fuckoff extends FreedomService
if (distanceSquared < (fuckoffRange * fuckoffRange))
{
- onlinePlayer.setVelocity(onlinePlayer.getLocation().toVector().subtract(foLocation.toVector()).normalize().multiply(fPlayer.getFuckoffRadius()));
+ fuckoffPlayer.setVelocity(onlinePlayer.getLocation().toVector().subtract(foLocation.toVector()).normalize().multiply(fPlayer.getFuckoffRadius()));
break;
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
index f5a189ff..286f3af3 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
@@ -5,14 +5,13 @@ import java.util.List;
import java.util.regex.Pattern;
import lombok.Getter;
import lombok.Setter;
-import me.totalfreedom.totalfreedommod.command.Command_vanish;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FSync;
import me.totalfreedom.totalfreedommod.util.FUtil;
+import net.pravian.aero.util.Ips;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -194,7 +193,7 @@ public class LoginProcess extends FreedomService
{
final Player player = event.getPlayer();
final FPlayer fPlayer = plugin.pl.getPlayer(player);
- final VPlayer verificationPlayer = plugin.pv.getVerificationPlayer(player);
+ final PlayerData playerData = plugin.pl.getData(player);
player.sendTitle(FUtil.colorize(ConfigEntry.SERVER_LOGIN_TITLE.getString()), FUtil.colorize(ConfigEntry.SERVER_LOGIN_SUBTITLE.getString()), 20, 100, 60);
player.setOp(true);
@@ -210,6 +209,12 @@ public class LoginProcess extends FreedomService
return;
}
+ if (!playerData.hasVerification() && !playerData.getIps().contains(Ips.getIp(player)))
+ {
+ playerData.addIp(Ips.getIp(player));
+ plugin.pl.save(playerData);
+ }
+
if (CLEAR_ON_JOIN.contains(player.getName()) || ConfigEntry.AUTO_CLEAR.getBoolean())
{
player.getInventory().clear();
@@ -237,35 +242,20 @@ public class LoginProcess extends FreedomService
if (!plugin.al.isAdmin(player))
{
- if (plugin.mbl.isMasterBuilder(player))
+ fPlayer.setTag(FUtil.colorize(playerData.getTag()));
+ int noteCount = playerData.getNotes().size();
+ if (noteCount != 0)
{
- MasterBuilder masterBuilder = plugin.mbl.getMasterBuilder(player);
- if (masterBuilder.getTag() != null)
+ String noteMessage = "This player has " + noteCount + " staff note" + (noteCount > 1 ? "s" : "") + ".";
+ JSONMessage notice = JSONMessage.create(ChatColor.GOLD + noteMessage + " Click here to view them.")
+ .tooltip("Click here to view them.")
+ .runCommand("/notes " + player.getName() + " list");
+ FLog.info(noteMessage);
+ for (Player p : server.getOnlinePlayers())
{
- fPlayer.setTag(FUtil.colorize(masterBuilder.getTag()));
- }
- }
- else
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(player);
- if (vPlayer.getEnabled() && vPlayer.getTag() != null)
- {
- fPlayer.setTag(FUtil.colorize(vPlayer.getTag()));
- }
- int noteCount = vPlayer.getNotes().size();
- if (noteCount != 0)
- {
- String noteMessage = "This player has " + noteCount + " staff note" + (noteCount > 1 ? "s" : "") + ".";
- JSONMessage notice = JSONMessage.create(ChatColor.GOLD + noteMessage + " Click here to view them.")
- .tooltip("Click here to view them.")
- .runCommand("/notes " + player.getName() + " list");
- FLog.info(noteMessage);
- for (Player p : server.getOnlinePlayers())
+ if (plugin.al.isAdminImpostor(p))
{
- if (plugin.al.isAdminImpostor(p))
- {
- notice.send(p);
- }
+ notice.send(p);
}
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java b/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java
index e00aa068..a248738f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java
@@ -5,12 +5,12 @@ import ca.momothereal.mojangson.value.MojangsonCompound;
import ca.momothereal.mojangson.value.MojangsonValue;
import java.util.List;
import java.util.Objects;
-import net.minecraft.server.v1_15_R1.NBTTagCompound;
-import net.minecraft.server.v1_15_R1.NBTTagList;
+import net.minecraft.server.v1_16_R1.NBTTagCompound;
+import net.minecraft.server.v1_16_R1.NBTTagList;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -137,7 +137,7 @@ public class MovementValidator extends FreedomService
private Boolean exploitItem(ItemStack item)
{
- net.minecraft.server.v1_15_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
+ net.minecraft.server.v1_16_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
NBTTagList modifiers = getAttributeList(nmsStack);
MojangsonCompound compound = new MojangsonCompound();
boolean foundNegative = false;
@@ -174,7 +174,7 @@ public class MovementValidator extends FreedomService
}
- private NBTTagList getAttributeList(net.minecraft.server.v1_15_R1.ItemStack stack)
+ private NBTTagList getAttributeList(net.minecraft.server.v1_16_R1.ItemStack stack)
{
if (stack.getTag() == null)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
index 67dccc21..fee55d43 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
@@ -38,15 +38,13 @@ public class Muter extends FreedomService
{
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.HIGHEST)
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event)
{
Player player = event.getPlayer();
FPlayer fPlayer = plugin.pl.getPlayerSync(player);
- FLog.info("checking mute");
-
if (!fPlayer.isMuted())
{
return;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ServerInterface.java b/src/main/java/me/totalfreedom/totalfreedommod/ServerInterface.java
index 2d69d9ea..968397bc 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/ServerInterface.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/ServerInterface.java
@@ -4,15 +4,15 @@ import java.util.Arrays;
import java.util.List;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.minecraft.server.v1_15_R1.EntityPlayer;
-import net.minecraft.server.v1_15_R1.MinecraftServer;
+import net.minecraft.server.v1_16_R1.EntityPlayer;
+import net.minecraft.server.v1_16_R1.MinecraftServer;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_15_R1.CraftServer;
+import org.bukkit.craftbukkit.v1_16_R1.CraftServer;
public class ServerInterface extends FreedomService
{
- public static final String COMPILE_NMS_VERSION = "v1_15_R1";
+ public static final String COMPILE_NMS_VERSION = "v1_16_R1";
public ServerInterface(TotalFreedomMod plugin)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
index c13ae3e3..d26ac1d0 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
@@ -33,16 +33,12 @@ import me.totalfreedom.totalfreedommod.fun.Jumppads;
import me.totalfreedom.totalfreedommod.fun.Landminer;
import me.totalfreedom.totalfreedommod.fun.MP44;
import me.totalfreedom.totalfreedommod.fun.MobStacker;
-import me.totalfreedom.totalfreedommod.fun.RealTimer;
import me.totalfreedom.totalfreedommod.fun.Trailer;
import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilderList;
import me.totalfreedom.totalfreedommod.world.WorldRestrictions;
import me.totalfreedom.totalfreedommod.permissions.PermissionConfig;
import me.totalfreedom.totalfreedommod.permissions.PermissionManager;
import me.totalfreedom.totalfreedommod.player.PlayerList;
-import me.totalfreedom.totalfreedommod.playerverification.PlayerVerification;
import me.totalfreedom.totalfreedommod.punishments.PunishmentList;
import me.totalfreedom.totalfreedommod.rank.RankManager;
import me.totalfreedom.totalfreedommod.shop.Shop;
@@ -126,12 +122,9 @@ public class TotalFreedomMod extends AeroPlugin
public Jumppads jp;
public Trailer tr;
public HTTPDaemon hd;
- public MasterBuilderList mbl;
public WorldRestrictions wr;
public SignBlocker snp;
- public PlayerVerification pv;
public EntityWiper ew;
- public RealTimer rt;
//public HubWorldRestrictions hwr;
//
// Bridges
@@ -174,12 +167,10 @@ public class TotalFreedomMod extends AeroPlugin
BackupManager backups = new BackupManager(this);
backups.createBackups(TotalFreedomMod.CONFIG_FILENAME, true);
- backups.createBackups(AdminList.CONFIG_FILENAME);
backups.createBackups(PermbanList.CONFIG_FILENAME);
backups.createBackups(PermissionConfig.PERMISSIONS_FILENAME, true);
- backups.createBackups(MasterBuilder.CONFIG_FILENAME);
backups.createBackups(PunishmentList.CONFIG_FILENAME);
- backups.createBackups("");
+ backups.createBackups("database.db");
config = new MainConfig(this);
config.load();
@@ -207,7 +198,6 @@ public class TotalFreedomMod extends AeroPlugin
lp = services.registerService(LoginProcess.class);
nu = services.registerService(AntiNuke.class);
as = services.registerService(AntiSpam.class);
- mbl = services.registerService(MasterBuilderList.class);
wr = services.registerService(WorldRestrictions.class);
pl = services.registerService(PlayerList.class);
sh = services.registerService(Shop.class);
@@ -239,7 +229,6 @@ public class TotalFreedomMod extends AeroPlugin
mv = services.registerService(MovementValidator.class);
sp = services.registerService(ServerPing.class);
- pv = services.registerService(PlayerVerification.class);
// Fun
cul = services.registerService(CurseListener.class);
@@ -249,8 +238,6 @@ public class TotalFreedomMod extends AeroPlugin
mp = services.registerService(MP44.class);
jp = services.registerService(Jumppads.class);
tr = services.registerService(Trailer.class);
- rt = services.registerService(RealTimer.class);
-
// HTTPD
hd = services.registerService(HTTPDaemon.class);
services.start();
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java
index aca96ae0..1f7e31fe 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java
@@ -1,7 +1,8 @@
package me.totalfreedom.totalfreedommod.admin;
import com.google.common.collect.Lists;
-import java.util.Arrays;
+import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -12,6 +13,7 @@ import lombok.Setter;
import me.totalfreedom.totalfreedommod.LogViewer.LogsRegistrationMode;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.pravian.aero.util.Ips;
import org.apache.commons.lang.StringUtils;
@@ -31,7 +33,6 @@ public class Admin
private Rank rank = Rank.SUPER_ADMIN;
@Getter
private final List ips = Lists.newArrayList();
- private final List backupCodes = Lists.newArrayList();
@Getter
@Setter
private Date lastLogin = new Date();
@@ -40,12 +41,6 @@ public class Admin
private String loginMessage = null;
@Getter
@Setter
- private String discordID = null;
- @Getter
- @Setter
- private String tag = null;
- @Getter
- @Setter
private Boolean commandSpy = false;
@Getter
@Setter
@@ -60,32 +55,33 @@ public class Admin
@Setter
private Boolean logStick = false;
- public static final String CONFIG_FILENAME = "admins.yml";
-
public Admin(Player player)
{
this.name = player.getName();
this.ips.add(Ips.getIp(player));
}
- public Admin(String username, List ips, Rank rank, Boolean active, Date lastLogin, String loginMessage, String tag, String discordID, List backupCodes, Boolean commandSpy, Boolean potionSpy, String acFormat, Boolean oldTags, Boolean logStick)
+ public Admin(ResultSet resultSet)
{
- this.name = username;
- this.active = active;
- this.rank = rank;
- this.ips.clear();
- this.ips.addAll(ips);
- this.lastLogin = lastLogin;
- this.loginMessage = loginMessage;
- this.tag = tag;
- this.discordID = discordID;
- this.backupCodes.clear();
- this.backupCodes.addAll(backupCodes);
- this.commandSpy = commandSpy;
- this.potionSpy = potionSpy;
- this.acFormat = acFormat;
- this.oldTags = oldTags;
- this.logStick = logStick;
+ try
+ {
+ this.name = resultSet.getString("username");
+ this.active = resultSet.getBoolean("active");
+ this.rank = Rank.findRank(resultSet.getString("rank"));
+ this.ips.clear();
+ this.ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
+ this.lastLogin = new Date(resultSet.getLong("last_login"));
+ this.loginMessage = resultSet.getString("login_message");
+ this.commandSpy = resultSet.getBoolean("command_spy");
+ this.potionSpy = resultSet.getBoolean("potion_spy");
+ this.acFormat = resultSet.getString("ac_format");
+ this.oldTags = resultSet.getBoolean("old_tags");
+ this.logStick = resultSet.getBoolean("log_stick");
+ }
+ catch (SQLException e)
+ {
+ FLog.severe("Failed to load admin: " + e.getMessage());
+ }
}
@Override
@@ -99,13 +95,10 @@ public class Admin
.append("- Custom Login Message: ").append(loginMessage).append("\n")
.append("- Rank: ").append(rank.getName()).append("\n")
.append("- Is Active: ").append(active).append("\n")
- .append("- Discord ID: ").append(discordID).append("\n")
- .append("- Tag: ").append(tag).append("\n").append(ChatColor.GRAY)
.append("- Potion Spy: ").append(potionSpy).append("\n")
.append("- Admin Chat Format: ").append(acFormat).append("\n")
.append("- Old Tags: ").append(oldTags).append("\n")
- .append("- Log Stick: ").append(logStick).append("\n")
- .append("- Backup Codes: ").append(backupCodes.size()).append("/10");
+ .append("- Log Stick: ").append(logStick).append("\n");
return output.toString();
}
@@ -125,11 +118,8 @@ public class Admin
put("active", active);
put("rank", rank.toString());
put("ips", FUtil.listToString(ips));
- put("backup_codes", FUtil.listToString(backupCodes));
put("last_login", lastLogin.getTime());
put("login_message", loginMessage);
- put("discord_id", discordID);
- put("tag", tag);
put("command_spy", commandSpy);
put("potion_spy", potionSpy);
put("ac_format", acFormat);
@@ -179,22 +169,6 @@ public class Admin
ips.clear();
}
- public List getBackupCodes()
- {
- return Collections.unmodifiableList(backupCodes);
- }
-
- public void setBackupCodes(List codes)
- {
- backupCodes.clear();
- backupCodes.addAll(codes);
- }
-
- public void removeBackupCode(String code)
- {
- backupCodes.remove(code);
- }
-
public void setActive(boolean active)
{
this.active = active;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java
index 80d4ecd2..29c519b1 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java
@@ -18,7 +18,6 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.config.YamlConfig;
import net.pravian.aero.util.Ips;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@@ -27,9 +26,6 @@ import org.bukkit.plugin.ServicePriority;
public class AdminList extends FreedomService
{
-
- public static final String CONFIG_FILENAME = "admins.yml";
-
@Getter
private final Set allAdmins = Sets.newHashSet(); // Includes disabled admins
// Only active admins below
@@ -40,30 +36,16 @@ public class AdminList extends FreedomService
public final List verifiedNoAdmins = new ArrayList<>();
public final Map> verifiedNoAdminIps = Maps.newHashMap();
public static ArrayList vanished = new ArrayList<>();
- //
- private final YamlConfig config;
public AdminList(TotalFreedomMod plugin)
{
super(plugin);
-
- this.config = new YamlConfig(plugin, CONFIG_FILENAME, true);
}
@Override
protected void onStart()
{
load();
-
- server.getServicesManager().register(Function.class, new Function()
- {
- @Override
- public Boolean apply(Player player)
- {
- return isAdmin(player);
- }
- }, plugin, ServicePriority.Normal);
-
deactivateOldEntries(false);
}
@@ -74,8 +56,6 @@ public class AdminList extends FreedomService
public void load()
{
- config.load();
-
allAdmins.clear();
try
{
@@ -83,28 +63,14 @@ public class AdminList extends FreedomService
{
while (adminSet.next())
{
- String name = adminSet.getString("username");
- List ips = FUtil.stringToList(adminSet.getString("ips"));
- Rank rank = Rank.findRank(adminSet.getString("rank"));
- Boolean active = adminSet.getBoolean("active");;
- Date lastLogin = new Date(adminSet.getLong("last_login"));
- String loginMessage = adminSet.getString("login_message");
- String tag = adminSet.getString("tag");
- String discordID = adminSet.getString("discord_id");
- List backupCodes = FUtil.stringToList(adminSet.getString("backup_codes"));
- Boolean commandSpy = adminSet.getBoolean("command_spy");
- Boolean potionSpy = adminSet.getBoolean("potion_spy");
- String acFormat = adminSet.getString("ac_format");
- Boolean oldTags = adminSet.getBoolean("old_tags");
- Boolean logStick = adminSet.getBoolean("log_stick");
- Admin admin = new Admin(name, ips, rank, active, lastLogin, loginMessage, tag, discordID, backupCodes, commandSpy, potionSpy, acFormat, oldTags, logStick);
+ Admin admin = new Admin(adminSet);
allAdmins.add(admin);
}
}
}
catch (SQLException e)
{
- FLog.severe("Failed to get adminlist: " + e.getMessage());
+ FLog.severe("Failed to load adminlist: " + e.getMessage());
}
updateTables();
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
index 7455afb3..0a844332 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
@@ -9,7 +9,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -180,10 +179,23 @@ public class BanManager extends FreedomService
public boolean addBan(Ban ban)
{
- if (getByUsername(ban.getUsername()) != null)
+ if (ban.getUsername() != null && getByUsername(ban.getUsername()) != null)
{
removeBan(ban);
}
+ else
+ {
+
+ for (String ip : ban.getIps())
+ {
+ if (getByIp(ip) != null)
+ {
+ removeBan(ban);
+ break;
+ }
+ }
+ }
+
if (bans.add(ban))
{
plugin.sql.addBan(ban);
@@ -246,14 +258,19 @@ public class BanManager extends FreedomService
}
// Unban admins
- for (String storedIp : data.getIps())
+ Ban ban = getByUsername(player.getName());
+ if (ban != null)
{
- unbanIp(storedIp);
- unbanIp(FUtil.getFuzzyIp(storedIp));
+ removeBan(ban);
+ }
+ else
+ {
+ ban = getByIp(Ips.getIp(player));
+ if (ban != null)
+ {
+ removeBan(ban);
+ }
}
-
- unbanUsername(player.getName());
- player.setOp(true);
}
private void updateViews()
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java
index a0176022..9ddf4e98 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java
@@ -68,6 +68,7 @@ public class BlockBlocker extends FreedomService
break;
}
case FIRE:
+ case SOUL_FIRE:
{
if (!ConfigEntry.ALLOW_FIRE_PLACE.getBoolean())
{
@@ -173,13 +174,10 @@ public class BlockBlocker extends FreedomService
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))
{
Banner banner = (Banner) event.getBlockPlaced().getState();
- List patterns = banner.getPatterns();
- Banner handBanner = (Banner) (((Block) event.getItemInHand()).getState());
- List handPatterns = banner.getPatterns();
+ List patterns = banner.getPatterns();;
if (patterns.size() >= 2)
{
banner.setPatterns(patterns.subList(0, 2));
- handBanner.setPatterns(handPatterns.subList(0, 2));
player.sendMessage(ChatColor.GRAY + "Your banner had too many patterns on it, so some were removed.");
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
index ac95a1eb..0d35b04f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
@@ -56,15 +56,9 @@ public class InteractBlocker extends FreedomService
@EventHandler(priority = EventPriority.HIGH)
public void onRightClickBell(PlayerInteractEvent event)
{
- if (event.getClickedBlock() != null)
+ if (event.getClickedBlock() != null && event.getClickedBlock().getType().equals(Material.BELL) && !ConfigEntry.ALLOW_BELLS.getBoolean())
{
- if (event.getClickedBlock().getType().equals(Material.BELL))
- {
- if (!ConfigEntry.ALLOW_BELLS.getBoolean())
- {
- event.setCancelled(true);
- }
- }
+ event.setCancelled(true);
}
}
@@ -89,12 +83,14 @@ public class InteractBlocker extends FreedomService
return;
}
- if (Groups.BED_COLORS.contains(event.getMaterial()) && event.getClickedBlock().getBiome().equals(Biome.NETHER))
+ // TODO: lookup new biomes that have bed explosions in 1.16
+
+ /*if (Groups.BED_COLORS.contains(event.getMaterial()) && event.getClickedBlock().getBiome().equals(Biome.NETHER))
{
player.sendMessage(ChatColor.RED + "You can't sleep in hell.");
event.setCancelled(true);
return;
- }
+ }*/
switch (event.getMaterial())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/SignBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/SignBlocker.java
index c97d30a7..e09cc0f6 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/SignBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/SignBlocker.java
@@ -2,11 +2,11 @@ package me.totalfreedom.totalfreedommod.blocking;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import net.minecraft.server.v1_15_R1.NBTTagCompound;
+import net.minecraft.server.v1_16_R1.NBTTagCompound;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Tag;
-import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -43,7 +43,7 @@ public class SignBlocker extends FreedomService
if (Tag.SIGNS.getValues().contains(event.getBlock().getType()))
{
ItemStack sign = event.getItemInHand();
- net.minecraft.server.v1_15_R1.ItemStack nmsSign = CraftItemStack.asNMSCopy(sign);
+ net.minecraft.server.v1_16_R1.ItemStack nmsSign = CraftItemStack.asNMSCopy(sign);
NBTTagCompound compound = (nmsSign.hasTag()) ? nmsSign.getTag() : new NBTTagCompound();
NBTTagCompound bet = compound.getCompound("BlockEntityTag");
String line1 = bet.getString("Text1");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
index e6ff80d0..c9f58bd4 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
@@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.bridge;
import me.libraryaddict.disguise.DisguiseAPI;
import me.libraryaddict.disguise.LibsDisguises;
-import me.totalfreedom.libsdisguises.BlockedDisguises;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.util.FLog;
@@ -108,18 +107,25 @@ public class LibsDisguisesBridge extends FreedomService
return;
}
- BlockedDisguises.disabled = !state;
+ if (state)
+ {
+ server.getPluginManager().disablePlugin(libsDisguises);
+ }
+ else
+ {
+ server.getPluginManager().disablePlugin(libsDisguises);
+ }
}
public boolean isDisguisesEnabled()
{
- return !BlockedDisguises.disabled;
+ return !getLibsDisguisesPlugin().isEnabled();
}
public boolean isEnabled()
{
final LibsDisguises libsDisguises = getLibsDisguisesPlugin();
- return libsDisguises != null && libsDisguises.isEnabled();
+ return libsDisguises != null;
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
index f31cd46e..fd6afc22 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
@@ -74,7 +74,7 @@ public class Command_ban extends FreedomCommand
return true;
}
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
index 44d62109..2eda0ebc 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
@@ -48,14 +48,6 @@ public class Command_cage extends FreedomCommand
final FPlayer fPlayer = plugin.pl.getPlayer(player);
- if (fPlayer.getCageData().isCaged())
- {
- FUtil.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
- final FPlayer playerdata = plugin.pl.getPlayer(playerSender);
- playerdata.getCageData().setCaged(false);
- return true;
- }
-
Material outerMaterial = Material.GLASS;
Material innerMaterial = Material.AIR;
if (args.length >= 2 && args[1] != null)
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
index 3db4e552..1fee90d2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
@@ -1,16 +1,12 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.stream.IntStream;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Clears the chat for players who are not opt-out.", usage = "/", aliases = "cc")
public class Command_clearchat extends FreedomCommand
{
@@ -19,51 +15,12 @@ public class Command_clearchat extends FreedomCommand
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (plugin.al.isAdmin(playerSender))
+ for (Player player : server.getOnlinePlayers())
{
- for (Player player : server.getOnlinePlayers())
+ if (!plugin.al.isAdmin(player))
{
- boolean optedOut = false;
-
- if (plugin.al.isAdmin(player))
- {
- optedOut = true;
- }
- else if (plugin.mbl.isMasterBuilder(player) && plugin.mbl.getMasterBuilder(player).isClearChatOptOut())
- {
- optedOut = true;
- }
- else if (plugin.pv.getVerificationPlayer(player).getEnabled() && plugin.pv.getVerificationPlayer(player).isClearChatOptOut())
- {
- optedOut = true;
- }
-
- if (!optedOut)
- {
- IntStream.range(0, 100).mapToObj(i -> "").forEach(player::sendMessage);
- }
+ IntStream.range(0, 100).mapToObj(i -> "").forEach(player::sendMessage);
}
- FUtil.adminAction(sender.getName(), "Cleared chat", true);
- }
- else if (plugin.mbl.isMasterBuilder(playerSender))
- {
- MasterBuilder mb = plugin.mbl.getMasterBuilder(playerSender);
- mb.setClearChatOptOut(!mb.isClearChatOptOut());
- msg((mb.isClearChatOptOut() ? "Opted-out of" : "Opted-in to") + " clear chat.");
- plugin.mbl.save();
- plugin.mbl.updateTables();
- }
- else if (plugin.pv.getVerificationPlayer(playerSender).getEnabled())
- {
- VPlayer vp = plugin.pv.getVerificationPlayer(playerSender);
- vp.setClearChatOptOut(!vp.isClearChatOptOut());
- msg((vp.isClearChatOptOut() ? "Opted-out of" : "Opted-in to") + " clear chat.");
- plugin.pv.saveVerificationData(vp);
- return true;
- }
- else
- {
- msg("Only Master Builders, admins, and players with verification enabled can opt-out of clear chat.", ChatColor.RED);
}
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java
index d5b12c38..7a7f212e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java
@@ -1,16 +1,16 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.util.FUtil;
import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.shop.ShopData;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
-@CommandParameters(description = "Shows the amount of coins you have or another player", usage = "/ [playername]")
+@CommandParameters(description = "Shows the amount of coins you have or another player has", usage = "/ [playername]")
public class Command_coins extends FreedomCommand
{
@@ -48,8 +48,8 @@ public class Command_coins extends FreedomCommand
p = playerSender;
}
}
- ShopData sd = plugin.sh.getData(p);
- msg(prefix + ChatColor.GREEN + (args.length > 0 ? p.getName() + " has " : "You have ") + ChatColor.RED + sd.getCoins() + ChatColor.GREEN + " coins.");
+ PlayerData playerData = plugin.pl.getData(p);
+ msg(prefix + ChatColor.GREEN + (args.length > 0 ? p.getName() + " has " : "You have ") + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + " coins.");
return true;
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
index 99482fdf..64121cf0 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
@@ -1,6 +1,5 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.libsdisguises.BlockedDisguises;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command;
@@ -21,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), (BlockedDisguises.disabled ? "Enabling" : "Disabling") + " disguises", false);
+ FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false);
if (plugin.ldb.isDisguisesEnabled())
{
@@ -33,7 +32,7 @@ public class Command_disguisetoggle extends FreedomCommand
plugin.ldb.setDisguisesEnabled(true);
}
- msg("Disguises are now " + (BlockedDisguises.disabled ? "disabled." : "enabled."));
+ msg("Disguises are now " + (plugin.ldb.isDisguisesEnabled() ? "enabled." : "disabled."));
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
new file mode 100644
index 00000000..4112448c
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
@@ -0,0 +1,80 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.SENIOR_CONSOLE, source = SourceType.ONLY_CONSOLE)
+@CommandParameters(description = "Adds or removes donators", usage = "/ [forum_user]")
+public class Command_donator extends FreedomCommand
+{
+
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+ if (!FUtil.isFromHostConsole(sender.getName()) && !ConfigEntry.SERVER_OWNERS.getStringList().contains(sender.getName()))
+ {
+ return noPerms();
+ }
+
+ Boolean mode = args[0].equals("add");
+ String name = args[1];
+ String ip = args[2];
+ String pkg = args[3];
+ String forum_id = null;
+
+ if (args.length > 4)
+ {
+ forum_id = args[4];
+ }
+
+ PlayerData player = plugin.pl.getData(name);
+
+ if (player == null)
+ {
+ player = plugin.pl.getDataByIp(ip);
+ }
+
+ if (player != null)
+ {
+ player.setDonator(mode);
+ plugin.pl.save(player);
+ }
+
+ if (forum_id != null && !forum_id.equals("0"))
+ {
+ String baseurl = ConfigEntry.DONATION_PROBOARDS_URL.getString();
+ String group_id = ConfigEntry.DONATION_GROUP_ID.getString();
+ String session_id = ConfigEntry.DONATION_SESSION_ID.getString();
+ String csrf_token = ConfigEntry.DONATION_CSRF_TOKEN.getString();
+ if (baseurl == null || group_id == null || session_id == null || csrf_token == null)
+ {
+ return true;
+ }
+ String url = baseurl + "/user/group_members/" + (mode ? "adding" : "remove");
+ List headers = Arrays.asList("Cookie:session_id=" + session_id, "X-Requested-With:XMLHttpRequest");
+ String payload = "group_id=" + group_id + "&user_ids[]=" + forum_id + "&csrf_token=" + csrf_token;
+
+ try
+ {
+ String result = FUtil.postRequestToEndpoint(url, "POST", headers, payload);
+ msg(result);
+ }
+ catch (IOException e)
+ {
+ FLog.severe(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
index 3c0a9e50..03671d58 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
@@ -55,7 +55,7 @@ public class Command_doom extends FreedomCommand
plugin.al.updateTables();
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
- plugin.dc.syncRoles(admin);
+ plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fireball.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fireball.java
index 8cd14f59..e5366424 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fireball.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fireball.java
@@ -15,7 +15,7 @@ public class Command_fireball extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (plugin.sh.getData(playerSender).hasItem(ShopItem.FIRE_BALL))
+ if (plugin.pl.getData(playerSender).hasItem(ShopItem.FIRE_BALL))
{
playerSender.getInventory().addItem(plugin.sh.getFireBall());
msg("You have been given a Fire Ball", ChatColor.GREEN);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_gadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_gadmin.java
deleted file mode 100644
index 3cb8547c..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_gadmin.java
+++ /dev/null
@@ -1,211 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import java.nio.charset.StandardCharsets;
-import java.util.Iterator;
-import java.util.UUID;
-import me.totalfreedom.totalfreedommod.banning.Ban;
-import me.totalfreedom.totalfreedommod.freeze.FreezeData;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
-@CommandParameters(
- description = "Use admin commands on someone by hash. Use mode 'list' to get a player's hash. Other modes are kick, nameban, ipban, ban, op, deop, ci, fr, smite.",
- usage = "/ [list | [ ] ]")
-//codebeat:disable
-//basically a deprecated command that still exists
-public class Command_gadmin extends FreedomCommand
-{
-
- private enum GadminMode
- {
-
- LIST("list"),
- KICK("kick"),
- NAMEBAN("nameban"),
- IPBAN("ipban"),
- BAN("ban"),
- OP("op"),
- DEOP("deop"),
- CI("ci"),
- FR("fr"),
- SMITE("smite");
- private final String modeName;
-
- private GadminMode(String command)
- {
- this.modeName = command;
- }
-
- public String getModeName()
- {
- return modeName;
- }
-
- public static GadminMode findMode(String needle)
- {
- for (final GadminMode mode : GadminMode.values())
- {
- if (needle.equalsIgnoreCase(mode.getModeName()))
- {
- return mode;
- }
- }
- return null;
- }
- }
-
- public String getPlayerHash(Player player)
- {
- return UUID.nameUUIDFromBytes(player.getName().toLowerCase().getBytes(StandardCharsets.UTF_8)).toString().substring(0, 4);
- }
-
- @Override
- public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
- {
- if (args.length == 0)
- {
- return false;
- }
-
- final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
- if (mode == null)
- {
- msg("Invalid mode: " + args[0], ChatColor.RED);
- return true;
- }
-
- final Iterator extends Player> it = server.getOnlinePlayers().iterator();
-
- if (mode == GadminMode.LIST)
- {
- msg("[ Real Name ] : [ Display Name ] - Hash:");
- while (it.hasNext())
- {
- final Player player = it.next();
- sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
- player.getName(),
- ChatColor.stripColor(player.getDisplayName()),
- getPlayerHash(player)));
- }
- return true;
- }
-
- if (args.length < 2)
- {
- return false;
- }
-
- Player target = null;
- while (it.hasNext() && target == null)
- {
- final Player player = it.next();
- final String hash = getPlayerHash(player);
-
- if (hash.equalsIgnoreCase(args[1]))
- {
- target = player;
- }
- }
-
- if (target == null)
- {
- msg("Invalid player hash: " + args[1], ChatColor.RED);
- return true;
- }
-
- switch (mode)
- {
- case KICK:
- {
- FUtil.adminAction(sender.getName(), String.format("Kicking: %s.", target.getName()), false);
- target.kickPlayer("Kicked by Administrator");
-
- break;
- }
- case NAMEBAN:
- {
- FUtil.adminAction(sender.getName(), String.format("Banning Name: %s.", target.getName()), true);
- plugin.bm.addBan(Ban.forPlayerName(target, sender, null, null));
- target.kickPlayer("Username banned by Administrator.");
-
- break;
- }
- case IPBAN:
- {
- String ip = target.getAddress().getAddress().getHostAddress();
- String[] ip_parts = ip.split("\\.");
- if (ip_parts.length == 4)
- {
- ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
- }
- FUtil.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
- plugin.bm.addBan(Ban.forPlayerIp(ip, sender, null, null));
-
- target.kickPlayer("IP address banned by Administrator.");
-
- break;
- }
- case BAN:
- {
- String ip = target.getAddress().getAddress().getHostAddress();
- String[] ip_parts = ip.split("\\.");
- if (ip_parts.length == 4)
- {
- ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
- }
- FUtil.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
-
- plugin.bm.addBan(Ban.forPlayer(target, sender));
-
- target.kickPlayer("IP and username banned by Administrator.");
-
- break;
- }
- case OP:
- {
- FUtil.adminAction(sender.getName(), String.format("Opping %s.", target.getName()), false);
- target.setOp(true);
- target.sendMessage(FreedomCommand.YOU_ARE_OP);
-
- break;
- }
- case DEOP:
- {
- FUtil.adminAction(sender.getName(), String.format("Deopping %s.", target.getName()), false);
- target.setOp(false);
- target.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
-
- break;
- }
- case CI:
- {
- target.getInventory().clear();
-
- break;
- }
- case FR:
- {
- FreezeData fd = plugin.pl.getPlayer(target).getFreezeData();
- fd.setFrozen(!fd.isFrozen());
-
- msg(target.getName() + " has been " + (fd.isFrozen() ? "frozen" : "unfrozen") + ".");
- target.sendMessage(ChatColor.AQUA + "You have been " + (fd.isFrozen() ? "frozen" : "unfrozen") + ".");
-
- break;
- }
- case SMITE:
- {
- Command_smite.smite(sender, target);
-
- break;
- }
- }
-
- return true;
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glist.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glist.java
index 24cb91c0..cf634396 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glist.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glist.java
@@ -8,7 +8,6 @@ import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.util.Ips;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -25,25 +24,6 @@ public class Command_glist extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (args.length < 1)
- {
- return false;
- }
-
- if (args.length == 1)
- {
- if ("purge".equals(args[0]))
- {
- checkRank(Rank.SENIOR_ADMIN);
- plugin.pl.purgeAllData();
- msg("Purged playerbase.");
-
- return true;
- }
-
- return false;
- }
-
if (args.length < 2)
{
return false;
@@ -71,13 +51,13 @@ public class Command_glist extends FreedomCommand
return true;
}
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
}
else
{
final PlayerData entry = plugin.pl.getData(player);
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glow.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glow.java
new file mode 100644
index 00000000..62100467
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_glow.java
@@ -0,0 +1,32 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
+@CommandParameters(description = "Toggles the glowing outline effect because y'all lazy as fuck", usage = "/")
+public class Command_glow extends FreedomCommand
+{
+
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+ boolean glowing = false;
+ if (playerSender.getPotionEffect(PotionEffectType.GLOWING) != null)
+ {
+ playerSender.removePotionEffect(PotionEffectType.GLOWING);
+ }
+ else
+ {
+ PotionEffect glow = new PotionEffect(PotionEffectType.GLOWING, 1000000, 1, false, false);
+ playerSender.addPotionEffect(glow);
+ glowing = true;
+ }
+ msg("You " + (glowing ? "are now" : "no longer") + " glowing.");
+ return true;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_grapplinghook.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_grapplinghook.java
index c423ab3e..5ee72d2e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_grapplinghook.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_grapplinghook.java
@@ -15,7 +15,7 @@ public class Command_grapplinghook extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (plugin.sh.getData(playerSender).hasItem(ShopItem.GRAPPLING_HOOK))
+ if (plugin.pl.getData(playerSender).hasItem(ShopItem.GRAPPLING_HOOK))
{
playerSender.getInventory().addItem(plugin.sh.getGrapplingHook());
msg("You have been given a Grappling Hook", ChatColor.GREEN);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lightningrod.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lightningrod.java
index 358a188c..ee2ffd8a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lightningrod.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lightningrod.java
@@ -15,7 +15,7 @@ public class Command_lightningrod extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (plugin.sh.getData(playerSender).hasItem(ShopItem.LIGHTNING_ROD))
+ if (plugin.pl.getData(playerSender).hasItem(ShopItem.LIGHTNING_ROD))
{
playerSender.getInventory().addItem(plugin.sh.getLightningRod());
msg("You have been given a Lightning Rod", ChatColor.GREEN);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
index 3d17eb49..41d9d809 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
@@ -1,9 +1,7 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.discord.Discord;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -11,7 +9,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Link your Discord account to your Minecraft account", usage = "/")
+@CommandParameters(description = "Link your Discord account to your Minecraft account", usage = "/ [ ]")
public class Command_linkdiscord extends FreedomCommand
{
@@ -24,64 +22,37 @@ public class Command_linkdiscord extends FreedomCommand
return true;
}
+ if (args.length > 1 && plugin.al.isAdmin(playerSender))
+ {
+ PlayerData playerData = plugin.pl.getData(args[0]);
+ if (playerData == null)
+ {
+ msg(PLAYER_NOT_FOUND);
+ return true;
+ }
+
+ playerData.setDiscordID(args[1]);
+ msg("Linked " + args[0] + "'s discord account.", ChatColor.GREEN);
+ return true;
+ }
+
String code;
- if (plugin.al.isAdmin(playerSender))
+ PlayerData data = plugin.pl.getData(playerSender);
+ if (data.getDiscordID() != null)
{
- Admin admin = plugin.al.getAdmin(playerSender);
- if (admin.getDiscordID() != null)
- {
- msg("Your Minecraft account is already linked to a Discord account.", ChatColor.RED);
- return true;
- }
-
- if (Discord.ADMIN_LINK_CODES.containsValue(admin))
- {
- code = Discord.getCodeForAdmin(admin);
- }
- else
- {
- code = plugin.dc.generateCode(5);
- Discord.ADMIN_LINK_CODES.put(code, admin);
- }
+ msg("Your Minecraft account is already linked to a Discord account.", ChatColor.RED);
+ return true;
}
- else if (plugin.mbl.isMasterBuilder(playerSender))
- {
- MasterBuilder masterBuilder = plugin.mbl.getMasterBuilder(playerSender);
- if (masterBuilder.getDiscordID() != null)
- {
- msg("Your Minecraft account is already linked to a Discord account.", ChatColor.RED);
- return true;
- }
- if (Discord.MASTER_BUILDER_LINK_CODES.containsValue(masterBuilder))
- {
- code = Discord.getCodeForMasterBuilder(masterBuilder);
- }
- else
- {
- code = plugin.dc.generateCode(5);
- Discord.MASTER_BUILDER_LINK_CODES.put(code, masterBuilder);
- }
+ if (Discord.LINK_CODES.containsValue(data))
+ {
+ code = Discord.getCode(data);
}
else
{
- VPlayer data = plugin.pv.getVerificationPlayer(playerSender);
- if (data.getDiscordId() != null)
- {
- msg("Your Minecraft account is already linked to a Discord account.", ChatColor.RED);
- return true;
- }
-
- if (Discord.PLAYER_LINK_CODES.containsValue(data))
- {
- code = Discord.getCodeForPlayer(data);
- }
- else
- {
- code = plugin.dc.generateCode(5);
- Discord.PLAYER_LINK_CODES.put(code, data);
- }
+ code = plugin.dc.generateCode(5);
+ Discord.LINK_CODES.put(code, data);
}
msg("Your linking code is " + ChatColor.AQUA + code, ChatColor.GREEN);
msg("Take this code and DM the server bot (" + plugin.dc.formatBotTag() + ") the code (do not put anything else in the message, only the code)");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
index cf5c9e34..4a9c975e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
@@ -10,7 +10,7 @@ import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.ChatColor;
+import net.md_5.bungee.api.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
index a7b65792..7ee698ae 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
@@ -1,7 +1,7 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.shop.ShopData;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.shop.ShopItem;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
@@ -48,21 +48,21 @@ public class Command_manageshop extends FreedomCommand
msg(PLAYER_NOT_FOUND);
return true;
}
- ShopData shopData = plugin.sh.getData(player);
- shopData.setCoins(shopData.getCoins() + amount);
- plugin.sh.save(shopData);
- msg("Successfully added " + amount + " coins to " + player.getName() + ". Their new balance is " + shopData.getCoins(), ChatColor.GREEN);
- player.sendMessage(ChatColor.GREEN + sender.getName() + " gave you " + amount + " coins. Your new balance is " + shopData.getCoins());
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setCoins(playerData.getCoins() + amount);
+ plugin.pl.save(playerData);
+ msg("Successfully added " + amount + " coins to " + player.getName() + ". Their new balance is " + playerData.getCoins(), ChatColor.GREEN);
+ player.sendMessage(ChatColor.GREEN + sender.getName() + " gave you " + amount + " coins. Your new balance is " + playerData.getCoins());
return true;
}
else
{
for (Player player : server.getOnlinePlayers())
{
- ShopData shopData = plugin.sh.getData(player);
- shopData.setCoins(shopData.getCoins() + amount);
- plugin.sh.save(shopData);
- player.sendMessage(ChatColor.GREEN + sender.getName() + " gave you " + amount + " coins. Your new balance is " + shopData.getCoins());
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setCoins(playerData.getCoins() + amount);
+ plugin.pl.save(playerData);
+ player.sendMessage(ChatColor.GREEN + sender.getName() + " gave you " + amount + " coins. Your new balance is " + playerData.getCoins());
}
msg("Successfully added " + amount + " coins to all online players.", ChatColor.GREEN);
return true;
@@ -85,29 +85,29 @@ public class Command_manageshop extends FreedomCommand
msg(PLAYER_NOT_FOUND);
return true;
}
- ShopData shopData = plugin.sh.getData(player);
- shopData.setCoins(shopData.getCoins() + amount);
- if (shopData.getCoins() < 0)
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setCoins(playerData.getCoins() + amount);
+ if (playerData.getCoins() < 0)
{
- shopData.setCoins(0);
+ playerData.setCoins(0);
}
- plugin.sh.save(shopData);
- msg("Successfully removed " + amount + " coins from " + player.getName() + ". Their new balance is " + shopData.getCoins(), ChatColor.GREEN);
- player.sendMessage(ChatColor.RED + sender.getName() + " took " + amount + " coins from you. Your new balance is " + shopData.getCoins());
+ plugin.pl.save(playerData);
+ msg("Successfully removed " + amount + " coins from " + player.getName() + ". Their new balance is " + playerData.getCoins(), ChatColor.GREEN);
+ player.sendMessage(ChatColor.RED + sender.getName() + " took " + amount + " coins from you. Your new balance is " + playerData.getCoins());
return true;
}
else
{
for (Player player : server.getOnlinePlayers())
{
- ShopData shopData = plugin.sh.getData(player);
- shopData.setCoins(shopData.getCoins() - amount);
- if (shopData.getCoins() < 0)
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setCoins(playerData.getCoins() - amount);
+ if (playerData.getCoins() < 0)
{
- shopData.setCoins(0);
+ playerData.setCoins(0);
}
- plugin.sh.save(shopData);
- player.sendMessage(ChatColor.RED + sender.getName() + " took " + amount + " coins from you. Your new balance is " + shopData.getCoins());
+ plugin.pl.save(playerData);
+ player.sendMessage(ChatColor.RED + sender.getName() + " took " + amount + " coins from you. Your new balance is " + playerData.getCoins());
}
msg("Successfully took " + amount + " coins from all online players.", ChatColor.GREEN);
return true;
@@ -128,9 +128,9 @@ public class Command_manageshop extends FreedomCommand
msg(PLAYER_NOT_FOUND);
return true;
}
- ShopData shopData = plugin.sh.getData(player);
- shopData.setCoins(amount);
- plugin.sh.save(shopData);
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setCoins(amount);
+ plugin.pl.save(playerData);
msg("Successfully set " + player.getName() + "'s coins to " + amount, ChatColor.GREEN);
player.sendMessage(ChatColor.GREEN + sender.getName() + " set your coin balance to " + amount);
return true;
@@ -171,9 +171,9 @@ public class Command_manageshop extends FreedomCommand
return true;
}
- ShopData shopData = plugin.sh.getData(player);
- shopData.giveItem(item);
- plugin.sh.save(shopData);
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.giveItem(item);
+ plugin.pl.save(playerData);
msg("Successfully gave the " + item.getName() + " to " + player.getName(), ChatColor.GREEN);
player.sendMessage(ChatColor.GREEN + sender.getName() + " gave the " + item.getName() + " to you");
return true;
@@ -194,9 +194,9 @@ public class Command_manageshop extends FreedomCommand
return true;
}
- ShopData shopData = plugin.sh.getData(player);
- shopData.removeItem(item);
- plugin.sh.save(shopData);
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.removeItem(item);
+ plugin.pl.save(playerData);
msg("Successfully took the " + item.getName() + " from " + player.getName(), ChatColor.GREEN);
player.sendMessage(ChatColor.RED + sender.getName() + " took the " + item.getName() + " from you");
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
new file mode 100644
index 00000000..8141e729
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
@@ -0,0 +1,57 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandParameters(description = "Manually verify someone", usage = "/ ", aliases="mv")
+public class Command_manuallyverify extends FreedomCommand
+{
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+
+ if (!plugin.dc.enabled)
+ {
+ msg("The Discord verification system is currently disabled", ChatColor.RED);
+ return true;
+ }
+
+ if (args.length == 0)
+ {
+ return false;
+ }
+
+ final Player player = getPlayer(args[0]);
+ if (player == null)
+ {
+ msg(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+
+ if (!plugin.pl.isImposter(player))
+ {
+ msg("That player is not an impostor.");
+ return true;
+ }
+
+ FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false);
+ player.setOp(true);
+ player.sendMessage(YOU_ARE_OP);
+
+ if (plugin.pl.getPlayer(player).getFreezeData().isFrozen())
+ {
+ plugin.pl.getPlayer(player).getFreezeData().setFrozen(false);
+ player.sendMessage(ChatColor.GRAY + "You have been unfrozen.");
+ }
+
+ plugin.pl.verify(player, null);
+ plugin.rm.updateDisplay(player);
+
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
new file mode 100644
index 00000000..3b565aa4
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
@@ -0,0 +1,42 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH)
+@CommandParameters(description = "seth's personal command", usage = "/ ")
+public class Command_massmurder extends FreedomCommand
+{
+
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+ if (!ConfigEntry.SERVER_OWNERS.getStringList().contains(playerSender.getName()))
+ {
+ return noPerms();
+ }
+
+ if (args.length < 1)
+ {
+ return false;
+ }
+
+ int count = 0;
+ for (String name : args)
+ {
+ Player player = getPlayer(name);
+ if (player != null)
+ {
+ player.setHealth(0);
+ count++;
+ }
+ }
+
+ msg("Mass murdered a school of " + count);
+
+ return true;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
index 7e7c6371..be7c51f1 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
@@ -1,23 +1,19 @@
package me.totalfreedom.totalfreedommod.command;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.player.FPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.util.Ips;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.OP, source = SourceType.BOTH, blockHostConsole = true)
-@CommandParameters(description = "List, add, or remove master builders, reload the master builder list, or view the info of master builders.", usage = "/ >")
+@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
+@CommandParameters(description = "List, add, or remove master builders, reload the master builder list, or view the info of master builders.", usage = "/ >>")
public class Command_mbconfig extends FreedomCommand
{
@@ -33,50 +29,7 @@ public class Command_mbconfig extends FreedomCommand
{
case "list":
{
- msg("Master Builders: " + StringUtils.join(plugin.mbl.getMasterBuilderNames(), ", "), ChatColor.GOLD);
-
- return true;
- }
-
- case "reload":
- {
- checkRank(Rank.SENIOR_ADMIN);
-
- FUtil.adminAction(sender.getName(), "Reloading the Master Builder list", true);
- plugin.mbl.load();
- msg("Master Builder list reloaded!");
- return true;
- }
-
- case "info":
- {
- if (args.length < 2)
- {
- return false;
- }
-
- checkRank(Rank.SUPER_ADMIN);
-
- MasterBuilder masterBuilder = plugin.mbl.getEntryByName(args[1]);
-
- if (masterBuilder == null)
- {
- final Player player = getPlayer(args[1]);
- if (player != null)
- {
- masterBuilder = plugin.mbl.getMasterBuilder(player);
- }
- }
-
- if (masterBuilder == null)
- {
- msg("Master Builder not found: " + args[1]);
- }
- else
- {
- msg(masterBuilder.toString());
- }
-
+ msg("Master Builders: " + StringUtils.join(plugin.pl.getMasterBuilderNames(), ", "), ChatColor.GOLD);
return true;
}
@@ -87,89 +40,43 @@ public class Command_mbconfig extends FreedomCommand
return false;
}
- checkConsole();
- checkRank(Rank.TELNET_ADMIN);
+ if (!plugin.pl.canManageMasterBuilders(sender.getName()))
+ {
+ return noPerms();
+ }
- // Player already on the list?
final Player player = getPlayer(args[1]);
- if (player != null && plugin.mbl.isMasterBuilder(player))
+ PlayerData data = plugin.pl.getData(player);
+
+ if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player))
+ {
+ FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true);
+ player.setOp(true);
+ player.sendMessage(YOU_ARE_OP);
+
+ if (plugin.pl.getPlayer(player).getFreezeData().isFrozen())
+ {
+ plugin.pl.getPlayer(player).getFreezeData().setFrozen(false);
+ player.sendMessage(ChatColor.GRAY + "You have been unfrozen.");
+ }
+ plugin.pl.verify(player, null);
+ plugin.rm.updateDisplay(player);
+ }
+ else if (!data.isMasterBuilder())
+ {
+ FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true);
+ data.setMasterBuilder(true);
+ data.setVerification(true);
+ plugin.pl.save(data);
+ plugin.rm.updateDisplay(player);
+ return true;
+ }
+ else
{
msg("That player is already on the Master Builder list.");
return true;
}
-
- // Find the entry
- String name = player != null ? player.getName() : args[1];
- MasterBuilder masterBuilder = null;
- for (MasterBuilder loopMasterBuilder : plugin.mbl.getAllMasterBuilders().values())
- {
- if (loopMasterBuilder.getName().equalsIgnoreCase(name))
- {
- masterBuilder = loopMasterBuilder;
- break;
- }
- }
-
- if (masterBuilder == null) // New entry
- {
- checkRank(Rank.SENIOR_ADMIN);
- if (!FUtil.canManageMasterBuilders(sender.getName()))
- {
- noPerms();
- }
-
- if (player == null)
- {
- msg(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
-
- FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true);
- plugin.mbl.addMasterBuilder(new MasterBuilder(player));
- if (player != null)
- {
- plugin.rm.updateDisplay(player);
- }
- }
- else // Existing admin
- {
- FUtil.adminAction(sender.getName(), "Readding " + masterBuilder.getName() + " to the Master Builder list", true);
-
- if (player != null)
- {
- masterBuilder.setName(player.getName());
- masterBuilder.addIp(Ips.getIp(player));
- }
-
- masterBuilder.setLastLogin(new Date());
-
- plugin.mbl.save();
- plugin.mbl.updateTables();
- if (player != null)
- {
- plugin.rm.updateDisplay(player);
- }
- }
-
- if (player != null)
- {
- final FPlayer fPlayer = plugin.pl.getPlayer(player);
- if (fPlayer.getFreezeData().isFrozen())
- {
- fPlayer.getFreezeData().setFrozen(false);
- msg(player.getPlayer(), "You have been unfrozen.");
- }
-
- if (!player.isOp())
- {
- player.setOp(true);
- player.sendMessage(YOU_ARE_OP);
- }
- plugin.pv.removeEntry(player.getName()); // master builders can't have player verification entries
- }
- return true;
}
-
case "remove":
{
if (args.length < 2)
@@ -177,28 +84,28 @@ public class Command_mbconfig extends FreedomCommand
return false;
}
- checkConsole();
- checkRank(Rank.SENIOR_ADMIN);
- if (!FUtil.canManageMasterBuilders(sender.getName()))
+ if (!plugin.pl.canManageMasterBuilders(sender.getName()))
{
- noPerms();
+ return noPerms();
}
Player player = getPlayer(args[1]);
- MasterBuilder masterBuilder = player != null ? plugin.mbl.getMasterBuilder(player) : plugin.mbl.getEntryByName(args[1]);
+ PlayerData data = plugin.pl.getData(player);
- if (masterBuilder == null)
+ if (!data.isMasterBuilder())
{
msg("Master Builder not found: " + args[1]);
return true;
}
- FUtil.adminAction(sender.getName(), "Removing " + masterBuilder.getName() + " from the Master Builder list", true);
- plugin.mbl.removeMasterBuilder(masterBuilder);
- if (player != null)
+ FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true);
+ data.setMasterBuilder(false);
+ if (data.getDiscordID() == null)
{
- plugin.rm.updateDisplay(player);
+ data.setVerification(false);
}
+ plugin.pl.save(data);
+ plugin.rm.updateDisplay(player);
return true;
}
@@ -215,17 +122,7 @@ public class Command_mbconfig extends FreedomCommand
{
if (args.length == 1)
{
- List arguments = new ArrayList<>();
- arguments.add("list");
- if (plugin.al.isAdmin(sender))
- {
- arguments.add("info");
- }
- return arguments;
- }
- else if (args.length == 2 && args[0].equals("info") && plugin.al.isAdmin(sender))
- {
- return plugin.al.getActiveAdminNames();
+ return Arrays.asList("list");
}
return Collections.emptyList();
}
@@ -233,17 +130,20 @@ public class Command_mbconfig extends FreedomCommand
{
if (args.length == 1)
{
- return Arrays.asList("add", "remove", "reload", "list", "info");
+ return Arrays.asList("add", "remove", "list");
}
else if (args.length == 2)
{
- if (args[0].equals("add") || args[0].equals("remove") || args[0].equals("setrank") || args[0].equals("info"))
+ if (args[0].equals("add"))
{
return FUtil.getPlayerList();
}
+ else if (args[0].equals("remove"))
+ {
+ return plugin.pl.getMasterBuilderNames();
+ }
}
}
-
return Collections.emptyList();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
index 8c788dcb..75d81ba9 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
@@ -4,15 +4,12 @@ import java.util.ArrayList;
import java.util.List;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.minecraft.server.v1_15_R1.NBTTagCompound;
-import net.minecraft.server.v1_15_R1.NBTTagInt;
-import net.minecraft.server.v1_15_R1.NBTTagList;
-import net.minecraft.server.v1_15_R1.NBTTagString;
+import net.minecraft.server.v1_16_R1.NBTTagCompound;
+import net.minecraft.server.v1_16_R1.NBTTagList;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -189,7 +186,7 @@ public class Command_modifyitem extends FreedomCommand
return true;
}
- private NBTTagList getAttributeList(net.minecraft.server.v1_15_R1.ItemStack stack)
+ private NBTTagList getAttributeList(net.minecraft.server.v1_16_R1.ItemStack stack)
{
if (stack.getTag() == null)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java
index c1bcff31..ec564f4f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java
@@ -6,6 +6,7 @@ import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.pravian.aero.util.Ips;
@@ -16,7 +17,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles | genbackupcodes>")
+@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>")
public class Command_myadmin extends FreedomCommand
{
@@ -86,6 +87,8 @@ public class Command_myadmin extends FreedomCommand
plugin.al.save(target);
plugin.al.updateTables();
+ plugin.pl.syncIps(target);
+
msg(counter + " IPs removed.");
msg(targetPlayer, target.getIps().get(0) + " is now your only IP address");
return true;
@@ -130,6 +133,8 @@ public class Command_myadmin extends FreedomCommand
plugin.al.save(target);
plugin.al.updateTables();
+ plugin.pl.syncIps(target);
+
msg("Removed IP " + args[1]);
msg("Current IPs: " + StringUtils.join(target.getIps(), ", "));
return true;
@@ -173,17 +178,6 @@ public class Command_myadmin extends FreedomCommand
return true;
}
- case "settag":
- {
- msg("Please use /tag set to set your tag.", ChatColor.RED);
- return true;
- }
-
- case "cleartag":
- {
- msg("Please use /tag off to remove your tag.", ChatColor.RED);
- return true;
- }
case "setacformat":
{
String format = StringUtils.join(args, " ", 1, args.length);
@@ -229,12 +223,13 @@ public class Command_myadmin extends FreedomCommand
msg("Role syncing is not enabled.", ChatColor.RED);
return true;
}
- boolean synced = plugin.dc.syncRoles(target);
- if (target.getDiscordID() == null)
+ PlayerData playerData = plugin.pl.getData(target.getName());
+ if (playerData.getDiscordID() == null)
{
msg("Please run /linkdiscord first!", ChatColor.RED);
return true;
}
+ boolean synced = plugin.dc.syncRoles(target, playerData.getDiscordID());
if (synced)
{
msg("Successfully synced your roles.", ChatColor.GREEN);
@@ -249,29 +244,7 @@ public class Command_myadmin extends FreedomCommand
}
case "genbackupcodes":
- if (!plugin.dc.enabled)
- {
- msg("The Discord verification system is currently disabled.", ChatColor.RED);
- return true;
- }
- else if (target.getDiscordID() == null || target.getDiscordID().isEmpty())
- {
- msg("Discord verification is not enabled for you.", ChatColor.RED);
- return true;
- }
-
- msg("Generating backup codes...", ChatColor.GREEN);
-
- boolean generated = plugin.dc.sendBackupCodes(target);
-
- if (generated)
- {
- msg("Your backup codes have been sent to your discord account. They can be re-generated at anytime.", ChatColor.GREEN);
- }
- else
- {
- msg("Failed to generate backup codes, please contact a developer (preferably Seth)", ChatColor.RED);
- }
+ msg("Moved to /pv genbackupcodes", ChatColor.RED);
return true;
default:
@@ -290,7 +263,7 @@ public class Command_myadmin extends FreedomCommand
}
List singleArguments = Arrays.asList("clearips", "setlogin", "setacformat");
- List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearacformat", "oldtags", "logstick", "syncroles", "genbackupcodes");
+ List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearacformat", "oldtags", "logstick", "syncroles");
if (args.length == 1)
{
List options = new ArrayList<>();
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mymasterbuilder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mymasterbuilder.java
deleted file mode 100644
index 0dcea829..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mymasterbuilder.java
+++ /dev/null
@@ -1,237 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.util.Ips;
-import org.apache.commons.lang.StringUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Manage your Master Builder entry", usage = "/ [-o ] | genbackupcodes>", aliases = "mymb")
-public class Command_mymasterbuilder extends FreedomCommand
-{
-
- @Override
- protected boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
- {
- if (args.length < 1)
- {
- return false;
- }
-
- Player init = null;
- MasterBuilder target = plugin.mbl.getMasterBuilder(playerSender);
- Player targetPlayer = playerSender;
-
- // -o switch
- if (args[0].equals("-o"))
- {
- if (!FUtil.canManageMasterBuilders(playerSender.getName()))
- {
- return noPerms();
- }
- init = playerSender;
- targetPlayer = getPlayer(args[1]);
- if (targetPlayer == null)
- {
- msg(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
-
- target = plugin.mbl.getMasterBuilder(playerSender);
- if (target == null)
- {
- msg("That player is not a Master Builder", ChatColor.RED);
- return true;
- }
-
- // Shift 2
- args = Arrays.copyOfRange(args, 2, args.length);
- if (args.length < 1)
- {
- return false;
- }
- }
-
- final String targetIp = Ips.getIp(targetPlayer);
-
- switch (args[0])
- {
- case "clearips":
- {
- if (args.length != 1)
- {
- return false; // Double check: the player might mean "clearip"
- }
-
- if (init == null)
- {
- FUtil.adminAction(sender.getName(), "Clearing my IPs", false);
- }
- else
- {
- FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true);
- }
-
- int counter = target.getIps().size() - 1;
- target.clearIPs();
- target.addIp(targetIp);
-
- plugin.mbl.save();
- plugin.mbl.updateTables();
-
- msg(counter + " IPs removed.");
- msg(targetPlayer, target.getIps().get(0) + " is now your only IP address");
- return true;
- }
-
- case "clearip":
- {
- if (args.length != 2)
- {
- return false; // Double check: the player might mean "clearips"
- }
-
- if (!target.getIps().contains(args[1]))
- {
- if (init == null)
- {
- msg("That IP is not registered to you.");
- }
- else
- {
- msg("That IP does not belong to that player.");
- }
- return true;
- }
-
- if (targetIp.equals(args[1]))
- {
- if (init == null)
- {
- msg("You cannot remove your current IP.");
- }
- else
- {
- msg("You cannot remove that Master Builders's current IP.");
- }
- return true;
- }
-
- FUtil.adminAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
-
- target.removeIp(args[1]);
- plugin.mbl.save();
- plugin.mbl.updateTables();
-
- msg("Removed IP " + args[1]);
- msg("Current IPs: " + StringUtils.join(target.getIps(), ", "));
- return true;
- }
-
- case "genbackupcodes":
- if (!plugin.dc.enabled)
- {
- msg("The Discord verification system is currently disabled.", ChatColor.RED);
- return true;
- }
- else if (target.getDiscordID() == null || target.getDiscordID().isEmpty())
- {
- msg("Discord verification is not enabled for you.", ChatColor.RED);
- return true;
- }
-
- msg("Generating backup codes...", ChatColor.GREEN);
-
- boolean generated = plugin.dc.sendBackupCodes(target);
-
- if (generated)
- {
- msg("Your backup codes have been sent to your discord account. They can be re-generated at anytime.", ChatColor.GREEN);
- }
- else
- {
- msg("Failed to generate backup codes, please contact a developer (preferably Seth)", ChatColor.RED);
- }
- return true;
-
- default:
- {
- return false;
- }
- }
- }
-
- @Override
- public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
- {
-
- if (!plugin.mbl.isMasterBuilder(playerSender) && !FUtil.canManageMasterBuilders(playerSender.getName()))
- {
- return Collections.emptyList();
- }
-
- List singleArguments = Arrays.asList("clearips");
- List doubleArguments = Arrays.asList("clearip", "genbackupcodes");
- if (args.length == 1)
- {
- List options = new ArrayList<>();
- options.add("-o");
- options.addAll(singleArguments);
- options.addAll(doubleArguments);
- return options;
- }
- else if (args.length == 2)
- {
- if (args[0].equals("-o"))
- {
- return FUtil.getPlayerList();
- }
- else
- {
- if (doubleArguments.contains(args[0]))
- {
- if (args[0].equals("clearip"))
- {
- if (args[0].equals("clearip"))
- {
- List ips = plugin.mbl.getMasterBuilder(sender).getIps();
- ips.remove(Ips.getIp(playerSender));
- return ips;
- }
- }
- }
- }
- }
- else if (args.length == 3)
- {
- if (args[0].equals("-o"))
- {
- List options = new ArrayList<>();
- options.addAll(singleArguments);
- options.addAll(doubleArguments);
- return options;
- }
- }
- else if (args.length == 4)
- {
- if (args[0].equals("-o") && args[2].equals("clearip"))
- {
- MasterBuilder masterBuilder = plugin.mbl.getEntryByName(args[1]);
- if (masterBuilder != null)
- {
- return masterBuilder.getIps();
- }
- }
- }
- return FUtil.getPlayerList();
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
index 6e0cf40a..78fa7015 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
@@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
-@CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of all players on server.", usage = "/", aliases = "nc")
+@CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/ [player]", aliases = "nc")
public class Command_nickclean extends FreedomCommand
{
@@ -25,21 +25,43 @@ public class Command_nickclean extends FreedomCommand
{
FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false);
+ if (args.length > 1)
+ {
+ Player player = getPlayer(args[0]);
+
+ if (player == null)
+ {
+ msg(PLAYER_NOT_FOUND);
+ return true;
+ }
+
+ FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
+ cleanNickname(player);
+ return true;
+ }
+
+
+ FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false);
for (final Player player : server.getOnlinePlayers())
{
- final String playerName = player.getName();
- final String nickName = plugin.esb.getNickname(playerName);
- if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName))
- {
- final Matcher matcher = REGEX.matcher(nickName);
- if (matcher.find())
- {
- final String newNickName = matcher.replaceAll("");
- msg(ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
- plugin.esb.setNickname(playerName, newNickName);
- }
- }
+ cleanNickname(player);
}
return true;
}
+
+ public void cleanNickname(Player player)
+ {
+ final String playerName = player.getName();
+ final String nickName = plugin.esb.getNickname(playerName);
+ if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName))
+ {
+ final Matcher matcher = REGEX.matcher(nickName);
+ if (matcher.find())
+ {
+ final String newNickName = matcher.replaceAll("");
+ msg(ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
+ plugin.esb.setNickname(playerName, newNickName);
+ }
+ }
+ }
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
index 4ae49c10..73675a19 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
@@ -3,9 +3,7 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import me.totalfreedom.totalfreedommod.player.PlayerData;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
@@ -28,7 +26,7 @@ public class Command_notes extends FreedomCommand
return false;
}
- VPlayer vPlayer;
+ PlayerData playerData;
final Player player = getPlayer(args[0]);
if (player == null)
@@ -41,23 +39,21 @@ public class Command_notes extends FreedomCommand
return true;
}
- vPlayer = plugin.pv.getVerificationPlayer(entry.getUsername());
+ playerData = plugin.pl.getData(entry.getName());
}
else
{
- vPlayer = plugin.pv.getVerificationPlayer(player);
+ playerData = plugin.pl.getData(player);
}
if (args[1].equals("list"))
{
final StringBuilder noteList = new StringBuilder();
- noteList.append(ChatColor.GREEN + "Player notes for " + vPlayer.getName() + ":");
+ noteList.append(ChatColor.GREEN + "Player notes for " + playerData.getName() + ":");
int id = 1;
- for (Map, ?> noteMap : vPlayer.getNotes())
+ for (String note : playerData.getNotes())
{
- String admin = String.valueOf(noteMap.keySet().toArray()[0]);
- String note = String.valueOf(noteMap.get(admin));
- String noteLine = id + ". " + admin + ": " + note;
+ String noteLine = id + ". " + note;
noteList.append("\n" + ChatColor.GOLD + noteLine);
id++;
}
@@ -70,9 +66,9 @@ public class Command_notes extends FreedomCommand
{
return false;
}
- String note = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
- vPlayer.addNote(sender.getName(), note);
- plugin.pv.saveVerificationData(vPlayer);
+ String note = sender.getName() + ": " + StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
+ playerData.addNote(note);
+ plugin.pl.save(playerData);
msg("Note added.", ChatColor.GREEN);
return true;
}
@@ -93,9 +89,9 @@ public class Command_notes extends FreedomCommand
return true;
}
id--;
- if (vPlayer.removeNote(id))
+ if (playerData.removeNote(id))
{
- plugin.pv.saveVerificationData(vPlayer);
+ plugin.pl.save(playerData);
msg("Note removed.");
}
else
@@ -106,9 +102,9 @@ public class Command_notes extends FreedomCommand
}
else if (args[1].equals("clear"))
{
- int count = vPlayer.getNotes().size();
- vPlayer.clearNotes();
- plugin.pv.saveVerificationData(vPlayer);
+ int count = playerData.getNotes().size();
+ playerData.clearNotes();
+ plugin.pl.save(playerData);
msg("Cleared " + count + " notes.", ChatColor.GREEN);
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverification.java
similarity index 74%
rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverify.java
rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverification.java
index 63d1f977..f10c8599 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverify.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playerverification.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import net.pravian.aero.util.Ips;
import org.bukkit.ChatColor;
@@ -13,13 +13,13 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Manage your verification", usage = "/ ", aliases = "playerverification,pv")
-public class Command_playerverify extends FreedomCommand
+@CommandParameters(description = "Manage your verification", usage = "/ | status | genbackupcodes>", aliases = "playerverify,pv")
+public class Command_playerverification extends FreedomCommand
{
@Override
protected boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- VPlayer target = plugin.pv.getVerificationPlayer(playerSender);
+ PlayerData target = plugin.pl.getData(playerSender);
List ips = new ArrayList<>();
ips.addAll(target.getIps());
@@ -40,7 +40,20 @@ public class Command_playerverify extends FreedomCommand
msg("Cleared all IP's except your current IP \"" + Ips.getIp(playerSender) + "\"");
msg("Cleared " + cleared + " IP's.");
- plugin.pv.saveVerificationData(target);
+ plugin.pl.save(target);
+ plugin.pl.syncIps(target);
+ return true;
+ }
+ else if (args[0].equalsIgnoreCase("clearip"))
+ {
+ if (args.length < 2)
+ {
+ return false;
+ }
+ target.removeIp(args[1]);
+ msg("Removed" + args[1] + " from your list of IPs");
+ plugin.pl.save(target);
+ plugin.pl.syncIps(target);
return true;
}
}
@@ -50,13 +63,7 @@ public class Command_playerverify extends FreedomCommand
return false;
}
- if (plugin.al.isAdmin(sender))
- {
- msg("This command is only for OP's.", ChatColor.RED);
- return true;
- }
-
- VPlayer data = plugin.pv.getVerificationPlayer(playerSender);
+ PlayerData data = plugin.pl.getData(playerSender);
switch (args[0].toLowerCase())
{
@@ -66,37 +73,37 @@ public class Command_playerverify extends FreedomCommand
msg("The Discord verification system is currently disabled.", ChatColor.RED);
return true;
}
- else if (data.getEnabled())
+ else if (data.hasVerification())
{
msg("Discord verification is already enabled for you.", ChatColor.RED);
return true;
}
- else if (data.getDiscordId() == null)
+ else if (data.getDiscordID() == null)
{
msg("Please link a discord account with /linkdiscord.", ChatColor.RED);
return true;
}
- data.setEnabled(true);
- plugin.pv.saveVerificationData(data);
+ data.setVerification(true);
+ plugin.pl.save(data);
msg("Re-enabled Discord verification.", ChatColor.GREEN);
return true;
case "disable":
- if (!data.getEnabled())
+ if (!data.hasVerification())
{
msg("Discord verification is already disabled for you.", ChatColor.RED);
return true;
}
- data.setEnabled(false);
- plugin.pv.saveVerificationData(data);
+ data.setVerification(false);
+ plugin.pl.save(data);
msg("Disabled Discord verification.", ChatColor.GREEN);
return true;
case "status":
- boolean enabled = target.getEnabled();
- boolean specified = target.getDiscordId() != null;
+ boolean enabled = target.hasVerification();
+ boolean specified = target.getDiscordID() != null;
msg(ChatColor.GRAY + "Discord Verification Enabled: " + (enabled ? ChatColor.GREEN + "true" : ChatColor.RED + "false"));
- msg(ChatColor.GRAY + "Discord ID: " + (specified ? ChatColor.GREEN + target.getDiscordId() : ChatColor.RED + "not set"));
+ msg(ChatColor.GRAY + "Discord ID: " + (specified ? ChatColor.GREEN + target.getDiscordID() : ChatColor.RED + "not set"));
msg(ChatColor.GRAY + "Backup Codes: " + data.getBackupCodes().size() + "/" + "10");
return true;
@@ -106,7 +113,7 @@ public class Command_playerverify extends FreedomCommand
msg("The Discord verification system is currently disabled.", ChatColor.RED);
return true;
}
- else if (!data.getEnabled())
+ else if (!data.hasVerification())
{
msg("Discord verification is not enabled for you.", ChatColor.RED);
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_realtime.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_realtime.java
deleted file mode 100644
index a9d68701..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_realtime.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Sync your time with the real world time.", usage = "/ | off>", aliases = "rt")
-public class Command_realtime extends FreedomCommand
-{
- @Override
- public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
- {
- VPlayer player = plugin.pv.getVerificationPlayer(playerSender);
- if (args.length == 0 || args.length > 2)
- {
- return false;
- }
- if (args.length == 2)
- {
- if (args[0].equalsIgnoreCase("on"))
- {
- int tz;
- try
- {
- tz = Integer.parseInt(args[1]);
- }
- catch (NumberFormatException ex)
- {
- msg("Invalid UTC offset.");
- return true;
- }
- if (FUtil.timeZoneOutOfBounds(tz))
- {
- msg("Invalid UTC offset.");
- return true;
- }
- player.setUtcOffset(tz);
- player.setRealTime(true);
- plugin.rt.enable(playerSender);
- plugin.pv.saveVerificationData(player);
- msg("Your in-game time is now synced with real time.");
- return true;
- }
- }
- if (args[0].equalsIgnoreCase("off"))
- {
- if (!player.isRealTime())
- {
- msg("You aren't on real time.");
- return true;
- }
- player.setRealTime(false);
- msg("Your in-game time is no longer synced with real time.");
- plugin.rt.disable(playerSender);
- plugin.pv.saveVerificationData(player);
- return true;
- }
- return true;
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java
index acf462a9..828ddc60 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java
@@ -4,8 +4,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.TimerTask;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
@@ -76,8 +77,9 @@ public class Command_ride extends FreedomCommand
{
if (args[1].equalsIgnoreCase("normal") || args[1].equalsIgnoreCase("off") || args[1].equalsIgnoreCase("ask"))
{
- VPlayer vPlayerSender = plugin.pv.getVerificationPlayer(playerSender);
- vPlayerSender.setRideMode(args[1].toLowerCase());
+ PlayerData playerDataSender = plugin.pl.getData(playerSender);
+ playerDataSender.setRideMode(args[1].toLowerCase());
+ plugin.pl.save(playerDataSender);
msg("Ride mode is now set to " + args[1].toLowerCase() + ".");
return true;
}
@@ -90,7 +92,7 @@ public class Command_ride extends FreedomCommand
return true;
}
- final VPlayer vPlayer = plugin.pv.getVerificationPlayer(player);
+ final PlayerData playerData = plugin.pl.getData(player);
if (player == playerSender)
{
@@ -98,7 +100,7 @@ public class Command_ride extends FreedomCommand
return true;
}
- if (vPlayer.getRideMode().equals("off") && !isAdmin(sender))
+ if (playerData.getRideMode().equals("off") && !isAdmin(sender))
{
msg("That player cannot be ridden.", ChatColor.RED);
return true;
@@ -110,7 +112,7 @@ public class Command_ride extends FreedomCommand
return true;
}
- if (vPlayer.getRideMode().equals("ask") && !isAdmin(sender))
+ if (playerData.getRideMode().equals("ask") && !FUtil.isExecutive(playerSender.getName()))
{
msg("Sent a request to the player.", ChatColor.GREEN);
player.sendMessage(ChatColor.AQUA + sender.getName() + " has requested to ride you.");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_rideablepearl.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_rideablepearl.java
index 23923be1..b4e02d6f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_rideablepearl.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_rideablepearl.java
@@ -15,7 +15,7 @@ public class Command_rideablepearl extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (plugin.sh.getData(playerSender).hasItem(ShopItem.RIDEABLE_PEARL))
+ if (plugin.pl.getData(playerSender).hasItem(ShopItem.RIDEABLE_PEARL))
{
playerSender.getInventory().addItem(plugin.sh.getRideablePearl());
msg("You have been given a Rideable Ender Pearl", ChatColor.GREEN);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java
index 3162b1f3..429cc6ac 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java
@@ -7,9 +7,7 @@ import java.util.Date;
import java.util.List;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.pravian.aero.util.Ips;
@@ -109,7 +107,7 @@ public class Command_saconfig extends FreedomCommand
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
- plugin.dc.syncRoles(admin);
+ plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
}
msg("Set " + admin.getName() + "'s rank to " + rank.getName());
@@ -166,7 +164,7 @@ public class Command_saconfig extends FreedomCommand
return true;
}
- if (player != null && plugin.al.isAdmin(player))
+ if (plugin.al.isAdmin(player))
{
msg("That player is already admin.");
return true;
@@ -177,14 +175,14 @@ public class Command_saconfig extends FreedomCommand
Admin admin = null;
for (Admin loopAdmin : plugin.al.getAllAdmins())
{
- if (loopAdmin.getName().equalsIgnoreCase(name))
+ if (loopAdmin.getName().equalsIgnoreCase(name) || loopAdmin.getIps().contains(Ips.getIp(player)))
{
admin = loopAdmin;
break;
}
}
- if (plugin.pv.isPlayerImpostor(player))
+ if (plugin.pl.isPlayerImpostor(player))
{
msg("This player was labeled as a Player impostor and is not an admin, therefore they cannot be added to the admin list.", ChatColor.RED);
return true;
@@ -192,11 +190,6 @@ public class Command_saconfig extends FreedomCommand
if (admin == null) // New admin
{
- if (plugin.mbl.isMasterBuilderImpostor(player))
- {
- msg("This player was labeled as a Master Builder impostor and is not an admin, therefore they cannot be added to the admin list.", ChatColor.RED);
- return true;
- }
if (player == null)
{
msg(FreedomCommand.PLAYER_NOT_FOUND);
@@ -206,81 +199,25 @@ public class Command_saconfig extends FreedomCommand
FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the admin list", true);
admin = new Admin(player);
- // Attempt to find discord account
- if (plugin.mbl.isMasterBuilder(player))
- {
- MasterBuilder masterBuilder = plugin.mbl.getMasterBuilder(player);
- admin.setDiscordID(plugin.mbl.getMasterBuilder(player).getDiscordID());
- }
- else if (plugin.pv.getVerificationPlayer(player.getName()) != null)
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(player.getName());
- if (vPlayer.getDiscordId() != null)
- {
- admin.setDiscordID(vPlayer.getDiscordId());
- }
- }
plugin.al.addAdmin(admin);
plugin.rm.updateDisplay(player);
}
else // Existing admin
{
- FUtil.adminAction(sender.getName(), "Re-adding " + admin.getName() + " to the admin list", true);
+ FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the admin list", true);
if (player != null)
{
String oldName = admin.getName();
+ if (oldName != player.getName())
admin.setName(player.getName());
plugin.sql.updateAdminName(oldName, admin.getName());
admin.addIp(Ips.getIp(player));
}
- // Handle master builders
- if (!plugin.mbl.isMasterBuilder(player))
- {
- MasterBuilder masterBuilder = null;
- for (MasterBuilder loopMasterBuilder : plugin.mbl.getAllMasterBuilders().values())
- {
- if (loopMasterBuilder.getName().equalsIgnoreCase(name))
- {
- masterBuilder = loopMasterBuilder;
- break;
- }
- }
-
- if (masterBuilder != null)
- {
- if (player != null)
- {
- masterBuilder.setName(player.getName());
- masterBuilder.addIp(Ips.getIp(player));
- }
-
- masterBuilder.setLastLogin(new Date());
-
- plugin.mbl.save();
- plugin.mbl.updateTables();
- }
- }
-
admin.setActive(true);
admin.setLastLogin(new Date());
- // Attempt to find discord account
- if (plugin.mbl.isMasterBuilder(player))
- {
- MasterBuilder masterBuilder = plugin.mbl.getMasterBuilder(player);
- admin.setDiscordID(plugin.mbl.getMasterBuilder(player).getDiscordID());
- }
- else if (plugin.pv.getVerificationPlayer(admin.getName()) != null)
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(admin.getName());
- if (vPlayer.getDiscordId() != null)
- {
- admin.setDiscordID(vPlayer.getDiscordId());
- }
- }
-
if (plugin.al.isVerifiedAdmin(player))
{
plugin.al.verifiedNoAdmins.remove(player.getName());
@@ -296,7 +233,7 @@ public class Command_saconfig extends FreedomCommand
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
- plugin.dc.syncRoles(admin);
+ plugin.dc.syncRoles(admin, plugin.pl.getData(player).getDiscordID());
}
}
@@ -314,7 +251,6 @@ public class Command_saconfig extends FreedomCommand
player.setOp(true);
player.sendMessage(YOU_ARE_OP);
}
- plugin.pv.removeEntry(player.getName()); // admins can't have player verification entries
}
return true;
}
@@ -348,7 +284,7 @@ public class Command_saconfig extends FreedomCommand
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
- plugin.dc.syncRoles(admin);
+ plugin.dc.syncRoles(admin, plugin.pl.getData(player).getDiscordID());
}
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java
index ae3e5fff..02f6e8da 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java
@@ -20,7 +20,7 @@ public class Command_shop extends FreedomCommand
msg("The shop is currently disabled!", ChatColor.RED);
return true;
}
- playerSender.openInventory(plugin.sh.generateShopGUI(plugin.sh.getData(playerSender)));
+ playerSender.openInventory(plugin.sh.generateShopGUI(plugin.pl.getData(playerSender)));
return true;
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stop.java
index 50d6981d..af0f6ba2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stop.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stop.java
@@ -20,27 +20,26 @@ public class Command_stop extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (STOP_CONFIRM.containsKey(sender))
- {
- FUtil.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
-
- for (Player player : server.getOnlinePlayers())
- {
- player.kickPlayer(ChatColor.LIGHT_PURPLE + STOP_CONFIRM.get(sender));
- }
-
- STOP_CONFIRM.remove(sender);
-
- server.shutdown();
- }
String reason = "Server is going offline, come back in about 20 seconds.";
- if (args.length > 0)
+ if (args.length != 0)
{
reason = StringUtils.join(args, " ");
}
+ if (sender.getName().equals("CONSOLE"))
+ {
+ shutdown(reason);
+ return true;
+ }
+ else if (STOP_CONFIRM.containsKey(sender))
+ {
+ shutdown(STOP_CONFIRM.get(sender));
+ return true;
+ }
+
+
msg("Warning: You're about to stop the server. Type /stop again to confirm you want to do this.");
STOP_CONFIRM.put(sender, reason);
@@ -58,4 +57,18 @@ public class Command_stop extends FreedomCommand
}.runTaskLater(plugin, 15 * 20);
return true;
}
+
+ public void shutdown(String reason)
+ {
+ FUtil.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
+
+ for (Player player : server.getOnlinePlayers())
+ {
+ player.kickPlayer(ChatColor.LIGHT_PURPLE + reason);
+ }
+
+ STOP_CONFIRM.remove(sender);
+
+ server.shutdown();
+ }
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java
index 1fdb8332..2abcd989 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java
@@ -2,10 +2,8 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.Arrays;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.Admin;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang3.ArrayUtils;
@@ -35,11 +33,6 @@ public class Command_tag extends FreedomCommand
if (args[0].equals("-s") || args[0].equals("-save"))
{
- if (!plugin.al.isAdmin(playerSender) && !plugin.mbl.isMasterBuilder(playerSender) && !plugin.pv.getVerificationPlayer(playerSender).getEnabled())
- {
- msg("Only admins, Master Builders, and players with verification enabled can save their tags.", ChatColor.RED);
- return true;
- }
save = true;
args = ArrayUtils.remove(args, 0);
}
@@ -199,25 +192,8 @@ public class Command_tag extends FreedomCommand
public void save(Player player, String tag)
{
- if (plugin.al.isAdmin(player))
- {
- Admin admin = plugin.al.getAdmin(player);
- admin.setTag(tag);
- plugin.al.save(admin);
- plugin.al.updateTables();
- }
- else if (plugin.mbl.isMasterBuilder(player))
- {
- MasterBuilder masterBuilder = plugin.mbl.getMasterBuilder(player);
- masterBuilder.setTag(tag);
- plugin.mbl.save();
- plugin.mbl.updateTables();
- }
- else if (plugin.pv.getVerificationPlayer(player).getEnabled())
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(player);
- vPlayer.setTag(tag);
- plugin.pv.saveVerificationData(vPlayer);
- }
+ PlayerData playerData = plugin.pl.getData(player);
+ playerData.setTag(tag);
+ plugin.pl.save(playerData);
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java
index cf2aed2e..a768890b 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java
@@ -1,8 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.player.PlayerData;
@@ -10,11 +8,7 @@ import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -47,7 +41,7 @@ public class Command_tban extends FreedomCommand
return true;
}
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java
index 556059dd..49299cc4 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java
@@ -47,7 +47,7 @@ public class Command_tempban extends FreedomCommand
return true;
}
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_trail.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_trail.java
index 18a57acd..558abb63 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_trail.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_trail.java
@@ -1,22 +1,19 @@
package me.totalfreedom.totalfreedommod.command;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Trails rainbow wool behind you as you walk/fly.", usage = "/ [off]")
+@CommandParameters(description = "Trails rainbow wool behind you as you walk/fly.", usage = "/")
public class Command_trail extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (args.length > 0 && "off".equals(args[0]))
+ if (plugin.tr.contains(playerSender))
{
plugin.tr.remove(playerSender);
msg("Trail disabled.");
@@ -30,15 +27,4 @@ public class Command_trail extends FreedomCommand
return true;
}
- @Override
- public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
- {
- if (args.length == 1 && plugin.al.isAdmin(sender))
- {
- return Arrays.asList("off");
- }
-
- return Collections.emptyList();
- }
-
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unban.java
index 181baf8a..0c86fa72 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unban.java
@@ -31,7 +31,7 @@ public class Command_unban extends FreedomCommand
return true;
}
- username = entry.getUsername();
+ username = entry.getName();
ips.addAll(entry.getIps());
FUtil.adminAction(sender.getName(), "Unbanning " + username, true);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_uncage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_uncage.java
new file mode 100644
index 00000000..d218d570
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_uncage.java
@@ -0,0 +1,47 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import me.totalfreedom.totalfreedommod.player.FPlayer;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandParameters(description = "Uncage a player", usage = "/ ")
+public class Command_uncage extends FreedomCommand
+{
+
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+
+ if (args.length == 0)
+ {
+ return false;
+ }
+
+ Player player = getPlayer(args[0]);
+ if (player == null)
+ {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+
+ final FPlayer fPlayer = plugin.pl.getPlayer(player);
+
+ if (fPlayer.getCageData().isCaged())
+ {
+ FUtil.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
+ final FPlayer playerdata = plugin.pl.getPlayer(playerSender);
+ playerdata.getCageData().setCaged(false);
+ }
+ else
+ {
+ msg("That player is not caged!", ChatColor.RED);
+ }
+
+ return true;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_undisguiseall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_undisguiseall.java
index dc5e3509..f280fd57 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_undisguiseall.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_undisguiseall.java
@@ -1,6 +1,5 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.libsdisguises.BlockedDisguises;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command;
@@ -21,12 +20,6 @@ public class Command_undisguiseall extends FreedomCommand
return true;
}
- if (BlockedDisguises.disabled)
- {
- msg("Disguises are not enabled.");
- return true;
- }
-
boolean admins = false;
if (args.length > 0 && args[0].equalsIgnoreCase("-a"))
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkdiscord.java
index 57170c85..07556280 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkdiscord.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkdiscord.java
@@ -1,7 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.totalfreedommod.admin.Admin;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -9,7 +8,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Unlink your Discord account from your Minecraft account", usage = "/")
+@CommandParameters(description = "Unlink your Discord account from your Minecraft account", usage = "/ [player]")
public class Command_unlinkdiscord extends FreedomCommand
{
@@ -22,32 +21,30 @@ public class Command_unlinkdiscord extends FreedomCommand
return true;
}
- if (plugin.al.isAdmin(playerSender))
+ if (args.length != 0 && plugin.al.isAdmin(playerSender))
{
- Admin admin = plugin.al.getAdmin(playerSender);
- if (admin.getDiscordID() == null)
+ PlayerData playerData = plugin.pl.getData(args[0]);
+ if (playerData == null)
{
- msg("Your Minecraft account is not linked to a Discord account.", ChatColor.RED);
+ msg(PLAYER_NOT_FOUND);
return true;
}
- admin.setDiscordID(null);
- plugin.al.save(admin);
- msg("Your Minecraft account has been successfully unlinked from the Discord account.", ChatColor.GREEN);
+
+ playerData.setDiscordID(null);
+ msg("Unlinked " + args[0] + "'s discord account.", ChatColor.GREEN);
return true;
}
- else
+
+ PlayerData data = plugin.pl.getData(playerSender);
+ if (data.getDiscordID() == null)
{
- VPlayer data = plugin.pv.getVerificationPlayer(playerSender);
- if (data.getDiscordId() == null)
- {
- msg("Your Minecraft account is not linked to a Discord account.", ChatColor.RED);
- return true;
- }
- data.setDiscordId(null);
- data.setEnabled(false);
- plugin.pv.saveVerificationData(data);
- msg("Your Minecraft account has been successfully unlinked from the Discord account.", ChatColor.GREEN);
+ msg("Your Minecraft account is not linked to a Discord account.", ChatColor.RED);
return true;
}
+ data.setDiscordID(null);
+ data.setVerification(false);
+ plugin.pl.save(data);
+ msg("Your Minecraft account has been successfully unlinked from the Discord account.", ChatColor.GREEN);
+ return true;
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unmute.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unmute.java
index 40c934d7..ec329f91 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unmute.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unmute.java
@@ -1,9 +1,5 @@
package me.totalfreedom.totalfreedommod.command;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
@@ -57,18 +53,11 @@ public class Command_unmute extends FreedomCommand
playerdata.setMuted(false);
msg(player, "You have been unmuted.", ChatColor.RED);
player.sendTitle(ChatColor.RED + "You've been unmuted.", ChatColor.YELLOW + "Be sure to follow the rules!", 20, 100, 60);
- if (quiet)
+ if (!quiet)
{
- playerdata.setMuted(false);
- return true;
+ FUtil.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
}
-
- FUtil.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
- playerdata.setMuted(false);
- msg("Unmuted " + player.getName());
-
- msg(player, "You have been unmuted.", ChatColor.RED);
- player.sendTitle(ChatColor.RED + "You've been unmuted.", ChatColor.YELLOW + "Be sure to follow the rules!", 20, 100, 60);
+ return true;
}
else
{
@@ -77,23 +66,4 @@ public class Command_unmute extends FreedomCommand
return true;
}
-
- @Override
- public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
- {
- if (!plugin.al.isAdmin(sender))
- {
- return null;
- }
-
- if (args.length == 1)
- {
- List arguments = new ArrayList<>();
- arguments.addAll(FUtil.getPlayerList());
- arguments.addAll(Arrays.asList("list", "purge", "all"));
- return arguments;
- }
-
- return Collections.emptyList();
- }
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java
index f620a861..0a50072a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java
@@ -1,7 +1,7 @@
package me.totalfreedom.totalfreedommod.command;
-import java.util.ArrayList;
import me.totalfreedom.totalfreedommod.admin.Admin;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
@@ -11,8 +11,6 @@ import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
@@ -23,7 +21,6 @@ public class Command_vanish extends FreedomCommand
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
{
Displayable display = plugin.rm.getDisplay(playerSender);
- String loginMsg = display.getColoredLoginMessage();
String displayName = display.getColor() + playerSender.getName();
String tag = display.getColoredTag();
Admin admin = plugin.al.getAdmin(playerSender);
@@ -38,21 +35,18 @@ public class Command_vanish extends FreedomCommand
if (plugin.al.vanished.contains(playerSender))
{
msg(ChatColor.GOLD + "You have been unvanished.");
- if (admin.hasLoginMessage())
- {
- loginMsg = FUtil.colorize(admin.getLoginMessage()).replace("%rank%", plugin.rm.getDisplay(admin).getName()).replace("%coloredrank%", plugin.rm.getDisplay(admin).getColoredName()).replace("%name%", admin.getName());
- }
if (!silent)
{
FUtil.bcastMsg(plugin.rm.craftLoginMessage(playerSender, null));
FUtil.bcastMsg(playerSender.getName() + " joined the game.", ChatColor.YELLOW);
plugin.dc.messageChatChannel("**" + playerSender.getName() + " joined the server" + "**");
}
- if (admin.getTag() != null)
+ PlayerData playerData = plugin.pl.getData(playerSender);
+ if (playerData.getTag() != null)
{
- tag = FUtil.colorize(admin.getTag());
+ tag = FUtil.colorize(playerData.getTag());
}
- plugin.pl.getPlayer(playerSender).setTag(tag);
+ plugin.pl.getData(playerSender).setTag(tag);
FLog.info(playerSender.getName() + " is no longer vanished.");
for (Player player : server.getOnlinePlayers())
{
@@ -79,9 +73,13 @@ public class Command_vanish extends FreedomCommand
{
{
if (plugin.al.isAdmin(player))
- playerMsg(player, ChatColor.YELLOW + sender.getName() + " has vanished and is now only visible to admins." );
+ {
+ playerMsg(player, ChatColor.YELLOW + sender.getName() + " has vanished and is now only visible to admins.");
+ }
if (!plugin.al.isAdmin(player))
+ {
player.hidePlayer(plugin, playerSender);
+ }
}
}
plugin.esb.setVanished(playerSender.getName(), true);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verify.java
index e8d703c4..95576721 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verify.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verify.java
@@ -1,11 +1,7 @@
package me.totalfreedom.totalfreedommod.command;
-import java.util.Date;
-import me.totalfreedom.totalfreedommod.admin.Admin;
-import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.pravian.aero.util.Ips;
@@ -22,258 +18,76 @@ public class Command_verify extends FreedomCommand
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (args.length == 1 && plugin.al.isAdmin(playerSender))
+ if (!plugin.dc.enabled)
{
- final Player player = getPlayer(args[0]);
- if (player == null)
- {
- msg(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
- if (!plugin.pv.isPlayerImpostor(player))
- {
- msg("That player is not an impostor.");
- return true;
- }
- FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false);
- player.setOp(true);
- player.sendMessage(YOU_ARE_OP);
- if (plugin.pl.getPlayer(player).getFreezeData().isFrozen())
- {
- plugin.pl.getPlayer(player).getFreezeData().setFrozen(false);
- player.sendMessage(ChatColor.GRAY + "You have been unfrozen.");
- }
- plugin.pv.verifyPlayer(player, null);
- plugin.rm.updateDisplay(player);
+ msg("The Discord verification system is currently disabled", ChatColor.RED);
return true;
}
- else
+
+ if (senderIsConsole)
{
- if (!plugin.dc.enabled)
- {
- msg("The Discord verification system is currently disabled", ChatColor.RED);
- return true;
- }
+ msg("/manuallyverify ", ChatColor.WHITE);
+ return true;
+ }
- if (senderIsConsole || plugin.al.isAdmin(playerSender))
- {
- msg("/verify ", ChatColor.WHITE);
- return true;
- }
+ if (!plugin.pl.isImposter(playerSender))
+ {
+ msg("You are not an impostor, therefore you do not need to verify.", ChatColor.RED);
+ return true;
+ }
- if (!plugin.pv.isPlayerImpostor(playerSender) && !plugin.al.isAdminImpostor(playerSender) && !plugin.mbl.isMasterBuilderImpostor(playerSender))
- {
- msg("You are not an impostor, therefore you do not need to verify.", ChatColor.RED);
- return true;
- }
+ PlayerData playerData = plugin.pl.getData(playerSender);
- String discordId = "";
+ String discordId = playerData.getDiscordID();
- if (plugin.pv.isPlayerImpostor(playerSender))
+ if (playerData.getDiscordID() == null)
+ {
+ msg("You do not have a Discord account linked to your Minecraft account, please verify the manual way.", ChatColor.RED);
+ return true;
+ }
+
+ if (args.length == 0)
+ {
+ String code = plugin.dc.generateCode(10);
+ plugin.dc.addVerificationCode(code, playerData);
+ plugin.dc.bot.getUserById(discordId).openPrivateChannel().complete().sendMessage("A user with the IP `" + Ips.getIp(playerSender) + "` has sent a verification request. Please run the following in-game command: `/verify " + code + "`").complete();
+ msg("A verification code has been sent to your account, please copy the code and run /verify ", ChatColor.GREEN);
+ return true;
+ }
+
+ String code = args[0];
+ String backupCode = null;
+
+ if (plugin.pl.isImposter(playerSender))
+ {
+ PlayerData mapPlayer = plugin.dc.getVerificationCodes().get(code);
+ if (mapPlayer == null)
{
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(playerSender);
- if (vPlayer.getDiscordId() == null)
+ if (!playerData.getBackupCodes().contains(plugin.dc.getMD5(code)))
{
- msg("You do not have a Discord account linked to your Minecraft account, please verify the manual way.", ChatColor.RED);
+ msg("You have entered an invalid verification code", ChatColor.RED);
return true;
}
- discordId = vPlayer.getDiscordId();
- }
- else if (plugin.al.isAdminImpostor(playerSender))
- {
- Admin admin = plugin.al.getEntryByName(playerSender.getName());
- if (admin.getDiscordID() == null)
+ else
{
- msg("You do not have a Discord account linked to your Minecraft account, please verify the manual way.", ChatColor.RED);
- return true;
+ backupCode = plugin.dc.getMD5(code);
}
- discordId = admin.getDiscordID();
- }
- else if (plugin.mbl.isMasterBuilderImpostor(playerSender))
- {
- MasterBuilder masterBuilder = plugin.mbl.getEntryByName(playerSender.getName());
- if (masterBuilder.getDiscordID() == null)
- {
- msg("You do not have a Discord account linked to your Minecraft account, please verify the manual way.", ChatColor.RED);
- return true;
- }
- discordId = masterBuilder.getDiscordID();
- }
-
- if (args.length < 1)
- {
- String code = plugin.dc.generateCode(10);
- if (plugin.pv.isPlayerImpostor(playerSender))
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(playerSender);
- plugin.dc.addPlayerVerificationCode(code, vPlayer);
- }
- else if (plugin.al.isAdminImpostor(playerSender))
- {
- Admin admin = plugin.al.getEntryByName(playerSender.getName());
- plugin.dc.addAdminVerificationCode(code, admin);
- }
- else if (plugin.mbl.isMasterBuilderImpostor(playerSender))
- {
- MasterBuilder masterBuilder = plugin.mbl.getEntryByName(playerSender.getName());
- plugin.dc.addMasterBuilderVerificationCode(code, masterBuilder);
- }
- plugin.dc.bot.getUserById(discordId).openPrivateChannel().complete().sendMessage("A user with the IP `" + Ips.getIp(playerSender) + "` has sent a verification request. Please run the following in-game command: `/verify " + code + "`").complete();
- msg("A verification code has been sent to your account, please copy the code and run /verify ", ChatColor.GREEN);
}
else
{
- String code = args[0];
- String backupCode = null;
-
- if (plugin.pv.isPlayerImpostor(playerSender))
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(playerSender);
- VPlayer mapPlayer = plugin.dc.getPlayerVerificationCodes().get(code);
- if (mapPlayer == null)
- {
- if (!vPlayer.getBackupCodes().contains(plugin.dc.getMD5(code)))
- {
- msg("You have entered an invalid verification code", ChatColor.RED);
- return true;
- }
- else
- {
- backupCode = plugin.dc.getMD5(code);
- }
- }
- else
- {
- plugin.dc.removePlayerVerificationCode(code);
- }
-
- final FPlayer fPlayer = plugin.pl.getPlayer(playerSender);
- FUtil.bcastMsg(playerSender.getName() + " has verified!", ChatColor.GOLD);
- playerSender.setOp(true);
- msg(YOU_ARE_OP);
- if (fPlayer.getFreezeData().isFrozen())
- {
- fPlayer.getFreezeData().setFrozen(false);
- msg("You have been unfrozen.");
- }
- plugin.pv.verifyPlayer(playerSender, backupCode);
- plugin.rm.updateDisplay(playerSender);
- return true;
- }
- else if (plugin.al.isAdminImpostor(playerSender))
- {
- Admin admin = plugin.al.getEntryByName(playerSender.getName());
- Admin mapAdmin = plugin.dc.getAdminVerificationCodes().get(code);
- if (mapAdmin == null)
- {
- if (!admin.getBackupCodes().contains(plugin.dc.getMD5(code)))
- {
- msg("You have entered an invalid verification code", ChatColor.RED);
- return true;
- }
- else
- {
- backupCode = plugin.dc.getMD5(code);
- }
- }
- else
- {
- plugin.dc.removeAdminVerificationCode(code);
- }
-
- FUtil.bcastMsg(playerSender.getName() + " has verified!", ChatColor.GOLD);
- FUtil.adminAction(ConfigEntry.SERVER_NAME.getString(), "Re-adding " + admin.getName() + " to the admin list", true);
-
- admin.setName(playerSender.getName());
- admin.addIp(Ips.getIp(playerSender));
-
- if (backupCode != null)
- {
- admin.removeBackupCode(backupCode);
- }
-
- if (!plugin.mbl.isMasterBuilder(playerSender))
- {
- MasterBuilder masterBuilder = null;
- for (MasterBuilder loopMasterBuilder : plugin.mbl.getAllMasterBuilders().values())
- {
- if (loopMasterBuilder.getName().equalsIgnoreCase(playerSender.getName()))
- {
- masterBuilder = loopMasterBuilder;
- break;
- }
- }
-
- if (masterBuilder != null)
- {
- masterBuilder.setName(playerSender.getName());
- masterBuilder.addIp(Ips.getIp(playerSender));
-
- masterBuilder.setLastLogin(new Date());
-
- plugin.mbl.save();
- plugin.mbl.updateTables();
- }
- }
-
- admin.setActive(true);
- admin.setLastLogin(new Date());
- plugin.al.save(admin);
- plugin.al.updateTables();
- plugin.rm.updateDisplay(playerSender);
- playerSender.setOp(true);
- msg(YOU_ARE_OP);
- final FPlayer fPlayer = plugin.pl.getPlayer(playerSender);
- if (fPlayer.getFreezeData().isFrozen())
- {
- fPlayer.getFreezeData().setFrozen(false);
- msg("You have been unfrozen.");
- }
- return true;
- }
- else if (plugin.mbl.isMasterBuilderImpostor(playerSender))
- {
- MasterBuilder masterBuilder = plugin.mbl.getEntryByName(playerSender.getName());
- MasterBuilder mapMasterBuilder = plugin.dc.getMasterBuilderVerificationCodes().get(code);
- if (mapMasterBuilder == null)
- {
- if (!masterBuilder.getBackupCodes().contains(plugin.dc.getMD5(code)))
- {
- msg("You have entered an invalid verification code", ChatColor.RED);
- return true;
- }
- else
- {
- backupCode = plugin.dc.getMD5(code);
- }
- }
- else
- {
- plugin.dc.removeMasterBuilderVerificationCode(code);
- }
-
- if (backupCode != null)
- {
- masterBuilder.removeBackupCode(backupCode);
- }
-
- final FPlayer fPlayer = plugin.pl.getPlayer(playerSender);
- FUtil.bcastMsg(playerSender.getName() + " has verified!", ChatColor.GOLD);
- masterBuilder.setLastLogin(new Date());
- masterBuilder.addIp(Ips.getIp(playerSender));
- plugin.mbl.save();
- plugin.mbl.updateTables();
- plugin.rm.updateDisplay(playerSender);
- playerSender.setOp(true);
- msg(YOU_ARE_OP);
- if (fPlayer.getFreezeData().isFrozen())
- {
- fPlayer.getFreezeData().setFrozen(false);
- msg("You have been unfrozen.");
- }
- return true;
- }
+ plugin.dc.removeVerificationCode(code);
}
+
+ final FPlayer fPlayer = plugin.pl.getPlayer(playerSender);
+ if (fPlayer.getFreezeData().isFrozen())
+ {
+ fPlayer.getFreezeData().setFrozen(false);
+ msg("You have been unfrozen.");
+ }
+ FUtil.bcastMsg(playerSender.getName() + " has verified!", ChatColor.GOLD);
+ playerSender.setOp(true);
+ plugin.pl.verify(playerSender, backupCode);
+ return true;
}
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verifynoadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verifynoadmin.java
index 8355170b..0b3af27e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verifynoadmin.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_verifynoadmin.java
@@ -1,7 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.player.FPlayer;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java
index 476463f2..ad7f46aa 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java
@@ -46,7 +46,7 @@ public class Command_warn extends FreedomCommand
String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
- msg(player, ChatColor.RED + "[WARNING] You received a warning: " + warnReason);
+ msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
player.sendTitle(ChatColor.RED + "You've been warned.", ChatColor.YELLOW + "Reason: " + warnReason, 20, 100, 60);
msg(ChatColor.GREEN + "You have successfully warned " + player.getName());
final StringBuilder adminNotice = new StringBuilder()
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java
index a788d1e4..1c134786 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java
@@ -154,6 +154,20 @@ public abstract class FreedomCommand extends AbstractCommandBase PLAYER_LINK_CODES = new HashMap<>();
- public static HashMap PLAYER_VERIFICATION_CODES = new HashMap<>();
- public static HashMap ADMIN_LINK_CODES = new HashMap<>();
- public static HashMap ADMIN_VERIFICATION_CODES = new HashMap<>();
- public static HashMap MASTER_BUILDER_LINK_CODES = new HashMap<>();
- public static HashMap MASTER_BUILDER_VERIFICATION_CODES = new HashMap<>();
+ public static HashMap LINK_CODES = new HashMap<>();
+ public static HashMap VERIFICATION_CODES = new HashMap<>();
public ScheduledThreadPoolExecutor RATELIMIT_EXECUTOR = new ScheduledThreadPoolExecutor(5, new CountingThreadFactory(this::poolIdentifier, "RateLimit"));
public List> sentMessages = new ArrayList<>();
@@ -153,58 +148,20 @@ public class Discord extends FreedomService
}
}
- public boolean sendBackupCodes(VPlayer vPlayer)
+ public boolean sendBackupCodes(PlayerData playerData)
{
List codes = generateBackupCodes();
List encryptedCodes = generateEncryptedBackupCodes(codes);
- net.dv8tion.jda.api.entities.User user = bot.getUserById(vPlayer.getDiscordId());
- File file = generateBackupCodesFile(vPlayer.getName(), codes);
+ net.dv8tion.jda.api.entities.User user = bot.getUserById(playerData.getDiscordID());
+ File file = generateBackupCodesFile(playerData.getName(), codes);
if (file == null)
{
return false;
}
PrivateChannel privateChannel = user.openPrivateChannel().complete();
privateChannel.sendMessage("Do not share these codes with anyone as they can be used to impose as you.").addFile(file).complete();
- vPlayer.setBackupCodes(encryptedCodes);
- plugin.pv.saveVerificationData(vPlayer);
- file.delete();
- return true;
- }
-
- public boolean sendBackupCodes(Admin admin)
- {
- List codes = generateBackupCodes();
- List encryptedCodes = generateEncryptedBackupCodes(codes);
- net.dv8tion.jda.api.entities.User user = bot.getUserById(admin.getDiscordID());
- File file = generateBackupCodesFile(admin.getName(), codes);
- if (file == null)
- {
- return false;
- }
- PrivateChannel privateChannel = user.openPrivateChannel().complete();
- privateChannel.sendMessage("Do not share these codes with anyone as they can be used to impose as you.").addFile(file).complete();
- admin.setBackupCodes(encryptedCodes);
- plugin.al.save(admin);
- plugin.al.updateTables();
- file.delete();
- return true;
- }
-
- public boolean sendBackupCodes(MasterBuilder masterBuilder)
- {
- List codes = generateBackupCodes();
- List encryptedCodes = generateEncryptedBackupCodes(codes);
- net.dv8tion.jda.api.entities.User user = bot.getUserById(masterBuilder.getDiscordID());
- File file = generateBackupCodesFile(masterBuilder.getName(), codes);
- if (file == null)
- {
- return false;
- }
- PrivateChannel privateChannel = user.openPrivateChannel().complete();
- privateChannel.sendMessage("Do not share these codes with anyone as they can be used to impose as you.").addFile(file).complete();
- masterBuilder.setBackupCodes(encryptedCodes);
- plugin.mbl.save();
- plugin.mbl.updateTables();
+ playerData.setBackupCodes(encryptedCodes);
+ plugin.pl.save(playerData);
file.delete();
return true;
}
@@ -283,49 +240,19 @@ public class Discord extends FreedomService
return DigestUtils.md5Hex(string);
}
- public void addPlayerVerificationCode(String code, VPlayer vPlayer)
+ public void addVerificationCode(String code, PlayerData playerData)
{
- PLAYER_VERIFICATION_CODES.put(code, vPlayer);
+ VERIFICATION_CODES.put(code, playerData);
}
- public void removePlayerVerificationCode(String code)
+ public void removeVerificationCode(String code)
{
- PLAYER_VERIFICATION_CODES.remove(code);
+ VERIFICATION_CODES.remove(code);
}
- public HashMap getPlayerVerificationCodes()
+ public HashMap getVerificationCodes()
{
- return PLAYER_VERIFICATION_CODES;
- }
-
- public void addAdminVerificationCode(String code, Admin admin)
- {
- ADMIN_VERIFICATION_CODES.put(code, admin);
- }
-
- public void removeAdminVerificationCode(String code)
- {
- ADMIN_VERIFICATION_CODES.remove(code);
- }
-
- public HashMap getAdminVerificationCodes()
- {
- return ADMIN_VERIFICATION_CODES;
- }
-
- public void addMasterBuilderVerificationCode(String code, MasterBuilder masterBuilder)
- {
- MASTER_BUILDER_VERIFICATION_CODES.put(code, masterBuilder);
- }
-
- public void removeMasterBuilderVerificationCode(String code)
- {
- MASTER_BUILDER_VERIFICATION_CODES.remove(code);
- }
-
- public HashMap getMasterBuilderVerificationCodes()
- {
- return MASTER_BUILDER_VERIFICATION_CODES;
+ return VERIFICATION_CODES;
}
@EventHandler(priority = EventPriority.MONITOR)
@@ -383,35 +310,11 @@ public class Discord extends FreedomService
return user.getName() + "#" + user.getDiscriminator();
}
- public static String getCodeForAdmin(Admin admin)
+ public static String getCode(PlayerData playerData)
{
- for (String code : ADMIN_LINK_CODES.keySet())
+ for (String code : LINK_CODES.keySet())
{
- if (ADMIN_LINK_CODES.get(code).equals(admin))
- {
- return code;
- }
- }
- return null;
- }
-
- public static String getCodeForPlayer(VPlayer playerData)
- {
- for (String code : PLAYER_LINK_CODES.keySet())
- {
- if (PLAYER_LINK_CODES.get(code).equals(playerData))
- {
- return code;
- }
- }
- return null;
- }
-
- public static String getCodeForMasterBuilder(MasterBuilder masterBuilder)
- {
- for (String code : MASTER_BUILDER_LINK_CODES.keySet())
- {
- if (MASTER_BUILDER_LINK_CODES.get(code).equals(masterBuilder))
+ if (LINK_CODES.get(code).equals(playerData))
{
return code;
}
@@ -477,9 +380,9 @@ public class Discord extends FreedomService
return true;
}
- public static boolean syncRoles(Admin admin)
+ public static boolean syncRoles(Admin admin, String discordID)
{
- if (admin.getDiscordID() == null)
+ if (discordID == null)
{
return false;
}
@@ -491,7 +394,7 @@ public class Discord extends FreedomService
return false;
}
- Member member = server.getMemberById(admin.getDiscordID());
+ Member member = server.getMemberById(discordID);
if (member == null)
{
return false;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/PrivateMessageListener.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/PrivateMessageListener.java
index 16199ed3..f627f067 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/discord/PrivateMessageListener.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/PrivateMessageListener.java
@@ -1,9 +1,7 @@
package me.totalfreedom.totalfreedommod.discord;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import me.totalfreedom.totalfreedommod.admin.Admin;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import net.dv8tion.jda.api.events.message.priv.PrivateMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
@@ -18,34 +16,15 @@ public class PrivateMessageListener extends ListenerAdapter
{
String code = event.getMessage().getContentRaw();
String name;
- if (Discord.ADMIN_LINK_CODES.get(code) != null)
+ if (Discord.LINK_CODES.get(code) != null)
{
- Admin admin = Discord.ADMIN_LINK_CODES.get(code);
- name = admin.getName();
- admin.setDiscordID(event.getMessage().getAuthor().getId());
- TotalFreedomMod.plugin().al.save(admin);
- TotalFreedomMod.plugin().al.updateTables();
- Discord.ADMIN_LINK_CODES.remove(code);
- Discord.syncRoles(admin);
- }
- else if (Discord.PLAYER_LINK_CODES.get(code) != null)
- {
- VPlayer player = Discord.PLAYER_LINK_CODES.get(code);
+ PlayerData player = Discord.LINK_CODES.get(code);
name = player.getName();
- player.setDiscordId(event.getMessage().getAuthor().getId());
- player.setEnabled(true);
+ player.setDiscordID(event.getMessage().getAuthor().getId());
+ player.setVerification(true);
- TotalFreedomMod.plugin().pv.saveVerificationData(player);
- Discord.PLAYER_LINK_CODES.remove(code);
- }
- else if (Discord.MASTER_BUILDER_LINK_CODES.get(code) != null)
- {
- MasterBuilder masterBuilder = Discord.MASTER_BUILDER_LINK_CODES.get(code);
- name = masterBuilder.getName();
- masterBuilder.setDiscordID(event.getMessage().getAuthor().getId());
- TotalFreedomMod.plugin().mbl.save();
- TotalFreedomMod.plugin().mbl.updateTables();
- Discord.MASTER_BUILDER_LINK_CODES.remove(code);
+ TotalFreedomMod.plugin().pl.save(player);
+ Discord.LINK_CODES.remove(code);
}
else
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/freeze/FreezeData.java b/src/main/java/me/totalfreedom/totalfreedommod/freeze/FreezeData.java
index 3f7a42d4..e22d8ed8 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/freeze/FreezeData.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/freeze/FreezeData.java
@@ -62,7 +62,7 @@ public class FreezeData
@Override
public void run()
{
- if (!plugin().al.isAdminImpostor(player) && plugin().pv.isPlayerImpostor(player))
+ if (!plugin().al.isAdminImpostor(player) && plugin().pl.isPlayerImpostor(player))
{
FUtil.adminAction("TotalFreedom", "Unfreezing " + player.getName(), false);
setFrozen(false);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java
index 0f484b2c..bcb6cd13 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java
@@ -5,20 +5,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
-import java.util.Timer;
-import java.util.TimerTask;
import java.util.UUID;
-import javax.security.auth.login.FailedLoginException;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
-import me.totalfreedom.totalfreedommod.shop.ShopData;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.shop.ShopItem;
import me.totalfreedom.totalfreedommod.util.DepreciationAggregator;
-import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
@@ -287,7 +282,7 @@ public class ItemFun extends FreedomService
case BLAZE_ROD:
{
- if (!plugin.sh.isRealItem(plugin.sh.getData(player), ShopItem.LIGHTNING_ROD, player.getInventory().getItemInMainHand(), plugin.sh.getLightningRod()))
+ if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.LIGHTNING_ROD, player.getInventory().getItemInMainHand(), plugin.sh.getLightningRod()))
{
break;
}
@@ -311,7 +306,7 @@ public class ItemFun extends FreedomService
case FIRE_CHARGE:
{
- if (!plugin.sh.isRealItem(plugin.sh.getData(player), ShopItem.FIRE_BALL, player.getInventory().getItemInMainHand(), plugin.sh.getFireBall()))
+ if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.FIRE_BALL, player.getInventory().getItemInMainHand(), plugin.sh.getFireBall()))
{
break;
}
@@ -339,7 +334,7 @@ public class ItemFun extends FreedomService
if (entity instanceof EnderPearl && entity.getShooter() instanceof Player)
{
Player player = (Player)entity.getShooter();
- if (plugin.sh.isRealItem(plugin.sh.getData(player), ShopItem.RIDEABLE_PEARL, player.getInventory().getItemInMainHand(), plugin.sh.getRideablePearl()))
+ if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.RIDEABLE_PEARL, player.getInventory().getItemInMainHand(), plugin.sh.getRideablePearl()))
{
entity.addPassenger(player);
}
@@ -397,10 +392,10 @@ public class ItemFun extends FreedomService
public void onFish(PlayerFishEvent event)
{
Player player = event.getPlayer();
- ShopData sd = plugin.sh.getData(player);
+ PlayerData data = plugin.pl.getData(player);
PlayerInventory inv = event.getPlayer().getInventory();
ItemStack rod = inv.getItemInMainHand();
- if (plugin.sh.isRealItem(plugin.sh.getData(player), ShopItem.GRAPPLING_HOOK, player.getInventory().getItemInMainHand(), plugin.sh.getGrapplingHook()))
+ if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.GRAPPLING_HOOK, player.getInventory().getItemInMainHand(), plugin.sh.getGrapplingHook()))
{
if (event.getState() == PlayerFishEvent.State.REEL_IN || event.getState() == PlayerFishEvent.State.IN_GROUND)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/RealTimer.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/RealTimer.java
deleted file mode 100644
index ea7d042f..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/fun/RealTimer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package me.totalfreedom.totalfreedommod.fun;
-
-import java.util.HashMap;
-import java.util.Map;
-import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import me.totalfreedom.totalfreedommod.playerverification.VPlayer;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.scheduler.BukkitRunnable;
-import org.bukkit.scheduler.BukkitTask;
-
-public class RealTimer extends FreedomService
-{
- public RealTimer(TotalFreedomMod plugin)
- {
- super(plugin);
- }
-
- private Map tasks = new HashMap<>();
-
- @Override
- protected void onStart()
- {
- }
-
- @Override
- protected void onStop()
- {
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerJoin(PlayerJoinEvent event)
- {
- enable(event.getPlayer());
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerQuit(PlayerQuitEvent event)
- {
- disable(event.getPlayer());
- }
-
- public void enable(Player player)
- {
- VPlayer vPlayer = plugin.pv.getVerificationPlayer(player);
- if (vPlayer.isRealTime())
- {
- tasks.put(player, new BukkitRunnable()
- {
- @Override
- public void run()
- {
- player.setPlayerTime(FUtil.getTimeInTicks(vPlayer.getUtcOffset()), false);
- }
- }.runTaskTimer(plugin, 0L, 20));
- }
- }
-
- public void disable(Player player)
- {
- if (!tasks.containsKey(player))
- return;
- tasks.get(player).cancel();
- tasks.remove(player);
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java
index bf480e7c..85536957 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java
@@ -91,4 +91,9 @@ public class Trailer extends FreedomService
{
trailPlayers.add(player.getName());
}
+
+ public boolean contains(Player player)
+ {
+ return trailPlayers.contains(player.getName());
+ }
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java
index eff3e06c..c2e05c43 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java
@@ -50,7 +50,7 @@ public class Module_list extends HTTPDModule
imposters.add(player.getName());
}
- if (plugin.mbl.isMasterBuilder(player))
+ if (plugin.pl.getData(player).isMasterBuilder())
{
masterbuilders.add(player.getName());
}
@@ -146,7 +146,7 @@ public class Module_list extends HTTPDModule
public boolean isImposter(Player player)
{
- if (plugin.al.isAdminImpostor(player) || plugin.pv.isPlayerImpostor(player) || plugin.mbl.isMasterBuilderImpostor(player))
+ if (plugin.al.isAdminImpostor(player) || plugin.pl.isPlayerImpostor(player))
{
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java
index 73f184bb..cd065fec 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java
@@ -17,7 +17,7 @@ public class Module_logs extends Module_file
@Override
public NanoHTTPD.Response getResponse()
{
- if (ConfigEntry.LOGS_SECRET.getString().equals(params.get("password")))
+ if (ConfigEntry.LOGS_SECRET.getString().equals(params.get("password")) && !ConfigEntry.LOGS_SECRET.getString().isEmpty())
{
FLog.info(session.getSocket().getInetAddress() + " is downloading latest.log.");
return serveFile("latest.log", params, new File("./logs"));
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java
index 793ed450..fcd9a89d 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java
@@ -4,7 +4,6 @@ import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -66,11 +65,7 @@ public class Module_players extends HTTPDModule
}
}
- // Master Builders
- for (MasterBuilder masterBuilder : plugin.mbl.getAllMasterBuilders().values())
- {
- masterbuilders.add(masterBuilder.getName());
- }
+ masterbuilders.addAll(plugin.pl.getMasterBuilderNames());
// Developers
developers.addAll(FUtil.DEVELOPERS);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java
index b7379cda..0b5fecb5 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java
@@ -21,7 +21,7 @@ import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon;
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD;
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Method;
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Response;
-import me.totalfreedom.totalfreedommod.masterbuilder.MasterBuilder;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.util.FLog;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringEscapeUtils;
@@ -271,8 +271,8 @@ public class Module_schematic extends HTTPDModule
private boolean isAuthorized(String remoteAddress)
{
Admin adminEntry = plugin.al.getEntryByIp(remoteAddress);
- MasterBuilder masterBuilderEntry = plugin.mbl.getEntryByIp(remoteAddress);
- return ((adminEntry != null && adminEntry.isActive()) || masterBuilderEntry != null);
+ PlayerData data = plugin.pl.getDataByIp(remoteAddress);
+ return ((adminEntry != null && adminEntry.isActive()) || data != null && data.isMasterBuilder());
}
private static class SchematicTransferException extends Exception
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilder.java b/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilder.java
deleted file mode 100644
index f4a8f4af..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilder.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package me.totalfreedom.totalfreedommod.masterbuilder;
-
-import com.google.common.collect.Lists;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import lombok.Getter;
-import lombok.Setter;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.base.ConfigLoadable;
-import net.pravian.aero.base.ConfigSavable;
-import net.pravian.aero.base.Validatable;
-import net.pravian.aero.util.Ips;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.entity.Player;
-
-public class MasterBuilder implements ConfigLoadable, ConfigSavable, Validatable
-{
-
- @Getter
- private String configKey;
- @Getter
- @Setter
- private String name;
- @Getter
- private final List ips = Lists.newArrayList();
- private final List backupCodes = Lists.newArrayList();
- @Getter
- @Setter
- private Date lastLogin = new Date();
- @Getter
- @Setter
- private String discordID = null;
- @Getter
- @Setter
- private String tag = null;
- @Getter
- @Setter
- private boolean clearChatOptOut = false;
-
- public static final String CONFIG_FILENAME = "masterbuilders.yml";
-
- public MasterBuilder(Player player)
- {
- this.configKey = player.getName().toLowerCase();
- this.name = player.getName();
- this.ips.add(Ips.getIp(player));
- }
-
- public MasterBuilder(String configKey)
- {
- this.configKey = configKey;
- }
-
- @Override
- public String toString()
- {
- final StringBuilder output = new StringBuilder();
-
- output.append("MasterBuilder: ").append(name).append("\n")
- .append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n")
- .append("- Last Login: ").append(FUtil.dateToString(lastLogin)).append("\n")
- .append("- Discord ID: ").append(discordID).append("\n")
- .append("- Tag: ").append(tag).append("\n")
- .append("- Clear Chat Opt Out: ").append(clearChatOptOut)
- .append("- Backup Codes: ").append(backupCodes.size()).append("/10").append("\n");
-
- return output.toString();
- }
-
- public void loadFrom(Player player)
- {
- configKey = player.getName().toLowerCase();
- name = player.getName();
- ips.clear();
- ips.add(Ips.getIp(player));
- }
-
- @Override
- public void loadFrom(ConfigurationSection cs)
- {
- name = cs.getString("username", configKey);
- ips.clear();
- ips.addAll(cs.getStringList("ips"));
- backupCodes.clear();
- backupCodes.addAll(cs.getStringList("backupCodes"));
- lastLogin = FUtil.stringToDate(cs.getString("last_login"));
- discordID = cs.getString("discord_id", null);
- tag = cs.getString("tag", null);
- clearChatOptOut = cs.getBoolean("clearChatOptOut", false);
- }
-
- @Override
- public void saveTo(ConfigurationSection cs)
- {
- Validate.isTrue(isValid(), "Could not save master builder entry: " + name + ". Entry not valid!");
- cs.set("username", name);
- cs.set("ips", Lists.newArrayList(ips));
- cs.set("backupCodes", Lists.newArrayList(backupCodes));
- cs.set("last_login", FUtil.dateToString(lastLogin));
- cs.set("discord_id", discordID);
- cs.set("tag", tag);
- cs.set("clearChatOptOut", clearChatOptOut);
- }
-
- public void addIp(String ip)
- {
- if (!ips.contains(ip))
- {
- ips.add(ip);
- }
- }
-
- public void addIps(List ips)
- {
- for (String ip : ips)
- {
- addIp(ip);
- }
- }
-
- public void removeIp(String ip)
- {
- ips.remove(ip);
- }
-
- public void clearIPs()
- {
- ips.clear();
- }
-
- public List getBackupCodes()
- {
- return Collections.unmodifiableList(backupCodes);
- }
-
- public void setBackupCodes(List codes)
- {
- backupCodes.clear();
- backupCodes.addAll(codes);
- }
-
- public void removeBackupCode(String code)
- {
- backupCodes.remove(code);
- }
-
- @Override
- public boolean isValid()
- {
- return configKey != null
- && name != null
- && !ips.isEmpty()
- && lastLogin != null;
- }
-
- public String getConfigKey()
- {
- return this.configKey;
- }
-
- public String getName()
- {
- return this.name;
- }
-
- public void setName(final String name)
- {
- this.name = name;
- }
-
- public List getIps()
- {
- return this.ips;
- }
-
- public Date getLastLogin()
- {
- return this.lastLogin;
- }
-
- public void setLastLogin(final Date lastLogin)
- {
- this.lastLogin = lastLogin;
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilderList.java b/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilderList.java
deleted file mode 100644
index e7da380b..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/masterbuilder/MasterBuilderList.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package me.totalfreedom.totalfreedommod.masterbuilder;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Maps;
-import java.util.Date;
-import java.util.Map;
-import java.util.Set;
-import lombok.Getter;
-import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.config.YamlConfig;
-import net.pravian.aero.util.Ips;
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.ServicePriority;
-
-public class MasterBuilderList extends FreedomService
-{
-
- public static final String CONFIG_FILENAME = "masterbuilders.yml";
-
- @Getter
- private final Map masterBuilders = Maps.newHashMap();
- private final Map nameTable = Maps.newHashMap();
- private final Map ipTable = Maps.newHashMap();
- //
- private final YamlConfig config;
-
- public MasterBuilderList(TotalFreedomMod plugin)
- {
- super(plugin);
-
- this.config = new YamlConfig(plugin, CONFIG_FILENAME, true);
- }
-
- @Override
- protected void onStart()
- {
- load();
-
- server.getServicesManager().register(Function.class, new Function()
- {
- @Override
- public Boolean apply(Player player)
- {
- return isMasterBuilder(player);
- }
- }, plugin, ServicePriority.Normal);
- }
-
- @Override
- protected void onStop()
- {
- save();
- }
-
- public void load()
- {
- config.load();
-
- masterBuilders.clear();
- for (String key : config.getKeys(false))
- {
- ConfigurationSection section = config.getConfigurationSection(key);
- if (section == null)
- {
- logger.warning("Invalid master builder list format: " + key);
- continue;
- }
-
- MasterBuilder masterBuilder = new MasterBuilder(key);
- masterBuilder.loadFrom(section);
-
- if (!masterBuilder.isValid())
- {
- FLog.warning("Could not load master builder: " + key + ". Missing details!");
- continue;
- }
-
- masterBuilders.put(key, masterBuilder);
- }
-
- updateTables();
- FLog.info("Loaded " + masterBuilders.size() + " master builders with " + ipTable.size() + " IPs");
- }
-
- public void save()
- {
- // Clear the config
- for (String key : config.getKeys(false))
- {
- config.set(key, null);
- }
-
- for (MasterBuilder masterBuilder : masterBuilders.values())
- {
- masterBuilder.saveTo(config.createSection(masterBuilder.getConfigKey()));
- }
-
- config.save();
- }
-
- public synchronized boolean isMasterbuilderSync(CommandSender sender)
- {
- return isMasterBuilder(sender);
- }
-
- public boolean isMasterBuilder(CommandSender sender)
- {
- if (!(sender instanceof Player))
- {
- return true;
- }
-
- MasterBuilder masterBuilder = getMasterBuilder((Player)sender);
-
- return masterBuilder != null;
- }
-
- public Map getAllMasterBuilders()
- {
- return this.masterBuilders;
- }
-
- public MasterBuilder getMasterBuilder(CommandSender sender)
- {
- if (sender instanceof Player)
- {
- return getMasterBuilder((Player)sender);
- }
-
- return getEntryByName(sender.getName());
- }
-
- public MasterBuilder getMasterBuilder(Player player)
- {
- String ip = Ips.getIp(player);
- MasterBuilder masterBuilder = getEntryByName(player.getName());
-
- // By name
- if (masterBuilder != null)
- {
- // Check if we're in online mode or if we have a matching IP
- if (server.getOnlineMode() || masterBuilder.getIps().contains(ip))
- {
- if (!masterBuilder.getIps().contains(ip))
- {
- // Add the new IP if needed
- masterBuilder.addIp(ip);
- save();
- updateTables();
- }
- return masterBuilder;
- }
- }
-
- // By ip
- masterBuilder = getEntryByIp(ip);
- if (masterBuilder != null)
- {
- // Set the new username
- masterBuilder.setName(player.getName());
- save();
- updateTables();
- }
-
- return null;
- }
-
- public MasterBuilder getEntryByName(String name)
- {
- return nameTable.get(name.toLowerCase());
- }
-
- public MasterBuilder getEntryByIp(String ip)
- {
- return ipTable.get(ip);
- }
-
- public MasterBuilder getEntryByIpFuzzy(String needleIp)
- {
- final MasterBuilder directMasterBuilder = getEntryByIp(needleIp);
- if (directMasterBuilder != null)
- {
- return directMasterBuilder;
- }
-
- for (String ip : ipTable.keySet())
- {
- if (FUtil.fuzzyIpMatch(needleIp, ip, 3))
- {
- return ipTable.get(ip);
- }
- }
-
- return null;
- }
-
- public void updateLastLogin(Player player)
- {
- final MasterBuilder masterBuilder = getMasterBuilder(player);
- if (masterBuilder == null)
- {
- return;
- }
-
- masterBuilder.setLastLogin(new Date());
- masterBuilder.setName(player.getName());
- save();
- }
-
- public boolean isMasterBuilderImpostor(Player player)
- {
- return getEntryByName(player.getName()) != null && !isMasterBuilder(player);
- }
-
- public boolean isIdentityMatched(Player player)
- {
- if (server.getOnlineMode())
- {
- return true;
- }
-
- MasterBuilder masterBuilder = getMasterBuilder(player);
- return masterBuilder != null && masterBuilder.getName().equalsIgnoreCase(player.getName());
- }
-
- public boolean addMasterBuilder(MasterBuilder masterBuilder)
- {
- if (!masterBuilder.isValid())
- {
- logger.warning("Could not add master builder: " + masterBuilder.getConfigKey() + " master builder is missing details!");
- return false;
- }
-
- final String key = masterBuilder.getConfigKey();
-
- // Store master builder, update views
- masterBuilders.put(key, masterBuilder);
- updateTables();
-
- // Save master builder
- masterBuilder.saveTo(config.createSection(key));
- config.save();
-
- return true;
- }
-
- public boolean removeMasterBuilder(MasterBuilder masterBuilder)
- {
- // Remove master builder, update views
- if (masterBuilders.remove(masterBuilder.getConfigKey()) == null)
- {
- return false;
- }
- updateTables();
-
- // 'Unsave' master builder
- config.set(masterBuilder.getConfigKey(), null);
- config.save();
-
- return true;
- }
-
- public void updateTables()
- {
- nameTable.clear();
- ipTable.clear();
-
- for (MasterBuilder masterBuilder : masterBuilders.values())
- {
- nameTable.put(masterBuilder.getName().toLowerCase(), masterBuilder);
-
- for (String ip : masterBuilder.getIps())
- {
- ipTable.put(ip, masterBuilder);
- }
-
- }
- }
-
- public Set getMasterBuilderNames()
- {
- return nameTable.keySet();
- }
-
- public Set getMasterBuilderIps()
- {
- return ipTable.keySet();
- }
-
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java
index 5b2b4607..fe421a3d 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java
@@ -106,7 +106,7 @@ public class PermissionManager extends FreedomService
}
}
- if (plugin.mbl.isMasterBuilder(player) && !plugin.al.isAdmin(player))
+ if (plugin.pl.getData(player).isMasterBuilder() && !plugin.al.isAdmin(player))
{
if (nodes != null)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java
index e2eb011d..29bc363a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java
@@ -1,59 +1,116 @@
package me.totalfreedom.totalfreedommod.player;
import com.google.common.collect.Lists;
+import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import lombok.Getter;
import lombok.Setter;
-import net.pravian.aero.base.ConfigLoadable;
-import net.pravian.aero.base.ConfigSavable;
-import net.pravian.aero.base.Validatable;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.ConfigurationSection;
+import me.totalfreedom.totalfreedommod.TotalFreedomMod;
+import me.totalfreedom.totalfreedommod.shop.ShopItem;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.entity.Player;
-public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable
+public class PlayerData
{
@Getter
@Setter
- private String username;
- @Getter
- @Setter
- private long firstJoinUnix;
- @Getter
- @Setter
- private long lastJoinUnix;
+ private String name;
private final List ips = Lists.newArrayList();
+ private final List notes = Lists.newArrayList();
+ @Getter
+ @Setter
+ private String tag = null;
+ @Getter
+ @Setter
+ private String discordID = null;
+ private final List backupCodes = Lists.newArrayList();
+ @Setter
+ private Boolean donator = false;
+ @Setter
+ private Boolean masterBuilder = false;
+ @Setter
+ private Boolean verification = false;
+ @Getter
+ @Setter
+ private String rideMode = "ask";
+ @Getter
+ @Setter
+ private int coins;
+ private List items = Lists.newArrayList();
+ @Getter
+ @Setter
+ private int totalVotes;
+
+ public PlayerData(ResultSet resultSet)
+ {
+ try
+ {
+ name = resultSet.getString("username");
+ ips.clear();
+ ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
+ notes.clear();
+ notes.addAll(FUtil.stringToList(resultSet.getString("notes")));
+ tag = resultSet.getString("tag");
+ discordID = resultSet.getString("discord_id");
+ backupCodes.clear();
+ backupCodes.addAll(FUtil.stringToList(resultSet.getString("backup_codes")));
+ donator = resultSet.getBoolean("donator");
+ masterBuilder = resultSet.getBoolean("master_builder");
+ verification = resultSet.getBoolean("verification");
+ rideMode = resultSet.getString("ride_mode");
+ coins = resultSet.getInt("coins");
+ items.clear();
+ items.addAll(FUtil.stringToList(resultSet.getString("items")));
+ totalVotes = resultSet.getInt("total_votes");
+ }
+ catch (SQLException e)
+ {
+ FLog.severe("Failed to load player: " + e.getMessage());
+ }
+
+ // Force verification for Master Builders
+ if (masterBuilder && !verification)
+ {
+ verification = true;
+ TotalFreedomMod.plugin().pl.save(this);
+ }
+ else if (!masterBuilder && discordID == null && verification)
+ {
+ this.verification = false;
+ TotalFreedomMod.plugin().pl.save(this);
+ }
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder output = new StringBuilder();
+
+ output.append("Player: ").append(name).append("\n")
+ .append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n")
+ .append("- Discord ID: ").append(discordID).append("\n")
+ .append("- Donator: ").append(donator).append("\n")
+ .append("- Master Builder: ").append(masterBuilder).append("\n")
+ .append("- Has Verification: ").append(verification).append("\n")
+ .append("- Coins: ").append(coins).append("\n")
+ .append("- Total Votes: ").append(totalVotes).append("\n")
+ .append("- Tag: ").append(tag).append("\n")
+ .append("- Ride Mode: ").append(rideMode)
+ .append("- Backup Codes: ").append(backupCodes.size()).append("/10").append("\n");
+
+ return output.toString();
+ }
public PlayerData(Player player)
{
- this(player.getName());
- }
-
- public PlayerData(String username)
- {
- this.username = username;
- }
-
- @Override
- public void loadFrom(ConfigurationSection cs)
- {
- this.username = cs.getString("username", username);
- this.ips.clear();
- this.ips.addAll(cs.getStringList("ips"));
- this.firstJoinUnix = cs.getLong("first_join", 0);
- this.lastJoinUnix = cs.getLong("last_join", 0);
- }
-
- @Override
- public void saveTo(ConfigurationSection cs)
- {
- Validate.isTrue(isValid(), "Could not save player entry: " + username + ". Entry not valid!");
- cs.set("username", username);
- cs.set("ips", ips);
- cs.set("first_join", firstJoinUnix);
- cs.set("last_join", lastJoinUnix);
+ this.name = player.getName();
}
public List getIps()
@@ -61,23 +118,127 @@ public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable
return Collections.unmodifiableList(ips);
}
- // IP utils
public boolean addIp(String ip)
{
- return ips.contains(ip) ? false : ips.add(ip);
+ return !ips.contains(ip) && ips.add(ip);
}
- public boolean removeIp(String ip)
+ public void removeIp(String ip)
{
- return ips.remove(ip);
+ ips.remove(ip);
}
- @Override
- public boolean isValid()
+ public void clearIps()
{
- return username != null
- && firstJoinUnix != 0
- && lastJoinUnix != 0
- && !ips.isEmpty();
+ ips.clear();
+ }
+
+ public void addIps(List ips)
+ {
+ ips.addAll(ips);
+ }
+
+ public List getNotes()
+ {
+ return Collections.unmodifiableList(notes);
+ }
+
+ public void clearNotes()
+ {
+ notes.clear();
+ }
+
+ public List getBackupCodes()
+ {
+ return Collections.unmodifiableList(backupCodes);
+ }
+
+ public void setBackupCodes(List codes)
+ {
+ backupCodes.clear();
+ backupCodes.addAll(codes);
+ }
+
+ public void removeBackupCode(String code)
+ {
+ backupCodes.remove(code);
+ }
+
+ public void addNote(String note)
+ {
+ notes.add(note);
+ }
+
+ public boolean removeNote(int id) throws IndexOutOfBoundsException
+ {
+ try
+ {
+ notes.remove(id);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public boolean isDonator()
+ {
+ return donator;
+ }
+
+ public void giveItem(ShopItem item)
+ {
+ items.add(item.getDataName());
+ }
+
+ public List getItems()
+ {
+ return Collections.unmodifiableList(items);
+ }
+
+ public boolean hasItem(ShopItem item)
+ {
+ if (items.contains(item.getDataName()))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ public void removeItem(ShopItem item)
+ {
+ items.remove(item.getDataName());
+ }
+
+ public boolean hasVerification()
+ {
+ return verification;
+ }
+
+ public boolean isMasterBuilder()
+ {
+ return masterBuilder;
+ }
+
+ public Map toSQLStorable()
+ {
+ Map map = new HashMap()
+ {{
+ put("username", name);
+ put("ips", FUtil.listToString(ips));
+ put("notes", FUtil.listToString(notes));
+ put("tag", tag);
+ put("discord_id", discordID);
+ put("backup_codes", FUtil.listToString(backupCodes));
+ put("donator", donator);
+ put("master_builder", masterBuilder);
+ put("verification", verification);
+ put("ride_mode", rideMode);
+ put("coins", coins);
+ put("items", FUtil.listToString(items));
+ put("total_votes", totalVotes);
+ }};
+ return map;
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java
index 9ee8b24a..80dff508 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java
@@ -1,69 +1,47 @@
package me.totalfreedom.totalfreedommod.player;
import com.google.common.collect.Maps;
-import java.io.File;
-import java.util.Collection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
import java.util.Map;
import lombok.Getter;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
+import me.totalfreedom.totalfreedommod.admin.Admin;
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import net.pravian.aero.config.YamlConfig;
import net.pravian.aero.util.Ips;
-import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerQuitEvent;
public class PlayerList extends FreedomService
{
- public static final long AUTO_PURGE_TICKS = 20L * 60L * 5L;
- //
@Getter
public final Map playerMap = Maps.newHashMap(); // ip,dataMap
+
@Getter
- public final Map dataMap = Maps.newHashMap(); // ip,dataMap
- @Getter
- private final File configFolder;
+ public final Map dataMap = Maps.newHashMap(); // username, data
public PlayerList(TotalFreedomMod plugin)
{
super(plugin);
-
- this.configFolder = new File(plugin.getDataFolder(), "players");
}
@Override
protected void onStart()
{
- playerMap.clear();
dataMap.clear();
-
- // Preload online players
- for (Player player : server.getOnlinePlayers())
- {
- getPlayer(player);
- }
+ loadMasterBuilders();
}
@Override
protected void onStop()
{
- save();
- }
-
- public void save()
- {
- for (PlayerData data : dataMap.values())
- {
- YamlConfig config = getConfig(data);
- data.saveTo(config);
- config.save();
- }
}
public FPlayer getPlayerSync(Player player)
@@ -74,6 +52,29 @@ public class PlayerList extends FreedomService
}
}
+ public void loadMasterBuilders()
+ {
+ ResultSet resultSet = plugin.sql.getMasterBuilders();
+
+ if (resultSet == null)
+ {
+ return;
+ }
+
+ try
+ {
+ while (resultSet.next())
+ {
+ PlayerData playerData = load(resultSet);
+ dataMap.put(playerData.getName(), playerData);
+ }
+ }
+ catch (SQLException e)
+ {
+ FLog.severe("Failed to parse master builders: " + e.getMessage());
+ }
+ }
+
public String getIp(OfflinePlayer player)
{
if (player.isOnline())
@@ -86,6 +87,44 @@ public class PlayerList extends FreedomService
return (entry == null ? null : entry.getIps().iterator().next());
}
+ public List getMasterBuilderNames()
+ {
+ List masterBuilders = new ArrayList<>();
+ for (PlayerData playerData : plugin.pl.dataMap.values())
+ {
+ if (playerData.isMasterBuilder())
+ {
+ masterBuilders.add(playerData.getName());
+ }
+ }
+ return masterBuilders;
+ }
+
+ public boolean canManageMasterBuilders(String name)
+ {
+ PlayerData data = getData(name);
+
+ if ((!ConfigEntry.HOST_SENDER_NAMES.getStringList().contains(name.toLowerCase()) && data != null && !ConfigEntry.SERVER_OWNERS.getStringList().contains(data.getName()))
+ && !ConfigEntry.SERVER_EXECUTIVES.getStringList().contains(data.getName())
+ && !isTelnetMasterBuilder(data)
+ && !ConfigEntry.HOST_SENDER_NAMES.getStringList().contains(name.toLowerCase()))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public boolean isTelnetMasterBuilder(PlayerData playerData)
+ {
+ Admin admin = plugin.al.getEntryByName(playerData.getName());
+ if (admin != null && admin.getRank().isAtLeast(Rank.TELNET_ADMIN) && playerData.isMasterBuilder())
+ {
+ return true;
+ }
+
+ return false;
+ }
+
// May not return null
public FPlayer getPlayer(Player player)
{
@@ -101,122 +140,191 @@ public class PlayerList extends FreedomService
return tPlayer;
}
- // May not return null
- public PlayerData getData(Player player)
+ public PlayerData loadByName(String name)
{
- // Check already loaded
- PlayerData data = dataMap.get(Ips.getIp(player));
- if (data != null)
- {
- return data;
- }
-
- // Load data
- data = getData(player.getName());
-
- // Create data if nonexistent
- if (data == null)
- {
- FLog.info("Creating new player data entry for " + player.getName());
-
- // Create new player
- final long unix = FUtil.getUnixTime();
- data = new PlayerData(player);
- data.setFirstJoinUnix(unix);
- data.setLastJoinUnix(unix);
- data.addIp(Ips.getIp(player));
-
- // Store player
- dataMap.put(player.getName().toLowerCase(), data);
-
- // Save player
- YamlConfig config = getConfig(data);
- data.saveTo(config);
- config.save();
- }
-
- return data;
+ return load(plugin.sql.getPlayerByName(name));
}
- // May return null
- public PlayerData getData(String username)
+ public PlayerData loadByIp(String ip)
{
- username = username.toLowerCase();
+ return load(plugin.sql.getPlayerByIp(ip));
+ }
- // Check if the player is a known player
- final File configFile = getConfigFile(username);
- if (!configFile.exists())
+ public PlayerData load(ResultSet resultSet)
+ {
+ if (resultSet == null)
{
return null;
}
+ return new PlayerData(resultSet);
+ }
- // Create and load entry
- final PlayerData data = new PlayerData(username);
- data.loadFrom(getConfig(data));
+ public Boolean isPlayerImpostor(Player player)
+ {
+ PlayerData playerData = getData(player);
+ return !plugin.al.isAdmin(player)
+ && (playerData.hasVerification())
+ && !playerData.getIps().contains(Ips.getIp(player));
+ }
- if (!data.isValid())
+ public boolean isImposter(Player player)
+ {
+ return isPlayerImpostor(player) || plugin.al.isAdminImpostor(player);
+ }
+
+ public void verify(Player player, String backupCode)
+ {
+ PlayerData playerData = getData(player);
+ if (backupCode != null)
{
- FLog.warning("Could not load player data entry: " + username + ". Entry is not valid!");
- configFile.delete();
- return null;
+ playerData.removeBackupCode(backupCode);
}
+ playerData.addIp(Ips.getIp(player));
+ save(playerData);
- // Only store data if the player is online
- for (String ip : data.getIps())
+ if (plugin.al.isAdminImpostor(player))
{
- for (Player onlinePlayer : Bukkit.getOnlinePlayers())
+ Admin admin = null;
+ for (Admin loopAdmin : plugin.al.getAllAdmins())
{
- if (Ips.getIp(onlinePlayer).equals(ip))
+ if (loopAdmin.getName().equalsIgnoreCase(player.getName()))
{
- dataMap.put(ip, data);
- return data;
+ admin = loopAdmin;
+ break;
+ }
+ }
+ admin.setLastLogin(new Date());
+ admin.addIp(Ips.getIp(player));
+ plugin.al.updateTables();
+ plugin.al.save(admin);
+ }
+
+ plugin.rm.updateDisplay(player);
+ }
+
+ public void syncIps(Admin admin)
+ {
+ PlayerData playerData = getData(admin.getName());
+ playerData.clearIps();
+ playerData.addIps(admin.getIps());
+ plugin.pl.save(playerData);
+ }
+ public void syncIps(PlayerData playerData)
+ {
+ Admin admin = plugin.al.getEntryByName(playerData.getName());
+
+ if (admin != null && admin.isActive())
+ {
+ admin.clearIPs();
+ admin.addIps(playerData.getIps());
+ plugin.al.updateTables();
+ plugin.al.save(admin);
+ }
+ }
+
+
+ public void save(PlayerData player)
+ {
+ try
+ {
+ ResultSet currentSave = plugin.sql.getPlayerByName(player.getName());
+ for (Map.Entry entry : player.toSQLStorable().entrySet())
+ {
+ Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
+ if (storedValue != null && !storedValue.equals(entry.getValue()) || storedValue == null && entry.getValue() != null)
+ {
+ plugin.sql.setPlayerValue(player, entry.getKey(), entry.getValue());
}
}
}
-
- return data;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onPlayerQuit(PlayerQuitEvent event)
- {
- final Player player = event.getPlayer();
- final String ip = Ips.getIp(player);
- playerMap.remove(ip);
- dataMap.remove(ip);
- }
-
- public Collection getLoadedPlayers()
- {
- return playerMap.values();
- }
-
- public Collection getLoadedData()
- {
- return dataMap.values();
- }
-
- public int purgeAllData()
- {
- int deleted = 0;
- for (File file : getConfigFolder().listFiles())
+ catch (SQLException e)
{
- deleted += file.delete() ? 1 : 0;
+ FLog.severe("Failed to save player: " + e.getMessage());
+ }
+ }
+
+ public PlayerData getData(Player player)
+ {
+ // Check for existing data
+ PlayerData playerData = dataMap.get(player.getName());
+ if (playerData != null)
+ {
+ return playerData;
}
- dataMap.clear();
- return deleted;
+ // Load data
+ playerData = loadByName(player.getName());
+
+ if (playerData == null)
+ {
+ playerData = loadByIp(Ips.getIp(player));
+ if (playerData != null)
+ {
+ plugin.sql.updatePlayerName(playerData.getName(),player.getName());
+ playerData.setName(player.getName());
+ dataMap.put(player.getName(), playerData);
+ return playerData;
+ }
+ }
+ else
+ {
+ dataMap.put(player.getName(), playerData);
+ return playerData;
+ }
+
+ // Create new data if nonexistent
+ if (playerData == null)
+ {
+ FLog.info("Creating new player verification entry for " + player.getName());
+
+ // Create new player
+ playerData = new PlayerData(player);
+ playerData.addIp(Ips.getIp(player));
+
+ // Store player
+ dataMap.put(player.getName(), playerData);
+
+ // Save player
+ plugin.sql.addPlayer(playerData);
+ return playerData;
+ }
+
+ return null;
}
- protected File getConfigFile(String name)
+ public PlayerData getData(String username)
{
- return new File(getConfigFolder(), name + ".yml");
+ // Check for existing data
+ PlayerData playerData = dataMap.get(username);
+ if (playerData != null)
+ {
+ return playerData;
+ }
+
+ playerData = loadByName(username);
+
+ if (playerData != null)
+ {
+ dataMap.put(username, playerData);
+ }
+ else
+ {
+ return null;
+ }
+
+ return playerData;
}
- protected YamlConfig getConfig(PlayerData data)
+ public PlayerData getDataByIp(String ip)
{
- final YamlConfig config = new YamlConfig(plugin, getConfigFile(data.getUsername().toLowerCase()), false);
- config.load();
- return config;
+ PlayerData player = loadByIp(ip);
+
+ if (player != null)
+ {
+ dataMap.put(player.getName(), player);
+ }
+
+ return player;
}
+
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/playerverification/PlayerVerification.java b/src/main/java/me/totalfreedom/totalfreedommod/playerverification/PlayerVerification.java
deleted file mode 100644
index 17e290fa..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/playerverification/PlayerVerification.java
+++ /dev/null
@@ -1,203 +0,0 @@
-package me.totalfreedom.totalfreedommod.playerverification;
-
-import com.google.common.collect.Maps;
-import java.io.File;
-import java.io.IOException;
-import java.util.Map;
-import lombok.Getter;
-import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import net.pravian.aero.config.YamlConfig;
-import net.pravian.aero.util.Ips;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerQuitEvent;
-
-public class PlayerVerification extends FreedomService
-{
-
- @Getter
- public final Map dataMap = Maps.newHashMap(); // username, data
- @Getter
- private final File configFolder;
-
- public PlayerVerification(TotalFreedomMod plugin)
- {
- super(plugin);
-
- this.configFolder = new File(plugin.getDataFolder(), "playerverification");
- }
-
- @Override
- protected void onStart()
- {
- dataMap.clear();
- }
-
- @Override
- protected void onStop()
- {
- save();
- }
-
- public Boolean isPlayerImpostor(Player player)
- {
- VPlayer vPlayer = getVerificationPlayer(player);
- return !plugin.al.isAdmin(player)
- && (vPlayer.getEnabled())
- && !vPlayer.getIps().contains(Ips.getIp(player));
- }
-
- public void verifyPlayer(Player player, String backupCode)
- {
- if (!isPlayerImpostor(player))
- {
- return;
- }
-
- VPlayer vPlayer = getVerificationPlayer(player);
- if (backupCode != null)
- {
- vPlayer.removeBackupCode(backupCode);
- }
- vPlayer.addIp(Ips.getIp(player));
- dataMap.put(player.getName(), vPlayer);
- YamlConfig config = getConfig(vPlayer);
- vPlayer.saveTo(config);
- config.save();
- }
-
- public void saveVerificationData(VPlayer player)
- {
- YamlConfig config = getConfig(player);
- player.saveTo(config);
- config.save();
- dataMap.put(player.getName(), player);
- }
-
- public void removeEntry(String name)
- {
- name = name.toLowerCase(); // Configuration files are saved in lowercase
- if (getVerificationPlayer(name) != null)
- {
- getConfigFile(name).delete();
- dataMap.remove(name);
- }
- }
-
- public void save()
- {
- for (VPlayer vPlayer : dataMap.values())
- {
- YamlConfig config = getConfig(vPlayer);
- vPlayer.saveTo(config);
- config.save();
- }
- }
-
- // May not return null
- public VPlayer getVerificationPlayer(Player player)
- {
- // Check for existing data
- VPlayer vPlayer = dataMap.get(player.getName());
- if (vPlayer != null)
- {
- return vPlayer;
- }
-
- // Load data
- vPlayer = getVerificationPlayer(player.getName());
-
- // Create new data if nonexistent
- if (vPlayer == null)
- {
- FLog.info("Creating new player verification entry for " + player.getName());
-
- // Create new player
- vPlayer = new VPlayer(player);
- vPlayer.addIp(Ips.getIp(player));
-
- // Store player
- dataMap.put(player.getName(), vPlayer);
-
- // Save player
- YamlConfig config = getConfig(vPlayer);
- vPlayer.saveTo(config);
- config.save();
- }
-
- return vPlayer;
- }
-
- // May return null
- public VPlayer getVerificationPlayer(String username)
- {
- username = username.toLowerCase();
-
- final File configFile = getConfigFile(username);
- if (!configFile.exists())
- {
- return null;
- }
-
- final VPlayer vPlayer = new VPlayer(username);
- vPlayer.loadFrom(getConfig(vPlayer));
-
- if (!vPlayer.isValid())
- {
- FLog.warning("Could not load player verification entry for " + username + ". Entry is not valid!");
- configFile.delete();
- return null;
- }
-
- // Only store data in map if the player is online
- for (Player players : Bukkit.getOnlinePlayers())
- {
- if (players.getName().equals(username))
- {
- dataMap.put(username, vPlayer);
- return vPlayer;
- }
- }
-
- return vPlayer;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onPlayerQuit(PlayerQuitEvent event)
- {
- dataMap.remove(event.getPlayer().getName());
- }
-
- protected File getConfigFile(String name)
- {
- return new File(getConfigFolder(), name + ".yml");
- }
-
- protected YamlConfig getConfig(VPlayer player)
- {
- final YamlConfig config = new YamlConfig(plugin, getConfigFile(player.getName().toLowerCase()), false);
- config.load();
-
- // Convert discordEnabled to enabled, and remove forumEnabled.
- if (config.get("discordEnabled") != null)
- {
- config.set("enabled", config.getBoolean("discordEnabled"));
- config.set("discordEnabled", null);
- config.set("forumEnabled", null);
- try
- {
- config.save(getConfigFile(player.getName().toLowerCase()));
- }
- catch (IOException e)
- {
- FLog.warning("Failed to convert player verification entry for " + player.getName());
- }
- }
-
- return config;
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/playerverification/VPlayer.java b/src/main/java/me/totalfreedom/totalfreedommod/playerverification/VPlayer.java
deleted file mode 100644
index 4f1d5535..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/playerverification/VPlayer.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package me.totalfreedom.totalfreedommod.playerverification;
-
-import com.google.common.collect.Lists;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import lombok.Getter;
-import lombok.Setter;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import net.pravian.aero.base.ConfigLoadable;
-import net.pravian.aero.base.ConfigSavable;
-import net.pravian.aero.base.Validatable;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.entity.Player;
-
-public class VPlayer implements ConfigLoadable, ConfigSavable, Validatable
-{
-
- private final List ips = Lists.newArrayList();
- private final List