Fixed updater and some other older changes

This commit is contained in:
Norbi Peti 2016-08-22 14:29:34 +02:00
parent a00ca2611e
commit 994af42e54
6 changed files with 67 additions and 147 deletions

View file

@ -1,4 +1,4 @@
name: TheButtonMCChatPlugin
name: ButtonChat
main: buttondevteam.thebuttonmcchat.PluginMain
version: 4.0
commands:

View file

@ -1,17 +1,17 @@
package buttondevteam.thebuttonmcchat;
import java.io.Serializable;
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;
public class ChatPlayer implements Serializable {
private static final long serialVersionUID = 208589136914849018L;
public String PlayerName;
import buttondevteam.core.TBMCPlayer;
public class ChatPlayer extends TBMCPlayer {
public String UserName;
public List<String> UserNames;
private short FlairTime;
@ -34,12 +34,11 @@ public class ChatPlayer implements Serializable {
public static final short FlairTimeCantPress = -2;
public static final short FlairTimeNone = -3;
public UUID UUID;
public static HashMap<UUID, ChatPlayer> OnlinePlayers = new HashMap<>();
@SuppressWarnings("deprecation")
public static ChatPlayer GetFromName(String name) {
Player p = Bukkit.getPlayer(name); // TODO
OfflinePlayer p = Bukkit.getOfflinePlayer(name);
if (p != null)
return OnlinePlayers.get(p.getUniqueId());
else

View file

@ -189,9 +189,6 @@ public class ChatProcessing {
"%s{\"text\":\"[%s]%s\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Copy message\",\"color\":\"blue\"}},\"clickEvent\":{\"action\":\"suggest_command\",\"value\":\"%s\"}},",
(mp != null && mp.ChatOnly
? "{\"text\":\"[C]\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Chat only\",\"color\":\"blue\"}]}}},"
// (mp != null && mp.ChatOnly ?
// "{\"text:\":\"\"}," - I have been staring at
// this one line for hours... Hours...
: ""),
currentchannel.DisplayName, (mp != null && !mp.RPMode ? "[OOC]" : ""), suggestmsg));
json.append("{\"text\":\" <\"},");

View file

@ -1,7 +1,5 @@
package buttondevteam.thebuttonmcchat;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;
@ -16,7 +14,6 @@ import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -70,10 +67,30 @@ public class PlayerListener implements Listener {
public void onPlayerJoin(PlayerJoinEvent event) {
if (essentials == null)
essentials = ((Essentials) Bukkit.getPluginManager().getPlugin("Essentials"));
final Player p = event.getPlayer();
ChatPlayer mp = ChatPlayer.GetFromPlayer(p);
if (!mp.FlairState.equals(FlairStates.NoComment)) {
PluginMain.ConfirmUserMessage(mp);
}
@EventHandler
public void onPlayerLoad(TBMCPlayerLoadEvent e) {
YamlConfiguration yc = e.GetPlayerConfig();
ChatPlayer cp = e.GetPlayer().AsPluginPlayer(ChatPlayer.class);
cp.UserName = yc.getString("username");
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);
Player p = Bukkit.getPlayer(cp.UUID);
if (!cp.FlairState.equals(FlairStates.NoComment)) {
PluginMain.ConfirmUserMessage(cp);
Timer timer = new Timer();
PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
@Override
@ -81,11 +98,11 @@ public class PlayerListener implements Listener {
p.setPlayerListName(p.getName() + mp.GetFormattedFlair());
}
};
tt.mp = mp;
tt.mp = cp;
timer.schedule(tt, 1000);
} else {
if (mp.GetFlairTime() == 0x00)
mp.SetFlair(ChatPlayer.FlairTimeNone);
if (cp.GetFlairTime() == 0x00)
cp.SetFlair(ChatPlayer.FlairTimeNone);
Timer timer = new Timer();
PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
@Override
@ -94,17 +111,7 @@ public class PlayerListener implements Listener {
if (player == null)
return;
/*
* PlayerProfile pp = ((FastLoginBukkit) FastLoginBukkit
* .getPlugin(FastLoginBukkit.class)).getStorage()
* .getProfile(player.getName(), true); boolean ispremium =
* pp != null && pp.isPremium();
*/// Login stuff
if (/*
* ispremium &&
*/// Login stuff
mp.FlairState.equals(FlairStates.NoComment)) {
if (mp.FlairState.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);
@ -116,113 +123,22 @@ public class PlayerListener implements Listener {
}
}
};
tt.mp = mp;
;
tt.mp = cp;
timer.schedule(tt, 15 * 1000);
}
/*
* final Timer timer = new Timer(); mp.LoginWarningCount = 0;
* PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
*
* @Override public void run() { final Player player =
* Bukkit.getPlayer(mp.PlayerName); if (player == null) return;
*
* PlayerProfile pp = ((FastLoginBukkit) FastLoginBukkit
* .getPlugin(FastLoginBukkit.class)).getStorage()
* .getProfile(player.getName(), true); boolean ispremium = pp != null
* && pp.isPremium(); final MaybeOfflinePlayer mplayer = mp;
*
* if (mp.LoginWarningCount < LoginWarningCountTotal) { if
* (AuthMe.getInstance().api.isAuthenticated(player)) { // The player
* logged in in any way if (!ispremium &&
* !mp.FlairState.equals(FlairStates.Accepted) &&
* !mp.FlairState.equals(FlairStates.Commented)) { // The player isn't
* premium, and doesn't have a // flair String json = String .format(
* "[\"\",{\"text\":\"Welcome! If you are a premium Minecraft user, please do /premium and relog, otherwise please verify your /r/thebutton flair to play, \",\"color\":\"gold\"},{\"text\":\"[here].\",\"color\":\"gold\",\"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); } } } else { if
* (AuthMe.getInstance().api.isAuthenticated(player)) { if (!ispremium
* && !mplayer.FlairState .equals(FlairStates.Accepted) &&
* !mplayer.FlairState .equals(FlairStates.Commented)) {
* Bukkit.getScheduler().runTask(PluginMain.Instance, new Runnable() {
*
* @Override public void run() { player.kickPlayer(
* "Please either use /premium and relog or verify your flair by commenting in the thread and using /u accept."
* ); } }); timer.cancel(); } } } mp.LoginWarningCount++; } }; tt.mp =
* mp; int timeout = AuthMe.getInstance().getConfig()
* .getInt("settings.restrictions.timeout"); timer.schedule(tt, (timeout
* / LoginWarningCountTotal) * 1000, (timeout / LoginWarningCountTotal)
* * 1000);
*/// Login stuff
nicknames.put(essentials.getUser(p).getNickname(), p.getUniqueId());
/* NICKNAME LOGIC */
cp.RPMode = true;
UUID id = p.getUniqueId();
cp.FlairUpdate(); // Update display
File f = new File("plugins/Essentials/userdata/" + id + ".yml");
if (f.exists()) {
YamlConfiguration yc = new YamlConfiguration();
try {
yc.load(f);
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
String nickname = yc.getString("nickname");
if (nickname != null) {
nicknames.put(nickname, id);
if (Enable) {
if (!p.getName().equals("NorbiPeti")) {
for (Player player : PluginMain.GetPlayers()) {
if (player.getName().equals("NorbiPeti")) {
player.chat("Hey, " + nickname + "!");
break;
}
}
}
}
}
}
mp.RPMode = true;
mp.FlairUpdate(); // Update display
if (mp.ChatOnly || p.getGameMode().equals(GameMode.SPECTATOR)) {
mp.ChatOnly = false;
if (cp.ChatOnly || p.getGameMode().equals(GameMode.SPECTATOR)) {
cp.ChatOnly = false;
p.setGameMode(GameMode.SURVIVAL);
}
}
@EventHandler
public void onPlayerLoad(TBMCPlayerLoadEvent e) {
YamlConfiguration yc = e.GetPlayerConfig();
ChatPlayer cp = new ChatPlayer();
cp.UUID = UUID.fromString(yc.getString("uuid"));
cp.UserName = yc.getString("username");
String tcp = yc.getString("flairtime");
if (tcp.equals("--"))
cp.SetFlair(ChatPlayer.FlairTimeNonPresser);
else if (tcp.equals("??"))
cp.SetFlair(ChatPlayer.FlairTimeCantPress);
else if (tcp.length() > 0)
cp.SetFlair(Short.parseShort(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);
}
@EventHandler
public void onPlayerSave(TBMCPlayerSaveEvent e) {
YamlConfiguration yc = e.GetPlayerConfig();
@ -230,7 +146,6 @@ public class PlayerListener implements Listener {
yc.set("username", cp.UserName);
yc.set("flairtime", cp.GetFlairTime());
yc.set("flairstate", cp.FlairState.toString());
yc.set("uuid", cp.UUID.toString());
yc.set("usernames", cp.UserNames);
yc.set("fcount", cp.FCount);
yc.set("fdeaths", cp.FDeaths);
@ -238,15 +153,15 @@ public class PlayerListener implements Listener {
}
@EventHandler
public void onPlayerAdd(TBMCPlayerAddEvent e) {
TBMCPlayer p = e.GetPlayer();
ChatPlayer player = new ChatPlayer();
player.UUID = p.UUID;
player.SetFlair(ChatPlayer.FlairTimeNone);
player.FlairState = FlairStates.NoComment; // TODO: NullPointerException
player.UserNames = new ArrayList<>(); // TODO: Move some code here from
// join?
ChatPlayer.OnlinePlayers.put(p.UUID, player);
public void onPlayerAdd(TBMCPlayerAddEvent event) {
TBMCPlayer tp = event.GetPlayer();
ChatPlayer cp = new ChatPlayer();
cp.UUID = tp.UUID;
cp.SetFlair(ChatPlayer.FlairTimeNone);
cp.FlairState = FlairStates.NoComment; // TODO: NullPointerException
cp.UserNames = new ArrayList<>(); // TODO: Move some code here from
// join?
ChatPlayer.OnlinePlayers.put(cp.UUID, cp);
}
@EventHandler

View file

@ -55,6 +55,7 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
// Fired when plugin is first enabled
@Override
public void onEnable() {
Instance = this;
try {
PluginMain.Instance.getLogger().info("Extracting necessary libraries...");
final File[] libs = new File[] { new File(getDataFolder(), "htmlcleaner-2.16.jar"),
@ -79,7 +80,6 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
CommandCaller.RegisterChatCommands(this);
Instance = this;
Console = this.getServer().getConsoleSender();
LoadFiles(false);

View file

@ -24,17 +24,26 @@ public class UpdatePlugin extends AdminCommandBase {
@Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
if (args.length == 0) {
sender.sendMessage("§6---- Plugin names ----");
sender.sendMessage("Downloading plugin names...");
boolean first = true;
for (String plugin : TBMCCoreAPI.GetPluginNames()) {
if (first) {
sender.sendMessage("§6---- Plugin names ----");
first = false;
}
sender.sendMessage("- " + plugin);
}
}
sender.sendMessage("Updating plugin...");
String ret = "";
if ((ret = TBMCCoreAPI.UpdatePlugin(args[0])).length() > 0)
return true;
} else {
sender.sendMessage("Updating plugin...");
String ret = "";
if ((ret = TBMCCoreAPI.UpdatePlugin(args[0])).length() > 0) {
sender.sendMessage("Internal error: " + ret);
return true;
}
sender.sendMessage("Updating done!");
return true;
return true;
}
}
@Override