Compare commits

...
31 Commits
Author SHA1 Message Date
Ben12345rocks a07b69cc08 Update javadoc 2017-07-09 15:39:17 -04:00
Ben 7f1ceaf500 Merge pull request #219 from Ben12345rocks/5.9.1
5.9.1
2017-07-09 15:34:03 -04:00
Ben12345rocks 6b8924c08b Update build path 2017-07-09 15:34:15 -04:00
Ben12345rocks 1f80578e7a Bug fixes 2017-07-09 14:58:07 -04:00
Ben12345rocks 2f78c4b462 Bug fix 2017-07-09 14:20:19 -04:00
Ben12345rocks 89b0d71267 Update version number 2017-07-09 13:53:01 -04:00
Ben12345rocks 77363ce3c7 Don't show banned players on top voters 2017-07-09 13:49:58 -04:00
Ben12345rocks 9477c063de Fix auto generate sites not working correctly 2017-07-09 13:39:28 -04:00
Ben12345rocks dc00652e69 Add back button for guis 2017-07-09 13:23:57 -04:00
Ben12345rocks 374ba2ee95 Add some more placeholders for /vote 2017-07-09 13:01:14 -04:00
Ben12345rocks 8fd8b1ad35 Add a vote delay for certain sites that reset daily 2017-07-09 12:48:13 -04:00
Ben12345rocks 2c05ce4870 Change to help commands 2017-07-09 12:16:34 -04:00
Ben dca689ec37 Merge pull request #212 from Ben12345rocks/5.9
5.9
2017-06-28 08:20:33 -04:00
Ben12345rocks ee4d52377f Update version number 2017-06-28 08:19:38 -04:00
Ben12345rocks ac41c9413c Update API 2017-06-28 08:13:48 -04:00
Ben12345rocks 596968f869 Add Jar, closes #208 2017-06-26 15:13:56 -04:00
Ben12345rocks 0d2221d195 Add VoteRoulette converter 2017-06-26 14:53:14 -04:00
Ben12345rocks 23fa59f98f Fix data storage conversion 2017-06-26 13:38:50 -04:00
Ben12345rocks cb81b61096 Add more messages on convert 2017-06-25 15:05:17 -04:00
Ben12345rocks 186917992c Add a basic converter for GAL, closes #206 2017-06-22 14:40:44 -04:00
Ben12345rocks 6b70e4fee4 Add ability to set points on vote, closes #207 2017-06-20 19:51:08 -04:00
Ben12345rocks 79c98c8b86 Allow reward files to run offline, closes #200 2017-06-20 19:45:13 -04:00
Ben12345rocks b8e0830b0b Fix typo in Config.yml 2017-06-20 19:38:27 -04:00
Ben12345rocks 1cd1a0ab75 Update build path 2017-06-18 20:26:48 -04:00
Ben 481510a1e8 Merge pull request #205 from Ben12345rocks/5.8.7
5.8.7
2017-06-18 20:16:10 -04:00
Ben12345rocks 3a95ef9b23 Slight improvement 2017-06-18 20:16:44 -04:00
Ben12345rocks f7af9210cb Minor changes to bstats 2017-06-18 19:57:31 -04:00
Ben12345rocks 9f5fe338f4 Update version number, closes #201, closes #203 2017-06-18 19:42:46 -04:00
Ben12345rocks 967be0aa19 Add broadcast for vote party 2017-06-18 18:01:32 -04:00
Ben12345rocks 6e0b62a1dd Add every site reward 2017-06-18 17:57:22 -04:00
Ben12345rocks a8ec557c9e Bug fix 2017-06-16 16:02:41 -04:00
17 changed files with 399 additions and 224 deletions

No files matched your search

