diff --git a/VotingPlugin/Resources/VoteSites.yml b/VotingPlugin/Resources/VoteSites.yml
index b91bbb7e3..5f56ac6a7 100644
--- a/VotingPlugin/Resources/VoteSites.yml
+++ b/VotingPlugin/Resources/VoteSites.yml
@@ -31,6 +31,9 @@ VoteSites:
# 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'
diff --git a/VotingPlugin/pom.xml b/VotingPlugin/pom.xml
index 4ac384b36..33386af28 100644
--- a/VotingPlugin/pom.xml
+++ b/VotingPlugin/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.Ben12345rocks
VotingPlugin
- 5.9.2
+ 5.9.3
jar
VotingPlugin
diff --git a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Config/ConfigVoteSites.java b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Config/ConfigVoteSites.java
index 5e28e1e8c..4a5b1dda7 100644
--- a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Config/ConfigVoteSites.java
+++ b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Config/ConfigVoteSites.java
@@ -110,6 +110,10 @@ public String getRewardsPath(String siteName) {
public String getEverySiteRewardPath() {
return "EverySiteReward";
}
+
+ public boolean getVoteSiteGiveOffline(String site) {
+ return getData(site).getBoolean("GiveOffline");
+ }
/**
* Gets the service site.
diff --git a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Events/VotiferEvent.java b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Events/VotiferEvent.java
index d6909f47c..9dc86d94e 100644
--- a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Events/VotiferEvent.java
+++ b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Events/VotiferEvent.java
@@ -45,7 +45,7 @@ public static void playerVote(final String playerName, final String voteSiteURL)
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
- synchronized (plugin) {
+ synchronized (configVoteSites) {
User user = UserManager.getInstance().getVotingPluginUser(playerName);
if (!user.hasLoggedOnBefore() && !config.allowUnJoined()) {
plugin.getLogger().warning("Player " + playerName
@@ -94,7 +94,7 @@ public void run() {
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());
@@ -141,14 +141,12 @@ public void onVotiferEvent(VotifierEvent event) {
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + 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);
diff --git a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Main.java b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Main.java
index b01735ff3..a6700e9b0 100644
--- a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Main.java
+++ b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Main.java
@@ -15,7 +15,7 @@
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;
@@ -664,7 +664,7 @@ public void run() {
AdvancedCoreHook.getInstance().getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
@Override
- public Object getObject(Player player) {
+ public Object getObject(OfflinePlayer player) {
return getUserManager().getVotingPluginUser(player);
}
});
diff --git a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Objects/VoteSite.java b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Objects/VoteSite.java
index 44b246796..79cdbb3a0 100644
--- a/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Objects/VoteSite.java
+++ b/VotingPlugin/src/com/Ben12345rocks/VotingPlugin/Objects/VoteSite.java
@@ -40,7 +40,7 @@ public class VoteSite {
/** The enabled. */
private boolean enabled;
-
+
private boolean voteDelayDaily;
/** The priority. */
@@ -48,6 +48,8 @@ public class VoteSite {
private ConfigurationSection item;
+ private boolean giveOffline;
+
/**
* Instantiates a new vote site.
*
@@ -77,7 +79,8 @@ public boolean isVoteDelayDaily() {
}
/**
- * @param voteDelayDaily the voteDelayDaily to set
+ * @param voteDelayDaily
+ * the voteDelayDaily to set
*/
public void setVoteDelayDaily(boolean voteDelayDaily) {
this.voteDelayDaily = voteDelayDaily;
@@ -198,6 +201,28 @@ public void init() {
}
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
+ giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
+ }
+
+ /**
+ * @return the giveOffline
+ */
+ public boolean isGiveOffline() {
+ return giveOffline;
+ }
+
+ /**
+ * @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;
}
/**