Compare commits

..
38 Commits
Author SHA1 Message Date
Ben12345rocks 826d353bfd Update version number 2020-06-25 19:26:22 -04:00
Ben12345rocks 2891607947 Update to 1.16.1 2020-06-24 21:15:05 -04:00
Ben12345rocks b7a4955766 Separate bungee debug 2020-06-20 08:42:42 -04:00
Ben12345rocks d1f7c78bbe Bug fix 2020-06-20 08:05:34 -04:00
Ben12345rocks 289980aa41 Improve debugging for sockets 2020-06-19 16:39:32 -04:00
Ben12345rocks 217d1b60a3 Bug fix 2020-06-14 12:12:09 -04:00
Ben12345rocks fce1b38a24 Bug fix 2020-06-11 16:45:32 -04:00
Ben12345rocks 6538465add Maven updates 2020-06-07 17:13:17 -04:00
Ben12345rocks a70b9e46a8 Change default color codes for /vote 2020-06-06 18:17:03 -04:00
Ben12345rocks 22d7c75261 Add bungee help command 2020-06-05 19:24:56 -04:00
Ben12345rocks 1cdf7a1033 Bug fix 2020-06-03 16:21:47 -04:00
Ben12345rocks 27afaf8e1b Add bungee status command 2020-06-01 19:35:14 -04:00
Ben12345rocks 019699ae75 Bug fix 2020-06-01 18:58:19 -04:00
Ben12345rocks 745df69024 Add a status command for bungee voting 2020-06-01 17:38:35 -04:00
Ben12345rocks 6e84130261 Little improvement 2020-05-31 14:01:16 -04:00
Ben12345rocks 124485b4f0 Little imrprovement 2020-05-31 12:26:03 -04:00
Ben12345rocks f6f9028680 Little improvement 2020-05-31 12:09:42 -04:00
Ben12345rocks 7fab7c5ca8 Add config option for vote shop 2020-05-30 15:34:53 -04:00
Ben12345rocks 355bcfa4d1 Fix perm 2020-05-29 18:50:46 -04:00
Ben12345rocks 87715a1e93 Add command to clear points 2020-05-29 18:49:42 -04:00
Ben12345rocks cf5faca040 Little fix 2020-05-28 21:25:54 -04:00
Ben12345rocks 099ceb3bca Improvement 2020-05-28 20:19:30 -04:00
Ben12345rocks 56dd38b6e0 little change 2020-05-28 16:18:01 -04:00
Ben12345rocks ad752e024a Improvement 2020-05-27 19:05:54 -04:00
Ben12345rocks fc6f1052d6 Little improvement 2020-05-26 19:01:20 -04:00
Ben12345rocks f663b06626 Improvement 2020-05-23 20:17:32 -04:00
Ben12345rocks 7a38a4d7f8 Little improvement 2020-05-23 17:35:28 -04:00
Ben12345rocks 28b8c04f95 Bug fix 2020-05-23 17:30:05 -04:00
Ben12345rocks 85bc09c3da Little config change 2020-05-23 15:23:29 -04:00
Ben12345rocks b817ea25e6 Added persite level offset for /vote next only 2020-05-22 16:34:41 -04:00
Ben12345rocks 25ba2f597e Improve debug message 2020-05-22 16:25:49 -04:00
Ben12345rocks 321b3fbf3a Add option 2020-05-21 21:20:29 -04:00
Ben12345rocks df6a4e4a35 Bug fix 2020-05-17 21:34:23 -04:00
Ben12345rocks 7c0031b265 Bug fix 2020-05-16 16:14:12 -04:00
Ben12345rocks e99ec75a0f Update version number 2020-05-12 19:14:04 -04:00
Ben12345rocks 15f851e825 Bug fix 2020-05-12 17:36:46 -04:00
Ben12345rocks 0579e7a2fd Bug fix 2020-05-12 17:33:26 -04:00
Ben12345rocks 1c0b7dc0b1 Bug fix 2020-05-12 17:29:38 -04:00
19 changed files with 310 additions and 198 deletions

No files matched your search

