Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c5c33be6a | ||
|
|
206665a40b | ||
|
|
159eb54e4e | ||
|
|
f63ab7b693 | ||
|
|
97e5f73774 | ||
|
|
9f85149776 | ||
|
|
d6fa68dead | ||
|
|
5e42fdbfbe | ||
|
|
9b20d1754b | ||
|
|
d310fa3688 | ||
|
|
7ab3e8040c | ||
|
|
5173c24546 | ||
|
|
0c1cccfdcd | ||
|
|
d36cd47597 | ||
|
|
6f34d11138 | ||
|
|
bf3f7bb6ad | ||
|
|
28f74aa50a | ||
|
|
dc3c605315 | ||
|
|
5abc8004c7 | ||
|
|
bf1e971edd |
No files matched your search
@@ -50,7 +50,7 @@ VoteReminding:
|
||||
# Requires VoteDelays to be setup properly
|
||||
# Use /vote next to see when you can be reminded
|
||||
# Players require the perm "VotingPlugin.Login.RemindVotes" or "VotingPlugin.Player"
|
||||
# To remind if any votesite is available (rather than all) use the permission "VotingPlugin.Login.RemindVotes.Any"
|
||||
# To remind if all votesites are available (rather than any) use the permission "VotingPlugin.Login.RemindVotes.All"
|
||||
Enabled: true
|
||||
|
||||
# Will remind player on login if he can vote
|
||||
|
||||
@@ -83,7 +83,9 @@ VoteParty:
|
||||
OnlyOncePerDay: false
|
||||
# If true, will give voteparty once per week only
|
||||
OnlyOncePerWeek: false
|
||||
# Reset extra votes
|
||||
# Reset extra votes weekly
|
||||
ResetExtraVotesWeekly: false
|
||||
# Reset extra votes monthly
|
||||
ResetExtraVotesMonthly: false
|
||||
# Count votes from /av vote?
|
||||
CountFakeVotes: true
|
||||
|
||||
@@ -257,6 +257,9 @@ permissions:
|
||||
VotingPlugin.NoRemind:
|
||||
description: Ignore vote reminding
|
||||
default: false
|
||||
VotingPlugin.BypassWaitUntilVoteDelay:
|
||||
description: Bypass WaitUntilVoteDelay
|
||||
default: false
|
||||
VotingPlugin.Sign.Create:
|
||||
description: Permission to create sign
|
||||
VotingPlugin.Admin.GenerateServiceSite:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.bencodez</groupId>
|
||||
<artifactId>${version.art}</artifactId>
|
||||
<version>6.15</version>
|
||||
<version>6.15.1</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>VotingPlugin</name>
|
||||
<properties>
|
||||
@@ -233,7 +233,7 @@
|
||||
<dependency>
|
||||
<groupId>net.md-5</groupId>
|
||||
<artifactId>bungeecord-api</artifactId>
|
||||
<version>1.20-R0.1</version>
|
||||
<version>1.20-R0.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
@@ -303,7 +303,8 @@ public class BungeeHandler implements Listener {
|
||||
if (args.size() > 8) {
|
||||
int bungeeVersion = Integer.parseInt(args.get(8));
|
||||
if (bungeeVersion != BungeeVersion.getPluginMessageVersion()) {
|
||||
plugin.getLogger().warning("Incompatible version with bungee, please update all servers" + bungeeVersion + ":" + BungeeVersion.getPluginMessageVersion());
|
||||
plugin.getLogger().warning("Incompatible version with bungee, please update all servers"
|
||||
+ bungeeVersion + ":" + BungeeVersion.getPluginMessageVersion());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -492,6 +493,11 @@ public class BungeeHandler implements Listener {
|
||||
|
||||
user.offVote();
|
||||
|
||||
if (args.size() > 3 && plugin.getBungeeSettings().isPerServerMilestones()) {
|
||||
BungeeMessageData text = new BungeeMessageData(args.get(3));
|
||||
plugin.getSpecialRewards().checkMilestone(user, text, true);
|
||||
}
|
||||
|
||||
if (args.size() > 2) {
|
||||
bungeeVotePartyCurrent = Integer.parseInt(args.get(1));
|
||||
bungeeVotePartyRequired = Integer.parseInt(args.get(2));
|
||||
@@ -592,7 +598,7 @@ public class BungeeHandler implements Listener {
|
||||
plugin.registerBungeeChannels("vp:vp");
|
||||
} else if (method.equals(BungeeMethod.REDIS)) {
|
||||
redisHandler = new RedisHandler(plugin.getBungeeSettings().getRedisHost(),
|
||||
plugin.getBungeeSettings().getRedisPort(), plugin.getBungeeSettings().getRedisPassword(),
|
||||
plugin.getBungeeSettings().getRedisPort(), plugin.getBungeeSettings().getRedisUsername(),
|
||||
plugin.getBungeeSettings().getRedisPassword()) {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -342,6 +342,16 @@ public class VotingPluginMain extends AdvancedCorePlugin {
|
||||
|
||||
}
|
||||
|
||||
public ArrayList<VoteSite> getVoteSitesEnabled() {
|
||||
ArrayList<VoteSite> sites = new ArrayList<VoteSite>();
|
||||
for (VoteSite site : getVoteSites()) {
|
||||
if (site.isEnabled()) {
|
||||
sites.add(site);
|
||||
}
|
||||
}
|
||||
return sites;
|
||||
}
|
||||
|
||||
public String getVoteSiteName(boolean checkEnabled, String... urls) {
|
||||
ArrayList<String> sites = getConfigVoteSites().getVoteSitesNames(checkEnabled);
|
||||
for (String url : urls) {
|
||||
@@ -1293,7 +1303,6 @@ public class VotingPluginMain extends AdvancedCorePlugin {
|
||||
if (timeQueueHandler != null) {
|
||||
timeQueueHandler.save();
|
||||
}
|
||||
getVoteReminding().saveReminds();
|
||||
getSigns().storeSigns();
|
||||
HandlerList.unregisterAll(plugin);
|
||||
plugin = null;
|
||||
|
||||
@@ -28,6 +28,13 @@ public class NonVotedPlayersCache {
|
||||
public void addPlayer(String uuid, String playerName) {
|
||||
getData().set("NonVotedPlayers." + playerName + ".UUID", uuid);
|
||||
getData().set("NonVotedPlayers." + playerName + ".LastTime", System.currentTimeMillis());
|
||||
save();
|
||||
}
|
||||
|
||||
public void addPlayerCheck(String uuid, String playerName) {
|
||||
if (!bungee.getMysql().containsKeyQuery(uuid)) {
|
||||
addPlayer(uuid, playerName);
|
||||
}
|
||||
}
|
||||
|
||||
public void check() {
|
||||
|
||||
@@ -73,9 +73,9 @@ import net.md_5.bungee.event.EventHandler;
|
||||
|
||||
public class VotingPluginBungee extends Plugin implements Listener {
|
||||
|
||||
private HashMap<String, ArrayList<OfflineBungeeVote>> cachedOnlineVotes = new HashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
private ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>> cachedOnlineVotes = new ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
|
||||
private HashMap<String, ArrayList<OfflineBungeeVote>> cachedVotes = new HashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
private ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>> cachedVotes = new ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
|
||||
private HashMap<String, ClientHandler> clientHandles;
|
||||
|
||||
@@ -873,6 +873,9 @@ public class VotingPluginBungee extends Plugin implements Listener {
|
||||
server = message[3];
|
||||
}
|
||||
debug("Login: " + player + "/" + uuid + " " + server);
|
||||
if (nonVotedPlayersCache != null) {
|
||||
nonVotedPlayersCache.addPlayerCheck(uuid, player);
|
||||
}
|
||||
ProxiedPlayer p = getProxy().getPlayer(player);
|
||||
login(p);
|
||||
}
|
||||
@@ -1065,9 +1068,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
|
||||
if (config.getPrimaryServer()) {
|
||||
return;
|
||||
}
|
||||
if (!config.getAllowUnJoined()) {
|
||||
sendMultiProxyServerMessage("Login", p.getUniqueId().toString(), p.getName());
|
||||
}
|
||||
sendMultiProxyServerMessage("Login", p.getUniqueId().toString(), p.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@@ -1432,7 +1433,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
|
||||
sendMessageServer(s, "VoteBroadcast", uuid, player, service);
|
||||
}
|
||||
sendMessageServer(s, "VoteUpdate", uuid, "" + votePartyVotes,
|
||||
"" + currentVotePartyVotesRequired);
|
||||
"" + currentVotePartyVotesRequired, text.toString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,12 @@ public class NonVotedPlayersCache extends VelocityJSONFile {
|
||||
save();
|
||||
}
|
||||
|
||||
public void addPlayerCheck(String uuid, String playerName) {
|
||||
if (!plugin.getMysql().containsKeyQuery(uuid)) {
|
||||
addPlayer(uuid, playerName);
|
||||
}
|
||||
}
|
||||
|
||||
public void check() {
|
||||
for (String player : getKeys(getNode("NonVotedPlayers"))) {
|
||||
long time = getNode("NonVotedPlayers", player, "LastTime").getLong(0);
|
||||
|
||||
+8
-6
@@ -95,8 +95,8 @@ import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
||||
public class VotingPluginVelocity {
|
||||
|
||||
private static final ChannelIdentifier CHANNEL = MinecraftChannelIdentifier.create("vp", "vp");
|
||||
private HashMap<String, ArrayList<OfflineBungeeVote>> cachedOnlineVotes = new HashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
private HashMap<RegisteredServer, ArrayList<OfflineBungeeVote>> cachedVotes = new HashMap<RegisteredServer, ArrayList<OfflineBungeeVote>>();
|
||||
private ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>> cachedOnlineVotes = new ConcurrentHashMap<String, ArrayList<OfflineBungeeVote>>();
|
||||
private ConcurrentHashMap<RegisteredServer, ArrayList<OfflineBungeeVote>> cachedVotes = new ConcurrentHashMap<RegisteredServer, ArrayList<OfflineBungeeVote>>();
|
||||
|
||||
private HashMap<String, ClientHandler> clientHandles;
|
||||
|
||||
@@ -952,6 +952,9 @@ public class VotingPluginVelocity {
|
||||
serverName = message[3];
|
||||
}
|
||||
debug("Login: " + player + "/" + uuid + " " + serverName);
|
||||
if (nonVotedPlayersCache != null) {
|
||||
nonVotedPlayersCache.addPlayerCheck(uuid, player);
|
||||
}
|
||||
if (server.getPlayer(player).isPresent() && (getGlobalDataHandler() == null
|
||||
|| !getGlobalDataHandler().isTimeChangedHappened())) {
|
||||
Player p = server.getPlayer(player).get();
|
||||
@@ -1472,7 +1475,7 @@ public class VotingPluginVelocity {
|
||||
|
||||
for (RegisteredServer s : getAvailableAllServers()) {
|
||||
sendMessageServer(s, "VoteUpdate", uuid, "" + votePartyVotes,
|
||||
"" + currentVotePartyVotesRequired);
|
||||
"" + currentVotePartyVotesRequired, text.toString());
|
||||
if (config.getBroadcast()) {
|
||||
sendMessageServer(s, "VoteBroadcast", uuid, player, service);
|
||||
}
|
||||
@@ -1512,9 +1515,8 @@ public class VotingPluginVelocity {
|
||||
if (config.getPrimaryServer()) {
|
||||
return;
|
||||
}
|
||||
if (!config.getAllowUnJoined()) {
|
||||
sendMultiProxyServerMessage("Login", p.getUniqueId().toString(), p.getUsername());
|
||||
}
|
||||
sendMultiProxyServerMessage("Login", p.getUniqueId().toString(), p.getUsername());
|
||||
|
||||
}
|
||||
|
||||
public boolean isInAvailableServers(String server) {
|
||||
|
||||
@@ -5,7 +5,9 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -35,6 +37,7 @@ import com.bencodez.advancedcore.api.misc.ArrayUtils;
|
||||
import com.bencodez.advancedcore.api.misc.PlayerUtils;
|
||||
import com.bencodez.advancedcore.api.rewards.RewardOptions;
|
||||
import com.bencodez.advancedcore.api.updater.Updater;
|
||||
import com.bencodez.advancedcore.api.user.UserStorage;
|
||||
import com.bencodez.advancedcore.api.user.userstorage.Column;
|
||||
import com.bencodez.advancedcore.api.user.userstorage.DataType;
|
||||
import com.bencodez.advancedcore.api.valuerequest.ValueRequest;
|
||||
@@ -1689,6 +1692,29 @@ public class CommandLoader {
|
||||
}
|
||||
});
|
||||
|
||||
plugin.getAdminVoteCommand()
|
||||
.add(new CommandHandler(plugin, new String[] { "RemoveOfflineUUIDs" },
|
||||
"VotingPlugin.Commands.AdminVote.RemoveOfflineUUIDs|" + adminPerm,
|
||||
"Purges database of offline UUIDs, keeps online UUIDs", true, true) {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if (!plugin.getOptions().isOnlineMode()) {
|
||||
sendMessage(sender, "&cNot in online mode!");
|
||||
return;
|
||||
}
|
||||
int amount = 0;
|
||||
for (String uuid : plugin.getUserManager().getAllUUIDs()) {
|
||||
if (uuid.charAt(14) == '3') {
|
||||
plugin.getUserManager().removeUUID(UUID.fromString(uuid));
|
||||
amount++;
|
||||
}
|
||||
|
||||
}
|
||||
sendMessage(sender, "&cOffline UUIDs purged: " + amount);
|
||||
}
|
||||
});
|
||||
|
||||
plugin.getAdminVoteCommand()
|
||||
.add(new CommandHandler(plugin, new String[] { "Placeholders", "(player)" },
|
||||
"VotingPlugin.Commands.AdminVote.Placeholders.Players|" + adminPerm,
|
||||
@@ -1702,6 +1728,51 @@ public class CommandLoader {
|
||||
}
|
||||
});
|
||||
|
||||
plugin.getAdminVoteCommand()
|
||||
.add(new CommandHandler(plugin, new String[] { "MergeDataFrom", "(UserStorage)" },
|
||||
"VotingPlugin.Commands.AdminVote.MergeDataFrom|" + adminPerm,
|
||||
"Merge player totals from other storage type", true, true) {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
plugin.loadUserAPI(UserStorage.value(args[1]));
|
||||
|
||||
if (plugin.getMysql() != null) {
|
||||
plugin.getMysql().clearCacheBasic();
|
||||
}
|
||||
|
||||
HashMap<UUID, ArrayList<Column>> cols = plugin.getUserManager()
|
||||
.getAllKeys(UserStorage.value(args[1]));
|
||||
Queue<Entry<UUID, ArrayList<Column>>> players = new LinkedList<Entry<UUID, ArrayList<Column>>>(
|
||||
cols.entrySet());
|
||||
ArrayList<String> uuids = plugin.getUserManager().getAllUUIDs();
|
||||
|
||||
while (players.size() > 0) {
|
||||
Entry<UUID, ArrayList<Column>> entry = players.poll();
|
||||
VotingPluginUser user = plugin.getVotingPluginUserManager()
|
||||
.getVotingPluginUser(entry.getKey(), false);
|
||||
user.dontCache();
|
||||
if (uuids.contains(entry.getKey().toString())) {
|
||||
user.mergeData(user.getData().convert(entry.getValue()));
|
||||
} else {
|
||||
user.getData().setValues(plugin.getStorageType(),
|
||||
user.getData().convert(entry.getValue()));
|
||||
}
|
||||
|
||||
sendMessage(sender, "Finished merge for " + user.getUUID() + ", " + players.size()
|
||||
+ " more left to go!");
|
||||
|
||||
if (players.size() % 50 == 0) {
|
||||
sendMessage(sender,
|
||||
"Working on converting data, about " + players.size() + " left to go!");
|
||||
}
|
||||
}
|
||||
plugin.getUserManager().getDataManager().clearCache();
|
||||
sendMessage(sender, "Merge finished");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
plugin.getAdminVoteCommand().add(new CommandHandler(plugin, new String[] {},
|
||||
"VotingPlugin.Commands.AdminVote|" + adminPerm, "Base command") {
|
||||
|
||||
@@ -2051,6 +2122,7 @@ public class CommandLoader {
|
||||
plugin.getVoteReminding().getRemindersEnabled().put(p.getUniqueId(), value);
|
||||
plugin.getPlaceholders().onUpdate(
|
||||
plugin.getVotingPluginUserManager().getVotingPluginUser(p.getUniqueId(), p.getName()), true);
|
||||
plugin.getVoteReminding().saveReminds();
|
||||
|
||||
if (value) {
|
||||
sendMessage(sender, plugin.getConfigFile().getFormatCommandsVoteToggleRemindersEnabled());
|
||||
|
||||
@@ -66,6 +66,10 @@ public class SpecialRewardsConfig extends YMLFile {
|
||||
@ConfigDataBoolean(path = "VoteParty.ResetExtraVotesMonthly")
|
||||
@Getter
|
||||
private boolean votePartyResetExtraVotesMonthly = false;
|
||||
|
||||
@ConfigDataBoolean(path = "VoteParty.ResetExtraVotesWeekly")
|
||||
@Getter
|
||||
private boolean votePartyResetExtraVotesWeekly = false;
|
||||
|
||||
@ConfigDataString(path = "VoteParty.VoteReminderBroadcast")
|
||||
@Getter
|
||||
|
||||
@@ -115,8 +115,18 @@ public class PlayerVoteListener implements Listener {
|
||||
}
|
||||
|
||||
if (voteSite.isWaitUntilVoteDelay() && !user.canVoteSite(voteSite)) {
|
||||
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
|
||||
return;
|
||||
if (!event.isRealVote()) {
|
||||
plugin.getLogger()
|
||||
.info(user.getPlayerName() + " did a not real vote, bypassing WaitUntilVoteDelay");
|
||||
} else {
|
||||
if (user.hasPermission("VotingPlugin.BypassWaitUntilVoteDelay")) {
|
||||
plugin.getLogger()
|
||||
.info(user.getPlayerName() + " has bypass permission for WaitUntilVoteDelay, bypassing");
|
||||
} else {
|
||||
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final String uuid = user.getUUID();
|
||||
|
||||
@@ -262,7 +262,9 @@ public class SpecialRewards {
|
||||
if (streak.contains("-")) {
|
||||
// multiple
|
||||
multiple = true;
|
||||
|
||||
}
|
||||
plugin.debug("Streak: " + streak + " multiple: " + multiple);
|
||||
if (StringParser.getInstance().isInt(s)) {
|
||||
int streakRequired = Integer.parseInt(s);
|
||||
if (streakRequired != 0) {
|
||||
@@ -287,8 +289,7 @@ public class SpecialRewards {
|
||||
}
|
||||
} else {
|
||||
if (curStreak != 0 && curStreak % streakRequired == 0) {
|
||||
giveVoteStreakReward(user, user.isOnline(), type, streakRequired + "-", curStreak,
|
||||
forceBungee);
|
||||
giveVoteStreakReward(user, user.isOnline(), type, streak, curStreak, forceBungee);
|
||||
gotReward = true;
|
||||
plugin.debug(
|
||||
user.getPlayerName() + " got VoteStreak " + streakRequired + "* for " + type);
|
||||
|
||||
@@ -24,6 +24,8 @@ import com.bencodez.advancedcore.api.misc.MiscUtils;
|
||||
import com.bencodez.advancedcore.api.rewards.RewardBuilder;
|
||||
import com.bencodez.advancedcore.api.rewards.RewardOptions;
|
||||
import com.bencodez.advancedcore.api.user.AdvancedCoreUser;
|
||||
import com.bencodez.advancedcore.api.user.usercache.value.DataValue;
|
||||
import com.bencodez.advancedcore.api.user.usercache.value.DataValueInt;
|
||||
import com.bencodez.votingplugin.VotingPluginMain;
|
||||
import com.bencodez.votingplugin.bungee.BungeeMessageData;
|
||||
import com.bencodez.votingplugin.bungee.BungeeMethod;
|
||||
@@ -350,6 +352,10 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
|
||||
if (!voteStreakUpdatedToday(LocalDateTime.now())) {
|
||||
if (!plugin.getSpecialRewardsConfig().isVoteStreakRequirementUsePercentage() || hasPercentageTotal(
|
||||
TopVoter.Daily, plugin.getSpecialRewardsConfig().getVoteStreakRequirementDay(), null)) {
|
||||
plugin.extraDebug("Adding day vote streak to " + getUUID() + " "
|
||||
+ plugin.getSpecialRewardsConfig().isVoteStreakRequirementUsePercentage() + " "
|
||||
+ hasPercentageTotal(TopVoter.Daily,
|
||||
plugin.getSpecialRewardsConfig().getVoteStreakRequirementDay(), null));
|
||||
addDayVoteStreak();
|
||||
plugin.getSpecialRewards().checkVoteStreak(this, "Day", forceBungee);
|
||||
setDayVoteStreakLastUpdate(System.currentTimeMillis());
|
||||
@@ -681,11 +687,12 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
|
||||
int total = getTotal(top);
|
||||
switch (top) {
|
||||
case Daily:
|
||||
return total / plugin.getVoteSites().size() * 100 > percentage;
|
||||
return (double) total / (double) plugin.getVoteSitesEnabled().size() * 100 > percentage;
|
||||
case Monthly:
|
||||
return total / (plugin.getVoteSites().size() * time.getMonth().length(false)) * 100 > percentage;
|
||||
return (double) total / ((double) plugin.getVoteSitesEnabled().size() * time.getMonth().length(false))
|
||||
* 100 > percentage;
|
||||
case Weekly:
|
||||
return total / (plugin.getVoteSites().size() * 7) * 100 > percentage;
|
||||
return (double) total / ((double) plugin.getVoteSitesEnabled().size() * 7) * 100 > percentage;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -1409,4 +1416,20 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
|
||||
|
||||
}
|
||||
|
||||
public void mergeData(HashMap<String, DataValue> toAdd) {
|
||||
HashMap<String, DataValue> currentData = getData().getValues();
|
||||
HashMap<String, DataValue> newData = new HashMap<String, DataValue>();
|
||||
|
||||
for (TopVoter top : TopVoter.values()) {
|
||||
if (toAdd.containsKey(top.getColumnName()) && currentData.containsKey(top.getColumnName())) {
|
||||
newData.put(top.getColumnName(), new DataValueInt(
|
||||
currentData.get(top.getColumnName()).getInt() + toAdd.get(top.getColumnName()).getInt()));
|
||||
}
|
||||
}
|
||||
|
||||
if (newData.size() > 0) {
|
||||
getData().setValues(newData);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -305,6 +305,10 @@ public class VoteParty implements Listener {
|
||||
if (plugin.getSpecialRewardsConfig().isVotePartyResetWeekly()) {
|
||||
reset(true);
|
||||
}
|
||||
|
||||
if (plugin.getSpecialRewardsConfig().isVotePartyResetExtraVotesWeekly()) {
|
||||
plugin.getServerData().setVotePartyExtraRequired(0);
|
||||
}
|
||||
}
|
||||
|
||||
public void register() {
|
||||
|
||||
Reference in new issue
Block a user