Compare commits

...
79 Commits
Author SHA1 Message Date
Ben12345rocks 0af3f7f2bc Update build path 2017-08-08 10:38:50 -04:00
Ben b3baa33c39 Merge pull request #240 from Ben12345rocks/5.9.5
5.9.5
2017-08-08 10:34:31 -04:00
Ben12345rocks e7f8aac88d Bug fix 2017-08-08 10:30:12 -04:00
Ben12345rocks 6ce4040bae Update build path 2017-08-07 17:37:44 -04:00
Ben12345rocks f5e38b2b1b Update version number 2017-08-07 17:22:19 -04:00
Ben12345rocks 9fdb9b4efb Minor change to user api 2017-08-06 12:44:57 -04:00
Ben12345rocks 29f020bdc0 Bug fix 2017-08-03 18:22:34 -04:00
Ben12345rocks cce5bb0672 Bug fix, closes #238 2017-08-03 17:47:43 -04:00
Ben12345rocks 8a0cd0426c Fix offline top voter messaging 2017-08-02 21:02:38 -04:00
Ben12345rocks 397c4392a0 Update perms list 2017-08-02 19:33:27 -04:00
Ben12345rocks 4784b372c9 Make site names non case sensitive, closes #235 2017-07-31 20:09:35 -04:00
Ben12345rocks 1521d0787c Add vanish support for broadcasting, closes #232 2017-07-31 20:05:30 -04:00
Ben12345rocks 9cbcb74822 Improve last vote time showing when never voted, closes #237 2017-07-31 19:57:07 -04:00
Ben ae75f63c94 Merge pull request #231 from Ben12345rocks/5.9.4
5.9.4
2017-07-23 17:06:25 -04:00
Ben12345rocks e91e2e109c Update build path 2017-07-23 17:02:33 -04:00
Ben12345rocks 0fb0a6351d Add options to remove back button, closes #227 2017-07-23 16:50:45 -04:00
Ben12345rocks 10d06c170d Code cleanup 2017-07-23 14:48:16 -04:00
Ben12345rocks a4c0a9b45b Update version number 2017-07-23 14:43:57 -04:00
Ben12345rocks 63fc8d436e Update advancedcore 2017-07-23 14:42:49 -04:00
Ben12345rocks 6160110ba2 Improvements 2017-07-22 19:34:34 -04:00
Ben12345rocks e337c267a8 Fix typo, closes #228 2017-07-22 19:26:08 -04:00
Ben12345rocks b0abbcc99f Improve mysql loading for background task, closes #230 2017-07-22 19:10:25 -04:00
Ben12345rocks f75dffe5df Remove /v, Closes #229 2017-07-22 19:03:08 -04:00
Ben12345rocks 146d981c23 Update 2017-07-22 18:52:44 -04:00
Ben12345rocks 2e7ed9c1c1 Update Settings 2017-07-21 09:45:42 -04:00
Ben 198fe10447 Merge pull request #226 from Ben12345rocks/5.9.3
5.9.3
2017-07-16 17:10:04 -04:00
Ben12345rocks ab8dd96a79 Update version number 2017-07-16 17:10:45 -04:00
Ben12345rocks cac0b0e99c Add ability to give vote site rewards offline 2017-07-15 19:10:21 -04:00
Ben12345rocks 80ae9dbe2d Update build path 2017-07-12 09:28:08 -04:00
Ben f91a02ba3f Merge pull request #222 from Ben12345rocks/5.9.2
5.9.2
2017-07-11 11:57:38 -04:00
Ben12345rocks 25d718a37c Update version number 2017-07-11 11:46:59 -04:00
Ben12345rocks 6114373237 Update version number 2017-07-11 11:10:49 -04:00
Ben12345rocks 3c60c99c83 Closes #221 2017-07-10 10:21:19 -04:00
Ben12345rocks e237b382cd Bug fixes, closes #197, closes #220 2017-07-10 10:07:46 -04:00
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
Ben12345rocks 252263da74 Update version number 2017-06-14 15:28:14 -04:00
Ben12345rocks e7696bed25 Minor improvements 2017-06-11 16:51:36 -04:00
Ben12345rocks 064451d2b5 Update version number 2017-06-11 15:21:59 -04:00
Ben12345rocks daa25805fa Change the way converting data storages work 2017-06-08 16:03:16 -04:00
Ben12345rocks cc010d9738 Fix shop item not working 2017-06-03 19:46:46 -04:00
Ben12345rocks cbe58a1f18 Update build path 2017-06-03 19:27:05 -04:00
Ben c29247d2a0 Merge pull request #198 from Ben12345rocks/5.8.4
5.8.4
2017-06-03 19:21:02 -04:00
Ben12345rocks a28cdfc6bf Update version number 2017-06-03 19:21:39 -04:00
Ben12345rocks 7db5cd59da More improvements 2017-06-03 10:40:33 -04:00
Ben12345rocks 0ebb0c9a70 Changes to /vgui 2017-06-03 09:50:37 -04:00
Ben12345rocks 9ba20ddd02 Bug fixes, closes #197 2017-06-02 15:43:06 -04:00
Ben12345rocks 7fddc0af12 Improve support for /reload, closes #194 2017-06-02 15:25:10 -04:00
Ben12345rocks 475e6059eb Add 1.12 support, update version number 2017-05-15 15:57:33 -04:00
Ben b552928b8c Update README.md 2017-05-04 20:06:46 -04:00
28 changed files with 705 additions and 515 deletions

No files matched your search

