Compare commits

..
17 Commits
Author SHA1 Message Date
Ben12345rocks cb1cc27c60 Update version number 2018-12-15 09:18:56 -05:00
Ben12345rocks aed30a94c0 Bug fixes 2018-12-15 09:17:41 -05:00
Ben12345rocks 8e172e2647 Change default value 2018-12-15 09:01:10 -05:00
Ben12345rocks ca355e1a01 Add new commands 2018-12-14 20:26:46 -05:00
Ben12345rocks b0e18d5224 Added ability to disable aliases 2018-12-13 20:34:17 -05:00
Ben12345rocks f5fc80ef14 Performance improvement 2018-12-13 19:50:10 -05:00
Ben12345rocks 21f846f0bc Added ability to set percentage for vote streak 2018-12-13 19:43:18 -05:00
Ben12345rocks a6a742b91e Performance improvement 2018-12-13 19:23:32 -05:00
Ben12345rocks 4ca6510910 Test commit 2018-12-12 17:02:50 -05:00
Ben12345rocks e06ea06884 Code cleanup 2018-12-12 16:57:00 -05:00
Ben12345rocks 2c79dff678 Added new option 2018-12-12 16:43:37 -05:00
Ben12345rocks 56c4a094cf Little fix 2018-12-09 17:01:45 -05:00
Ben12345rocks 1898af9fea Little fix 2018-12-09 16:39:46 -05:00
Ben12345rocks 885d2bc019 Improvements 2018-12-09 15:39:54 -05:00
Ben12345rocks 12c604d09c Bug fix 2018-12-08 21:55:49 -05:00
Ben12345rocks 7b48699b39 Another spelling mistake 2018-12-08 19:49:24 -05:00
Ben12345rocks 3b5593882f Fix spelling mistake 2018-12-08 19:46:28 -05:00
16 changed files with 331 additions and 156 deletions

No files matched your search

