Compare commits

..
17 Commits
Author SHA1 Message Date
Ben12345rocks 78ca13fcb7 Update version number 2019-07-04 08:53:04 -04:00
Ben12345rocks 48d37045d2 Cleanup 2019-07-04 08:44:08 -04:00
Ben12345rocks 92e4ec5ddb Bug fix 2019-07-04 08:22:25 -04:00
Ben12345rocks 6d760e2c5b Add way of detecting if votifier loaded properly 2019-07-03 21:46:15 -04:00
Ben12345rocks ee4eb6d86c Add validator 2019-07-03 20:18:08 -04:00
Ben12345rocks 44cea60852 Improvement 2019-07-03 20:04:40 -04:00
Ben12345rocks 4f68c6677e Improvements 2019-07-03 14:40:07 -04:00
Ben12345rocks 018aa632c9 Bug fix 2019-07-02 08:17:43 -04:00
Ben12345rocks ac1f19817f Add limit for month total 2019-07-01 14:56:32 -04:00
Ben12345rocks 365ece55b1 Move commands over 2019-06-30 19:34:15 -04:00
Ben12345rocks 8bbbfc6c7c Update to 1.14.3 2019-06-24 20:45:10 -04:00
Ben12345rocks 5fb3c34745 Bug fix 2019-06-22 21:12:05 -04:00
Ben12345rocks 8f32a7fed8 Bug fix 2019-06-21 21:18:29 -04:00
Ben12345rocks 6a9a48fa81 Bug fixes 2019-06-21 20:59:50 -04:00
Ben12345rocks 2cd3ddf7e0 Use new api 2019-06-21 20:56:14 -04:00
Ben12345rocks c110a53494 Move placeholder api to advancedcore 2019-06-10 19:06:28 -04:00
Ben12345rocks 944ef03f80 Fixed bug with /av help 2019-06-08 21:48:32 -04:00
20 changed files with 448 additions and 454 deletions

No files matched your search