+1
View File
@@ -17,6 +17,7 @@ https://github.com/Ben12345rocks/VotingPlugin/blob/master/VotingPlugin/LICENSE.t
<groupId>com.github.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>LATEST</version>
<scope>provided</scope>
</dependency>
Versions:
+1 -1
View File
@@ -11,7 +11,7 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.jboss.ide.eclipse.as.core.singledeployable.deployableList=\n
Binary file not shown.
+40 -7
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:
@@ -319,19 +321,29 @@ GUI:
Amount: 1
Name: '&4Today'
Slot: 5
Rewards:
Shop:
Item:
Material: 'DIAMOND'
Data: 0
Amount: 1
Name: '&4Voting Rewards'
Name: '&4Vote Shop'
Slot: 6
# /vote Reward gui item
# Uncomment to use, most likely will be unused
#Rewards:
# Item:
# Material: 'DIAMOND'
# Data: 0
# Amount: 1
# Name: '&4Voting Rewards'
# Slot: 7
# GUI for /vote url
# And /vote if enabled in Config.yml
VoteURL:
# GUI Name
Name: '&cVoteURL'
BackButton: true
SiteName: '&c%Name%'
SeeURL: '&cClick to see URL'
NextVote: '&cCan Vote In: %Info%'
@@ -381,12 +393,16 @@ GUI:
Slot: 0
VoteLast:
Name: 'VoteLast: %player%'
BackButton: true
VoteNext:
Name: 'VoteNext: %player%'
BackButton: true
VoteToday:
Name: 'VoteToday'
BackButton: true
VoteTop:
Name: 'VoteTop %topvoter%'
BackButton: false
Item:
Name: '&3&l%position%: &3%player%'
Lore: '&3&lVotes: &3%votes%'
@@ -402,6 +418,7 @@ GUI:
Size: 27
VoteTotal:
Name: 'VoteTotal: %player%'
BackButton: true
DayTotal:
Item:
Material: 'WATCH'
@@ -448,6 +465,7 @@ GUI:
Amount: 1
VoteStreak:
Name: 'VoteBest: %player%'
BackButton: false
CurrentDayStreak:
Item:
Material: 'WATCH'
@@ -564,9 +582,14 @@ 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: []
# Reset milestons at end of the month
ResetMilestonesMonthly: false
MileStones:
# Number of votes required
# Allows multiple milestones
@@ -577,12 +600,12 @@ MileStones:
Rewards:
Messages:
Player: '&aYou got %milestone% milestone votes!'
ResetMonthly: false
VoteStreak:
# Valid options: Day, Week, Month
Day:
# Number of days in a row
# Each day requires one vote
'2':
# Enabled or not
Enabled: false
@@ -591,7 +614,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
@@ -600,7 +624,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
@@ -653,7 +678,7 @@ EnableMonthlyAwards: true
MonthlyAwards:
# Position. 1 is first in top voter, 2 is second, etc...
1:
Rewards:
Rewards:
Messages:
Player: '&aYou came in first place in %TopVoter%!'
2:
@@ -693,6 +718,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
@@ -736,3 +765,7 @@ DelayBetweenUpdates: 3
# Set to true to disable no service site message on voting
# You should never have to touch this if everything is setup properly
DisableNoServiceSiteMessage: false
# Used in special cases
# Much slower, but may work better
AlternateUUIDLookup: false
+11 -1
View File
@@ -28,6 +28,12 @@ VoteSites:
# Most sites are 24 hours
VoteDelay: 24
# Reset vote delay each day (for certain sites that do this)
VoteDelayDaily: false
# If true, rewards can be executed offline (required ForceOffline to be true in the reward)
GiveOffline: false
# VoteSite Material for GUI's
Item:
Material: 'DIAMOND'
@@ -35,4 +41,8 @@ VoteSites:
# List of reward files to give to voter
Rewards:
- 'ExampleReward'
- 'ExampleReward'
# Reward for any site
# Similar to AnySiteReward
EverySiteReward: []
-2
View File
@@ -8,8 +8,6 @@ softdepend: [AdvancedCore]
commands:
vote:
description: Vote command
v:
description: Vote command
adminvote:
description: Admin commands for VotingPlugin
av:
+14 -8
View File
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.8.2</version>
<version>5.9.5</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -55,25 +55,25 @@
other plugins -->
<relocation>
<pattern>com.Ben12345rocks.AdvancedCore</pattern>
<shadedPattern>${groupId}.${artifactId}.AdvancedCore</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.AdvancedCore</shadedPattern>
</relocation>
<!-- Lets relocate the shaded API so we dont cause any conflicts with
other plugins -->
<relocation>
<pattern>net.pl3x.bukkit.chatapi</pattern>
<shadedPattern>${groupId}.${artifactId}</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}</shadedPattern>
</relocation>
<relocation>
<pattern>me.mrten.mysqlapi</pattern>
<shadedPattern>${groupId}.${artifactId}.mysqlapi</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.mysqlapi</shadedPattern>
</relocation>
<relocation>
<pattern>com.zaxxer.HikariCP</pattern>
<shadedPattern>${groupId}.${artifactId}.HikariCP</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.HikariCP</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j.slf4j-simple</pattern>
<shadedPattern>${groupId}.${artifactId}.slf4j-simple</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.slf4j-simple</shadedPattern>
</relocation>
</relocations>
</configuration>
@@ -156,13 +156,12 @@
<artifactId>AdvancedCore</artifactId>
<version>master-SNAPSHOT</version>
</dependency>
<!-- <dependency> <groupId>com.Ben12345rocks</groupId> <artifactId>AdvancedCore</artifactId>
<version>LATEST</version> <scope>compile</scope> </dependency> -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.11.2-R0.1-SNAPSHOT</version>
<version>1.12-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -179,5 +178,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;
@@ -35,11 +39,20 @@ import com.Ben12345rocks.VotingPlugin.Commands.TabCompleter.AliasesTabCompleter;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
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
/**
@@ -93,6 +106,13 @@ public class CommandLoader {
CommandLoader.plugin = plugin;
}
/**
* @return the adminPerm
*/
public String getAdminPerm() {
return adminPerm;
}
/**
* Gets the commands.
*
@@ -102,25 +122,91 @@ public class CommandLoader {
return commands;
}
/**
* @return the modPerm
*/
public String getModPerm() {
return modPerm;
}
/**
* @return the playerPerm
*/
public String getPlayerPerm() {
return playerPerm;
}
/**
* Load admin vote command.
*/
private void loadAdminVoteCommand() {
plugin.adminVoteCommand = new ArrayList<CommandHandler>();
plugin.adminVoteCommand
.add(new CommandHandler(new String[] { "TriggerPlayerVoteEvent", "(player)", "(Sitename)" },
"VotingPlugin.Commands.AdminVote.TriggerPlayerVoteEvent|" + adminPerm,
"Trigger vote event, used for testing") {
@Override
public void execute(CommandSender sender, String[] args) {
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(args[2]),
UserManager.getInstance().getVotingPluginUser(args[1]));
plugin.getServer().getPluginManager().callEvent(voteEvent);
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()) {
VoteRoulette.getInstance();
Voter voter = VoteRoulette.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 +365,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();
}
@@ -347,8 +435,10 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().Vote(sender, args[1], args[2]);
VotiferEvent.playerVote(args[1], args[2]);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(args[2]),
UserManager.getInstance().getVotingPluginUser(args[1]));
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
});
@@ -378,7 +468,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().setVoteSiteServiceSite(sender, args[1], args[3]);
CommandAdminVote.getInstance().setVoteSiteServiceSite(sender, plugin.getVoteSiteName(args[1]), args[3]);
}
});
@@ -388,7 +478,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().setVoteSiteVoteURL(sender, args[1], args[3]);
CommandAdminVote.getInstance().setVoteSiteVoteURL(sender, plugin.getVoteSiteName(args[1]), args[3]);
}
});
@@ -399,7 +489,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().setVoteSitePriority(sender, args[1], Integer.parseInt(args[3]));
CommandAdminVote.getInstance().setVoteSitePriority(sender, plugin.getVoteSiteName(args[1]), Integer.parseInt(args[3]));
}
});
@@ -411,7 +501,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().setVoteSiteVoteDelay(sender, args[1], Integer.parseInt(args[3]));
CommandAdminVote.getInstance().setVoteSiteVoteDelay(sender, plugin.getVoteSiteName(args[1]), Integer.parseInt(args[3]));
}
});
@@ -441,7 +531,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().setVoteSiteEnabled(sender, args[1],
CommandAdminVote.getInstance().setVoteSiteEnabled(sender, plugin.getVoteSiteName(args[1]),
Boolean.parseBoolean(args[3]));
}
@@ -453,7 +543,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
CommandAdminVote.getInstance().checkVoteSite(sender, args[1]);
CommandAdminVote.getInstance().checkVoteSite(sender, plugin.getVoteSiteName(args[1]));
}
});
@@ -552,8 +642,7 @@ public class CommandLoader {
@Override
public void onInput(Player player, String value) {
CommandAdminVote.getInstance().Vote(player,
VotiferEvent.playerVote(
UserGUI.getInstance().getCurrentPlayer(player), value);
player.sendMessage("Forced vote for "
@@ -628,11 +717,10 @@ public class CommandLoader {
int mileStone = Integer.parseInt(mileStoneName);
inv.addButton(inv.getNextSlot(),
new BInventoryButton("" + mileStone,
new String[] {
"Enabled: " + Config.getInstance()
.getMilestoneRewardEnabled(mileStone),
"&cClick to set wether this has been completed or not" },
new BInventoryButton("" + mileStone, new String[] {
"Enabled: " + Config.getInstance()
.getMilestoneRewardEnabled(mileStone),
"&cClick to set wether this has been completed or not" },
new ItemStack(Material.STONE)) {
@Override
@@ -1090,7 +1178,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);
@@ -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>();
@@ -197,7 +197,7 @@ public class Commands {
ArrayList<String> msg = new ArrayList<String>();
for (CommandHandler handle : plugin.voteCommand) {
msg.add(handle.getHelpLineCommand("/v") + " : " + handle.getPerm());
msg.add(handle.getHelpLineCommand("/vote") + " : " + handle.getPerm());
}
for (CommandHandler handle : plugin.adminVoteCommand) {
@@ -470,13 +470,10 @@ public class Commands {
/**
* Update vote today.
*/
public void updateVoteToday() {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
public void updateVoteToday(ArrayList<User> users) {
plugin.voteToday.clear();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
for (User user : users) {
HashMap<VoteSite, LocalDateTime> times = new HashMap<VoteSite, LocalDateTime>();
for (VoteSite voteSite : plugin.getVoteSites()) {
long time = user.getTime(voteSite);
@@ -530,9 +527,13 @@ public class Commands {
* @return the string
*/
public String voteCommandLastDate(User user, VoteSite voteSite) {
Date date = new Date(user.getTime(voteSite));
String timeString = new SimpleDateFormat(config.getFormatTimeFormat()).format(date);
return timeString;
long time = user.getTime(voteSite);
if (time > 0) {
Date date = new Date(time);
String timeString = new SimpleDateFormat(config.getFormatTimeFormat()).format(date);
return timeString;
}
return "";
}
public String voteCommandLastLine(User user, VoteSite voteSite) {
@@ -587,29 +588,38 @@ 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"));
}
}
@@ -741,12 +751,7 @@ 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);
}
@@ -16,7 +16,6 @@ import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -455,18 +454,4 @@ public class CommandAdminVote implements CommandExecutor {
}
}
/**
* Vote.
*
* @param sender
* the sender
* @param playerName
* the player name
* @param voteSite
* the vote site
*/
public void Vote(CommandSender sender, String playerName, String voteSite) {
VotiferEvent.playerVote(playerName, voteSite);
}
}
@@ -83,10 +83,9 @@ public class CommandAliases implements CommandExecutor {
}
/*
* for (String arg : cmdHandle.getArgs()[0].split("&")) { argsNew.set(0,
* arg); if (cmdHandle.runCommand(sender,
* Utils.getInstance().convertArray(argsNew))) { plugin.debug(
* "cmd found, ran cmd"); return true; } }
* for (String arg : cmdHandle.getArgs()[0].split("&")) { argsNew.set(0, arg);
* if (cmdHandle.runCommand(sender, Utils.getInstance().convertArray(argsNew)))
* { plugin.debug( "cmd found, ran cmd"); return true; } }
*/
// invalid command
@@ -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());
}
}
}
@@ -16,7 +16,6 @@ import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.BooleanListene
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.NumberListener;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.StringListener;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
@@ -59,7 +58,7 @@ public class AdminGUI {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
if (event.getClick().equals(ClickType.MIDDLE)) {
player.closeInventory();
new ValueRequest().requestString(player, new StringListener() {
@Override
@@ -76,19 +75,6 @@ public class AdminGUI {
}
});
lore = new ArrayList<String>();
buttons.add(new BInventoryButton("&cConfig", ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
openAdminGUIConfig(player);
}
}
});
lore = new ArrayList<String>();
buttons.add(new BInventoryButton("&cReload Plugin", ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE, 1, (short) 3)) {
@@ -108,39 +94,6 @@ public class AdminGUI {
}
}
/**
* Open admin GUI config.
*
* @param player
* the player
*/
public void openAdminGUIConfig(Player player) {
BInventory inv = new BInventory("Config");
inv.addButton(inv.getNextSlot(),
new BInventoryButton("BroadcastVote",
new String[] { "Currently: " + Config.getInstance().getBroadCastVotesEnabled() },
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
new ValueRequest().requestBoolean(player, "" + Config.getInstance().getBroadCastVotesEnabled(),
new BooleanListener() {
@Override
public void onInput(Player player, boolean value) {
Config.getInstance().setBroadcastVoteEnabled(value);
player.sendMessage("Value set");
}
});
}
});
inv.openInventory(player);
}
/**
* Open admin GUI vote sites.
*
@@ -215,7 +168,7 @@ public class AdminGUI {
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null,
new StringListener() {
@@ -239,7 +192,6 @@ public class AdminGUI {
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null, new StringListener() {
@Override
@@ -262,7 +214,7 @@ public class AdminGUI {
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getVoteURL(), null, new StringListener() {
@Override
@@ -1,7 +1,6 @@
package com.Ben12345rocks.VotingPlugin.Commands.GUI;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Map.Entry;
import java.util.Set;
@@ -25,6 +24,7 @@ import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteShop.VoteShop;
public class PlayerGUIs {
static PlayerGUIs instance = new PlayerGUIs();
@@ -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,15 @@ public class PlayerGUIs {
}
public void openVoteGUI(Player player, User user) {
if (!player.getName().equals(user.getPlayerName())
if (user == null) {
user = UserManager.getInstance().getVotingPluginUser(player);
setSelectedPlayer(player, user);
}
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 +112,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,9 +133,7 @@ public class PlayerGUIs {
} else if (slot.equalsIgnoreCase("today")) {
lore = Commands.getInstance().voteToday();
} else if (slot.equalsIgnoreCase("help")) {
ArrayList<String> loreSt = new ArrayList<String>();
loreSt = ArrayUtils.getInstance().comptoString(Commands.getInstance().voteHelpText(player));
lore = ArrayUtils.getInstance().convert(loreSt);
lore = new String[] { "Click to view help" };
}
}
@@ -161,7 +162,9 @@ public class PlayerGUIs {
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("v help");
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
VoteShop.getInstance().voteShop(player);
}
}
@@ -169,7 +172,7 @@ public class PlayerGUIs {
});
}
BInventory.openInventory(player, inv);
inv.openInventory(player);
}
public void openVoteLast(Player player, User user) {
@@ -183,11 +186,22 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteLast(player, getSelectedPlayer(player));
}
});
}
if (Config.getInstance().getGUIVoteLastBackButton()) {
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 +216,21 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteNext(player, getSelectedPlayer(player));
}
});
}
if (Config.getInstance().getGUIVoteNextBackButton()) {
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 +244,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -230,8 +253,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -241,8 +263,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -251,8 +272,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -261,8 +281,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -272,11 +291,20 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
if (Config.getInstance().getGUIVoteStreakBackButton()) {
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 +329,17 @@ public class PlayerGUIs {
});
}
}
if (Config.getInstance().getGUIVoteTodayBackButton()) {
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,9 +393,20 @@ public class PlayerGUIs {
openVoteTop(player, cur.next());
}
});
if (Config.getInstance().getGUIVoteTopBackButton()) {
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);
}
public void openVoteTotal(Player player, User user) {
@@ -368,8 +418,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 +426,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 +434,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,10 +442,18 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
if (Config.getInstance().getGUIVoteTotalBackButton()) {
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 +486,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,7 +523,18 @@ public class PlayerGUIs {
count++;
}
BInventory.openInventory(player, inv);
if (Config.getInstance().getGUIVoteURLBackButton()) {
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);
}
public void openVoteURL(Player player, String voteSite) {
@@ -506,6 +572,15 @@ public class PlayerGUIs {
}
});
if (Config.getInstance().getGUIVoteURLBackButton()) {
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 +643,6 @@ public class PlayerGUIs {
}
}
BInventory.openInventory(player, inv);
inv.openInventory(player);
}
}
@@ -46,6 +46,10 @@ public class Config extends YMLFile {
public boolean allowUnJoined() {
return getData().getBoolean("AllowUnjoined");
}
public boolean getGUIVoteLastBackButton() {
return getData().getBoolean("GUI.VoteLast.BackButton");
}
/**
* Gets the all sites reward.
@@ -366,7 +370,6 @@ public class Config extends YMLFile {
*/
public String getFormatCommandsVoteNextInfoError() {
return getData().getString("Format.Commands.Vote.Next.Info.Error", "");
}
/**
@@ -377,7 +380,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");
}
/**
@@ -804,10 +810,6 @@ public class Config extends YMLFile {
return getData().getBoolean("LogVotesToFile");
}
public boolean getMilestoneResetMonthly(int milestones) {
return getData().getBoolean("MileStones." + milestones + ".ResetMonthly");
}
/**
* Gets the milestone reward enabled.
*
@@ -857,6 +859,10 @@ public class Config extends YMLFile {
public String getMonthlyAwardRewardsPath(int pos) {
return "MonthlyAwards." + pos + ".Rewards";
}
public boolean getAlternateUUIDLookup() {
return getData().getBoolean("AlternateUUIDLookup");
}
/**
* Gets the monthly awards enabled.
@@ -908,6 +914,10 @@ public class Config extends YMLFile {
return getData().getString("MySQL.Username", "");
}
public int getPointsOnVote() {
return getData().getInt("PointsOnVote", 1);
}
/**
* Gets the request API default method.
*
@@ -927,6 +937,10 @@ public class Config extends YMLFile {
return (ArrayList<String>) getData().getList("RequestAPI.DisabledMethods", new ArrayList<String>());
}
public boolean getResetMilestonesMonthly() {
return getData().getBoolean("ResetMilestonesMonthly");
}
/**
* Gets the send scoreboards.
*
@@ -1023,6 +1037,10 @@ public class Config extends YMLFile {
return getData().getInt("GUI.VoteGUI." + slot + ".Slot");
}
public String getVotePartyBroadcast() {
return getData().getString("VoteParty.Broadcast", "");
}
/**
* Gets the vote party enabled.
*
@@ -1370,4 +1388,28 @@ public class Config extends YMLFile {
saveData();
}
public boolean getGUIVoteStreakBackButton() {
return getData().getBoolean("GUI.VoteStreak.BackButton");
}
public boolean getGUIVoteNextBackButton() {
return getData().getBoolean("GUI.VoteNext.BackButton");
}
public boolean getGUIVoteTodayBackButton() {
return getData().getBoolean("GUI.VoteToday.BackButton");
}
public boolean getGUIVoteTopBackButton() {
return getData().getBoolean("GUI.VoteToday.BackButton");
}
public boolean getGUIVoteTotalBackButton() {
return getData().getBoolean("GUI.VoteTotal.BackButton");
}
public boolean getGUIVoteURLBackButton() {
return getData().getBoolean("GUI.VoteURL.BackButton");
}
}
@@ -55,7 +55,7 @@ public class ConfigVoteSites extends YMLFile {
String org = siteName;
siteName = siteName.replace(".", "_");
plugin.getLogger().warning("VoteSite " + siteName
+ " doe not exist, creating one, set AutoCreateVoteSites to false to prevent this");
+ " does not exist, creating one, set AutoCreateVoteSites to false to prevent this");
setEnabled(siteName, true);
setServiceSite(siteName, org);
setVoteURL(siteName, "VoteURL");
@@ -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.
*
@@ -99,14 +74,17 @@ public class ConfigVoteSites extends YMLFile {
* @return the data
*/
public ConfigurationSection getData(String siteName) {
ConfigurationSection data = getData().getConfigurationSection("VoteSites." + siteName);
return data;
return getData().getConfigurationSection("VoteSites." + siteName);
}
public String getDisplayName(String site) {
return getData(site).getString("Name");
}
public String getEverySiteRewardPath() {
return "EverySiteReward";
}
public ConfigurationSection getItem(String site) {
return getData(site).getConfigurationSection("Item");
}
@@ -188,6 +166,14 @@ public class ConfigVoteSites extends YMLFile {
}
public boolean getVoteSiteGiveOffline(String site) {
return getData(site).getBoolean("GiveOffline");
}
public boolean getVoteSiteResetVoteDelayDaily(String siteName) {
return getData(siteName).getBoolean("VoteDelayDaily");
}
/**
* Gets the vote sites load.
*
@@ -272,9 +258,7 @@ public class ConfigVoteSites extends YMLFile {
* @return true, if is service site good
*/
public boolean isServiceSiteGood(String siteName) {
if (getServiceSite(siteName) == null) {
return false;
} else if (getServiceSite(siteName).equalsIgnoreCase("")) {
if (getServiceSite(siteName) == null || getServiceSite(siteName).equals("")) {
return false;
}
return true;
@@ -288,9 +272,7 @@ public class ConfigVoteSites extends YMLFile {
* @return true, if is vote URL good
*/
public boolean isVoteURLGood(String siteName) {
if (getVoteURL(siteName) == null) {
return false;
} else if (getVoteURL(siteName).equalsIgnoreCase("")) {
if (getVoteURL(siteName) == null || getVoteURL(siteName).equals("")) {
return false;
}
return true;
@@ -45,9 +45,9 @@ public class VotiferEvent implements Listener {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
synchronized (plugin) {
synchronized (configVoteSites) {
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;
@@ -94,7 +94,7 @@ public class VotiferEvent implements Listener {
OtherVoteReward.getInstance().checkCumualativeVotes(user);
OtherVoteReward.getInstance().checkMilestone(user);
if (user.isOnline()) {
if (user.isOnline() || voteSite.isGiveOffline()) {
user.playerVote(voteSite, true, false);
} else {
user.addOfflineVote(voteSite.getKey());
@@ -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,12 @@ 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 +161,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);
@@ -9,18 +9,19 @@ import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.OfflinePlayer;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Objects.Reward;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Objects.UserStorage;
@@ -51,7 +52,6 @@ import com.Ben12345rocks.VotingPlugin.Events.VotingPluginUpdateEvent;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.OtherRewards.OtherVoteReward;
import com.Ben12345rocks.VotingPlugin.Signs.Signs;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -125,69 +125,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);
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);
HashMap<String, String> values = new HashMap<String, String>();
for (String key : user.getData().getKeys()) {
values.put(key, user.getData().getString(key));
}
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);
}
@@ -234,7 +204,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(".", "_"));
}
@@ -263,6 +233,11 @@ public class Main extends JavaPlugin {
}
}
}
for (String siteName : sites) {
if (siteName.equalsIgnoreCase(url)) {
return siteName;
}
}
}
return url;
@@ -282,6 +257,23 @@ public class Main extends JavaPlugin {
return false;
}
private void loadMySQL() {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
Thread.getInstance().run(new Runnable() {
@Override
public void run() {
AdvancedCoreHook.getInstance()
.setMysql(new MySQL("VotingPlugin_Users", Config.getInstance().getMySqlHost(),
Config.getInstance().getMySqlPort(), Config.getInstance().getMySqlDatabase(),
Config.getInstance().getMySqlUsername(), Config.getInstance().getMySqlPassword(),
Config.getInstance().getMySqlMaxConnections()));
}
});
}
}
private void loadTimer() {
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
@@ -338,13 +330,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
@@ -357,6 +343,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
@@ -631,6 +629,7 @@ public class Main extends JavaPlugin {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
@@ -687,7 +686,7 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
@Override
public Object getObject(Player player) {
public Object getObject(OfflinePlayer player) {
return getUserManager().getVotingPluginUser(player);
}
});
@@ -708,8 +707,8 @@ public class Main extends JavaPlugin {
// /vote, /v
getCommand("vote").setExecutor(new CommandVote(this));
getCommand("vote").setTabCompleter(new VoteTabCompleter());
getCommand("v").setExecutor(new CommandVote(this));
getCommand("v").setTabCompleter(new VoteTabCompleter());
// getCommand("v").setExecutor(new CommandVote(this));
// getCommand("v").setTabCompleter(new VoteTabCompleter());
// /adminvote, /av
getCommand("adminvote").setExecutor(new CommandAdminVote(this));
@@ -737,7 +736,6 @@ public class Main extends JavaPlugin {
pm.registerEvents(new PlayerInteract(this), this);
pm.registerEvents(new VotingPluginUpdateEvent(this), this);
pm.registerEvents(OtherVoteReward.getInstance(), this);
plugin.debug("Loaded Events");
@@ -767,6 +765,7 @@ public class Main extends JavaPlugin {
}
});
loadTimer();
}
public void setUpdate(boolean update) {
@@ -781,6 +780,7 @@ public class Main extends JavaPlugin {
configVoteSites = ConfigVoteSites.getInstance();
config.setup();
configVoteSites.setup();
plugin.debug("Loaded Files");
}
@@ -788,31 +788,40 @@ 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 {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
ArrayList<User> users = new ArrayList<User>();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
users.add(user);
}
plugin.debug("Finished loading player data");
TopVoterHandler.getInstance().updateTopVoters(users);
Commands.getInstance().updateVoteToday(users);
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.");
}
}
@@ -826,20 +835,7 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().allowDownloadingFromSpigot(15358);
AdvancedCoreHook.getInstance().setExtraDebug(Config.getInstance().getExtraDebug());
AdvancedCoreHook.getInstance().setStorageType(UserStorage.valueOf(Config.getInstance().getDataStorage()));
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
Thread.getInstance().run(new Runnable() {
@Override
public void run() {
AdvancedCoreHook.getInstance()
.setMysql(new MySQL("VotingPlugin_Users", Config.getInstance().getMySqlHost(),
Config.getInstance().getMySqlPort(), Config.getInstance().getMySqlDatabase(),
Config.getInstance().getMySqlUsername(), Config.getInstance().getMySqlPassword(),
Config.getInstance().getMySqlMaxConnections()));
}
});
}
loadMySQL();
AdvancedCoreHook.getInstance().setCheckOnWorldChange(Config.getInstance().getCheckOnWorldChange());
AdvancedCoreHook.getInstance().setDebug(Config.getInstance().getDebugEnabled());
@@ -851,6 +847,7 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().setHelpLine(Config.getInstance().getFormatHelpLine());
AdvancedCoreHook.getInstance().setLogDebugToFile(Config.getInstance().getLogDebugToFile());
AdvancedCoreHook.getInstance().setSendScoreboards(Config.getInstance().getSendScoreboards());
AdvancedCoreHook.getInstance().setAlternateUUIDLookUp(Config.getInstance().getAlternateUUIDLookup());
}
}
@@ -5,10 +5,7 @@ import java.util.ArrayList;
import com.Ben12345rocks.VotingPlugin.Config.Config;
public enum TopVoter {
AllTime,
Monthly,
Weekly,
Daily;
AllTime, Monthly, Weekly, Daily;
public static TopVoter getDefault() {
TopVoter top = getTopVoter(Config.getInstance().getVoteTopDefault());
@@ -11,13 +11,12 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
@@ -113,7 +112,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* Adds the points.
*/
public void addPoints() {
setPoints(getPoints() + 1);
addPoints(Config.getInstance().getPointsOnVote());
}
/**
@@ -133,6 +132,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
public void addTotal() {
addMonthTotal();
addAllTimeTotal();
setMilestoneCount(getMilestoneCount()+1);
}
/**
@@ -180,6 +180,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) {
@@ -188,15 +189,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);
}
/**
@@ -244,21 +253,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
setWeeklyTotal(0);
}
/**
* Daily top voter award.
*
* @param place
* the place
*/
public void dailyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveDailyTopVoterAward(place);
} else {
addOfflineOtherReward("DailyTopVoter" + place);
}
}
public int getAllTimeTotal() {
return getUserData().getInt("AllTimeTotal");
}
@@ -347,6 +341,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return sorted;
}
public int getMilestoneCount() {
return getData().getInt("MilestoneCount", getAllTimeTotal());
}
public int getMonthTotal() {
return getData().getInt("MonthTotal");
}
@@ -406,13 +404,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* the place
*/
public void giveDailyTopVoterAward(int place) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getDailyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").send(this);
}
/**
@@ -422,13 +415,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* the place
*/
public void giveMonthlyTopVoterAward(int place) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getMonthlyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").send(this);
}
public void giveOfflineOtherRewards() {
@@ -518,13 +506,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* the place
*/
public void giveWeeklyTopVoterAward(int place) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getWeeklyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").send(this);
}
/**
@@ -568,21 +551,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
/**
* Monthly top voter award.
*
* @param place
* the place
*/
public void monthlyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveMonthlyTopVoterAward(place);
} else {
addOfflineOtherReward("MonthlyTopVoter" + place);
}
}
/**
* Off vote.
*/
@@ -725,6 +693,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getUserData().setStringList("LastVotes", data);
}
public void setMilestoneCount(int value) {
getData().setInt("MilestoneCount", value);
}
public void setMonthTotal(int total) {
getData().setInt("MonthTotal", total);
}
@@ -787,19 +759,4 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
/**
* Weekly top voter award.
*
* @param place
* the place
*/
public void weeklyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveWeeklyTopVoterAward(place);
} else {
addOfflineOtherReward("WeeklyTopVoter" + place);
}
}
}
@@ -41,11 +41,15 @@ public class VoteSite {
/** The enabled. */
private boolean enabled;
private boolean voteDelayDaily;
/** The priority. */
private int priority;
private ConfigurationSection item;
private boolean giveOffline;
/**
* Instantiates a new vote site.
*
@@ -74,10 +78,12 @@ public class VoteSite {
* the user
*/
public void broadcastVote(User user) {
String playerName = user.getPlayerName();
String bc = StringUtils.getInstance().colorize(config.getFormatBroadCastMsg());
bc = bc.replace("%player%", playerName).replace("%SiteName%", getDisplayName());
MiscUtils.getInstance().broadcast(bc);
if (!user.isVanished()) {
String playerName = user.getPlayerName();
String bc = StringUtils.getInstance().colorize(config.getFormatBroadCastMsg());
bc = bc.replace("%player%", playerName).replace("%SiteName%", getDisplayName());
MiscUtils.getInstance().broadcast(bc);
}
}
/**
@@ -149,6 +155,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 +187,8 @@ public class VoteSite {
displayName = key;
}
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
}
/**
@@ -188,6 +200,20 @@ public class VoteSite {
return enabled;
}
/**
* @return the giveOffline
*/
public boolean isGiveOffline() {
return giveOffline;
}
/**
* @return the voteDelayDaily
*/
public boolean isVoteDelayDaily() {
return voteDelayDaily;
}
/**
* @param displayName
* the displayName to set
@@ -206,6 +232,22 @@ public class VoteSite {
this.enabled = enabled;
}
/**
* @param giveOffline
* the giveOffline to set
*/
public void setGiveOffline(boolean giveOffline) {
this.giveOffline = giveOffline;
}
/**
* @param item
* the item to set
*/
public void setItem(ConfigurationSection item) {
this.item = item;
}
/**
* @param key
* the key to set
@@ -244,6 +286,14 @@ public class VoteSite {
this.voteDelay = voteDelay;
}
/**
* @param voteDelayDaily
* the voteDelayDaily to set
*/
public void setVoteDelayDaily(boolean voteDelayDaily) {
this.voteDelayDaily = voteDelayDaily;
}
/**
* Sets the vote URL.
*
@@ -2,25 +2,19 @@ package com.Ben12345rocks.VotingPlugin.OtherRewards;
import java.util.Set;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Listeners.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class OtherVoteReward.
*/
public class OtherVoteReward implements Listener {
public class OtherVoteReward {
/** The config. */
static Config config = Config.getInstance();
@@ -155,7 +149,7 @@ public class OtherVoteReward implements Listener {
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getMilestoneRewardsPath(votesRequired))) {
int userVotesTotal = user.getAllTimeTotal();
int userVotesTotal = user.getMilestoneCount();
if (userVotesTotal >= votesRequired && !user.hasGottenMilestone(votesRequired)) {
giveMilestoneVoteReward(user, user.isOnline(), votesRequired);
user.setHasGotteMilestone(votesRequired, true);
@@ -267,28 +261,4 @@ public class OtherVoteReward implements Listener {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVoteStreakRewardsPath(type, streak))
.setOnline(online).withPlaceHolder("Type", type).withPlaceHolder("Streak", "" + streak).send(user);
}
@EventHandler
public void onMonthChange(MonthChangeEvent event) {
Set<String> votes = Config.getInstance().getMilestoneVotes();
for (String vote : votes) {
if (StringUtils.getInstance().isInt(vote)) {
int votesRequired = Integer.parseInt(vote);
plugin.debug("Is int: " + vote);
if (votesRequired != 0) {
plugin.debug("not 0");
if (Config.getInstance().getMilestoneRewardEnabled(votesRequired)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getMilestoneRewardsPath(votesRequired))) {
if (Config.getInstance().getMilestoneResetMonthly(votesRequired)) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
user.setHasGotteMilestone(votesRequired, false);
}
}
}
}
}
}
}
}
@@ -13,6 +13,7 @@ import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
@@ -75,12 +76,18 @@ public class TopVoterHandler implements Listener {
return ArrayUtils.getInstance().convert(msg);
}
@EventHandler
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onDateChanged(DateChangedEvent event) {
updateTopVoters();
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
ArrayList<User> users = new ArrayList<User>();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
users.add(user);
}
updateTopVoters(users);
}
@EventHandler
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChange(DayChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
@@ -109,7 +116,7 @@ public class TopVoterHandler implements Listener {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.dailyTopVoterAward(i);
user.giveDailyTopVoterAward(i);
}
}
}
@@ -118,7 +125,7 @@ public class TopVoterHandler implements Listener {
}
@EventHandler
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMonthChange(MonthChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
@@ -146,16 +153,25 @@ public class TopVoterHandler implements Listener {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.monthlyTopVoterAward(i);
user.giveMonthlyTopVoterAward(i);
}
}
}
}
resetMonthlyTotals();
if (Config.getInstance().getResetMilestonesMonthly()) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
user.setMilestoneCount(0);
user.setHasGottenMilestone(new HashMap<String, Boolean>());
}
}
}
@EventHandler
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWeekChange(WeekChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
@@ -183,7 +199,7 @@ public class TopVoterHandler implements Listener {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.weeklyTopVoterAward(i);
user.giveWeeklyTopVoterAward(i);
}
}
}
@@ -547,14 +563,13 @@ public class TopVoterHandler implements Listener {
return ArrayUtils.getInstance().convert(msg);
}
public synchronized void updateTopVoters() {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
public synchronized void updateTopVoters(ArrayList<User> users1) {
ArrayList<User> users = new ArrayList<User>();
ArrayList<String> blackList = getTopVoterBlackList();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
for (User user : users1) {
if (!blackList.contains(user.getPlayerName())) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if ((!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore())
&& !user.isBanned()) {
users.add(user);
}
}
@@ -33,11 +33,11 @@ public class UserManager {
}
public User getVotingPluginUser(OfflinePlayer player) {
return getVotingPluginUser(player.getName());
return getVotingPluginUser(new UUID(player.getUniqueId().toString()));
}
public User getVotingPluginUser(Player player) {
return getVotingPluginUser(player.getName());
return getVotingPluginUser(new UUID(player.getUniqueId().toString()));
}
@SuppressWarnings("deprecation")
@@ -1,5 +1,8 @@
package com.Ben12345rocks.VotingPlugin.Util.Updater;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
@@ -58,8 +61,27 @@ public class CheckUpdate {
break;
}
case UPDATE_AVAILABLE: {
plugin.getLogger().info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion());
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
public void checkUpdateBasic() {
plugin.updater = new Updater(plugin, 15358, false);
final Updater.UpdateResult result = plugin.updater.getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
@@ -77,6 +99,14 @@ public class CheckUpdate {
@Override
public void run() {
checkUpdate();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
checkUpdateBasic();
}
}, 1000 * 60 * 1200, 1000 * 60 * 1200);
}
}, 10l);
}
@@ -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());
}
}
@@ -150,11 +152,9 @@ public class VoteParty implements Listener {
*/
public void giveReward(User user) {
/*
* if (PlayerUtils.getInstance().isPlayerOnline(user.getPlayerName())) {
* if (user.getVotePartyVotes() >=
* Config.getInstance().getUserVotesRequired()) {
* RewardHandler.getInstance().giveReward(user,
* Config.getInstance().getData(),
* if (PlayerUtils.getInstance().isPlayerOnline(user.getPlayerName())) { if
* (user.getVotePartyVotes() >= Config.getInstance().getUserVotesRequired()) {
* RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
* Config.getInstance().getVotePartyRewardsPath()); } } else {
* user.addOfflineOtherReward("VoteParty"); }
*/
@@ -35,32 +35,31 @@ public class VoteShop {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(Config.getInstance().getIdentifierSlot(identifier),
new BInventoryButton(builder.toItemStack()) {
inv.addButton(Config.getInstance().getIdentifierSlot(identifier), new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
User user = UserManager.getInstance().getVotingPluginUser(player);
int points = Config.getInstance().getIdentifierCost(identifier);
String identifier = Config.getInstance().getIdentifierFromSlot(event.getSlot());
if (identifier != null) {
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier));
user.sendMessage(Config.getInstance().getFormatShopPurchaseMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
} else {
user.sendMessage(Config.getInstance().getFormatShopFailedMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
}
}
User user = UserManager.getInstance().getVotingPluginUser(player);
int points = Config.getInstance().getIdentifierCost(identifier);
String identifier = Config.getInstance().getIdentifierFromSlot(event.getSlot());
if (identifier != null) {
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier));
user.sendMessage(Config.getInstance().getFormatShopPurchaseMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
} else {
user.sendMessage(Config.getInstance().getFormatShopFailedMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
}
}
}
});
});
}
BInventory.openInventory(player, inv);
inv.openInventory(player);
}
}