+15
View File
@@ -685,6 +685,14 @@ VoteStreak:
Rewards:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Requirement:
# Require certain percentage of votes
UsePercentage: false
# Percentage requirements of votes
# 50 = %50
Day: 50
Week: 50
Month: 50
# ONLY USE THIS FOR TITLES/SOUNDS AND OTHER EFFECTS
@@ -871,6 +879,13 @@ DisableUpdateChecking: false
# Still processes rewards for offline rewards (just won't give any)
ProcessRewards: true
# Disable checking permissions on tab complete
DisableAdvancedTab: false
# Load command aliases, such as /avgui
# Requires restart to take effect
LoadCommandAliases: true
# ---------------------------------------------------------
# Mysql cache options
# Clearing cache forces the plugin to pull from database
+33
View File
@@ -191,6 +191,39 @@ commands:
adminvoteDownloadJenkins:
description: Command Alias
aliases: avDownloadJenkins
adminvoteAddTotal:
description: Command Alias
aliases: avTotal
adminvoteAddMilestoneCount:
description: Command Alias
aliases: avAddMilestoneCount
adminvoteSetMilestoneCount:
description: Command Alias
aliases: avSetMilestoneCount
adminvoteForceVoteParty:
description: Command Alias
aliases: avForceVoteParty
adminvoteForceMilestone:
description: Command Alias
aliases: avForceMilestone
adminvoteForceCummulative:
description: Command Alias
aliases: avForceCummulative
adminvoteForceAllSites:
description: Command Alias
aliases: avForceAllSites
adminvoteForceFirstVote:
description: Command Alias
aliases: avForceFirstVote
adminvoteForceVoteStreak:
description: Command Alias
aliases: avForceVoteStreak
adminvoteUserEditValue:
description: Command Alias
aliases: avUserEditValue
adminvoteSetRequestMethod:
description: Command Alias
aliases: avSetRequestMethod
permissions:
VotingPlugin.Player:
description: Allows basic access player commands
+1 -1
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.17</version>
<version>5.17.1</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -144,6 +144,71 @@ public class CommandLoader {
return playerPerm;
}
public boolean hasPermission(Player player, String cmd) {
if (cmd.startsWith("votingplugin:")) {
cmd = cmd.substring("votingplugin:".length());
}
if (commands.containsKey(cmd)) {
return commands.get(cmd).hasPerm(player);
}
boolean adminCommand = false;
if (cmd.startsWith("vote")) {
cmd = cmd.substring("vote".length());
} else if (cmd.startsWith("v")) {
cmd = cmd.substring(1);
} else if (cmd.startsWith("av")) {
adminCommand = true;
cmd = cmd.substring("av".length());
} else if (cmd.startsWith("adminvote")) {
adminCommand = true;
cmd = cmd.substring("adminvote".length());
}
// plugin.debug(cmd);
if (!adminCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
} else {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
}
return false;
}
public boolean isVotingPluginCommand(Player player, String cmd) {
if (plugin.getCommand(cmd) != null || cmd.startsWith("votingplugin")) {
return true;
}
for (String str : commands.keySet()) {
if (str.equalsIgnoreCase(cmd)) {
return true;
}
}
return false;
}
/**
* Load admin vote command.
*/
@@ -962,6 +1027,58 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ForceMilestone", "(Number)", "(Player)" },
"VotingPlugin.Commands.AdminVote.ForceMilestone|" + adminPerm, "Force a milestone") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
SpecialRewards.getInstance().giveMilestoneVoteReward(user, user.isOnline(), parseInt(args[1]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ForceCummulative", "(Number)", "(Player)" },
"VotingPlugin.Commands.AdminVote.ForceCummulative|" + adminPerm, "Force a cummulative reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
SpecialRewards.getInstance().giveCumulativeVoteReward(user, user.isOnline(), parseInt(args[1]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ForceAllSites", "(Player)" },
"VotingPlugin.Commands.AdminVote.ForceAllSites|" + adminPerm, "Force a allsites reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveAllSitesRewards(user, user.isOnline());
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ForceFirstVote", "(Player)" },
"VotingPlugin.Commands.AdminVote.ForceFirstVote|" + adminPerm, "Force a firstvote reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveFirstVoteRewards(user, user.isOnline());
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "ForceVoteStreak", "(Text)", "(Number)", "(Player)" },
"VotingPlugin.Commands.AdminVote.ForceVoteStreak|" + adminPerm, "Force a votestreak reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[3]);
SpecialRewards.getInstance().giveVoteStreakReward(user, user.isOnline(), args[1], args[2],
parseInt(args[2]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "Placeholders", "(player)" },
"VotingPlugin.Commands.AdminVote.Placeholders.Players|" + adminPerm,
@@ -1017,15 +1134,22 @@ public class CommandLoader {
*/
public void loadAliases() {
commands = new HashMap<String, CommandHandler>();
if (!Config.getInstance().isLoadCommandAliases()) {
return;
}
for (CommandHandler cmdHandle : plugin.getVoteCommand()) {
if (cmdHandle.getArgs().length > 0) {
String[] args = cmdHandle.getArgs()[0].split("&");
for (String arg : args) {
commands.put("vote" + arg, cmdHandle);
try {
plugin.getCommand("vote" + arg).setExecutor(new CommandAliases(cmdHandle, false));
plugin.getCommand("vote" + arg)
.setTabCompleter(new AliasesTabCompleter().setCMDHandle(cmdHandle, false));
for (String str : plugin.getCommand("vote" + arg).getAliases()) {
commands.put(str, cmdHandle);
}
} catch (Exception ex) {
plugin.debug("Failed to load command and tab completer for /vote" + arg);
}
@@ -1038,11 +1162,15 @@ public class CommandLoader {
if (cmdHandle.getArgs().length > 0) {
String[] args = cmdHandle.getArgs()[0].split("&");
for (String arg : args) {
commands.put("adminvote" + arg, cmdHandle);
try {
plugin.getCommand("adminvote" + arg).setExecutor(new CommandAliases(cmdHandle, true));
plugin.getCommand("adminvote" + arg)
.setTabCompleter(new AliasesTabCompleter().setCMDHandle(cmdHandle, true));
for (String str : plugin.getCommand("adminvote" + arg).getAliases()) {
commands.put(str, cmdHandle);
}
} catch (Exception ex) {
plugin.debug("Failed to load command and tab completer for /adminvote" + arg + ": "
+ ex.getMessage());
@@ -1905,67 +2033,4 @@ public class CommandLoader {
public void setCommands(HashMap<String, CommandHandler> commands) {
this.commands = commands;
}
public boolean isVotingPluginCommand(Player player, String cmd) {
if (plugin.getCommand(cmd) != null || cmd.startsWith("votingplugin")) {
return true;
}
for (String str : plugin.getDescription().getCommands().keySet()) {
for (String str1 : plugin.getCommand(str).getAliases()) {
if (str1.equalsIgnoreCase(cmd)) {
return true;
}
}
}
return false;
}
public boolean hasPermission(Player player, String cmd) {
if (cmd.startsWith("votingplugin:")) {
cmd = cmd.substring("votingplugin:".length());
}
boolean adminCommand = false;
if (cmd.startsWith("vote")) {
cmd = cmd.substring("vote".length());
} else if (cmd.startsWith("v")) {
cmd = cmd.substring(1);
} else if (cmd.startsWith("av")) {
adminCommand = true;
cmd = cmd.substring("av".length());
} else if (cmd.startsWith("adminvote")) {
adminCommand = true;
cmd = cmd.substring("adminvote".length());
}
// plugin.debug(cmd);
if (!adminCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
} else {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
}
return false;
}
}
@@ -10,11 +10,12 @@ import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUI;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIValueType;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueBoolean;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueNumber;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueString;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory.ClickEvent;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.InputMethod;
@@ -163,99 +164,91 @@ public class AdminGUI {
}
});
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Priority", voteSite.getPriority(),
EditGUIValueType.NUMBER) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("Priority", voteSite.getPriority()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), (int) value);
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), num.intValue());
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "ServiceSite", voteSite.getServiceSite(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("ServiceSite", voteSite.getServiceSite()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setServiceSite(siteName, (String) value);
ConfigVoteSites.getInstance().setServiceSite(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Name", voteSite.getDisplayName(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("Name", voteSite.getDisplayName()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), (String) value);
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteURL", voteSite.getVoteURL(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("VoteURL", voteSite.getVoteURL()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteURL(siteName, (String) value);
ConfigVoteSites.getInstance().setVoteURL(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteDelay", voteSite.getVoteDelay(),
EditGUIValueType.NUMBER) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("VoteDelay", voteSite.getVoteDelay()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelay(siteName, (int) value);
ConfigVoteSites.getInstance().setVoteDelay(siteName, num.intValue());
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Enabled", voteSite.isEnabled(),
EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("Enabled", voteSite.isEnabled()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setEnabled(siteName, (boolean) value);
ConfigVoteSites.getInstance().setEnabled(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "ForceOffline", voteSite.isGiveOffline(),
EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("ForceOffline", voteSite.isGiveOffline()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setForceOffline(siteName, (boolean) value);
ConfigVoteSites.getInstance().setForceOffline(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteDelayDaily",
voteSite.isVoteDelayDaily(), EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("VoteDelayDaily", voteSite.isVoteDelayDaily()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, (boolean) value);
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, value);
plugin.reload();
}
});
}));
inv.openInventory(player);
}
@@ -9,6 +9,7 @@ import org.bukkit.configuration.ConfigurationSection;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.AnnotationHandler;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataBoolean;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataDouble;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataInt;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataString;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
@@ -209,6 +210,10 @@ public class Config extends YMLFile {
@Getter
private boolean disableNoServiceSiteMessage = false;
@ConfigDataBoolean(path = "DisableAdvancedTab")
@Getter
private boolean disableAdvancedTab = false;
@Getter
private String firstVoteRewardsPath = "FirstVote";
@@ -227,6 +232,29 @@ public class Config extends YMLFile {
@Getter
private boolean enableWeeklyAwards = false;
@ConfigDataDouble(path = "VoteStreak.Requirement.Day")
@Getter
private double voteStreakRequirementDay = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Week")
@Getter
private double voteStreakRequirementWeek = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Month")
@Getter
private double voteStreakRequirementMonth = 50;
@ConfigDataBoolean(path = "VoteStreak.Requirement.UsePercentage")
@Getter
private boolean voteStreakRequirementUsePercentage = false;
@ConfigDataBoolean(path = "LoadCommandAliases")
@Getter
private boolean loadCommandAliases = true;
@Getter
private int formatPageSize = 10;
/**
* Instantiates a new config.
*/
@@ -575,9 +603,6 @@ public class Config extends YMLFile {
return getData().getString("Format.NotNumber", "&cError on &6%arg%&c, number expected!");
}
@Getter
private int formatPageSize = 10;
public String getFormatPrevPage() {
return getData().getString("Format.PrevPage", "&aPrevious Page");
}
@@ -1041,10 +1066,6 @@ public class Config extends YMLFile {
return getData().getBoolean("TopVoterIgnorePermission");
}
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
* Gets the vote GUI slot command.
*
@@ -1140,6 +1161,10 @@ public class Config extends YMLFile {
return getData().getBoolean("VoteParty.ResetMonthly");
}
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
* Gets the vote party votes required.
*
@@ -124,10 +124,6 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getString("ServiceSite");
}
public boolean getWaitUntilVoteDelay(String siteName) {
return getData(siteName).getBoolean("WaitUntilVoteDelay", false);
}
/**
* Gets the vote delay.
*
@@ -256,6 +252,10 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getString("VoteURL");
}
public boolean getWaitUntilVoteDelay(String siteName) {
return getData(siteName).getBoolean("WaitUntilVoteDelay", false);
}
/**
* Checks if is service site good.
*
@@ -9,6 +9,7 @@ import org.bukkit.event.player.PlayerCommandSendEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.CommandLoader;
import com.Ben12345rocks.VotingPlugin.Config.Config;
// TODO: Auto-generated Javadoc
/**
@@ -25,6 +26,9 @@ public class PlayerCommandSendListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onTab(PlayerCommandSendEvent event) {
if (Config.getInstance().isDisableAdvancedTab()) {
return;
}
ArrayList<String> removeCmds = new ArrayList<String>();
ArrayList<String> whiteListed = new ArrayList<String>();
for (String cmd : event.getCommands()) {
@@ -88,7 +88,7 @@ public class PlayerVoteListener implements Listener {
if (Config.getInstance().isClearCacheOnVote()) {
user.clearCache();
}
if (voteSite.isWaitUntilVoteDelay() && !user.canVoteSite(voteSite)) {
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
return;
@@ -16,6 +16,7 @@ import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
@@ -27,10 +28,14 @@ import org.bukkit.plugin.java.JavaPlugin;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
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.RewardInjectInt;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueNumber;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Javascript.JavascriptPlaceholderRequest;
import com.Ben12345rocks.AdvancedCore.Util.Logger.Logger;
import com.Ben12345rocks.AdvancedCore.Util.Metrics.BStatsMetrics;
@@ -119,6 +124,10 @@ public class Main extends JavaPlugin {
@Getter
private boolean updateStarted = false;
public AdvancedCoreHook getAdvancedCoreHook() {
return AdvancedCoreHook.getInstance();
}
/**
* Check votifier.
*/
@@ -777,11 +786,18 @@ public class Main extends JavaPlugin {
RewardHandler.getInstance().getInjectedRewards().add(new RewardInjectInt("Points", 0) {
@Override
public void onRewardRequest(com.Ben12345rocks.AdvancedCore.UserManager.User user, int num,
public void onRewardRequest(Reward reward, com.Ben12345rocks.AdvancedCore.UserManager.User user, int num,
HashMap<String, String> placeholders) {
UserManager.getInstance().getVotingPluginUser(user).addPoints(num);
}
});
}.addEditButton(new EditGUIButton(new ItemBuilder(Material.PAPER), new EditGUIValueNumber("Points", null) {
@Override
public void setValue(Player player, Number value) {
Reward reward = (Reward) getInv().getData("Reward");
reward.getConfig().set("Points", value.intValue());
}
})));
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
@@ -111,6 +111,20 @@ 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;
}
}
/**
* Adds the points.
*/
@@ -356,9 +370,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
for (VoteSite voteSite : plugin.getVoteSites()) {
times.put(voteSite, getTime(voteSite));
}
LinkedHashMap<VoteSite, Long> sorted = (LinkedHashMap<VoteSite, Long>) times.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
LinkedHashMap<VoteSite, Long> sorted = new LinkedHashMap<>(
times.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
return sorted;
}
@@ -110,8 +110,11 @@ public class TopVoterHandler implements Listener {
if (user.getTotal(TopVoter.Daily) == 0 && user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
} else {
user.addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Day");
if (!Config.getInstance().isVoteStreakRequirementUsePercentage() || user
.hasPercentageTotal(TopVoter.Daily, Config.getInstance().getVoteStreakRequirementDay(), null)) {
user.addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Day");
}
}
if (user.getHighestDailyTotal() < user.getTotal(TopVoter.Daily)) {
@@ -155,8 +158,12 @@ public class TopVoterHandler implements Listener {
if (user.getTotal(TopVoter.Monthly) == 0 && user.getMonthVoteStreak() != 0) {
user.setMonthVoteStreak(0);
} else {
user.addMonthVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Month");
if (!Config.getInstance().isVoteStreakRequirementUsePercentage() || user.hasPercentageTotal(
TopVoter.Monthly, Config.getInstance().getVoteStreakRequirementMonth(),
LocalDateTime.now().minusDays(1))) {
user.addMonthVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Month");
}
}
if (user.getHighestMonthlyTotal() < user.getTotal(TopVoter.Monthly)) {
@@ -215,8 +222,11 @@ public class TopVoterHandler implements Listener {
if (user.getTotal(TopVoter.Weekly) == 0 && user.getWeekVoteStreak() != 0) {
user.setWeekVoteStreak(0);
} else {
user.addWeekVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Week");
if (!Config.getInstance().isVoteStreakRequirementUsePercentage() || user.hasPercentageTotal(
TopVoter.Weekly, Config.getInstance().getVoteStreakRequirementWeek(), null)) {
user.addWeekVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Week");
}
}
if (user.getHighestWeeklyTotal() < user.getTotal(TopVoter.Weekly)) {
@@ -32,6 +32,10 @@ public class UserManager {
return com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getAllUUIDs();
}
public User getVotingPluginUser(com.Ben12345rocks.AdvancedCore.UserManager.User user) {
return getVotingPluginUser(java.util.UUID.fromString(user.getUUID()));
}
public User getVotingPluginUser(java.util.UUID uuid) {
return getVotingPluginUser(new UUID(uuid.toString()));
}
@@ -44,10 +48,6 @@ public class UserManager {
return getVotingPluginUser(player.getName());
}
public User getVotingPluginUser(com.Ben12345rocks.AdvancedCore.UserManager.User user) {
return getVotingPluginUser(java.util.UUID.fromString(user.getUUID()));
}
@SuppressWarnings("deprecation")
public User getVotingPluginUser(String playerName) {
return new User(com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getProperName(playerName));
@@ -24,6 +24,10 @@ public abstract class PlaceHolder {
this.useStartsWith = useStartsWith;
}
public boolean hasDescription() {
return description != null;
}
public boolean matches(String identifier) {
if (isUseStartsWith()) {
if (StringUtils.getInstance().startsWithIgnoreCase(identifier, getIdentifier())) {
@@ -49,8 +53,4 @@ public abstract class PlaceHolder {
return this;
}
public boolean hasDescription() {
return description != null;
}
}
@@ -296,7 +296,7 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_All_") {
@@ -343,7 +343,7 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
}.useStartsWith().withDescription("Get user at position in top voter"));
placeholders.add(new PlaceHolder("Top_MonthVotes_") {
@@ -359,7 +359,7 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Week_Position") {
@@ -406,7 +406,7 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Daily_Position") {
@@ -453,7 +453,7 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
// non players
@@ -173,12 +173,6 @@ public class VoteParty implements Listener {
return required;
}
public void giveReward(User user, boolean online) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
public void giveReward(User user) {
if (Config.getInstance().getVotePartyUserVotesRequired() > 0) {
if (user.getVotePartyVotes() < Config.getInstance().getVotePartyUserVotesRequired()) {
@@ -188,6 +182,12 @@ public class VoteParty implements Listener {
giveReward(user, user.isOnline());
}
public void giveReward(User user, boolean online) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
/**
* Give rewards.
*/