+8 -4
View File
@@ -4,7 +4,7 @@
# https://github.com/Ben12345rocks/VotingPlugin/wiki
# Valid Options:
# - SQLITE
# - SQLITE
# - FLAT
# - MYSQL
DataStorage: SQLITE
@@ -644,7 +644,7 @@ VoteParty:
# List of commands to execute, these only execute once.
# %player% does not work here
Commands: []
# Rewards to give
# Rewards to give per player
Rewards:
Commands:
- say %player%
@@ -659,7 +659,7 @@ ResetMilestonesMonthly: false
MileStones:
# Number of votes required
# Allows multiple milestones
# Number be be around ' (E.g. '1')
# Number be around ' (E.g. '1')
# Can have multiple listed here
'20':
Enabled: false
@@ -817,6 +817,9 @@ ClickSound:
Sound: 'UI_BUTTON_CLICK'
Volume: 1.0
Pitch: 1.0
# Limit monthly votes to number of days of a month multipled by the number of sites
LimitMonthlyVotes: false
# Debug
Debug: false
@@ -832,7 +835,8 @@ DebugInGame: false
# Will log debug messages to VotingPlugin/Log/log.txt
# Requires Debug to be on
LogDebugToFile: false
# Only needed for extra cases
#LogDebugToFile: false
# Options for request api
# Current methods
+40 -1
View File
@@ -1,5 +1,7 @@
VoteSites:
# VoteSite name
# VoteSite key
# Used for saving data for votesites
# Use a short name if you can
ExampleVoteSite:
# Enable voteSite
# If false, votesite will not be loaded by plugin
@@ -57,6 +59,43 @@ VoteSites:
# Send player a message
Messages:
Player: 'You voted'
# Site 2 example
Site2:
Enabled: false
Name: 'Site2'
ServiceSite: 'PlanetMinecraft.com'
VoteURL: 'link to vote URL here, used in /vote'
VoteDelay: 24
Item:
Material: 'DIAMOND'
Amount: 1
Rewards:
Commands:
- 'say hello'
# Advanced example
# 50% chance for reward1, if reward1 not given then 20% chance to get reward2, if reward2 not given then fallback
AdvancedPriority:
# Similar to priority, but no need to have to use reward files
# Add requirements under each reward
# Will go in order from list here and try to run each of the following rewards...
# This name can be anything, but they need to be different
Reward1:
Chance: 50
# Any other requirement here
# If any requirement fails, the next will be attempted
Messages:
Player: 'You got first reward'
Reward2:
Chance: 20
Messages:
Player: 'You got second reward'
# Fallback, 100% chance
Fallback:
Messages:
Player: 'You got unlucky'
Messages:
Player: 'You voted'
# Reward for any site
# Similar to AnySiteReward
+1 -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]
softdepend: [MVdWPlaceholders, Votifier]
api-version: 1.13
commands:
vote:
+2 -2
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.19</version>
<version>5.19.1</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -245,7 +245,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.14.2-R0.1-SNAPSHOT</version>
<version>1.14.3-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -14,7 +14,6 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandle;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
@@ -27,6 +26,7 @@ import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.ValueRequest;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.BooleanListener;
@@ -47,7 +47,6 @@ import com.Ben12345rocks.VotingPlugin.Test.VoteTester;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolders;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.google.common.collect.ListMultimap;
@@ -80,8 +79,6 @@ public class CommandLoader {
/** The plugin. */
static Main plugin = Main.plugin;
private Object pointLock = new Object();
/**
* Gets the single instance of CommandLoader.
*
@@ -91,6 +88,8 @@ public class CommandLoader {
return instance;
}
private Object pointLock = new Object();
/** The commands. */
private HashMap<String, CommandHandler> commands;
@@ -610,7 +609,7 @@ public class CommandLoader {
try {
sender.sendMessage("Starting to convert");
UserStorage prevStorage = UserStorage.valueOf(args[1].toUpperCase());
plugin.convertDataStorage(prevStorage, AdvancedCoreHook.getInstance().getStorageType());
plugin.convertDataStorage(prevStorage, Main.plugin.getStorageType());
sender.sendMessage("Finished converting!");
} catch (Exception ex) {
ex.printStackTrace();
@@ -686,19 +685,6 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "SetData", "(text)", "(text)" },
"VotingPlugin.Commands.AdminVote.SetData|" + adminPerm, "Set data") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.getData().setString(args[3], args[4]);
sender.sendMessage(StringUtils.getInstance()
.colorize("&cSet " + args[3] + " for " + args[1] + " to " + args[4]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "Vote", "(player)", "(Sitename)" },
"VotingPlugin.Commands.AdminVote.Vote|" + adminPerm, "Trigger manual vote") {
@@ -717,18 +703,6 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "User", "(Player)", "ViewData" },
"VotingPlugin.Commands.AdminVote.ViewData|" + adminPerm, "View playerdata") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
for (String key : user.getData().getKeys()) {
user.sendMessage("&c&l" + key + " &c" + user.getData().getString(key));
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(Player)", "ForceVote", "(Sitename)" },
"VotingPlugin.Commands.AdminVote.Vote|" + adminPerm, "Trigger manual vote") {
@@ -770,7 +744,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
AdvancedCoreHook.getInstance().getOptions().setDebug(true);
Main.plugin.getOptions().setDebug(true);
}
});
@@ -964,19 +938,19 @@ public class CommandLoader {
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "TestReward", "(Player)", "(reward)", "(number)" },
"VotingPlugin.Commands.AdminVote.TestReward|" + adminPerm, "Test reward times") {
@Override
public void execute(CommandSender sender, String[] args) {
VoteTester.getInstance().testRewards(Integer.parseInt(args[3]), args[1], args[2]);
if (isPlayer(sender)) {
sendMessage(sender, "&cSee console for details");
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "TestReward", "(Player)", "(reward)", "(number)" },
"VotingPlugin.Commands.AdminVote.TestReward|" + adminPerm, "Test reward times") {
@Override
public void execute(CommandSender sender, String[] args) {
VoteTester.getInstance().testRewards(Integer.parseInt(args[3]), args[1], args[2]);
if (isPlayer(sender)) {
sendMessage(sender, "&cSee console for details");
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "Placeholders" },
@@ -987,7 +961,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&cPlaceholders:");
for (PlaceHolder placeholder : PlaceHolders.getInstance().getPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "#";
@@ -999,7 +973,7 @@ public class CommandLoader {
}
}
for (PlaceHolder placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "#";
@@ -1090,7 +1064,7 @@ public class CommandLoader {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&cPlaceholders:");
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
for (PlaceHolder placeholder : PlaceHolders.getInstance().getPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "1";
@@ -1099,7 +1073,7 @@ public class CommandLoader {
+ placeholder.placeholderRequest(user.getOfflinePlayer(), user, identifier));
}
for (PlaceHolder placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "1";
@@ -17,7 +17,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.TimeChecker.TimeChecker;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
@@ -101,7 +100,7 @@ public class Commands {
msg.add(StringUtils.getInstance().stringToComp("&3&l() = Needed"));
msg.add(StringUtils.getInstance().stringToComp("&3&lAliases: adminvote, av"));
for (int i = pagesize * page; (i < text.size()) && (i < ((page + 1) * pagesize) - 1); i++) {
for (int i = pagesize * page; (i < text.size()) && (i < ((page + 1) * pagesize)); i++) {
msg.add(text.get(i));
}
@@ -323,7 +322,7 @@ public class Commands {
* the page
*/
public void sendTopVoterAllTimeScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.AllTime).keySet());
@@ -363,7 +362,7 @@ public class Commands {
* the page
*/
public void sendTopVoterDailyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
@@ -403,7 +402,7 @@ public class Commands {
* the page
*/
public void sendTopVoterMonthlyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Monthly).keySet());
@@ -443,7 +442,7 @@ public class Commands {
* the page
*/
public void sendTopVoterWeeklyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
@@ -484,7 +483,7 @@ public class Commands {
* the page
*/
public void sendVoteTodayScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
String[] voteToday = voteToday();
@@ -735,7 +734,7 @@ public class Commands {
long time = user.getTime(voteSite);
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(AdvancedCoreHook.getInstance().getOptions().getTimeHourOffSet());
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
@@ -12,7 +12,6 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
@@ -111,8 +110,7 @@ public class PlayerGUIs {
&& !player.hasPermission("VotingPlugin.Mod"))
|| (!player.hasPermission("VotingPlugin.Commands.Vote.GUI")
&& !player.hasPermission("VotingPlugin.Player"))) {
player.sendMessage(
StringUtils.getInstance().colorize(AdvancedCoreHook.getInstance().getOptions().getFormatNoPerms()));
player.sendMessage(StringUtils.getInstance().colorize(Main.plugin.getOptions().getFormatNoPerms()));
return;
}
setSelectedPlayer(player, user);
@@ -264,6 +264,10 @@ public class Config extends YMLFile {
@Getter
private boolean allowVotePointTransfers = false;
@ConfigDataBoolean(path = "LimitMonthlyVotes")
@Getter
private boolean limitMonthlyVotes = false;
@Getter
private int formatPageSize = 10;
@@ -9,11 +9,11 @@ import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteCoolDownEndEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
@@ -52,9 +52,22 @@ public class CoolDownCheck implements Listener {
CoolDownCheck.plugin = plugin;
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChangeEnd(DateChangedEvent event) {
checkAll();
public void checkAll() {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
if (Main.plugin != null) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getUserData().hasData() && user.hasLoggedOnBefore()) {
user.checkCoolDownEvents();
}
}
}
}
});
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -64,20 +77,8 @@ public class CoolDownCheck implements Listener {
new RewardOptions().addPlaceholder("Votesite", event.getVoteSite().getDisplayName()));
}
public void checkAll() {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = new User(new UUID(uuid));
if (user.getUserData().hasData() && user.hasLoggedOnBefore()) {
user.checkCoolDownEvents();
}
}
}
});
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChangeEnd(DateChangedEvent event) {
checkAll();
}
}
@@ -5,7 +5,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -40,8 +39,8 @@ public class PlayerJoinEvent implements Listener {
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(AdvancedCoreLoginEvent event) {
if (event.getPlayer() == null || (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() == null)) {
if (event.getPlayer() == null
|| (Main.plugin.getStorageType().equals(UserStorage.MYSQL) && Main.plugin.getMysql() == null)) {
return;
}
Player player = event.getPlayer();
@@ -6,7 +6,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -119,8 +118,7 @@ public class PlayerVoteListener implements Listener {
// check if player has voted on all sites in one day
if ((user.isOnline() || voteSite.isGiveOffline())
&& AdvancedCoreHook.getInstance().getOptions().isProcessRewards()) {
if ((user.isOnline() || voteSite.isGiveOffline()) && Main.plugin.getOptions().isProcessRewards()) {
user.playerVote(voteSite, true, false);
user.closeInv();
} else {
@@ -18,19 +18,21 @@ import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.AdvancedCorePlugin;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInject;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectInt;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectValidator;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
@@ -73,6 +75,7 @@ import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.MVdWPlaceholders;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolders;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.Ben12345rocks.VotingPlugin.VoteReminding.VoteReminding;
import com.vexsoftware.votifier.Votifier;
import lombok.Getter;
import lombok.Setter;
@@ -80,7 +83,7 @@ import lombok.Setter;
/**
* The Class Main.
*/
public class Main extends JavaPlugin {
public class Main extends AdvancedCorePlugin {
/** The config. */
public static Config config;
@@ -126,10 +129,6 @@ public class Main extends JavaPlugin {
@Getter
private boolean updateStarted = false;
public AdvancedCoreHook getAdvancedCoreHook() {
return AdvancedCoreHook.getInstance();
}
/**
* Check votifier.
*/
@@ -142,26 +141,37 @@ public class Main extends JavaPlugin {
}
}
private boolean checkVotifierLoaded() {
try {
Class.forName("com.vexsoftware.votifier.Votifier");
if (Votifier.getInstance().getVoteReceiver() == null) {
return false;
}
} catch (ClassNotFoundException e) {
debug("Using NuVotiifer?");
}
return true;
}
public void convertDataStorage(UserStorage from, UserStorage to) {
if (from == null || to == null) {
throw new RuntimeException("Invalid Storage Method");
}
UserStorage cur = AdvancedCoreHook.getInstance().getStorageType();
AdvancedCoreHook.getInstance().getOptions().setStorageType(from);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
UserStorage cur = getStorageType();
getOptions().setStorageType(from);
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
ArrayList<String> uuids = new ArrayList<String>(UserManager.getInstance().getAllUUIDs());
while (uuids.size() > 0) {
HashMap<User, HashMap<String, String>> data = new HashMap<User, HashMap<String, String>>();
AdvancedCoreHook.getInstance().getOptions().setStorageType(from);
// AdvancedCoreHook.getInstance().setStorageType(to);
getOptions().setStorageType(from);
loadUserAPI(getOptions().getStorageType());
// setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
ArrayList<String> converted = new ArrayList<String>();
@@ -183,7 +193,7 @@ public class Main extends JavaPlugin {
data.put(user, values);
debug("[Convert] Added " + uuid);
} catch (Exception e) {
AdvancedCoreHook.getInstance().debug(e);
debug(e);
plugin.getLogger().warning("Exception occoured for '" + uuid + "': " + e.getMessage()
+ ", turn debug on to see full stack traces");
}
@@ -199,17 +209,17 @@ public class Main extends JavaPlugin {
plugin.getLogger()
.info("Finished getting data from " + from.toString() + " Converting " + data.size() + " users");
AdvancedCoreHook.getInstance().getOptions().setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
getOptions().setStorageType(to);
loadUserAPI(getOptions().getStorageType());
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
writeConvertData(data);
}
AdvancedCoreHook.getInstance().getOptions().setStorageType(cur);
AdvancedCoreHook.getInstance().reload();
getOptions().setStorageType(cur);
reload();
plugin.getLogger().info("Finished convertting");
}
@@ -218,16 +228,6 @@ public class Main extends JavaPlugin {
return new ArrayList<User>(set);
}
/**
* Debug.
*
* @param message
* the message
*/
public void debug(String message) {
AdvancedCoreHook.getInstance().debug(plugin, message);
}
public LinkedHashMap<User, Integer> getTopVoter(TopVoter top) {
return topVoter.get(top);
}
@@ -243,10 +243,6 @@ public class Main extends JavaPlugin {
return UserManager.getInstance().getVotingPluginUser(uuid);
}
public UserManager getUserManager() {
return UserManager.getInstance();
}
public VoteParty getVoteParty() {
return VoteParty.getInstance();
}
@@ -332,6 +328,10 @@ public class Main extends JavaPlugin {
}
public UserManager getVotingPluginUserManager() {
return UserManager.getInstance();
}
public boolean hasVoteSite(String site) {
String siteName = getVoteSiteName(site);
for (VoteSite voteSite : getVoteSites()) {
@@ -347,7 +347,7 @@ public class Main extends JavaPlugin {
@Override
public void run() {
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
getTimer().schedule(new TimerTask() {
@Override
public void run() {
@@ -359,7 +359,7 @@ public class Main extends JavaPlugin {
}
}, 1000, 1000 * 60 * Config.getInstance().getDelayBetweenUpdates());
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
getTimer().schedule(new TimerTask() {
@Override
public void run() {
@@ -589,7 +589,7 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
return "" + AdvancedCoreHook.getInstance().getOptions().isSendScoreboards();
return "" + getOptions().isSendScoreboards();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("numberofuser") {
@@ -608,14 +608,14 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
return AdvancedCoreHook.getInstance().getOptions().getStorageType().toString();
return getOptions().getStorageType().toString();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("DisableCheckOnWorldChange") {
@Override
public String getValue() {
return "" + AdvancedCoreHook.getInstance().getOptions().isDisableCheckOnWorldChange();
return "" + getOptions().isDisableCheckOnWorldChange();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("votereminding_enabled") {
@@ -704,44 +704,8 @@ public class Main extends JavaPlugin {
});
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onDisable()
*/
@Override
public void onDisable() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onEnable()
*/
@Override
public void onEnable() {
plugin = this;
// disable plugin for older versions below 1.12
if (NMSManager.getInstance().isVersion("1.7", "1.8", "1.9", "1.10", "1.11", "1.12")) {
plugin.getLogger().severe("Detected running " + NMSManager.getInstance().getVersion()
+ ", this version is not supported on this build. Disabling");
Bukkit.getPluginManager().disablePlugin(plugin);
return;
}
setupFiles();
loadVoteSites();
AdvancedCoreHook.getInstance().setJenkinsSite("ben12345rocks.com");
updateAdvancedCoreHook();
AdvancedCoreHook.getInstance().loadHook(this);
public void onPostLoad() {
registerCommands();
registerEvents();
checkVotifier();
@@ -777,14 +741,14 @@ public class Main extends JavaPlugin {
metrics();
// javascript api
AdvancedCoreHook.getInstance().getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
@Override
public Object getObject(OfflinePlayer player) {
return getUserManager().getVotingPluginUser(player);
return getVotingPluginUserManager().getVotingPluginUser(player);
}
});
AdvancedCoreHook.getInstance().getJavascriptEngine().put("VotingPluginHooks", VotingPluginHooks.getInstance());
getJavascriptEngine().put("VotingPluginHooks", VotingPluginHooks.getInstance());
loadTimer();
@@ -797,30 +761,30 @@ public class Main extends JavaPlugin {
}
// set columns
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Reminded", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("PlayerName", "VARCHAR(30)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Points", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MileStoneTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
if (getStorageType().equals(UserStorage.MYSQL)) {
getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
getMysql().alterColumnType("Reminded", "VARCHAR(5)");
getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
getMysql().alterColumnType("PlayerName", "VARCHAR(30)");
getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("Points", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("MileStoneTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
}
RewardHandler.getInstance().addInjectedReward(new RewardInjectInt("Points", 0) {
@@ -839,7 +803,15 @@ public class Main extends JavaPlugin {
Reward reward = (Reward) getInv().getData("Reward");
reward.getConfig().set("Points", value.intValue());
}
})));
})).validator(new RewardInjectValidator() {
@Override
public void onValidate(Reward reward, RewardInject inject, ConfigurationSection data) {
if (data.getInt(inject.getPath(), -1) == 0) {
warning(reward, inject, "Points can not be 0");
}
}
}));
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
@@ -878,6 +850,56 @@ public class Main extends JavaPlugin {
}
}, 30l);
}
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (!checkVotifierLoaded()) {
plugin.getLogger().warning("Detected votifier not loaded properly, check startup for details");
}
}
});
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onEnable()
*/
@Override
public void onPreLoad() {
plugin = this;
// disable plugin for older versions below 1.12
if (NMSManager.getInstance().isVersion("1.7", "1.8", "1.9", "1.10", "1.11", "1.12")) {
plugin.getLogger().severe("Detected running " + NMSManager.getInstance().getVersion()
+ ", this version is not supported on this build. Disabling");
Bukkit.getPluginManager().disablePlugin(plugin);
return;
}
setupFiles();
loadVoteSites();
setJenkinsSite("ben12345rocks.com");
updateAdvancedCoreHook();
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onDisable()
*/
@Override
public void onUnLoad() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
/**
@@ -936,6 +958,7 @@ public class Main extends JavaPlugin {
/**
* Reload.
*/
@Override
public void reload() {
setUpdate(true);
config.reloadData();
@@ -943,10 +966,17 @@ public class Main extends JavaPlugin {
configVoteSites.reloadData();
updateAdvancedCoreHook();
plugin.loadVoteSites();
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
AdvancedCoreHook.getInstance().reload();
reloadAdvancedCore();
PlaceHolders.getInstance().load();
CoolDownCheck.getInstance().checkAll();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
update();
}
});
}
private void setupFiles() {
@@ -996,14 +1026,14 @@ public class Main extends JavaPlugin {
update = false;
synchronized (plugin) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
if (getStorageType().equals(UserStorage.MYSQL)) {
if (getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else if (Config.getInstance().isClearCacheOnUpdate()) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
getMysql().clearCache();
} else {
AdvancedCoreHook.getInstance().getMysql().clearCacheBasic();
getMysql().clearCacheBasic();
}
}
@@ -1016,7 +1046,7 @@ public class Main extends JavaPlugin {
if (uuid != null && !uuid.isEmpty()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
users.add(user);
// AdvancedCoreHook.getInstance().extraDebug("Loading " + uuid);
// extraDebug("Loading " + uuid);
// java.lang.Thread.sleep(5000);
}
}
@@ -1047,13 +1077,13 @@ public class Main extends JavaPlugin {
}
public void updateAdvancedCoreHook() {
AdvancedCoreHook.getInstance().getJavascriptEngine().put("VotingPlugin", this);
AdvancedCoreHook.getInstance().allowDownloadingFromSpigot(15358);
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
getJavascriptEngine().put("VotingPlugin", this);
allowDownloadingFromSpigot(15358);
setConfigData(Config.getInstance().getData());
}
private void writeConvertData(HashMap<User, HashMap<String, String>> data) {
boolean checkInt = AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL);
boolean checkInt = getStorageType().equals(UserStorage.MYSQL);
for (Entry<User, HashMap<String, String>> entry : data.entrySet()) {
try {
for (Entry<String, String> values : entry.getValue().entrySet()) {
@@ -14,7 +14,6 @@ import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
@@ -115,47 +114,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
setOfflineVotes(offlineVotes);
}
public boolean hasPercentageTotal(TopVoter top, double percentage, LocalDateTime time) {
int total = getTotal(top);
switch (top) {
case Daily:
return total / plugin.getVoteSites().size() * 100 > percentage;
case Monthly:
return total / (plugin.getVoteSites().size() * time.getMonth().length(false)) * 100 > percentage;
case Weekly:
return total / (plugin.getVoteSites().size() * 7) * 100 > percentage;
default:
return false;
}
}
public void checkDayVoteStreak() {
if (!voteStreakUpdatedToday(LocalDateTime.now())) {
if (!Config.getInstance().isVoteStreakRequirementUsePercentage()
|| hasPercentageTotal(TopVoter.Daily, Config.getInstance().getVoteStreakRequirementDay(), null)) {
addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(this, "Day");
setDayVoteStreakLastUpdate(System.currentTimeMillis());
}
}
}
public boolean voteStreakUpdatedToday(LocalDateTime time) {
return MiscUtils.getInstance().getTime(getDayVoteStreakLastUpdate()).getDayOfYear() == time.getDayOfYear();
}
public long getDayVoteStreakLastUpdate() {
String str = getData().getString("DayVoteStreakLastUpdate");
if (str.isEmpty()) {
return 0;
}
return Long.parseLong(str);
}
public void setDayVoteStreakLastUpdate(long time) {
getData().setString("DayVoteStreakLastUpdate", "" + time);
}
/**
* Adds the points.
*/
@@ -245,7 +203,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(AdvancedCoreHook.getInstance().getOptions().getTimeHourOffSet());
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
@@ -304,6 +262,28 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return true;
}
public void checkCoolDownEvents() {
for (VoteSite site : plugin.getVoteSites()) {
if (canVoteSite(site) != getLastCoolDownCheck(site)) {
plugin.debug(getPlayerName() + " vote cooldown ended: " + site.getKey());
PlayerVoteCoolDownEndEvent event = new PlayerVoteCoolDownEndEvent(this, site);
plugin.getServer().getPluginManager().callEvent(event);
setLastVoteCoolDownCheck(true, site);
}
}
}
public void checkDayVoteStreak() {
if (!voteStreakUpdatedToday(LocalDateTime.now())) {
if (!Config.getInstance().isVoteStreakRequirementUsePercentage()
|| hasPercentageTotal(TopVoter.Daily, Config.getInstance().getVoteStreakRequirementDay(), null)) {
addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(this, "Day");
setDayVoteStreakLastUpdate(System.currentTimeMillis());
}
}
}
public void clearOfflineRewards() {
setOfflineVotes(new ArrayList<String>());
setOfflineRewards(new ArrayList<String>());
@@ -338,65 +318,18 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return getUserData().getInt("DailyTotal");
}
public void setLastVoteCoolDownCheck(boolean lastDelay, VoteSite voteSite) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
array.put(voteSite, Boolean.valueOf(lastDelay));
setLastCoolDownCheckArray(array);
}
public void setLastCoolDownCheckArray(HashMap<VoteSite, Boolean> lastVotesCheck) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Boolean> entry : lastVotesCheck.entrySet()) {
String str = entry.getKey().getKey() + "//" + entry.getValue().booleanValue();
data.add(str);
}
getUserData().setStringList("LastVoteCoolDownCheck", data);
}
public HashMap<VoteSite, Boolean> getLastCoolDownCheckArray() {
HashMap<VoteSite, Boolean> lastVotesCheck = new HashMap<VoteSite, Boolean>();
ArrayList<String> LastVotesCheckList = getUserData().getStringList("LastVoteCoolDownCheck");
for (String str : LastVotesCheckList) {
String[] data = str.split("//");
if (data.length > 1 && plugin.hasVoteSite(data[0])) {
VoteSite site = plugin.getVoteSite(data[0]);
if (site != null) {
Boolean value = Boolean.FALSE;
try {
value = Boolean.valueOf(data[1]);
} catch (NumberFormatException e) {
plugin.debug("Not value: " + data[1]);
}
lastVotesCheck.put(site, value);
}
}
}
return lastVotesCheck;
}
public boolean getLastCoolDownCheck(VoteSite site) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
if (array.containsKey(site)) {
return array.get(site).booleanValue();
}
return true;
}
public void checkCoolDownEvents() {
for (VoteSite site : plugin.getVoteSites()) {
if (canVoteSite(site) != getLastCoolDownCheck(site)) {
plugin.debug(getPlayerName() + " vote cooldown ended: " + site.getKey());
PlayerVoteCoolDownEndEvent event = new PlayerVoteCoolDownEndEvent(this, site);
plugin.getServer().getPluginManager().callEvent(event);
setLastVoteCoolDownCheck(true, site);
}
}
}
public int getDayVoteStreak() {
return getData().getInt("DayVoteStreak");
}
public long getDayVoteStreakLastUpdate() {
String str = getData().getString("DayVoteStreakLastUpdate");
if (str.isEmpty()) {
return 0;
}
return Long.parseLong(str);
}
public boolean getDisableBroadcast() {
return getUserData().getBoolean("DisableBroadcast");
}
@@ -426,6 +359,35 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return getData().getInt("HighestWeeklyTotal");
}
public boolean getLastCoolDownCheck(VoteSite site) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
if (array.containsKey(site)) {
return array.get(site).booleanValue();
}
return true;
}
public HashMap<VoteSite, Boolean> getLastCoolDownCheckArray() {
HashMap<VoteSite, Boolean> lastVotesCheck = new HashMap<VoteSite, Boolean>();
ArrayList<String> LastVotesCheckList = getUserData().getStringList("LastVoteCoolDownCheck");
for (String str : LastVotesCheckList) {
String[] data = str.split("//");
if (data.length > 1 && plugin.hasVoteSite(data[0])) {
VoteSite site = plugin.getVoteSite(data[0]);
if (site != null) {
Boolean value = Boolean.FALSE;
try {
value = Boolean.valueOf(data[1]);
} catch (NumberFormatException e) {
plugin.debug("Not value: " + data[1]);
}
lastVotesCheck.put(site, value);
}
}
}
return lastVotesCheck;
}
public int getLastMonthTotal() {
return getData().getInt("LastMonthTotal");
}
@@ -639,6 +601,20 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return false;
}
public boolean hasPercentageTotal(TopVoter top, double percentage, LocalDateTime time) {
int total = getTotal(top);
switch (top) {
case Daily:
return total / plugin.getVoteSites().size() * 100 > percentage;
case Monthly:
return total / (plugin.getVoteSites().size() * time.getMonth().length(false)) * 100 > percentage;
case Weekly:
return total / (plugin.getVoteSites().size() * 7) * 100 > percentage;
default:
return false;
}
}
public boolean isReminded() {
return getUserData().getBoolean("Reminded");
}
@@ -660,11 +636,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
* Off vote.
*/
public void offVote() {
if (!AdvancedCoreHook.getInstance().getOptions().isProcessRewards()) {
AdvancedCoreHook.getInstance().debug("Processing rewards is disabled");
if (!Main.plugin.getOptions().isProcessRewards()) {
Main.plugin.debug("Processing rewards is disabled");
return;
}
AdvancedCoreHook.getInstance().extraDebug("Checking offline vote site votes");
Main.plugin.extraDebug("Checking offline vote site votes");
Player player = getPlayer();
if (player != null) {
boolean topVoterIngorePerm = player.hasPermission("VotingPlugin.TopVoter.Ignore");
@@ -745,7 +721,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setAllTimeTotal(int allTimeTotal) {
getUserData().setInt("AllTimeTotal", allTimeTotal);
setTotal(TopVoter.AllTime, allTimeTotal);
}
public void setBestDayVoteStreak(int streak) {
@@ -762,7 +738,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setDailyTotal(int total) {
getUserData().setInt("DailyTotal", total);
setTotal(TopVoter.Daily, total);
}
public void setDayVoteStreak(int streak) {
@@ -772,6 +748,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
}
public void setDayVoteStreakLastUpdate(long time) {
getData().setString("DayVoteStreakLastUpdate", "" + time);
}
public void setDisableBroadcast(boolean value) {
getUserData().setBoolean("DisableBroadcast", value);
}
@@ -803,10 +783,25 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
getData().setInt("HighestWeeklyTotal", total);
}
public void setLastCoolDownCheckArray(HashMap<VoteSite, Boolean> lastVotesCheck) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Boolean> entry : lastVotesCheck.entrySet()) {
String str = entry.getKey().getKey() + "//" + entry.getValue().booleanValue();
data.add(str);
}
getUserData().setStringList("LastVoteCoolDownCheck", data);
}
public void setLastMonthTotal(int total) {
getData().setInt("LastMonthTotal", total);
}
public void setLastVoteCoolDownCheck(boolean lastDelay, VoteSite voteSite) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
array.put(voteSite, Boolean.valueOf(lastDelay));
setLastCoolDownCheckArray(array);
}
public void setLastVotes(HashMap<VoteSite, Long> lastVotes) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Long> entry : lastVotes.entrySet()) {
@@ -822,7 +817,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setMonthTotal(int total) {
getData().setInt("MonthTotal", total);
setTotal(TopVoter.Monthly, total);
}
public void setMonthVoteStreak(int streak) {
@@ -877,6 +872,12 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
getUserData().setInt("DailyTotal", value);
break;
case Monthly:
if (Config.getInstance().isLimitMonthlyVotes()) {
int days = TimeChecker.getInstance().getTime().getMonth().maxLength();
if (value > days) {
value = days * plugin.getVoteSites().size();
}
}
getData().setInt("MonthTotal", value);
break;
case Weekly:
@@ -898,7 +899,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setWeeklyTotal(int total) {
getUserData().setInt("WeeklyTotal", total);
setTotal(TopVoter.Weekly, total);
}
public void setWeekVoteStreak(int streak) {
@@ -918,4 +919,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return true;
}
public boolean voteStreakUpdatedToday(LocalDateTime time) {
return MiscUtils.getInstance().getTime(getDayVoteStreakLastUpdate()).getDayOfYear() == time.getDayOfYear();
}
}
@@ -11,7 +11,6 @@ import org.bukkit.block.Sign;
import org.bukkit.block.Skull;
import org.bukkit.block.data.Directional;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -251,7 +250,7 @@ public class SignHandler {
}
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
}
}, delay);
@@ -2,7 +2,6 @@ package com.Ben12345rocks.VotingPlugin.Test;
import java.util.ArrayList;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
@@ -21,31 +20,6 @@ public class VoteTester {
private Main plugin = Main.plugin;
public void testVotes(int amount, String name, String site) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerVote = new ArrayList<Long>();
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(site), name,
plugin.getVoteSiteServiceSite(site), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
long start2 = System.currentTimeMillis();
timesPerVote.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerVote) {
timeTotal += t.longValue();
}
long timePerVoteAvg = timeTotal / timesPerVote.size();
Main.plugin.getLogger()
.info("Time to process votes (" + amount + "): " + time + " ms, average per vote " + timePerVoteAvg
+ " ms. " + AdvancedCoreHook.getInstance().getStorageType() + ", "
+ UserManager.getInstance().getAllUUIDs().size() + " users. "
+ Main.plugin.getVoteSites().size() + " votesites");
}
public void testRewards(int amount, String name, String rewardName) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerReward = new ArrayList<Long>();
@@ -69,8 +43,32 @@ public class VoteTester {
}
long timePerRewardAvg = timeTotal / timesPerReward.size();
Main.plugin.getLogger().info("Time to process rewards (" + amount + "): " + time + " ms, average per reward "
+ timePerRewardAvg + " ms. " + AdvancedCoreHook.getInstance().getStorageType() + ", "
+ timePerRewardAvg + " ms. " + Main.plugin.getStorageType() + ", "
+ UserManager.getInstance().getAllUUIDs().size() + " users. " + rewardsGiven + " rewards given");
}
public void testVotes(int amount, String name, String site) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerVote = new ArrayList<Long>();
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(site), name,
plugin.getVoteSiteServiceSite(site), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
long start2 = System.currentTimeMillis();
timesPerVote.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerVote) {
timeTotal += t.longValue();
}
long timePerVoteAvg = timeTotal / timesPerVote.size();
Main.plugin.getLogger()
.info("Time to process votes (" + amount + "): " + time + " ms, average per vote " + timePerVoteAvg
+ " ms. " + Main.plugin.getStorageType() + ", " + UserManager.getInstance().getAllUUIDs().size()
+ " users. " + Main.plugin.getVoteSites().size() + " votesites");
}
}
@@ -16,7 +16,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.MonthChangeEvent;
@@ -462,7 +461,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
@@ -489,7 +488,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", users.get(i).getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Monthly).get(users.get(i)));
msg.add(line);
@@ -515,7 +514,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
@@ -2,7 +2,9 @@ package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import be.maximvdw.placeholderapi.PlaceholderAPI;
@@ -49,7 +51,7 @@ public class MVdWPlaceholders {
public void loadMVdWPlaceholders() {
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
// The plugin is enabled
for (final PlaceHolder place : PlaceHolders.getInstance().getPlaceholders()) {
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@@ -66,7 +68,7 @@ public class MVdWPlaceholders {
}
for (final PlaceHolder place : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@@ -1,56 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.OfflinePlayer;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
public abstract class PlaceHolder {
@Getter
private String identifier;
@Getter
private boolean useStartsWith = false;
@Getter
private String description;
public PlaceHolder(String identifier) {
this.identifier = identifier;
}
public PlaceHolder(String identifier, boolean useStartsWith) {
this.identifier = identifier;
this.useStartsWith = useStartsWith;
}
public boolean hasDescription() {
return description != null;
}
public boolean matches(String identifier) {
if (isUseStartsWith()) {
if (StringUtils.getInstance().startsWithIgnoreCase(identifier, getIdentifier())) {
return true;
}
} else {
if (getIdentifier().equalsIgnoreCase(identifier)) {
return true;
}
}
return false;
}
public abstract String placeholderRequest(OfflinePlayer p, User user, String identifier);
public PlaceHolder useStartsWith() {
useStartsWith = true;
return this;
}
public PlaceHolder withDescription(String desc) {
description = desc;
return this;
}
}
@@ -7,6 +7,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
@@ -40,10 +41,10 @@ public class PlaceHolders {
}
@Getter
private ArrayList<PlaceHolder> placeholders = new ArrayList<PlaceHolder>();
private ArrayList<PlaceHolder<User>> placeholders = new ArrayList<PlaceHolder<User>>();
@Getter
private ArrayList<PlaceHolder> nonPlayerPlaceholders = new ArrayList<PlaceHolder>();
private ArrayList<PlaceHolder<User>> nonPlayerPlaceholders = new ArrayList<PlaceHolder<User>>();
/**
* Instantiates a new place holders.
@@ -64,7 +65,7 @@ public class PlaceHolders {
public String getPlaceHolder(OfflinePlayer p, String identifier) {
identifier = StringUtils.getInstance().replaceJavascript(p, identifier);
for (PlaceHolder placeholder : nonPlayerPlaceholders) {
for (PlaceHolder<User> placeholder : nonPlayerPlaceholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, null, identifier);
}
@@ -72,7 +73,7 @@ public class PlaceHolders {
User user = UserManager.getInstance().getVotingPluginUser(p);
for (PlaceHolder placeholder : placeholders) {
for (PlaceHolder<User> placeholder : placeholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, user, identifier);
}
@@ -91,7 +92,7 @@ public class PlaceHolders {
nonPlayerPlaceholders.clear();
// older placeholders, might be removed in the future
placeholders.add(new PlaceHolder("total") {
placeholders.add(new PlaceHolder<User>("total") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -99,7 +100,7 @@ public class PlaceHolders {
}
}.withDescription("Month total"));
placeholders.add(new PlaceHolder("alltimetotal") {
placeholders.add(new PlaceHolder<User>("alltimetotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -107,7 +108,7 @@ public class PlaceHolders {
}
}.withDescription("Alltime total"));
placeholders.add(new PlaceHolder("lastmonthtotal") {
placeholders.add(new PlaceHolder<User>("lastmonthtotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -117,7 +118,7 @@ public class PlaceHolders {
// end of older placeholders
placeholders.add(new PlaceHolder("DisableBroadcast") {
placeholders.add(new PlaceHolder<User>("DisableBroadcast") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -125,7 +126,7 @@ public class PlaceHolders {
}
}.withDescription("Returns true/false if user has broadcast disabled"));
placeholders.add(new PlaceHolder("MilestoneCount") {
placeholders.add(new PlaceHolder<User>("MilestoneCount") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -135,7 +136,7 @@ public class PlaceHolders {
for (final String identifier : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getIdentifierLimit(identifier) > 0) {
placeholders.add(new PlaceHolder("VoteShopLimit_" + identifier) {
placeholders.add(new PlaceHolder<User>("VoteShopLimit_" + identifier) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String ident) {
@@ -146,7 +147,7 @@ public class PlaceHolders {
}
for (final TopVoter top : TopVoter.values()) {
placeholders.add(new PlaceHolder("Total_" + top.toString()) {
placeholders.add(new PlaceHolder<User>("Total_" + top.toString()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -155,7 +156,7 @@ public class PlaceHolders {
}.withDescription("User total for " + top.getName()));
}
placeholders.add(new PlaceHolder("BestDailyTotal") {
placeholders.add(new PlaceHolder<User>("BestDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -163,7 +164,7 @@ public class PlaceHolders {
}
}.withDescription("Best daily total"));
placeholders.add(new PlaceHolder("BestWeeklyTotal") {
placeholders.add(new PlaceHolder<User>("BestWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -171,7 +172,7 @@ public class PlaceHolders {
}
}.withDescription("Best weekly total"));
placeholders.add(new PlaceHolder("BestMonthlyTotal") {
placeholders.add(new PlaceHolder<User>("BestMonthlyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -179,7 +180,7 @@ public class PlaceHolders {
}
}.withDescription("Best monthly total"));
placeholders.add(new PlaceHolder("DailyVoteStreak") {
placeholders.add(new PlaceHolder<User>("DailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -187,7 +188,7 @@ public class PlaceHolders {
}
}.withDescription("Current daily votestreak"));
placeholders.add(new PlaceHolder("WeeklyVoteStreak") {
placeholders.add(new PlaceHolder<User>("WeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -195,7 +196,7 @@ public class PlaceHolders {
}
}.withDescription("Current weekly votestreak"));
placeholders.add(new PlaceHolder("MonthVoteStreak") {
placeholders.add(new PlaceHolder<User>("MonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -203,7 +204,7 @@ public class PlaceHolders {
}
}.withDescription("Current month votestreak"));
placeholders.add(new PlaceHolder("BestDailyVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestDailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -211,7 +212,7 @@ public class PlaceHolders {
}
}.withDescription("Best daily votestreak"));
placeholders.add(new PlaceHolder("BestWeeklyVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestWeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -219,7 +220,7 @@ public class PlaceHolders {
}
}.withDescription("Best weekly votestreak"));
placeholders.add(new PlaceHolder("BestMonthVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestMonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -227,7 +228,7 @@ public class PlaceHolders {
}
}.withDescription("Best month votestreak"));
placeholders.add(new PlaceHolder("Points") {
placeholders.add(new PlaceHolder<User>("Points") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -235,7 +236,7 @@ public class PlaceHolders {
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder("CanVote") {
placeholders.add(new PlaceHolder<User>("CanVote") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -244,21 +245,21 @@ public class PlaceHolders {
}.withDescription("Return true/false if player can vote on all sites"));
for (final VoteSite voteSite : plugin.getVoteSites()) {
placeholders.add(new PlaceHolder("Next_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("Next_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandNextInfo(user, voteSite);
}
}.withDescription("How long until user can vote on " + voteSite.getKey()));
placeholders.add(new PlaceHolder("Last_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("Last_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandLastDuration(user, voteSite);
}
}.withDescription("How long ago user voted on " + voteSite.getKey()));
placeholders.add(new PlaceHolder("CanVote_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("CanVote_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -267,7 +268,7 @@ public class PlaceHolders {
}.withDescription("Whether or not player can vote on " + voteSite.getKey()));
}
placeholders.add(new PlaceHolder("Top_All_Position") {
placeholders.add(new PlaceHolder<User>("Top_All_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -282,7 +283,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_AllVotes_") {
placeholders.add(new PlaceHolder<User>("Top_AllVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -298,7 +299,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_All_") {
placeholders.add(new PlaceHolder<User>("Top_All_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -314,7 +315,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_Month_Position") {
placeholders.add(new PlaceHolder<User>("Top_Month_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -329,7 +330,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Month_") {
placeholders.add(new PlaceHolder<User>("Top_Month_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -345,7 +346,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at position in top voter"));
placeholders.add(new PlaceHolder("Top_MonthVotes_") {
placeholders.add(new PlaceHolder<User>("Top_MonthVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -361,7 +362,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Week_Position") {
placeholders.add(new PlaceHolder<User>("Top_Week_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -376,7 +377,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Week_") {
placeholders.add(new PlaceHolder<User>("Top_Week_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -392,7 +393,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_WeekVotes_") {
placeholders.add(new PlaceHolder<User>("Top_WeekVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -408,7 +409,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Daily_Position") {
placeholders.add(new PlaceHolder<User>("Top_Daily_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -423,7 +424,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Daily_") {
placeholders.add(new PlaceHolder<User>("Top_Daily_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -439,7 +440,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_DailyVotes_") {
placeholders.add(new PlaceHolder<User>("Top_DailyVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -457,7 +458,7 @@ public class PlaceHolders {
// non players
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesCurrent") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesCurrent") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -465,7 +466,7 @@ public class PlaceHolders {
}
}.withDescription("Current amount of voteparty votes"));
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesNeeded") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesNeeded") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -473,7 +474,7 @@ public class PlaceHolders {
}
}.withDescription("Voteparty votes needed"));
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesRequired") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesRequired") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -481,7 +482,7 @@ public class PlaceHolders {
}
}.withDescription("Amount of votes needed for voteparty"));
nonPlayerPlaceholders.add(new PlaceHolder("GlobalMonthTotal") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalMonthTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -493,7 +494,7 @@ public class PlaceHolders {
}
}.withDescription("Global month total"));
nonPlayerPlaceholders.add(new PlaceHolder("GlobalAllTimeTotal") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalAllTimeTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -505,7 +506,7 @@ public class PlaceHolders {
}
}.withDescription("Global alltime total"));
nonPlayerPlaceholders.add(new PlaceHolder("GlobalWeeklyTotal") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -517,7 +518,7 @@ public class PlaceHolders {
}
}.withDescription("Global weekly total"));
nonPlayerPlaceholders.add(new PlaceHolder("GlobalDailyTotal") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -12,16 +12,16 @@ public class VotingPluginHooks {
return instance;
}
public Main getMainClass() {
return Main.plugin;
public void addCustomRequirement(RequirementInject inject) {
RewardHandler.getInstance().addInjectedRequirements(inject);
}
public void addCustomReward(RewardInject inject) {
RewardHandler.getInstance().addInjectedReward(inject);
}
public void addCustomRequirement(RequirementInject inject) {
RewardHandler.getInstance().addInjectedRequirements(inject);
public Main getMainClass() {
return Main.plugin;
}
public UserManager getUserManager() {