Binary file not shown.
+14 -3
View File
@@ -70,7 +70,7 @@ VoteReminding:
# Can add titles and more in the reward file
Rewards:
Messages:
Player: '&aRemeber to vote!'
Player: '&aRemember to vote!'
Title:
Enabled: false
Title: '&cRemember to vote!'
@@ -155,6 +155,8 @@ Format:
TimeUntilVote: '%hours% Hours and %minutes% Minutes'
# If there is an error finding out time until next vote
Error: '&cCould not caculate time until next vote!'
# For sites that have this, requires votedelaydaily to be set to true in the site
VoteDelayDaily: 'Tomorrow'
# Format for /vote last
Last:
@@ -573,6 +575,8 @@ VoteParty:
ResetEachDay: false
# Number of user votes that apply to vote party total the user needs to get rewards
UserVotesRequired: 0
# Broadcast when vote party reached
Broadcast: '&cReached the vote party amount!'
# Reward files to give
Rewards: []
@@ -594,6 +598,7 @@ VoteStreak:
# Valid options: Day, Week, Month
Day:
# Number of days in a row
# Each day requires one vote
'2':
# Enabled or not
Enabled: false
@@ -602,7 +607,8 @@ VoteStreak:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Week:
# Number of days in a row
# Number of weeks in a row
# Requires atleast one vote per week
'2':
# Enabled or not
Enabled: false
@@ -611,7 +617,8 @@ VoteStreak:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Month:
# Number of days in a row
# Number of months in a row
# Requires atleast 1 vote per month
'2':
# Enabled or not
Enabled: false
@@ -704,6 +711,10 @@ DailyAwards:
# Most of these values can be left untouched
# ------------------------------------------------
# Number of points to give on vote
# Set to 0 to give no points
PointsOnVote: 1
# Wether or not to check on world change
# Should only be used if you do per world rewards
CheckOnWorldChange: false
+8 -1
View File
@@ -28,6 +28,9 @@ VoteSites:
# Most sites are 24 hours
VoteDelay: 24
# Reset vote delay each day (for certain sites that do this)
VoteDelayDaily: false
# VoteSite Material for GUI's
Item:
Material: 'DIAMOND'
@@ -35,4 +38,8 @@ VoteSites:
# List of reward files to give to voter
Rewards:
- 'ExampleReward'
- 'ExampleReward'
# Reward for any site
# Similar to AnySiteReward
EverySiteReward: []
+8 -1
View File
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.8.6</version>
<version>5.9.1</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -179,5 +179,12 @@
<scope>system</scope>
<systemPath>${project.basedir}/Jars/GAListener.jar</systemPath>
</dependency>
<dependency>
<groupId>com.mythicacraft</groupId>
<artifactId>voteroulette</artifactId>
<version>3.2.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/VoteRoulette.jar</systemPath>
</dependency>
</dependencies>
</project>
@@ -2,10 +2,14 @@ package com.Ben12345rocks.VotingPlugin.Commands;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -40,6 +44,14 @@ import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.Ben12345rocks.VotingPlugin.VoteShop.VoteShop;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Table;
import com.google.common.collect.Table.Cell;
import com.mythicacraft.voteroulette.VoteRoulette;
import com.mythicacraft.voteroulette.Voter;
import com.swifteh.GAL.GAL;
import com.swifteh.GAL.GALVote;
import com.swifteh.GAL.VoteType;
// TODO: Auto-generated Javadoc
/**
@@ -122,6 +134,71 @@ public class CommandLoader {
}
});
plugin.adminVoteCommand.add(new CommandHandler(new String[] { "ConvertFrom", "GAL" },
"VotingPlugin.Commands.AdminVote.ConvertFrom.GAL|" + adminPerm, "Convert from GAL") {
@Override
public void execute(CommandSender sender, String[] args) {
if (Bukkit.getServer().getPluginManager().getPlugin("GAListener") != null) {
Table<String, Integer, Long> totals = GAL.p.db.getTotals();
for (Cell<String, Integer, Long> entry : totals.cellSet()) {
String name = entry.getRowKey();
int total = entry.getColumnKey();
User user = UserManager.getInstance().getVotingPluginUser(name);
user.setAllTimeTotal(user.getAllTimeTotal() + total);
}
sender.sendMessage("Totals added");
ListMultimap<VoteType, GALVote> votes = GAL.p.galVote;
for (Entry<VoteType, GALVote> entry : votes.entries()) {
if (entry.getKey().equals(VoteType.NORMAL)) {
String msg = entry.getValue().message;
List<String> cmds = entry.getValue().commands;
String service = entry.getValue().key;
if (service.equalsIgnoreCase("default")) {
} else {
VoteSite site = plugin.getVoteSite(service);
if (site == null) {
sender.sendMessage("Failed to create vote site, autogeneratesites false?");
return;
}
ConfigurationSection data = configVoteSites.getData()
.getConfigurationSection(configVoteSites.getRewardsPath(site.getKey()));
data.set("Commands.Console", cmds);
data.set("Messages.Player", msg);
configVoteSites.saveData();
sender.sendMessage("created vote site: " + site.getKey());
}
}
}
} else {
sender.sendMessage("GAL not loaded");
}
}
});
plugin.adminVoteCommand.add(new CommandHandler(new String[] { "ConvertFrom", "VoteRoulette" },
"VotingPlugin.Commands.AdminVote.ConvertFrom.GAL|" + adminPerm, "Convert from VoteRoulette") {
@SuppressWarnings("static-access")
@Override
public void execute(CommandSender sender, String[] args) {
if (Bukkit.getServer().getPluginManager().getPlugin("VoteRoulette") != null) {
for (OfflinePlayer offPlayer : Bukkit.getOfflinePlayers()) {
Voter voter = VoteRoulette.getInstance().getVoterManager().getVoter(offPlayer.getUniqueId(),
offPlayer.getName());
User user = UserManager.getInstance().getVotingPluginUser(offPlayer);
user.setAllTimeTotal(user.getAllTimeTotal() + voter.getStatSheet().getLifetimeVotes());
user.setMonthTotal(user.getMonthTotal() + voter.getStatSheet().getCurrentMonthVotes());
}
} else {
sender.sendMessage("VoteRoulette not loaded");
}
}
});
plugin.adminVoteCommand.add(new CommandHandler(new String[] { "SetPoints", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetPoints|" + adminPerm, "Set players voting points") {
@@ -279,8 +356,10 @@ public class CommandLoader {
return;
}
try {
sender.sendMessage("Starting to convert");
UserStorage prevStorage = UserStorage.valueOf(args[1].toUpperCase());
plugin.convertDataStorage(prevStorage, AdvancedCoreHook.getInstance().getStorageType());
sender.sendMessage("Finished converting!");
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -1090,7 +1169,12 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
if (!Config.getInstance().getCommandsUseGUIVote()) {
CommandVote.getInstance().voteURLs(sender);
if (isPlayer(sender)) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().voteURLs(user));
} else {
sender.sendMessage(Commands.getInstance().voteURLs(null));
}
} else {
if (sender instanceof Player) {
PlayerGUIs.getInstance().openVoteURL((Player) sender);
@@ -1108,6 +1192,27 @@ public class CommandLoader {
plugin.voteCommand.addAll(avCommands);
}
/**
* @return the adminPerm
*/
public String getAdminPerm() {
return adminPerm;
}
/**
* @return the modPerm
*/
public String getModPerm() {
return modPerm;
}
/**
* @return the playerPerm
*/
public String getPlayerPerm() {
return playerPerm;
}
/**
* Sets the commands.
*
@@ -122,9 +122,9 @@ public class Commands {
for (CommandHandler cmdHandle : plugin.adminVoteCommand) {
if (sender.hasPermission(cmdHandle.getPerm()) && requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/av"), cmdHandle.getHelpLine("/av"));
unsorted.put(cmdHandle.getHelpLineCommand("/adminvote"), cmdHandle.getHelpLine("/adminvote"));
} else {
unsorted.put(cmdHandle.getHelpLineCommand("/av"), cmdHandle.getHelpLine("/av"));
unsorted.put(cmdHandle.getHelpLineCommand("/adminvote"), cmdHandle.getHelpLine("/adminvote"));
}
}
ArrayList<String> unsortedList = new ArrayList<String>();
@@ -587,29 +587,39 @@ public class Commands {
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
int votedelay = voteSite.getVoteDelay();
if (votedelay == 0) {
String errorMsg = config.getFormatCommandsVoteNextInfoError();
info = errorMsg;
} else {
LocalDateTime nextvote = lastVote.plusHours(votedelay);
if (time == 0 || now.isAfter(nextvote)) {
String canVoteMsg = config.getFormatCommandsVoteNextInfoCanVote();
info = canVoteMsg;
if (!voteSite.isVoteDelayDaily()) {
int votedelay = voteSite.getVoteDelay();
if (votedelay == 0) {
String errorMsg = config.getFormatCommandsVoteNextInfoError();
info = errorMsg;
} else {
Duration dur = Duration.between(now, nextvote);
long diffHours = dur.getSeconds() / (60 * 60);
long diffMinutes = dur.getSeconds() / 60 - diffHours * 60;
LocalDateTime nextvote = lastVote.plusHours(votedelay);
String timeMsg = config.getFormatCommandsVoteNextInfoTime();
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Long.toString(diffHours));
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%minutes%", Long.toString(diffMinutes));
info = timeMsg;
if (time == 0 || now.isAfter(nextvote)) {
info = config.getFormatCommandsVoteNextInfoCanVote();
} else {
Duration dur = Duration.between(now, nextvote);
long diffHours = dur.getSeconds() / (60 * 60);
long diffMinutes = dur.getSeconds() / 60 - diffHours * 60;
String timeMsg = config.getFormatCommandsVoteNextInfoTime();
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Long.toString(diffHours));
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%minutes%",
Long.toString(diffMinutes));
info = timeMsg;
}
}
} else {
if (lastVote.getDayOfYear()==now.getDayOfYear() && lastVote.getYear()==now.getYear()) {
info = config.getFormatCommandsVoteNextInfoVoteDelayDaily();
} else {
info = config.getFormatCommandsVoteNextInfoCanVote();
}
}
return info;
}
@@ -694,9 +704,9 @@ public class Commands {
for (CommandHandler cmdHandle : plugin.voteCommand) {
if (sender.hasPermission(cmdHandle.getPerm()) && requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/v"), cmdHandle.getHelpLine("/v"));
unsorted.put(cmdHandle.getHelpLineCommand("/vote"), cmdHandle.getHelpLine("/vote"));
} else {
unsorted.put(cmdHandle.getHelpLineCommand("/v"), cmdHandle.getHelpLine("/v"));
unsorted.put(cmdHandle.getHelpLineCommand("/vote"), cmdHandle.getHelpLine("/vote"));
}
}
@@ -740,13 +750,8 @@ public class Commands {
}
}
/**
* Vote UR ls.
*
* @return the string[]
*/
public String[] voteURLs() {
public String[] voteURLs(User user) {
ArrayList<String> sites = new ArrayList<String>();
List<String> title = config.getFormatCommandsVoteText();
@@ -766,6 +771,15 @@ public class Commands {
sites.add(msg);
}
}
if (user != null) {
HashMap<String, String> phs = new HashMap<String, String>();
phs.put("DailyTotal", "" + user.getDailyTotal());
phs.put("WeekTotal", "" + user.getWeeklyTotal());
phs.put("MonthTotal", "" + user.getMonthTotal());
phs.put("Total", "" + user.getAllTimeTotal());
sites = ArrayUtils.getInstance().replacePlaceHolder(sites, phs);
}
sites = ArrayUtils.getInstance().colorize(sites);
return ArrayUtils.getInstance().convert(sites);
}
@@ -431,19 +431,4 @@ public class CommandVote implements CommandExecutor {
}
}
/**
* Vote UR ls.
*
* @param sender
* the sender
*/
public void voteURLs(CommandSender sender) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().voteURLs());
} else {
sender.sendMessage(Commands.getInstance().voteURLs());
}
}
}
@@ -62,8 +62,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -72,8 +71,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -82,8 +80,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -91,9 +88,11 @@ public class PlayerGUIs {
}
public void openVoteGUI(Player player, User user) {
if (!player.getName().equals(user.getPlayerName())
if ((!player.getName().equals(user.getPlayerName())
&& !player.hasPermission("VotingPlugin.Commands.Vote.GUI.Other")
&& !player.hasPermission("VotingPlugin.Mod")) {
&& !player.hasPermission("VotingPlugin.Mod"))
|| (!player.hasPermission("VotingPlugin.Commands.Vote.GUI")
&& !player.hasPermission("VotingPlugin.Player"))) {
player.sendMessage(AdvancedCoreHook.getInstance().getFormatNoPerms());
return;
}
@@ -109,7 +108,7 @@ public class PlayerGUIs {
lore = ArrayUtils.getInstance().convert(Config.getInstance().getVoteGUISlotLore(slot));
if (lore.length == 0) {
if (slot.equalsIgnoreCase("url")) {
lore = Commands.getInstance().voteURLs();
lore = Commands.getInstance().voteURLs(user);
} else if (slot.equalsIgnoreCase("next")) {
lore = Commands.getInstance().voteCommandNext(user);
} else if (slot.equalsIgnoreCase("last")) {
@@ -130,7 +129,7 @@ public class PlayerGUIs {
} else if (slot.equalsIgnoreCase("today")) {
lore = Commands.getInstance().voteToday();
} else if (slot.equalsIgnoreCase("help")) {
lore[0] = "Click to view help";
lore = new String[] { "Click to view help" };
}
}
@@ -183,11 +182,17 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteLast(player, getSelectedPlayer(player));
}
});
}
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
}
@@ -202,11 +207,18 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteNext(player, getSelectedPlayer(player));
}
});
}
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
}
@@ -220,8 +232,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -230,8 +241,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -241,8 +251,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -251,8 +260,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -261,8 +269,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -272,11 +279,18 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
}
@@ -301,6 +315,13 @@ public class PlayerGUIs {
});
}
}
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
}
@@ -354,6 +375,13 @@ public class PlayerGUIs {
openVoteTop(player, cur.next());
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.setPages(true);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
@@ -368,8 +396,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalWeekTotalItem())
@@ -377,8 +404,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalMonthTotalItem())
@@ -386,8 +412,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalAllTimeTotalItem())
@@ -395,8 +420,13 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
@@ -431,7 +461,7 @@ public class PlayerGUIs {
User user = UserManager.getInstance().getVotingPluginUser(event.getPlayer());
Player player = event.getWhoClicked();
player.closeInventory();
user.sendMessage(Commands.getInstance().voteURLs());
user.sendMessage(Commands.getInstance().voteURLs(user));
}
});
@@ -468,6 +498,14 @@ public class PlayerGUIs {
count++;
}
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
BInventory.openInventory(player, inv);
}
@@ -506,6 +544,13 @@ public class PlayerGUIs {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI")) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.openInventory(player);
}
@@ -568,6 +613,6 @@ public class PlayerGUIs {
}
}
BInventory.openInventory(player, inv);
inv.openInventory(player);
}
}
@@ -366,7 +366,6 @@ public class Config extends YMLFile {
*/
public String getFormatCommandsVoteNextInfoError() {
return getData().getString("Format.Commands.Vote.Next.Info.Error", "");
}
/**
@@ -377,7 +376,10 @@ public class Config extends YMLFile {
public String getFormatCommandsVoteNextInfoTime() {
return getData().getString("Format.Commands.Vote.Next.Info.TimeUntilVote",
"&cCould not caculate time until next vote!");
}
public String getFormatCommandsVoteNextInfoVoteDelayDaily() {
return getData().getString("Format.Commands.Vote.Next.Info.VoteDelayDaily", "Tomorrow");
}
/**
@@ -1054,6 +1056,14 @@ public class Config extends YMLFile {
return "VoteParty.Rewards";
}
public String getVotePartyBroadcast() {
return getData().getString("VoteParty.Broadcast", "");
}
public int getPointsOnVote() {
return getData().getInt("PointsOnVote", 1);
}
/**
* Gets the vote party votes required.
*
@@ -66,31 +66,6 @@ public class ConfigVoteSites extends YMLFile {
}
}
/**
* Gets the cumulative rewards.
*
* @param siteName
* the site name
* @return the cumulative rewards
*/
@SuppressWarnings("unchecked")
public ArrayList<String> getCumulativeRewards(String siteName) {
return (ArrayList<String>) getData(siteName).getList("Cumulative.Rewards", new ArrayList<String>());
}
/**
* Gets the cumulative reward votes amount.
*
* @param siteName
* the site name
* @return the cumulative reward votes amount
*/
public int getCumulativeRewardVotesAmount(String siteName) {
return getData(siteName).getInt("Cumulative.Votes");
}
/**
* Gets the data.
*
@@ -132,6 +107,10 @@ public class ConfigVoteSites extends YMLFile {
return "VoteSites." + siteName + ".Rewards";
}
public String getEverySiteRewardPath() {
return "EverySiteReward";
}
/**
* Gets the service site.
*
@@ -165,6 +144,10 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getBoolean("Enabled");
}
public boolean getVoteSiteResetVoteDelayDaily(String siteName) {
return getData(siteName).getBoolean("VoteDelayDaily");
}
/**
* Gets the vote site file.
*
@@ -47,7 +47,7 @@ public class VotiferEvent implements Listener {
public void run() {
synchronized (plugin) {
User user = UserManager.getInstance().getVotingPluginUser(playerName);
if (!user.hasJoinedBefore() && !config.allowUnJoined()) {
if (!user.hasLoggedOnBefore() && !config.allowUnJoined()) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
@@ -128,8 +128,8 @@ public class VotiferEvent implements Listener {
public void onVotiferEvent(VotifierEvent event) {
Vote vote = event.getVote();
String voteSite = vote.getServiceName();
String voteUsername = vote.getUsername();
final String voteSite = vote.getServiceName();
final String voteUsername = vote.getUsername();
if (voteUsername.length() == 0) {
plugin.getLogger().warning("No name from vote on " + voteSite);
@@ -141,12 +141,14 @@ public class VotiferEvent implements Listener {
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
String voteSiteName = plugin.getVoteSiteName(voteSite);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
String voteSiteName = plugin.getVoteSiteName(voteSite);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName),
UserManager.getInstance().getVotingPluginUser(voteUsername));
plugin.getServer().getPluginManager().callEvent(voteEvent);
@@ -161,12 +163,10 @@ public class VotiferEvent implements Listener {
plugin.getLogger()
.warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ConfigVoteSites.getInstance().setServiceSite(voteSiteName, voteSite);
}
} else if (Config.getInstance().getAutoCreateVoteSites()) {
plugin.getLogger().warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ConfigVoteSites.getInstance().setServiceSite(voteSiteName, voteSite);
}
playerVote(voteUsername, voteSite);
@@ -126,78 +126,39 @@ public class Main extends JavaPlugin {
throw new RuntimeException("Invalid Storage Method");
}
UserStorage cur = AdvancedCoreHook.getInstance().getStorageType();
AdvancedCoreHook.getInstance().setStorageType(from);
loadMySQL();
HashMap<User, HashMap<String, String>> data = new HashMap<User, HashMap<String, String>>();
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
try {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
AdvancedCoreHook.getInstance().setStorageType(from);
HashMap<String, String> values = new HashMap<String, String>();
for (String key : user.getData().getKeys()) {
values.put(key, user.getData().getString(key));
}
/*
* ArrayList<String> choiceRewards = user.getChoiceRewards();
* String inputMethod = user.getInputMethod(); ArrayList<String>
* offlineRewards = user.getOfflineRewards(); HashMap<Reward,
* ArrayList<Long>> timed = user.getTimedRewards(); int allTime
* = user.getAllTimeTotal(); int dailyTotal =
* user.getDailyTotal(); HashMap<String, Boolean> mileStone =
* user.getHasGottenMilestone(); HashMap<VoteSite, Long>
* lastVotes = user.getLastVotes(); int monthTotals =
* user.getMonthTotal(); ArrayList<String> otherRewards =
* user.getOfflineOtherRewards(); ArrayList<String> offlineVotes
* = user.getOfflineVotes(); int points = user.getPoints(); int
* votePartyVotes = user.getVotePartyVotes(); int weeklyTotal =
* user.getWeeklyTotal();
*
* int highestDailyTotal = user.getHighestDailyTotal(); int
* highestWeeklyTotal = user.getHighestWeeklyTotal(); int
* highestMonthlyTotal = user.getHighestMonthlyTotal(); int
* voteStreakDay = user.getDayVoteStreak(); int voteStreakWeek =
* user.getWeekVoteStreak(); int voteStreakMonth =
* user.getMonthVoteStreak(); int bestVoteStreakDay =
* user.getBestDayVoteStreak(); int bestVoteStreakWeek =
* user.getBestWeekVoteStreak(); int bestVoteStreakMonth =
* user.getBestMonthVoteStreak();
*/
AdvancedCoreHook.getInstance().setStorageType(to);
/*
* user.setChoiceRewards(choiceRewards);
* user.setInputMethod(inputMethod);
* user.setOfflineRewards(offlineRewards);
* user.setTimedRewards(timed); user.setAllTimeTotal(allTime);
* user.setDailyTotal(dailyTotal);
* user.setHasGottenMilestone(mileStone);
* user.setLastVotes(lastVotes);
* user.setMonthTotal(monthTotals);
* user.setOfflineOtherRewards(otherRewards);
* user.setOfflineVotes(offlineVotes); user.setPoints(points);
* user.setVotePartyVotes(votePartyVotes);
* user.setWeeklyTotal(weeklyTotal);
*
* user.setHighestDailyTotal(highestDailyTotal);
* user.setHighestWeeklyTotal(highestWeeklyTotal);
* user.setHighestMonthlyTotal(highestMonthlyTotal);
* user.setDayVoteStreak(voteStreakDay);
* user.setWeekVoteStreak(voteStreakWeek);
* user.setMonthVoteStreak(voteStreakMonth);
* user.setBestDayVoteStreak(bestVoteStreakDay);
* user.setBestWeekVoteStreak(bestVoteStreakWeek);
* user.setBestMonthVoteStreak(bestVoteStreakMonth);
*/
for (Entry<String, String> entry : values.entrySet()) {
user.getData().setString(entry.getKey(), entry.getValue());
}
data.put(user, values);
} catch (Exception e) {
AdvancedCoreHook.getInstance().debug(e);
plugin.getLogger().warning("Exception occoured for '" + uuid + "': " + e.getMessage()
+ ", turn debug on to see full stack traces");
}
}
AdvancedCoreHook.getInstance().setStorageType(to);
loadMySQL();
for (Entry<User, HashMap<String, String>> entry : data.entrySet()) {
try {
for (Entry<String, String> values : entry.getValue().entrySet()) {
entry.getKey().getData().setString(values.getKey(), values.getValue());
}
} catch (Exception e) {
e.printStackTrace();
plugin.getLogger().warning("Exception occoured for '" + entry.getKey().getUUID() + "': "
+ e.getMessage() + ", turn debug on to see full stack traces");
}
}
AdvancedCoreHook.getInstance().setStorageType(cur);
}
@@ -244,7 +205,7 @@ public class Main extends JavaPlugin {
return voteSite;
}
}
if (config.getAutoCreateVoteSites() && !configVoteSites.getVoteSitesNames().contains(siteName)) {
if (Config.getInstance().getAutoCreateVoteSites() && !configVoteSites.getVoteSitesNames().contains(siteName)) {
configVoteSites.generateVoteSite(siteName);
return new VoteSite(siteName.replace(".", "_"));
}
@@ -348,13 +309,7 @@ public class Main extends JavaPlugin {
}
BStatsMetrics metrics = new BStatsMetrics(this);
metrics.addCustomChart(new BStatsMetrics.SimplePie("requestapi_defaultmethod") {
@Override
public String getValue() {
return Config.getInstance().getRequestAPIDefaultMethod();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_firstvote") {
@Override
@@ -367,6 +322,18 @@ public class Main extends JavaPlugin {
}
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_everysite") {
@Override
public String getValue() {
if (RewardHandler.getInstance().hasRewards(ConfigVoteSites.getInstance().getData(),
ConfigVoteSites.getInstance().getEverySiteRewardPath())) {
return "True";
} else {
return "False";
}
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_allsites") {
@Override
@@ -778,6 +745,7 @@ public class Main extends JavaPlugin {
}
});
loadTimer();
}
public void setUpdate(boolean update) {
@@ -792,6 +760,7 @@ public class Main extends JavaPlugin {
configVoteSites = ConfigVoteSites.getInstance();
config.setup();
configVoteSites.setup();
plugin.debug("Loaded Files");
}
@@ -799,31 +768,33 @@ public class Main extends JavaPlugin {
/**
* Update.
*/
public synchronized void update() {
public void update() {
if (update && plugin != null) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else {
AdvancedCoreHook.getInstance().getMysql().clearCache();
synchronized (plugin) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else {
AdvancedCoreHook.getInstance().getMysql().clearCache();
}
}
update = false;
plugin.debug("Starting background task");
try {
TopVoterHandler.getInstance().updateTopVoters();
Commands.getInstance().updateVoteToday();
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
plugin.debug("Background task ran");
} catch (Exception ex) {
ex.printStackTrace();
plugin.getLogger().info("Looks like something went wrong.");
}
}
update = false;
plugin.debug("Starting background task");
try {
TopVoterHandler.getInstance().updateTopVoters();
Commands.getInstance().updateVoteToday();
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
plugin.debug("Background task ran");
} catch (Exception ex) {
ex.printStackTrace();
plugin.getLogger().info("Looks like something went wrong.");
}
}
@@ -837,6 +808,21 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().allowDownloadingFromSpigot(15358);
AdvancedCoreHook.getInstance().setExtraDebug(Config.getInstance().getExtraDebug());
AdvancedCoreHook.getInstance().setStorageType(UserStorage.valueOf(Config.getInstance().getDataStorage()));
loadMySQL();
AdvancedCoreHook.getInstance().setCheckOnWorldChange(Config.getInstance().getCheckOnWorldChange());
AdvancedCoreHook.getInstance().setDebug(Config.getInstance().getDebugEnabled());
AdvancedCoreHook.getInstance().setDebugIngame(Config.getInstance().getDebugInfoIngame());
AdvancedCoreHook.getInstance().setDefaultRequestMethod(Config.getInstance().getRequestAPIDefaultMethod());
AdvancedCoreHook.getInstance().setDisabledRequestMethods(Config.getInstance().getRequestAPIDisabledMethods());
AdvancedCoreHook.getInstance().setFormatNoPerms(Config.getInstance().getFormatNoPerms());
AdvancedCoreHook.getInstance().setFormatNotNumber(Config.getInstance().getFormatNotNumber());
AdvancedCoreHook.getInstance().setHelpLine(Config.getInstance().getFormatHelpLine());
AdvancedCoreHook.getInstance().setLogDebugToFile(Config.getInstance().getLogDebugToFile());
AdvancedCoreHook.getInstance().setSendScoreboards(Config.getInstance().getSendScoreboards());
}
private void loadMySQL() {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
Thread.getInstance().run(new Runnable() {
@@ -851,17 +837,6 @@ public class Main extends JavaPlugin {
});
}
AdvancedCoreHook.getInstance().setCheckOnWorldChange(Config.getInstance().getCheckOnWorldChange());
AdvancedCoreHook.getInstance().setDebug(Config.getInstance().getDebugEnabled());
AdvancedCoreHook.getInstance().setDebugIngame(Config.getInstance().getDebugInfoIngame());
AdvancedCoreHook.getInstance().setDefaultRequestMethod(Config.getInstance().getRequestAPIDefaultMethod());
AdvancedCoreHook.getInstance().setDisabledRequestMethods(Config.getInstance().getRequestAPIDisabledMethods());
AdvancedCoreHook.getInstance().setFormatNoPerms(Config.getInstance().getFormatNoPerms());
AdvancedCoreHook.getInstance().setFormatNotNumber(Config.getInstance().getFormatNotNumber());
AdvancedCoreHook.getInstance().setHelpLine(Config.getInstance().getFormatHelpLine());
AdvancedCoreHook.getInstance().setLogDebugToFile(Config.getInstance().getLogDebugToFile());
AdvancedCoreHook.getInstance().setSendScoreboards(Config.getInstance().getSendScoreboards());
}
}
@@ -113,7 +113,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* Adds the points.
*/
public void addPoints() {
setPoints(getPoints() + 1);
addPoints(Config.getInstance().getPointsOnVote());
}
/**
@@ -156,11 +156,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
public void addWeekVoteStreak() {
setWeekVoteStreak(getWeekVoteStreak() + 1);
}
public int getMilestoneCount() {
return getData().getInt("MilestoneCount",getAllTimeTotal());
return getData().getInt("MilestoneCount", getAllTimeTotal());
}
public void setMilestoneCount(int value) {
getData().setInt("MilestoneCount", value);
}
@@ -188,6 +188,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* @return true, if successful
*/
public boolean canVoteSite(VoteSite voteSite) {
String siteName = voteSite.getKey();
long time = getTime(voteSite);
if (time == 0) {
@@ -196,15 +197,23 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (votedelay == 0) {
if (votedelay == 0) {
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
} else {
if (now.getDayOfYear() != lastVote.getDayOfYear() && now.getYear() != lastVote.getYear()) {
return true;
}
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
}
/**
@@ -40,6 +40,8 @@ public class VoteSite {
/** The enabled. */
private boolean enabled;
private boolean voteDelayDaily;
/** The priority. */
private int priority;
@@ -67,6 +69,20 @@ public class VoteSite {
init();
}
/**
* @return the voteDelayDaily
*/
public boolean isVoteDelayDaily() {
return voteDelayDaily;
}
/**
* @param voteDelayDaily the voteDelayDaily to set
*/
public void setVoteDelayDaily(boolean voteDelayDaily) {
this.voteDelayDaily = voteDelayDaily;
}
/**
* Broadcast vote.
*
@@ -149,6 +165,10 @@ public class VoteSite {
new RewardBuilder(configVoteSites.getData(), configVoteSites.getRewardsPath(key)).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL()).send(user);
new RewardBuilder(configVoteSites.getData(), configVoteSites.getEverySiteRewardPath()).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL()).send(user);
}
/**
@@ -177,6 +197,7 @@ public class VoteSite {
displayName = key;
}
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
}
/**
@@ -554,7 +554,8 @@ public class TopVoterHandler implements Listener {
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (!blackList.contains(user.getPlayerName())) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if ((!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore())
&& !user.isBanned()) {
users.add(user);
}
}
@@ -11,6 +11,7 @@ import com.Ben12345rocks.AdvancedCore.Listeners.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
@@ -84,6 +85,7 @@ public class VoteParty implements Listener {
if (getTotalVotes() >= Config.getInstance().getVotePartyVotesRequired()) {
setTotalVotes(getTotalVotes() - Config.getInstance().getVotePartyVotesRequired());
giveRewards();
MiscUtils.getInstance().broadcast(Config.getInstance().getVotePartyBroadcast());
}
}
@@ -36,7 +36,7 @@ public class VoteShop {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(Config.getInstance().getIdentifierSlot(identifier),
new BInventoryButton(builder.toItemStack()) {
new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {