Compare commits

..
52 Commits
Author SHA1 Message Date
Ben12345rocks 21c4be4148 Little bug fix 2020-03-29 12:26:46 -04:00
Ben12345rocks d44290dcdc Update version number 2020-03-29 12:24:04 -04:00
Ben12345rocks 702c739ec8 Bug fix 2020-03-24 16:44:54 -04:00
Ben12345rocks c1122bd939 Bug fix 2020-03-23 20:40:53 -04:00
Ben12345rocks bdaa896fc1 Bug fix 2020-03-23 20:23:56 -04:00
Ben12345rocks 3b1c051fd2 Bug fix 2020-03-23 20:23:16 -04:00
Ben12345rocks 11194f819e Disable other background task when other one is enabled 2020-03-23 18:52:16 -04:00
Ben12345rocks 662eb16fdd Add log 2020-03-23 18:35:28 -04:00
Ben12345rocks d65070973c Add extra feature 2020-03-23 17:14:21 -04:00
Ben12345rocks cef41348cc Added message 2020-03-22 21:16:04 -04:00
Ben12345rocks bcba694308 Little change 2020-03-22 20:36:19 -04:00
Ben12345rocks fbd7c6d3fc Little improvements 2020-03-20 18:53:55 -04:00
Ben12345rocks f842c08d62 Add voteshop command 2020-03-20 17:51:55 -04:00
Ben12345rocks 4e58a6915f Update version number 2020-03-15 13:53:33 -04:00
Ben12345rocks 4336644fbc Bug fix 2020-03-14 19:19:41 -04:00
Ben12345rocks e32909ac58 Add softdepend 2020-03-14 18:31:06 -04:00
Ben12345rocks bd16e2ccaf Add command 2020-03-13 21:15:44 -04:00
Ben12345rocks 36fa55139e Bug fix 2020-03-13 17:08:23 -04:00
Ben12345rocks b128280d5f Silence error 2020-03-13 17:05:50 -04:00
Ben12345rocks 51e3f05031 Minor improvement 2020-03-11 20:02:04 -04:00
Ben12345rocks 19b83070c6 Improvements to config 2020-03-11 19:49:59 -04:00
Ben12345rocks 5622956e75 Added points formatted placeholder 2020-03-06 16:48:45 -05:00
Ben12345rocks 1ac3ea4916 Minor improvement to force commands 2020-03-06 16:45:14 -05:00
Ben12345rocks 391cc0edf1 Add advancedcore info to /av version 2020-03-01 14:15:11 -05:00
Ben12345rocks a59a98f8cb Update version number 2020-02-23 12:15:45 -05:00
Ben12345rocks e62213bfd5 Bug fix 2020-02-19 16:41:38 -05:00
Ben12345rocks 61b77c4754 Little improvement 2020-02-15 16:33:59 -05:00
Ben12345rocks 758aaa3dd7 Improvements 2020-02-15 16:24:22 -05:00
Ben12345rocks 51389a27fb Bug fix 2020-02-12 17:01:18 -05:00
Ben12345rocks 37b94cc36c Add console message on bungeecoord when vote received 2020-02-09 17:02:18 -05:00
Ben12345rocks 1e4796d418 Add option 2020-02-03 20:56:49 -05:00
Ben12345rocks 62b0d6012d Fix spelling mistake 2020-02-03 16:43:50 -05:00
Ben12345rocks 52726c8bb3 Fix warning message 2020-02-02 13:58:26 -05:00
Ben12345rocks ede06e0923 Fix warning message 2020-01-29 17:11:44 -05:00
Ben12345rocks 6eb2c95cc0 Change config comments 2020-01-26 12:16:32 -05:00
Ben12345rocks 835dff8620 Update version number 2020-01-21 17:03:12 -05:00
Ben12345rocks 1019b0b83b Update to 1.15.2 2020-01-21 16:59:12 -05:00
Ben12345rocks a44070b505 Bug fix 2020-01-19 12:39:14 -05:00
Ben12345rocks 58bd4e2d9d Little change 2020-01-17 16:45:07 -05:00
Ben12345rocks cff346e6a4 Add loadbefore 2020-01-13 16:54:18 -05:00
Ben 0331e34e91 Create stale.yml 2020-01-11 15:27:26 -05:00
Ben12345rocks 26ff8d8588 Add try/catch 2020-01-11 14:59:39 -05:00
Ben12345rocks 9a38826cf7 Improvement 2020-01-11 08:34:48 -05:00
Ben12345rocks b854631990 Little warning message 2020-01-04 11:44:07 -05:00
Ben12345rocks 5d1cd97ebd Update to 1.15.1 2019-12-17 19:42:34 -05:00
Ben12345rocks c21feb74d1 Update to 1.15 2019-12-10 18:57:25 -05:00
Ben12345rocks 052e2f2541 Update version number 2019-12-07 19:11:34 -05:00
Ben12345rocks 1270b57afa Add option to reset extra voteparty votes monthly and command to do so 2019-12-01 12:34:45 -05:00
Ben12345rocks cf8b219b9d Add ability to remove VotingPlugin.Player permission on a command 2019-11-27 20:27:14 -05:00
Ben12345rocks 689133aab8 Change default backbutton item to barrier 2019-11-23 19:45:57 -05:00
Ben12345rocks 019c0f01eb Add bungee communication encryption 2019-11-17 15:38:56 -05:00
Ben12345rocks 743cac217b Little improvement to bungee command 2019-11-03 17:07:59 -05:00
18 changed files with 346 additions and 71 deletions

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 20
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- Priority
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
+30 -15
View File
@@ -454,8 +454,8 @@ GUI:
Name: '&3&l%position%: &3%player%'
Lore: '&3&lVotes: &3%votes%'
SwitchItem:
Name: 'Switch TopVoter'
Lore: 'Currently: %Top%'
Name: '&3Switch TopVoter'
Lore: '&bCurrently: %Top%'
Material: 'SIGN'
Amount: 1
# 8 Slots over from the bottom left
@@ -561,7 +561,7 @@ GUI:
VoteShopName: 'VoteShop'
BackButton:
Material: 'PAPER'
Material: 'BARRIER'
Data: 0
Amount: 1
Name: '&8Back to VoteGUI'
@@ -575,6 +575,7 @@ VoteShopLimitReached: '&aYou reached your limit'
Shop:
# Identifier
# Used in placeholders for formats
# Do not have spaces in the identifier
Diamond:
# Item
Material: 'DIAMOND'
@@ -608,13 +609,12 @@ Shop:
# To disable reward set value to []
# Eg:
# FirstVote: [] (All in one line)
# By default all rewards are disabled
# Rewards will be given if there is a reward to give
# First vote rewards
FirstVote:
Messages:
Player: '&aYou voted for your first time!'
Money: 100
# All vote rewards
# Reward for voting on all sites in one day
@@ -652,6 +652,8 @@ VoteParty:
ResetEachDay: false
# Reset at the end of the month
ResetMonthly: false
# Reset extra votes
ResetExtraVotesMonthly: false
# Count votes from /av vote?
CountFakeVotes: true
# Number of user votes that apply to vote party total the user needs to get rewards
@@ -886,6 +888,10 @@ CountFakeVotes: true
# Requires restart to take affect
GiveDefaultPermission: true
# Permissions given by VotingPlugin.Player by default
# Permissions listed here will no be accessible with the default permission
DisabledDefaultPermissions: []
# Remove old player files
# Happens on startup or /av purge
PurgeOldData: false
@@ -943,9 +949,27 @@ LoadSkulls: true
# May not work on some plugins
UseVaultPermissions: false
# List of disabled commands from /vote
# List the specific permission
# E.g:
# - PERMISSION
DisabledCommands: []
# Enable to true for extra player checks
ExtraBackgroundUpdate: false
# --------------------------
# Bungee Setup
# Only if using votingplugin bungee to send votes
# REQUIRES RESTART FOR CHANGES TO TAKE EFFECT
# --------------------------
# Plugin using bungee, requires plugin on bungee server
UseBungeecoord: false
# Get the plugin to broadcast to all servers
BungeeBroadcast: false
# What server this is in bungee (must match)
# Also can be applied to rewards
Server: PleaseSet
@@ -958,16 +982,7 @@ BungeeServer:
# Bungee communication, add this to bungee server
SpigotServer:
Host: '127.0.0.1'
POrt: 1298
# Get the plugin to broadcast to all servers
BungeeBroadcast: false
# List of disabled commands from /vote
# List the specific permission
# E.g:
# - PERMISSION
DisabledCommands: []
Port: 1298
# ---------------------------------------------------------
# Mysql cache options
+3 -1
View File
@@ -4,7 +4,7 @@ main: com.Ben12345rocks.VotingPlugin.Main
description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: Ben12345rocks
softdepend: [MVdWPlaceholders, Votifier]
softdepend: [MVdWPlaceholders, Votifier, CMI, Vault, PlaceholderAPI, ProtocolLib]
api-version: 1.13
commands:
vote:
@@ -225,4 +225,6 @@ permissions:
default: false
VotingPlugin.Sign.Create:
description: Permission to create sign
VotingPlugin.Admin.GenerateServiceSite:
description: Permission for generating votesite message
+2 -2
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.20.4</version>
<version>5.21</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -259,7 +259,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.14.4-R0.1-SNAPSHOT</version>
<version>1.15.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -1,9 +1,11 @@
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;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
@@ -27,18 +29,21 @@ public class BungeeHandler {
@Getter
private ClientHandler clientHandler;
private EncryptionHandler encryptionHandler;
public void close() {
socketHandler.closeConnection();
clientHandler.stopConnection();
}
public void load() {
encryptionHandler = new EncryptionHandler(new File(Main.plugin.getDataFolder(), "secretkey.key"));
Bukkit.getScheduler().runTask(Main.plugin, new Runnable() {
@Override
public void run() {
clientHandler = new ClientHandler(Config.getInstance().getBungeeServerHost(),
Config.getInstance().getBungeeServerPort());
Config.getInstance().getBungeeServerPort(), encryptionHandler);
socketHandler.add(new SocketReceiver() {
@@ -62,7 +67,7 @@ public class BungeeHandler {
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
@@ -110,7 +115,7 @@ public class BungeeHandler {
});
socketHandler = new SocketHandler(Main.plugin.getVersion(), Config.getInstance().getSpigotServerHost(),
Config.getInstance().getSpigotServerPort());
Config.getInstance().getSpigotServerPort(), encryptionHandler);
}
@@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -21,6 +22,8 @@ import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandle;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Commands.GUI.UserGUI;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
@@ -340,6 +343,19 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ResyncMilestones", "(player)" },
"VotingPlugin.Commands.AdminVote.SetResyncMilestones|" + adminPerm, "Resync Milestones") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setMilestoneCount(user.getTotal(TopVoter.AllTime));
sendMessage(sender, "&cResynced milestones for " + args[1]);
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "AddPoints", "(number)" },
"VotingPlugin.Commands.AdminVote.AddPoints|" + adminPerm, "Add to players voting points") {
@@ -509,6 +525,8 @@ public class CommandLoader {
});
}
sendMessage(sender,
"Using AdvancedCore " + plugin.getVersion() + "' built on '" + plugin.getBuildTime());
}
});
@@ -1065,6 +1083,18 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "VotePartyExtraRequired", "(Number)" },
"VotingPlugin.Commands.AdminVote.VoteParty.SetExtraRequired|" + adminPerm,
"Force a voteparty reward, resets vote count") {
@Override
public void execute(CommandSender sender, String[] args) {
ServerData.getInstance().setVotePartyExtraRequired(Integer.parseInt(args[1]));
sendMessage(sender, "&cSet VotePartyExtraRequired to " + args[1]);
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "ForceMilestone", "(Number)" },
"VotingPlugin.Commands.AdminVote.ForceMilestone|" + adminPerm, "Force a milestone") {
@@ -1073,6 +1103,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveMilestoneVoteReward(user, user.isOnline(), parseInt(args[3]));
sendMessage(sender, "&cMilestone " + args[3] + " forced");
}
});
@@ -1084,6 +1115,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveCumulativeVoteReward(user, user.isOnline(), parseInt(args[3]));
sendMessage(sender, "&cCummulative " + args[3] + " forced");
}
});
@@ -1094,6 +1126,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveAllSitesRewards(user, user.isOnline());
sendMessage(sender, "&cAllSites forced");
}
});
@@ -1104,6 +1137,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveFirstVoteRewards(user, user.isOnline());
sendMessage(sender, "&cFirstVote forced");
}
});
@@ -1116,6 +1150,7 @@ public class CommandLoader {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveVoteStreakReward(user, user.isOnline(), args[3], args[4],
parseInt(args[4]));
sendMessage(sender, "&cVoteStreak " + args[3] + " " + args[4] + " forced");
}
});
@@ -1396,6 +1431,83 @@ public class CommandLoader {
PlayerGUIs.getInstance().openVoteShop((Player) sender);
}
});
plugin.getVoteCommand().add(new CommandHandler(new String[] { "Shop", "(Text)" },
"VotingPlugin.Commands.Vote.Shop|" + playerPerm, "Open VoteShop GUI", false) {
@Override
public void execute(CommandSender sender, String[] args) {
if (!Config.getInstance().getVoteShopEnabled()) {
sender.sendMessage(StringParser.getInstance().colorize("&cVote shop disabled"));
return;
}
String identifier = args[1];
Set<String> identifiers = Config.getInstance().getIdentifiers();
if (ArrayUtils.getInstance().containsIgnoreCase(identifiers, identifier)) {
for (String ident : identifiers) {
if (ident.equalsIgnoreCase(args[1])) {
identifier = ident;
}
}
String perm = Config.getInstance().getVoteShopPermission(identifier);
boolean hasPerm = false;
if (perm.isEmpty()) {
hasPerm = true;
} else {
hasPerm = sender.hasPermission(perm);
}
int limit = Config.getInstance().getIdentifierLimit(identifier);
User user = UserManager.getInstance().getVotingPluginUser(sender.getName());
boolean limitPass = true;
if (limit > 0) {
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
}
}
if (!Config.getInstance().getVoteShopNotBuyable(identifier)) {
if (hasPerm) {
user.clearCache();
int points = Config.getInstance().getIdentifierCost(identifier);
if (identifier != null) {
if (limitPass) {
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier", identifier);
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier),
new RewardOptions().setPlaceholders(placeholders));
user.sendMessage(StringParser.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
if (limit > 0) {
user.setVoteShopIdentifierLimit(identifier,
user.getVoteShopIdentifierLimit(identifier) + 1);
}
} else {
user.sendMessage(StringParser.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
} else {
user.sendMessage(Config.getInstance().getVoteShopLimitReached());
}
}
}
}
} else {
sendMessage(sender, "&cWrong voteshop item");
}
}
});
}
plugin.getVoteCommand().add(new CommandHandler(new String[] { "URL" },
@@ -1408,7 +1520,7 @@ public class CommandLoader {
}
});
plugin.getVoteCommand().add(new CommandHandler(new String[] { "URL", "(SiteName)" },
"VotingPlugin.Commands.Vote.URL.VoteSite|" + playerPerm, "Open VoteURL GUI", false) {
"VotingPlugin.Commands.Vote.URL.VoteSite", "Open VoteURL GUI", false) {
@Override
public void execute(CommandSender sender, String[] args) {
@@ -2134,6 +2246,20 @@ public class CommandLoader {
list.remove(i);
}
}
ArrayList<String> disabledDefaultPerms = config.getDisabledDefaultPermissions();
for (CommandHandler cmd : list) {
boolean contains = false;
for (String dis : disabledDefaultPerms) {
if (cmd.getPerm().contains(dis + "|")) {
contains = true;
}
}
if (contains) {
cmd.setPerm(cmd.getPerm().replace("|" + playerPerm, ""));
plugin.debug("Disabling VotingPlugin.Player permission on " + cmd.getPerm());
}
}
}
/**
@@ -598,6 +598,9 @@ public class Commands {
if (time > 0) {
Date date = new Date(time);
String timeString = new SimpleDateFormat(config.getFormatTimeFormat()).format(date);
if (StringParser.getInstance().containsIgnorecase(timeString, "YamlConfiguration")) {
plugin.getLogger().warning("Detected issue parsing time, check time format");
}
return timeString;
}
return "";
@@ -921,7 +924,7 @@ public class Commands {
MessageBuilder message = new MessageBuilder(config.getFormatCommandsVoteURLS());
message.replacePlaceholder("num", Integer.toString(counter)).replacePlaceholder("url", voteURL)
.replacePlaceholder("SiteName", voteSite.getDisplayName())
.replacePlaceholder("player", user.getPlayerName())
.replacePlaceholder("player", "" + user.getPlayerName())
.replacePlaceholder("Next", "" + voteCommandNextInfo(user, voteSite)).colorize();
sites.add(message.getText());
}
@@ -59,7 +59,7 @@ public class PlayerGUIs {
if (sec != null) {
item = new ItemBuilder(sec);
} else {
item = new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
item = new ItemBuilder(Material.BARRIER, 1).setName("&8Back to VoteGUI");
}
BInventoryButton b = new BInventoryButton(item) {
@@ -309,6 +309,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
event.getButton().getInv().closeInv(player, null);
User user = UserManager.getInstance().getVotingPluginUser(player);
user.clearCache();
@@ -704,6 +705,10 @@ public class PlayerGUIs {
}
public void openVoteURL(Player player, String voteSite) {
if (!plugin.isVoteSite(voteSite)) {
player.sendMessage("Not a valid votesite");
return;
}
User user = UserManager.getInstance().getVotingPluginUser(player);
VoteSite site = plugin.getVoteSite(voteSite);
BInventory inv = new BInventory(StringParser.getInstance()
@@ -56,6 +56,10 @@ public class Config extends YMLFile {
@ConfigDataBoolean(path = "Commands.VoteRewardFromVoteURL")
@Getter
private boolean commandsVoteRewardFromVoteURL = false;
@ConfigDataBoolean(path = "ExtraBackgroundUpdate")
@Getter
private boolean extraBackgroundUpdate = false;
@ConfigDataString(path = "Format.Commands.Vote.Last.TimeFormat", defaultValue = "%amount% %TimeType%")
@Getter
@@ -69,9 +73,9 @@ public class Config extends YMLFile {
@Getter
private String formatCommandsVoteLastNeverVoted;
@ConfigDataString(path = "Format.Commands.Vote.Last.LastVoted", defaultValue = "%times% ago")
@ConfigDataString(path = "Format.Commands.Vote.Last.LastVoted")
@Getter
private String formatCommandsVoteLastLastVoted;
private String formatCommandsVoteLastLastVoted = "%times% ago";
@ConfigDataString(path = "Format.TimeFormats.Days", defaultValue = "Days")
@Getter
@@ -125,6 +129,10 @@ public class Config extends YMLFile {
@Getter
private boolean addTotals = true;
@ConfigDataBoolean(path = "AlterColumns")
@Getter
private boolean alterColumns = true;
@Getter
private String allSitesRewardPath = "AllSites";
@@ -227,6 +235,14 @@ public class Config extends YMLFile {
@Getter
private boolean disableNoServiceSiteMessage = false;
@ConfigDataListString(path = "DisabledDefaultPermissions")
@Getter
private ArrayList<String> disabledDefaultPermissions = new ArrayList<String>();
@ConfigDataBoolean(path = "VoteParty.ResetExtraVotesMonthly")
@Getter
private boolean votePartyResetExtraVotesMonthly = false;
@ConfigDataBoolean(path = "DisableAdvancedTab")
@Getter
private boolean disableAdvancedTab = false;
@@ -6,11 +6,14 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -65,6 +68,13 @@ public class ConfigVoteSites extends YMLFile {
set(siteName, "Rewards.Messages.Player", "&aThanks for voting on %ServiceSite%!");
plugin.loadVoteSites();
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("VotingPlugin.Admin.GenerateServiceSite")) {
p.sendMessage(StringParser.getInstance().colorize("&cGenerating votesite for service site "
+ siteName + ", please check console for details"));
}
}
}
}
@@ -69,7 +69,7 @@ public class VotiferEvent implements Listener {
}
plugin.getLogger()
.info("Recieved a vote from service site '" + voteSite + "' by player '" + voteUsername + "'!");
.info("Received a vote from service site '" + voteSite + "' by player '" + voteUsername + "'!");
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
@@ -137,6 +137,8 @@ public class Main extends AdvancedCorePlugin {
@Getter
private boolean ymlError = false;
private boolean votifierLoaded = true;
/**
* Check votifier.
*/
@@ -144,8 +146,13 @@ public class Main extends AdvancedCorePlugin {
try {
Class.forName("com.vexsoftware.votifier.model.VotifierEvent");
} catch (ClassNotFoundException e) {
plugin.getLogger()
.warning("No VotifierEvent found, install Votifier, NuVotifier, or another Votifier plugin");
if (!Config.getInstance().isUseBungeeCoord()) {
plugin.getLogger()
.warning("No VotifierEvent found, install Votifier, NuVotifier, or another Votifier plugin");
} else {
plugin.debug("No VotifierEvent found, but usebungeecoord enabled");
}
votifierLoaded = false;
}
}
@@ -284,6 +291,15 @@ public class Main extends AdvancedCorePlugin {
return VoteParty.getInstance();
}
public boolean isVoteSite(String voteSite) {
for (VoteSite site : getVoteSites()) {
if (site.getKey().equalsIgnoreCase(voteSite)) {
return true;
}
}
return false;
}
/**
* Gets the vote site.
*
@@ -408,6 +424,18 @@ public class Main extends AdvancedCorePlugin {
}
}, 1000 * 60 * 10, 1000 * 60 * 5);
getTimer().schedule(new TimerTask() {
@Override
public void run() {
if (plugin != null && Config.getInstance().isExtraBackgroundUpdate()) {
basicBungeeUpdate();
} else {
cancel();
}
}
}, 1000, 1000 * 30);
}
}, 40L);
@@ -758,8 +786,8 @@ public class Main extends AdvancedCorePlugin {
}
registerCommands();
registerEvents();
checkVotifier();
registerEvents();
CheckUpdate.getInstance().startUp();
VoteReminding.getInstance().loadRemindChecking();
plugin.signs = new ArrayList<SignHandler>();
@@ -821,7 +849,7 @@ public class Main extends AdvancedCorePlugin {
}
// set columns
if (getStorageType().equals(UserStorage.MYSQL)) {
if (getStorageType().equals(UserStorage.MYSQL) && Config.getInstance().isAlterColumns()) {
getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
getMysql().alterColumnType("Reminded", "VARCHAR(5)");
@@ -997,7 +1025,11 @@ public class Main extends AdvancedCorePlugin {
}, 0);
HandlerList.unregisterAll(plugin);
if (Config.getInstance().isUseBungeeCoord()) {
BungeeHandler.getInstance().close();
try {
BungeeHandler.getInstance().close();
} catch (Exception e) {
debug(e);
}
}
plugin = null;
}
@@ -1042,7 +1074,9 @@ public class Main extends AdvancedCorePlugin {
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new PlayerJoinEvent(this), this);
pm.registerEvents(new VotiferEvent(this), this);
if (votifierLoaded) {
pm.registerEvents(new VotiferEvent(this), this);
}
pm.registerEvents(new PlayerVoteListener(this), this);
pm.registerEvents(new SignChange(this), this);
pm.registerEvents(new BlockBreak(this), this);
@@ -1141,9 +1175,11 @@ public class Main extends AdvancedCorePlugin {
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
for (Player player : Bukkit.getOnlinePlayers()) {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.offVote();
if (!Config.getInstance().isExtraBackgroundUpdate()) {
for (Player player : Bukkit.getOnlinePlayers()) {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.offVote();
}
}
time1 = ((System.currentTimeMillis() - time) / 1000);
plugin.debug("Background task finished in " + time1 + " seconds");
@@ -1159,6 +1195,15 @@ public class Main extends AdvancedCorePlugin {
}
}
public void basicBungeeUpdate() {
for (Player player : Bukkit.getOnlinePlayers()) {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.clearCache();
user.offVote();
user.checkOfflineRewards();
}
}
public void updateAdvancedCoreHook() {
getJavascriptEngine().put("VotingPlugin", this);
allowDownloadingFromSpigot(15358);
@@ -223,26 +223,31 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
if (time == 0) {
return true;
}
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
try {
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (votedelay == 0) {
if (votedelay == 0) {
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
} else {
if (now.getDayOfYear() != lastVote.getDayOfYear() || now.getYear() != lastVote.getYear()) {
return true;
}
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
} else {
if (now.getDayOfYear() != lastVote.getDayOfYear() || now.getYear() != lastVote.getYear()) {
return true;
}
return false;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
@@ -1,6 +1,8 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Map.Entry;
import org.bukkit.OfflinePlayer;
@@ -236,6 +238,15 @@ public class PlaceHolders {
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder<User>("Points_Format") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
return numberFormat.format(user.getPoints());
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder<User>("CanVote") {
@Override
@@ -231,6 +231,10 @@ public class VoteParty implements Listener {
if (Config.getInstance().getVotePartyResetMontly()) {
reset();
}
if (Config.getInstance().isVotePartyResetExtraVotesMonthly()) {
ServerData.getInstance().setVotePartyExtraRequired(0);
}
}
public void register() {
@@ -1,8 +1,10 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import com.Ben12345rocks.AdvancedCore.Util.Encryption.EncryptionHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
@@ -13,6 +15,7 @@ import lombok.Getter;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.event.EventHandler;
public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listener {
@@ -26,6 +29,8 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
private HashMap<String, ClientHandler> clientHandles;
private EncryptionHandler encryptionHandler;
@Override
public void onEnable() {
getProxy().getPluginManager().registerListener(this, this);
@@ -60,9 +65,10 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
getProxy().getPluginManager().registerCommand(this, new VotingPluginBungeeCommand(this));
encryptionHandler = new EncryptionHandler(new File(getDataFolder(), "secretkey.key"));
socketHandler = new SocketHandler(getDescription().getVersion(), config.getBungeeHost(),
config.getBungeePort());
socketHandler = new SocketHandler(getDescription().getVersion(), config.getBungeeHost(), config.getBungeePort(),
encryptionHandler);
socketHandler.add(new SocketReceiver() {
@@ -81,7 +87,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)));
clientHandles.put(s,
new ClientHandler(d.getString("Host", ""), d.getInt("Port", 1298), encryptionHandler));
}
}
}
@@ -90,8 +97,10 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
config.load();
}
@EventHandler
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());
}
@@ -123,10 +132,10 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
ProxiedPlayer p = getProxy().getPlayer(name);
String server = "";
if (p.isConnected()) {
if (p != null && p.isConnected()) {
server = p.getServer().getInfo().getName();
} else {
server = p.getReconnectServer().getName();
server = config.getFallBack();
}
if (config.getBlockedServers().contains(server)) {
server = config.getFallBack();
@@ -134,9 +143,7 @@ public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listene
// mysql.update(uuid, "Proxy_Online", finalData, DataType.STRING);
sendServerMessageServer(server, "bungeevoteonline", uuid, name, service);
if (config.getBroadcast()) {
if (getProxy().getPlayer(name).isConnected()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
}
}
@@ -56,7 +56,7 @@ public class Config {
}
public boolean getSendToOnlineServer() {
return getData().getBoolean("SendVotesToAllServers");
return getData().getBoolean("SendToOnlineServer");
}
public String getBungeeHost() {
@@ -8,24 +8,29 @@ public class VotingPluginBungeeCommand extends Command {
private Bungee bungee;
public VotingPluginBungeeCommand(Bungee bungee) {
super("votingpluginbungee", "VotingPlugin.Admin");
super("votingpluginbungee", "votingplugin.admin");
this.bungee = bungee;
}
@Override
public void execute(CommandSender sender, String[] args) {
if (args.length > 0) {
if (args[0].equalsIgnoreCase("reload")) {
bungee.reload();
sender.sendMessage(new TextComponent("Reloading VotingPluginBungee"));
}
if (args[0].equalsIgnoreCase("vote")) {
if (args.length >= 2) {
String user = args[1];
String site = args[2];
bungee.saveVote(user, site);
if (sender.hasPermission("votingplugin.admin")) {
if (args.length > 0) {
if (args[0].equalsIgnoreCase("reload")) {
bungee.reload();
sender.sendMessage(new TextComponent("Reloading VotingPluginBungee"));
}
if (args[0].equalsIgnoreCase("vote")) {
if (args.length >= 2) {
String user = args[1];
String site = args[2];
bungee.saveVote(user, site);
sender.sendMessage(new TextComponent("Sending vote"));
}
}
}
} else {
sender.sendMessage(new TextComponent("You do not have permission to do this!"));
}
}
}