+14 -4
View File
@@ -131,7 +131,7 @@ Format:
# %url% = site URL
Vote:
Text:
- '&4&lVote for our server!'
- '&6&lVote for our server!'
# If you want to want to use the feature below where the plugin will
# automaticly list the sites then set the message in the text above
@@ -140,7 +140,7 @@ Format:
# make sure to set VoteURL in your VoteSites
# Requires above to be true
# Text will be sent before this
Sites: '&4%num%: &c&l%SiteName% - &c%url%'
Sites: '&6%num%: &e&l%SiteName% - &e%url%'
# If true, links will always be forced as urls
ForceLinks: true
@@ -337,6 +337,8 @@ GUI:
Data: 0
Amount: 1
Name: '&4URL'
Lore:
- '&aClick me for links'
# You can set skulls of the player using the following
# Remove the # to enable
#Skull: '%Player%'
@@ -583,6 +585,7 @@ Shop:
# Used in placeholders for formats
# Do not have spaces in the identifier
Diamond:
Identifier_Name: 'Diamond'
# Item
Material: 'DIAMOND'
Data: 0
@@ -1003,8 +1006,12 @@ SpigotServer:
Host: '127.0.0.1'
Port: 1298
# Enables more debug messages for communication between servers
# Use /votingpluginbungee status for testing communication
BungeeDebug: false
# ---------------------------------------------------------
# Mysql cache options
# Mysql cache options
# Clearing cache forces the plugin to pull from database
# Not needed unless you are using multiple servers
# ---------------------------------------------------------
@@ -1013,7 +1020,7 @@ SpigotServer:
# Also may require AlwaysUpdate set to true
ClearCacheOnUpdate: false
# Clear mysql on player join always
# Clear cache on player join always
ClearCacheOnJoin: false
# Clears cache for the player who voted only
@@ -1021,6 +1028,9 @@ ClearCacheOnJoin: false
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Clear cache when player leaves
ClearCacheOnLeave: false
# ###############################################################
# Deprecated options, don't recommend using any of these
+4 -1
View File
@@ -87,7 +87,10 @@ VoteSites:
Reward1:
Chance: 50
# Any other requirement here
# If any requirement fails, the next will be attempted
# If any requirement fails, the next reward will be attempted
# Use permission requirement for rank based rewards
#RequirePermission: true
#Permission: 'permhere'
Messages:
Player: 'You got first reward'
Reward2:
+4 -1
View File
@@ -44,4 +44,7 @@ MaxSize: -1
# Table name prefix, for use with mutliple servers
Prefix: ''
#UseSSL: true
#########################################
#########################################
Debug: false
+4 -4
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.21.2</version>
<version>5.22</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -78,7 +78,7 @@
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.2.0</version>
<version>1.18.12.0</version>
<executions>
<execution>
<id>delombok</id>
@@ -254,12 +254,12 @@
<version>master-SNAPSHOT</version>
</dependency>
<!-- <dependency> <groupId>com.Ben12345rocks</groupId> <artifactId>AdvancedCore</artifactId>
<!--<dependency> <groupId>com.Ben12345rocks</groupId> <artifactId>AdvancedCore</artifactId>
<version>LATEST</version> <scope>compile</scope> </dependency> -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.15.2-R0.1-SNAPSHOT</version>
<version>1.16.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -3,8 +3,6 @@ package com.Ben12345rocks.VotingPlugin;
import java.io.File;
import java.util.UUID;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Encryption.EncryptionHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
@@ -37,85 +35,95 @@ public class BungeeHandler {
}
public void load() {
Main.plugin.debug("Loading bungee handles");
encryptionHandler = new EncryptionHandler(new File(Main.plugin.getDataFolder(), "secretkey.key"));
Bukkit.getScheduler().runTask(Main.plugin, new Runnable() {
clientHandler = new ClientHandler(Config.getInstance().getBungeeServerHost(),
Config.getInstance().getBungeeServerPort(), encryptionHandler, Config.getInstance().isBungeeDebug());
socketHandler = new SocketHandler(Main.plugin.getVersion(), Config.getInstance().getSpigotServerHost(),
Config.getInstance().getSpigotServerPort(), encryptionHandler, Config.getInstance().isBungeeDebug());
socketHandler.add(new SocketReceiver() {
@Override
public void run() {
clientHandler = new ClientHandler(Config.getInstance().getBungeeServerHost(),
Config.getInstance().getBungeeServerPort(), encryptionHandler);
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevote")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVote(data[3]);
}
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevote")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVote(data[3]);
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevoteonline")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVoteOnline(data[3]);
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("BungeeBroadcast")) {
VoteSite site = Main.plugin.getVoteSite(data[1]);
String p = data[3];
User user = UserManager.getInstance().getVotingPluginUser(p);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + data[1]);
}
Main.plugin.setUpdate(true);
}
}
}
});
}
}
});
socketHandler = new SocketHandler(Main.plugin.getVersion(), Config.getInstance().getSpigotServerHost(),
Config.getInstance().getSpigotServerPort(), encryptionHandler);
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
if (data[0].equalsIgnoreCase("bungeevoteonline")) {
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVoteOnline(data[3]);
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("BungeeBroadcast")) {
VoteSite site = Main.plugin.getVoteSite(data[1]);
String p = data[3];
User user = UserManager.getInstance().getVotingPluginUser(p);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + data[1]);
}
Main.plugin.setUpdate(true);
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 0) {
if (data[0].equalsIgnoreCase("Status")) {
Main.plugin.getLogger().info("Received status command, sending status back");
sendData("StatusOkay", Main.plugin.getOptions().getServer());
}
}
}
});
}
@@ -343,6 +343,21 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ResetPoints" },
"VotingPlugin.Commands.AdminVote.ResetPoints|" + adminPerm, "Clears all points of all players",true,false) {
@Override
public void execute(CommandSender sender, String[] args) {
sendMessage(sender, "&cStarting...");
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
user.setPoints(0);
}
sendMessage(sender, "&cFinished");
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ResyncMilestones", "(player)" },
"VotingPlugin.Commands.AdminVote.SetResyncMilestones|" + adminPerm, "Resync Milestones") {
@@ -1520,7 +1535,7 @@ public class CommandLoader {
}
});
plugin.getVoteCommand().add(new CommandHandler(new String[] { "URL", "(SiteName)" },
"VotingPlugin.Commands.Vote.URL.VoteSite", "Open VoteURL GUI", false) {
"VotingPlugin.Commands.Vote.URL.VoteSite", "Open VoteURL GUI for VoteSite", false) {
@Override
public void execute(CommandSender sender, String[] args) {
@@ -737,12 +737,13 @@ public class Commands {
long time = user.getTime(voteSite);
LocalDateTime now = TimeChecker.getInstance().getTime();
;
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
if (votedelay == 0) {
if (votedelay == 0 && voteSite.getVoteDelayMin() == 0) {
String errorMsg = config.getFormatCommandsVoteNextInfoError();
info = errorMsg;
} else {
@@ -769,12 +770,23 @@ public class Commands {
}
} else {
if (lastVote.getDayOfYear() == now.getDayOfYear() && lastVote.getYear() == now.getYear()) {
LocalDateTime midnight = TimeChecker.getInstance().getTime().plusDays(1).withHour(0).withMinute(0);
LocalDateTime midnight = TimeChecker.getInstance().getTime().plusDays(1).withHour(0).withMinute(0)
.plusHours((long) voteSite.getTimeOffSet());
Duration dur = Duration.between(now, midnight);
int diffHours = (int) (dur.getSeconds() / (60 * 60));
long diffMinutes = dur.getSeconds() / 60 - diffHours * 60;
if (diffHours < 0) {
diffHours = diffHours * -1;
}
if (diffHours >= 24) {
diffHours = diffHours - 24;
}
if (diffMinutes < 0) {
diffMinutes = diffMinutes * -1;
}
String timeMsg = config.getFormatCommandsVoteNextInfoVoteDelayDaily();
timeMsg = StringParser.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Integer.toString(diffHours));
timeMsg = StringParser.getInstance().replaceIgnoreCase(timeMsg, "%minutes%",
@@ -921,13 +933,15 @@ public class Commands {
int counter = 0;
for (VoteSite voteSite : plugin.getVoteSites()) {
counter++;
String voteURL = voteSite.getVoteURL();
String voteURL = voteSite.getVoteURL(false);
MessageBuilder message = new MessageBuilder(config.getFormatCommandsVoteURLS());
message.replacePlaceholder("num", Integer.toString(counter)).replacePlaceholder("url", voteURL)
.replacePlaceholder("SiteName", voteSite.getDisplayName())
.replacePlaceholder("player", "" + user.getPlayerName())
.replacePlaceholder("Next", "" + voteCommandNextInfo(user, voteSite)).colorize();
sites.add(message.getText());
.replacePlaceholder("SiteName", voteSite.getDisplayName());
if (user != null && user.getPlayerName() != null) {
message.replacePlaceholder("player", "" + user.getPlayerName()).replacePlaceholder("Next",
"" + voteCommandNextInfo(user, voteSite));
}
sites.add(message.colorize().getText());
}
}
if (user != null) {
@@ -939,6 +953,7 @@ public class Commands {
sites = ArrayUtils.getInstance().replacePlaceHolder(sites, phs);
}
sites = ArrayUtils.getInstance().colorize(sites);
return ArrayUtils.getInstance().convert(sites);
}
@@ -146,7 +146,7 @@ public class PlayerGUIs {
if (lore.length == 0) {
if (slot.equalsIgnoreCase("url")) {
lore = Commands.getInstance().voteURLs(user);
lore = new String[] { "&aClick me" };
} else if (slot.equalsIgnoreCase("next")) {
lore = Commands.getInstance().voteCommandNext(user);
} else if (slot.equalsIgnoreCase("last")) {
@@ -181,48 +181,44 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
Player player = event.getWhoClicked();
String cmd = Config.getInstance().getVoteGUISlotCommand(slot);
User user = getSelectedPlayer(player);
if (cmd.equalsIgnoreCase("none")) {
return;
} else if (!cmd.equals("")) {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
Player player = event.getWhoClicked();
String cmd = Config.getInstance().getVoteGUISlotCommand(slot);
User user = getSelectedPlayer(player);
if (cmd.equalsIgnoreCase("none")) {
return;
} else if (!cmd.equals("")) {
event.runSync(new Runnable() {
@Override
public void run() {
player.performCommand(cmd);
}
});
} else {
if (slot.equalsIgnoreCase("url")) {
openVoteURL(player);
} else if (slot.equalsIgnoreCase("next")) {
openVoteNext(player, user);
} else if (slot.equalsIgnoreCase("last")) {
openVoteLast(player, user);
} else if (slot.equalsIgnoreCase("total")) {
openVoteTotal(player, user);
} else if (slot.equalsIgnoreCase("top")) {
openVoteTop(player, null);
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
openVoteShop(player);
} else if (slot.equalsIgnoreCase("lastmonth")) {
openVoteTopLastMonth(player);
}
@Override
public void run() {
player.performCommand(cmd);
}
});
} else {
if (slot.equalsIgnoreCase("url")) {
user.sendMessage(Commands.getInstance().voteURLs(user));
event.closeInventory();
} else if (slot.equalsIgnoreCase("next")) {
openVoteNext(player, user);
} else if (slot.equalsIgnoreCase("last")) {
openVoteLast(player, user);
} else if (slot.equalsIgnoreCase("total")) {
openVoteTotal(player, user);
} else if (slot.equalsIgnoreCase("top")) {
openVoteTop(player, null);
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
openVoteShop(player);
} else if (slot.equalsIgnoreCase("lastmonth")) {
openVoteTopLastMonth(player);
}
});
}
}
});
}
@@ -329,7 +325,8 @@ public class PlayerGUIs {
if (limitPass) {
if (!Config.getInstance().isVoteShopRequireConfirmation()) {
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier", identifier);
placeholders.put("identifier",
Config.getInstance().getIdentifierIdentifierName(identifier));
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
@@ -411,7 +408,14 @@ public class PlayerGUIs {
user.sendMessage(StringParser.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
event.getPlayer().closeInventory();
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
event.getPlayer().closeInventory();
}
});
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.BARRIER).setName("&cNo")) {
@@ -149,11 +149,15 @@ public class Config extends YMLFile {
@ConfigDataBoolean(path = "UseBungeecoord")
@Getter
private boolean useBungeeCoord = false;
private boolean useBungeecoord = false;
@ConfigDataBoolean(path = "BungeeBroadcast")
@Getter
private boolean bungeeBroadcast = false;
@ConfigDataBoolean(path = "BungeeDebug")
@Getter
private boolean bungeeDebug = false;
@ConfigDataBoolean(path = "GUI.VoteURL.AllUrlsButton.RequireAllSitesVoted")
@Getter
@@ -246,11 +250,11 @@ public class Config extends YMLFile {
@ConfigDataBoolean(path = "DisableAdvancedTab")
@Getter
private boolean disableAdvancedTab = false;
@ConfigDataBoolean(path = "VoteShopRequireConfirmation")
@Getter
private boolean voteShopRequireConfirmation = false;
@ConfigDataBoolean(path = "Format.Commands.Vote.ForceLinks")
@Getter
private boolean formatCommandsVoteForceLinks = true;
@@ -347,7 +351,7 @@ public class Config extends YMLFile {
@ConfigDataBoolean(path = "AllowUnJoinedCheckServer")
@Getter
private boolean allowUnJoinedCheckServer = true;
@ConfigDataBoolean(path = "UseJavascriptPlaceholders")
@Getter
private boolean useJavascriptPlaceholders = true;
@@ -1009,6 +1013,10 @@ public class Config extends YMLFile {
return getData().getInt("Shop." + identifier + ".Cost");
}
public String getIdentifierIdentifierName(String identifier) {
return getData().getString("Shop." + identifier + ".Identifier_Name", identifier);
}
public int getIdentifierLimit(String identifier) {
return getData().getInt("Shop." + identifier + ".Limit", -1);
}
@@ -1355,15 +1363,15 @@ public class Config extends YMLFile {
public boolean getVoteShopNotBuyable(String shop) {
return getData().getBoolean("Shop." + shop + ".NotBuyable", false);
}
public boolean getVoteShopResetDaily(String shop) {
return getData().getBoolean("Shop." + shop + ".Reset.Daily", false);
}
public boolean getVoteShopResetWeekly(String shop) {
return getData().getBoolean("Shop." + shop + ".Reset.Weekly", false);
}
public boolean getVoteShopResetMonthly(String shop) {
return getData().getBoolean("Shop." + shop + ".Reset.Monthly", false);
}
@@ -145,6 +145,10 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getInt("VoteDelay");
}
public int getTimeOffSet(String siteName) {
return getData(siteName).getInt("TimeOffSet",0);
}
public int getVoteDelayMin(String siteName) {
return getData(siteName).getInt("VoteDelayMin",0);
}
@@ -84,7 +84,7 @@ public class PlayerVoteListener implements Listener {
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.updateName();
if (Config.getInstance().isClearCacheOnVote() || Config.getInstance().isUseBungeeCoord()) {
if (Config.getInstance().isClearCacheOnVote() || Config.getInstance().isUseBungeecoord()) {
user.clearCache();
}
@@ -12,7 +12,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
@@ -146,7 +145,7 @@ public class Main extends AdvancedCorePlugin {
try {
Class.forName("com.vexsoftware.votifier.model.VotifierEvent");
} catch (ClassNotFoundException e) {
if (!Config.getInstance().isUseBungeeCoord()) {
if (!Config.getInstance().isUseBungeecoord()) {
plugin.getLogger()
.warning("No VotifierEvent found, install Votifier, NuVotifier, or another Votifier plugin");
} else {
@@ -775,14 +774,14 @@ public class Main extends AdvancedCorePlugin {
@Override
public void onPostLoad() {
if (Config.getInstance().isUseBungeeCoord()) {
if (Config.getInstance().isUseBungeecoord()) {
BungeeHandler.getInstance().load();
if (Config.getInstance().isUseBungeeCoord()) {
if (getOptions().getServer().equalsIgnoreCase("PleaseSet")) {
getLogger().warning(
"Bungeecoord is true and server name is not set, bungeecoord features may not work");
}
if (getOptions().getServer().equalsIgnoreCase("PleaseSet")) {
getLogger()
.warning("Bungeecoord is true and server name is not set, bungeecoord features may not work");
}
}
registerCommands();
@@ -1016,15 +1015,9 @@ public class Main extends AdvancedCorePlugin {
*/
@Override
public void onUnLoad() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Signs.getInstance().storeSigns();
}
}, 0);
Signs.getInstance().storeSigns();
HandlerList.unregisterAll(plugin);
if (Config.getInstance().isUseBungeeCoord()) {
if (Config.getInstance().isUseBungeecoord()) {
try {
BungeeHandler.getInstance().close();
} catch (Exception e) {
@@ -1134,7 +1127,7 @@ public class Main extends AdvancedCorePlugin {
* Update.
*/
public void update() {
if (update || Config.getInstance().isAlwaysUpdate() || Config.getInstance().isUseBungeeCoord()) {
if (update || Config.getInstance().isAlwaysUpdate() || Config.getInstance().isUseBungeecoord()) {
if (!updateStarted && plugin != null) {
if (!Config.getInstance().isUpdateWithPlayersOnlineOnly() || Bukkit.getOnlinePlayers().size() != 0) {
updateStarted = true;
@@ -1146,7 +1139,7 @@ public class Main extends AdvancedCorePlugin {
plugin.debug("MySQL not loaded yet");
return;
} else if (Config.getInstance().isClearCacheOnUpdate()
|| Config.getInstance().isUseBungeeCoord()) {
|| Config.getInstance().isUseBungeecoord()) {
getMysql().clearCache();
} else {
getMysql().clearCacheBasic();
@@ -605,7 +605,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
public void bungeeVote(String service) {
if (Config.getInstance().isUseBungeeCoord()) {
if (Config.getInstance().isUseBungeecoord()) {
Main.plugin.debug("Bungee vote for " + getPlayerName() + " on " + service);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service), getPlayerName(), service,
@@ -623,7 +623,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
public void bungeeVoteOnline(String service) {
if (Config.getInstance().isUseBungeeCoord()) {
if (Config.getInstance().isUseBungeecoord()) {
Main.plugin.debug("Bungee online vote for " + getPlayerName() + " on " + service);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service), getPlayerName(), service,
@@ -41,14 +41,18 @@ public class VoteSite {
@Setter
private String voteURL;
public String getVoteURL() {
if (!Config.getInstance().isFormatCommandsVoteForceLinks()) {
public String getVoteURL(boolean json) {
if (!Config.getInstance().isFormatCommandsVoteForceLinks() || !json) {
return voteURL;
} else {
return "[Text=\"" + voteURL + "\",url=\"" + voteURL + "\"]";
}
}
public String getVoteURL() {
return getVoteURL(true);
}
@Getter
@Setter
private String serviceSite;
@@ -69,6 +73,10 @@ public class VoteSite {
@Setter
private double voteDelayMin;
@Getter
@Setter
private double timeOffSet;
@Getter
@Setter
private boolean enabled;
@@ -209,6 +217,7 @@ public class VoteSite {
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
waitUntilVoteDelay = configVoteSites.getWaitUntilVoteDelay(key);
timeOffSet = configVoteSites.getTimeOffSet(key);
}
public boolean isVaidServiceSite() {
@@ -90,7 +90,8 @@ public class Signs {
int time = 0;
for (int i = plugin.getSigns().size() - 1; i >= 0; i--) {
if (!plugin.getSigns().get(i).isValid()) {
plugin.debug("Sign " + i + " invalid, removing from data.");
plugin.debug("Sign " + i + " invalid, removing from data: "
+ plugin.getSigns().get(i).getLocation().toString());
plugin.getSigns().get(i).removeSign();
plugin.getSigns().remove(i);
} else {
@@ -12,6 +12,7 @@ import com.vexsoftware.votifier.bungee.events.VotifierEvent;
import com.vexsoftware.votifier.model.Vote;
import lombok.Getter;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
@@ -68,17 +69,34 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
encryptionHandler = new EncryptionHandler(new File(getDataFolder(), "secretkey.key"));
socketHandler = new SocketHandler(getDescription().getVersion(), config.getBungeeHost(), config.getBungeePort(),
encryptionHandler);
encryptionHandler, config.getDebug());
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("Broadcast")) {
sendServerMessage(data);
if (data.length > 1) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("Broadcast")) {
sendServerMessage(data);
}
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 1) {
if (data[0].equalsIgnoreCase("StatusOkay")) {
String server = data[1];
getLogger().info("Voting communicaton okay with " + server);
}
}
}
});
@@ -87,8 +105,8 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
for (String s : config.getSpigotServers()) {
if (!l.contains(s)) {
Configuration d = config.getSpigotServerConfiguration(s);
clientHandles.put(s,
new ClientHandler(d.getString("Host", ""), d.getInt("Port", 1298), encryptionHandler));
clientHandles.put(s, new ClientHandler(d.getString("Host", ""), d.getInt("Port", 1298),
encryptionHandler, config.getDebug()));
}
}
}
@@ -101,7 +119,8 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
public void onVote(VotifierEvent event) {
Vote vote = event.getVote();
getLogger().info("Vote received " + vote.getUsername() + " from service site " + vote.getServiceName());
saveVote(vote.getUsername(), vote.getServiceName());
sendSocketVote(vote.getUsername(), vote.getServiceName());
}
public String getUUID(String playerName) {
@@ -116,37 +135,37 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
return "";
}
public void saveVote(String name, String service) {
public void sendSocketVote(String name, String service) {
String uuid = getUUID(name);
if (!uuid.isEmpty()) {
if (config.getSendVotesToAllServers()) {
// for (String send : getProxy().getServers().keySet()) {
// mysql.update(uuid, "Proxy_" + send, finalData, DataType.STRING);
// }
sendServerMessage("bungeevote", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
} else if (config.getSendToOnlineServer()) {
ProxiedPlayer p = getProxy().getPlayer(name);
String server = "";
if (p != null && p.isConnected()) {
server = p.getServer().getInfo().getName();
} else {
server = config.getFallBack();
}
if (config.getBlockedServers().contains(server)) {
server = config.getFallBack();
}
// mysql.update(uuid, "Proxy_Online", finalData, DataType.STRING);
sendServerMessageServer(server, "bungeevoteonline", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
if (config.getSendVotesToAllServers()) {
// for (String send : getProxy().getServers().keySet()) {
// mysql.update(uuid, "Proxy_" + send, finalData, DataType.STRING);
// }
sendServerMessage("bungeevote", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
} else if (config.getSendToOnlineServer()) {
ProxiedPlayer p = getProxy().getPlayer(name);
String server = "";
if (p != null && p.isConnected()) {
server = p.getServer().getInfo().getName();
} else {
server = config.getFallBack();
}
if (config.getBlockedServers().contains(server)) {
server = config.getFallBack();
}
// mysql.update(uuid, "Proxy_Online", finalData, DataType.STRING);
sendServerMessageServer(server, "bungeevoteonline", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
}
}
public void sendServerMessage(String... messageData) {
@@ -161,4 +180,8 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
}
}
public void status(CommandSender sender) {
sendServerMessage("status");
}
}
@@ -47,6 +47,7 @@ public class BungeeMySQL {
String database = section.getString("Database");
long lifeTime = section.getLong("MaxLifeTime", -1);
int maxThreads = section.getInt("MaxConnections", 1);
String str = section.getString("Line", "");
if (maxThreads < 1) {
maxThreads = 1;
}
@@ -60,7 +61,7 @@ public class BungeeMySQL {
name = tablePrefix + tableName;
}
mysql = new com.Ben12345rocks.AdvancedCore.UserStorage.mysql.api.MySQL(maxThreads);
if (!mysql.connect(hostName, "" + port, user, pass, database, useSSL, lifeTime)) {
if (!mysql.connect(hostName, "" + port, user, pass, database, useSSL, lifeTime, str)) {
}
try {
@@ -78,6 +78,10 @@ public class Config {
public boolean getBroadcast() {
return getData().getBoolean("Broadcast", false);
}
public boolean getDebug() {
return getData().getBoolean("Debug", false);
}
public String getFallBack() {
return getData().getString("FallBackServer", "");
@@ -24,10 +24,21 @@ public class VotingPluginBungeeCommand extends Command {
if (args.length >= 2) {
String user = args[1];
String site = args[2];
bungee.saveVote(user, site);
bungee.sendSocketVote(user, site);
sender.sendMessage(new TextComponent("Sending vote"));
}
}
if (args[0].equalsIgnoreCase("status")) {
sender.sendMessage(new TextComponent("Checking status, waiting for response, check console"));
bungee.status(sender);
}
if (args[0].equalsIgnoreCase("help")) {
TextComponent[] msg = new TextComponent[3];
msg[0] = new TextComponent("&avotingpluginbungee reload - Reload plugin");
msg[1] = new TextComponent("&avotingpluginbungee vote (player) (servicesite) - Send bungee vote");
msg[2] = new TextComponent("&avotingplugin status - Check socket connection status");
sender.sendMessage(msg);
}
}
} else {
sender.sendMessage(new TextComponent("You do not have permission to do this!"));