New player data handling added (WIP)
This commit is contained in:
parent
caa63f7912
commit
c810053558
6 changed files with 110 additions and 111 deletions
|
@ -1,78 +1,104 @@
|
|||
package buttondevteam.chat;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import buttondevteam.chat.formatting.ChatFormatter;
|
||||
import buttondevteam.lib.TBMCPlayer;
|
||||
|
||||
public class ChatPlayer extends TBMCPlayer {
|
||||
public String UserName;
|
||||
public List<String> UserNames;
|
||||
private short FlairTime;
|
||||
public FlairStates FlairState;
|
||||
public String getUserName() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
public void setUserName(String name) {
|
||||
setData(name);
|
||||
}
|
||||
|
||||
public List<String> getUserNames() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
public void setUserNames(List<String> names) {
|
||||
setData(names);
|
||||
}
|
||||
|
||||
public short getFlairTime() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
private void setFlairTime(short time) {
|
||||
setData(time);
|
||||
}
|
||||
|
||||
public FlairStates getFlairState() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
public void setFlairState(FlairStates state) {
|
||||
setData(state);
|
||||
}
|
||||
|
||||
public int getFCount() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
public void setFCount(int count) {
|
||||
setData(count);
|
||||
}
|
||||
|
||||
public int getFDeaths() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
public void setFDeaths(int count) {
|
||||
setData(count);
|
||||
}
|
||||
|
||||
public boolean getFlairCheater() {
|
||||
return getData();
|
||||
}
|
||||
|
||||
private void setFlairCheater(boolean cheater) {
|
||||
setData(cheater);
|
||||
}
|
||||
|
||||
public boolean RPMode = true;
|
||||
public boolean PressedF;
|
||||
public Location SavedLocation;
|
||||
public boolean Working;
|
||||
// public int Tables = 10;
|
||||
public Channel CurrentChannel = Channel.GlobalChat;
|
||||
public int FCount;
|
||||
public boolean SendingLink = false;
|
||||
public int FDeaths;
|
||||
public boolean RainbowPresserColorMode = false;
|
||||
public ChatFormatter.Color OtherColorMode = null;
|
||||
public boolean ChatOnly = false;
|
||||
public boolean FlairCheater = false;
|
||||
public int LoginWarningCount = 0;
|
||||
|
||||
public static final short FlairTimeNonPresser = -1;
|
||||
public static final short FlairTimeCantPress = -2;
|
||||
public static final short FlairTimeNone = -3;
|
||||
|
||||
public static HashMap<UUID, ChatPlayer> OnlinePlayers = new HashMap<>();
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static ChatPlayer GetFromName(String name) {
|
||||
OfflinePlayer p = Bukkit.getOfflinePlayer(name);
|
||||
if (p != null) {
|
||||
if (!ChatPlayer.OnlinePlayers.containsKey(p.getUniqueId())) {
|
||||
TBMCPlayer player = TBMCPlayer.LoadPlayer(p);
|
||||
if (player == null) {
|
||||
Bukkit.getServer().getLogger()
|
||||
.warning("Can't load player " + p.getUniqueId() + " - " + p.getName());
|
||||
return null;
|
||||
}
|
||||
return ChatPlayer.OnlinePlayers.get(player.UUID);
|
||||
}
|
||||
return ChatPlayer.OnlinePlayers.get(p.getUniqueId());
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public String GetFormattedFlair() {
|
||||
if (FlairTime == FlairTimeCantPress)
|
||||
if (getFlairTime() == FlairTimeCantPress)
|
||||
return String.format("§r(--s)§r");
|
||||
if (FlairTime == FlairTimeNonPresser)
|
||||
if (getFlairTime() == FlairTimeNonPresser)
|
||||
return String.format("§7(--s)§r");
|
||||
if (FlairTime == FlairTimeNone)
|
||||
if (getFlairTime() == FlairTimeNone)
|
||||
return "";
|
||||
return String.format("§%x(%ss)§r", GetFlairColor(), FlairTime);
|
||||
return String.format("§%x(%ss)§r", GetFlairColor(), getFlairTime());
|
||||
}
|
||||
|
||||
public void SetFlair(short time) {
|
||||
FlairTime = time;
|
||||
setFlairTime(time);
|
||||
FlairUpdate();
|
||||
}
|
||||
|
||||
public void SetFlair(short time, boolean cheater) {
|
||||
FlairTime = time;
|
||||
FlairCheater = cheater;
|
||||
setFlairTime(time);
|
||||
setFlairCheater(cheater);
|
||||
FlairUpdate();
|
||||
}
|
||||
|
||||
|
@ -80,38 +106,30 @@ public class ChatPlayer extends TBMCPlayer {
|
|||
|
||||
// Flairs from Command Block The Button - Teams
|
||||
// PluginMain.Instance.getServer().getScoreboardManager().getMainScoreboard().getTeams().add()
|
||||
Player p = Bukkit.getPlayer(UUID);
|
||||
Player p = Bukkit.getPlayer(getUuid());
|
||||
if (p != null)
|
||||
p.setPlayerListName(String.format("%s%s", p.getName(), GetFormattedFlair()));
|
||||
}
|
||||
|
||||
public short GetFlairColor() {
|
||||
if (FlairCheater)
|
||||
if (getFlairCheater())
|
||||
return 0x5;
|
||||
if (FlairTime == -1)
|
||||
if (getFlairTime() == -1)
|
||||
return 0x7;
|
||||
else if (FlairTime == -2)
|
||||
else if (getFlairTime() == -2)
|
||||
return 0xf;
|
||||
else if (FlairTime <= 60 && FlairTime >= 52)
|
||||
else if (getFlairTime() <= 60 && getFlairTime() >= 52)
|
||||
return 0x5;
|
||||
else if (FlairTime <= 51 && FlairTime >= 42)
|
||||
else if (getFlairTime() <= 51 && getFlairTime() >= 42)
|
||||
return 0x9;
|
||||
else if (FlairTime <= 41 && FlairTime >= 32)
|
||||
else if (getFlairTime() <= 41 && getFlairTime() >= 32)
|
||||
return 0xa;
|
||||
else if (FlairTime <= 31 && FlairTime >= 22)
|
||||
else if (getFlairTime() <= 31 && getFlairTime() >= 22)
|
||||
return 0xe;
|
||||
else if (FlairTime <= 21 && FlairTime >= 11)
|
||||
else if (getFlairTime() <= 21 && getFlairTime() >= 11)
|
||||
return 0x6;
|
||||
else if (FlairTime <= 11 && FlairTime >= 0)
|
||||
else if (getFlairTime() <= 11 && getFlairTime() >= 0)
|
||||
return 0xc;
|
||||
return 0xf;
|
||||
}
|
||||
|
||||
public short GetFlairTime() {
|
||||
return FlairTime;
|
||||
}
|
||||
|
||||
public static ChatPlayer GetFromPlayer(Player p) {
|
||||
return ChatPlayer.OnlinePlayers.get(p.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import buttondevteam.chat.formatting.TellrawEvent;
|
|||
import buttondevteam.chat.formatting.TellrawPart;
|
||||
import buttondevteam.chat.formatting.TellrawSerializableEnum;
|
||||
import buttondevteam.chat.formatting.TellrawSerializer;
|
||||
import buttondevteam.lib.TBMCPlayer;
|
||||
import buttondevteam.chat.formatting.ChatFormatter.Color;
|
||||
import buttondevteam.chat.formatting.ChatFormatter.Priority;
|
||||
|
||||
|
@ -55,13 +56,13 @@ public class ChatProcessing {
|
|||
|
||||
ChatPlayer mp = null;
|
||||
if (player != null) {
|
||||
mp = ChatPlayer.OnlinePlayers.get(player.getUniqueId());
|
||||
mp = TBMCPlayer.getPlayer(player).asPluginPlayer(ChatPlayer.class);
|
||||
if (message.equalsIgnoreCase("F")) {
|
||||
if (!mp.PressedF && PlayerListener.ActiveF) {
|
||||
PlayerListener.FCount++;
|
||||
mp.PressedF = true;
|
||||
if (PlayerListener.FPlayer != null && PlayerListener.FPlayer.FCount < Integer.MAX_VALUE - 1)
|
||||
PlayerListener.FPlayer.FCount++;
|
||||
if (PlayerListener.FPlayer != null && PlayerListener.FPlayer.getFCount() < Integer.MAX_VALUE - 1)
|
||||
PlayerListener.FPlayer.setFCount(PlayerListener.FPlayer.getFCount() + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +133,7 @@ public class ChatProcessing {
|
|||
.warning("Error: Can't find player " + match + " but was reported as online.");
|
||||
return "§c" + match + "§r";
|
||||
}
|
||||
ChatPlayer mpp = ChatPlayer.GetFromPlayer(p);
|
||||
ChatPlayer mpp = TBMCPlayer.getPlayer(p).asPluginPlayer(ChatPlayer.class);
|
||||
if (PlayerListener.NotificationSound == null)
|
||||
p.playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1.0f, 0.5f); // TODO: Airhorn
|
||||
else
|
||||
|
@ -212,18 +213,21 @@ public class ChatProcessing {
|
|||
.addExtra(new TellrawPart(String.format("World: %s\n",
|
||||
(player != null ? player.getWorld().getName()
|
||||
: "-"))))
|
||||
.addExtra(new TellrawPart(String.format(
|
||||
"Respect: %s%s%s",
|
||||
(mp != null ? (mp.FCount / (double) mp.FDeaths)
|
||||
: "Infinite"),
|
||||
(mp != null && mp.UserName != null
|
||||
&& !mp.UserName.isEmpty()
|
||||
? "\nUserName: " + mp.UserName
|
||||
: ""),
|
||||
(mp != null && mp.PlayerName.equals(
|
||||
"\nAlpha_Bacca44") ? "\nDeaths: "
|
||||
+ PlayerListener.AlphaDeaths
|
||||
: "")))))));
|
||||
.addExtra(
|
||||
new TellrawPart(String.format("Respect: %s%s%s",
|
||||
(mp != null ? (mp.getFCount()
|
||||
/ (double) mp.getFDeaths())
|
||||
: "Infinite"),
|
||||
(mp != null && mp.getUserName() != null
|
||||
&& !mp.getUserName().isEmpty()
|
||||
? "\nUserName: "
|
||||
+ mp.getUserName()
|
||||
: ""),
|
||||
(mp != null && mp.getPlayerName()
|
||||
.equals("\nAlpha_Bacca44")
|
||||
? "\nDeaths: "
|
||||
+ PlayerListener.AlphaDeaths
|
||||
: "")))))));
|
||||
json.addExtra(new TellrawPart("> "));
|
||||
long combinetime = System.nanoTime();
|
||||
ChatFormatter.Combine(formatters, formattedmessage, json);
|
||||
|
|
|
@ -69,30 +69,19 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerLoad(TBMCPlayerLoadEvent e) {
|
||||
YamlConfiguration yc = e.GetPlayerConfig();
|
||||
ChatPlayer cp = e.GetPlayer().AsPluginPlayer(ChatPlayer.class);
|
||||
cp.UserName = yc.getString("username");
|
||||
ChatPlayer cp = e.GetPlayer().asPluginPlayer(ChatPlayer.class);
|
||||
short tcp = (short) yc.getInt("flairtime");
|
||||
cp.SetFlair(tcp);
|
||||
String flairstate = yc.getString("flairstate");
|
||||
if (flairstate != null)
|
||||
cp.FlairState = FlairStates.valueOf(flairstate);
|
||||
else
|
||||
cp.FlairState = FlairStates.NoComment;
|
||||
cp.UserNames = yc.getStringList("usernames");
|
||||
cp.FCount = yc.getInt("fcount");
|
||||
cp.FDeaths = yc.getInt("fdeaths");
|
||||
cp.FlairCheater = yc.getBoolean("flaircheater");
|
||||
ChatPlayer.OnlinePlayers.put(cp.UUID, cp);
|
||||
cp.FlairUpdate();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerTBMCJoin(TBMCPlayerJoinEvent e) {
|
||||
if (essentials == null)
|
||||
essentials = ((Essentials) Bukkit.getPluginManager().getPlugin("Essentials"));
|
||||
ChatPlayer cp = ChatPlayer.OnlinePlayers.get(e.GetPlayer().UUID);
|
||||
Player p = Bukkit.getPlayer(cp.UUID);
|
||||
ChatPlayer cp = e.GetPlayer().asPluginPlayer(ChatPlayer.class);
|
||||
Player p = Bukkit.getPlayer(cp.getUuid());
|
||||
|
||||
if (!cp.FlairState.equals(FlairStates.NoComment)) {
|
||||
if (!cp.getFlairState().equals(FlairStates.NoComment)) {
|
||||
PluginMain.ConfirmUserMessage(cp);
|
||||
Timer timer = new Timer();
|
||||
PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
|
||||
|
@ -104,26 +93,26 @@ public class PlayerListener implements Listener {
|
|||
tt.mp = cp;
|
||||
timer.schedule(tt, 1000);
|
||||
} else {
|
||||
if (cp.GetFlairTime() == 0x00)
|
||||
if (cp.getFlairTime() == 0x00)
|
||||
cp.SetFlair(ChatPlayer.FlairTimeNone);
|
||||
Timer timer = new Timer();
|
||||
PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = Bukkit.getPlayer(mp.PlayerName);
|
||||
Player player = Bukkit.getPlayer(mp.getPlayerName());
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
if (mp.FlairState.equals(FlairStates.NoComment)) {
|
||||
if (mp.getFlairState().equals(FlairStates.NoComment)) {
|
||||
String json = String.format(
|
||||
"[\"\",{\"text\":\"If you're from Reddit and you'd like your /r/TheButton flair displayed ingame, write your Minecraft name to \",\"color\":\"aqua\"},{\"text\":\"[this thread].\",\"color\":\"aqua\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"%s\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread\",\"color\":\"aqua\"}]}}}]",
|
||||
PluginMain.FlairThreadURL);
|
||||
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
|
||||
"tellraw " + mp.PlayerName + " " + json);
|
||||
"tellraw " + mp.getPlayerName() + " " + json);
|
||||
json = "[\"\",{\"text\":\"If you aren't from Reddit or don't want the flair, type /u ignore to prevent this message after next login.\",\"color\":\"aqua\"}]";
|
||||
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
|
||||
"tellraw " + mp.PlayerName + " " + json);
|
||||
"tellraw " + mp.getPlayerName() + " " + json);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -154,26 +143,14 @@ public class PlayerListener implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onPlayerSave(TBMCPlayerSaveEvent e) {
|
||||
YamlConfiguration yc = e.GetPlayerConfig();
|
||||
ChatPlayer cp = ChatPlayer.OnlinePlayers.get(e.GetPlayer().UUID);
|
||||
yc.set("username", cp.UserName);
|
||||
yc.set("flairtime", cp.GetFlairTime());
|
||||
yc.set("flairstate", cp.FlairState.toString());
|
||||
yc.set("usernames", cp.UserNames);
|
||||
yc.set("fcount", cp.FCount);
|
||||
yc.set("fdeaths", cp.FDeaths);
|
||||
yc.set("flaircheater", cp.FlairCheater);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerAdd(TBMCPlayerAddEvent event) {
|
||||
TBMCPlayer tp = event.GetPlayer();
|
||||
ChatPlayer cp = new ChatPlayer();
|
||||
cp.UUID = tp.UUID;
|
||||
ChatPlayer cp = event.GetPlayer().asPluginPlayer(ChatPlayer.class);
|
||||
cp.SetFlair(ChatPlayer.FlairTimeNone);
|
||||
cp.FlairState = FlairStates.NoComment;
|
||||
cp.UserNames = new ArrayList<>();
|
||||
ChatPlayer.OnlinePlayers.put(cp.UUID, cp);
|
||||
cp.setFlairState(FlairStates.NoComment);
|
||||
cp.setUserNames(new ArrayList<>());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -138,7 +138,7 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
|
|||
ign = ign.trim();
|
||||
if (PlayersWithFlairs.contains(ign))
|
||||
continue;
|
||||
ChatPlayer mp = ChatPlayer.GetFromName(ign); // Loads player file
|
||||
ChatPlayer mp = ChatPlayer.getFromName(ign); // Loads player file
|
||||
if (mp == null)
|
||||
continue;
|
||||
/*
|
||||
|
|
|
@ -19,7 +19,7 @@ public class NameCommand extends UCommandBase {
|
|||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
ChatPlayer mp = ChatPlayer.GetFromName(args[0]);
|
||||
ChatPlayer mp = ChatPlayer.getFromName(args[0]);
|
||||
if (mp == null) {
|
||||
sender.sendMessage("§cUnknown user: "
|
||||
+ args[0]);
|
||||
|
|
|
@ -18,7 +18,7 @@ public class PlayerInfoCommand extends AdminCommandBase {
|
|||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
ChatPlayer p = ChatPlayer.GetFromName(args[0]);
|
||||
ChatPlayer p = ChatPlayer.getFromName(args[0]);
|
||||
if (p == null) {
|
||||
sender.sendMessage("§cPlayer not found: " + args[0] + "§r");
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue