Compare commits

...
31 Commits
Author SHA1 Message Date
BenCodez 40d2b651a8 Update version number to 6.3.3 2021-09-05 12:26:42 -04:00
BenCodez a999d9e9bb Sync votes better with cache 2021-09-01 18:59:09 -04:00
BenCodez b144f2db9c Small change to caching on voting 2021-09-01 18:50:01 -04:00
BenCodez 24060a10ed Small improvement 2021-09-01 14:56:17 -04:00
BenCodez 4c8919804f Prevent duplicate broadcasts if bungee broadcasts 2021-08-30 15:21:59 -04:00
BenCodez 66618260bb Update version number to 6.6.2 2021-08-29 13:28:29 -04:00
BenCodez f441ede6b0 Bug fix 2021-08-29 12:47:04 -04:00
BenCodez 593ae76354 Modify metrics and message 2021-08-28 18:14:01 -04:00
BenCodez aa49dc5bc1 Improve proxy offline voting handling 2021-08-25 15:22:04 -04:00
BenCodez 8941d909ca Add synchronization to offline vote checks on proxy 2021-08-24 14:48:53 -04:00
BenCodez 2946792dec Change handling of some vote top commands 2021-08-23 19:06:41 -04:00
BenCodez 0567f0ac66 Add disablebroadcast to a few other areas 2021-08-22 17:20:26 -04:00
BenCodez fe78992477 Update config values 2021-08-22 14:44:09 -04:00
BenCodez 195e1c82bd Enable broadcast option on bungee to work for pluginmessaging 2021-08-22 14:42:23 -04:00
BenCodez 9479fe06c0 Modify broadcast handling 2021-08-22 14:32:45 -04:00
BenCodez 0807caed98 Fix potential issues 2021-08-20 15:02:35 -04:00
BenCodez 9fdcf5aa78 Fix update message contain invalid command & clear cache on adding point 2021-08-17 18:43:28 -04:00
BenCodez 8d26e66dc0 Remove jars 2021-08-16 19:02:10 -04:00
BenCodez 14e61ba6bf Update version to 6.6.1 2021-08-16 18:26:51 -04:00
BenCodez 6d361cc83f Shutdown mysql on bungee/velocity on shutdown 2021-08-16 16:44:32 -04:00
BenCodez 1e32fd65e0 Remove files 2021-08-16 14:59:56 -04:00
Ben 5f0d8fff2f Update .gitignore 2021-08-16 14:59:26 -04:00
BenCodez 0d828a99bc Add more info about build number 2021-08-15 20:30:44 -04:00
BenCodez 0e8bd23784 Undo repo change 2021-08-15 19:01:02 -04:00
BenCodez a8af2a49ad Change build setup 2021-08-15 18:42:17 -04:00
BenCodez 54b08019ec Fix getting build number 2021-08-15 18:35:37 -04:00
BenCodez 27f01a6c3a Remove build number on version command 2021-08-15 17:50:00 -04:00
BenCodez 337aab384f Add build number info on startup 2021-08-15 17:45:41 -04:00
BenCodez a94e1c1dd6 Add build number information for jenkins 2021-08-15 17:19:28 -04:00
BenCodez 1445d97ce0 Bug fix 2021-08-15 17:02:44 -04:00
BenCodez 9e8abe0768 Fix issue on velocity with votes 2021-08-15 16:52:21 -04:00
29 changed files with 312 additions and 320 deletions

No files matched your search

-25
View File
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="Resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
+5 -1
View File
@@ -1,3 +1,7 @@
/bin/
/target/
/doc/
/doc/
/.idea/
/*.iml
/.settings/
/.classpath
@@ -1,7 +0,0 @@
add_todo=false
eclipse.preferences.version=1
include_subpackages=true
mode=mode_replace
project_specific_settings=true
replacements=<?xml version\="1.0" standalone\="yes"?>\n\n<replacements>\n<replacement key\="get" scope\="1" mode\="0">Gets the</replacement>\n<replacement key\="set" scope\="1" mode\="0">Sets the</replacement>\n<replacement key\="add" scope\="1" mode\="0">Adds the</replacement>\n<replacement key\="edit" scope\="1" mode\="0">Edits the</replacement>\n<replacement key\="remove" scope\="1" mode\="0">Removes the</replacement>\n<replacement key\="init" scope\="1" mode\="0">Inits the</replacement>\n<replacement key\="parse" scope\="1" mode\="0">Parses the</replacement>\n<replacement key\="create" scope\="1" mode\="0">Creates the</replacement>\n<replacement key\="build" scope\="1" mode\="0">Builds the</replacement>\n<replacement key\="is" scope\="1" mode\="0">Checks if is</replacement>\n<replacement key\="print" scope\="1" mode\="0">Prints the</replacement>\n<replacement key\="has" scope\="1" mode\="0">Checks for</replacement>\n</replacements>\n\n
use_internal_formatter=true
@@ -1,4 +0,0 @@
eclipse.preferences.version=1
encoding/<project>=Cp1252
encoding/Resources=Cp1252
encoding/src=Cp1252
@@ -1,131 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=disabled
org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
org.eclipse.jdt.core.compiler.problem.deadCode=warning
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
org.eclipse.jdt.core.compiler.problem.nullReference=warning
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
@@ -1,4 +0,0 @@
activeProfiles=dev
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
@@ -1,3 +0,0 @@
eclipse.preferences.version=1
project.repository.kind=github
project.repository.url=http\://github.com/Ben12345rocks/VotingPlugin
@@ -1,8 +0,0 @@
DELEGATES_PREFERENCE=delegateValidatorList
USER_BUILD_PREFERENCE=enabledBuildValidatorList
USER_MANUAL_PREFERENCE=enabledManualValidatorList
USER_PREFERENCE=overrideGlobalPreferencesfalse
eclipse.preferences.version=1
override=false
suspend=false
vf.version=3
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
org.jboss.ide.eclipse.as.core.singledeployable.deployableList=\n
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -29,6 +29,10 @@ BungeeBroadcast: false
# Whether to broadcast on cached votes
BungeeBroadcastAlways: false
# If true, the server won't broadcast votes
# To be used in conjuction with Broadcast setting on bungee
DisableBroadcast: false
# If true, offline rewards will be stored per server, rather than global
# This shouldn't need to be set unless you get alot of cross server rewards issues
# You can also specify the server within the rewards
+10 -8
View File
@@ -25,13 +25,13 @@ Debug: false
# If false, will send to online server only
SendVotesToAllServers: true
# List of servers the plugin won't send the vote to
# Uses names from bungeecoord config if not using SOCKETS method
# Uses names from bungeecoord config, only needed for non SOCKETS setup
BlockedServers:
- hub
# What type of bungee setup
# Requires restart and set on all servers
# https://github.com/Ben12345rocks/VotingPlugin/wiki/Bungeecoord-Setups
# https://github.com/BenCodez/VotingPlugin/wiki/Bungeecoord-Setups
# Available:
# SOCKETS
# PLUGINMESSAGING
@@ -43,6 +43,7 @@ BungeeMethod: PLUGINMESSAGING
# This requires spigot servers AllowUnJoined to be set to true in Config.yml
AllowUnJoined: false
# Points to give on vote
PointsOnVote: 1
# If true, bungee will handle adding totals
@@ -51,22 +52,23 @@ PointsOnVote: 1
# Recommened to leave true, setting to false setups are currently unsupported
BungeeManageTotals: true
# Tell servers to broadcast
# Set DisableBroadcast to true on spigot servers (BungeeSettings.yml) as well
Broadcast: true
# ----------------------------
# PLUGINMESSAGING Settings
# ----------------------------
# Applies to PLUGINMESSAGING & when SendVotesToAllServers is true
# Applies to PLUGINMESSAGING only
# Votes will be forwarded when specific player is online
WaitForUserOnline: false
# ----------------------------
# SOCKET Settings, do not touch otherwise
# SOCKET Settings
# ONLY for SOCKET method
# ----------------------------
# Tell servers to broadcast
# For socket method
Broadcast: true
# Server to send vote to if player is offline
FallBackServer: factions
@@ -1,3 +1,4 @@
time: '${timestamp}'
profile: ${build.profile.id}
version: ${project.version}
profile: '${build.profile.id}'
version: '${project.version}'
buildnumber: '${build.number}'
+6 -7
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.bencodez</groupId>
<artifactId>votingplugin</artifactId>
<version>6.6</version>
<version>6.6.3</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -12,6 +12,7 @@
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>
<build.number>NOTSET</build.number>
</properties>
<build>
<resources>
@@ -236,15 +237,13 @@
<groupId>com.vexsoftware</groupId>
<artifactId>nuvotifier-universal</artifactId>
<version>2.7.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/nuvotifier.jar</systemPath>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>be.maximvdw</groupId>
<artifactId>MVdWPlaceholderAPI</artifactId>
<version>LATEST</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/MVdWPlaceholderAPI.jar</systemPath>
<artifactId>mvdwplaceholderapi</artifactId>
<version>3.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.velocitypowered</groupId>
@@ -81,20 +81,33 @@ public class BungeeHandler {
user.clearCache();
user.bungeeVotePluginMessaging(service, time, text, !setTotals, wasOnline);
if (plugin.getBungeeSettings().isPerServerPoints()) {
user.addPoints(plugin.getConfigFile().getPointsOnVote());
boolean broadcast = true;
boolean bungeeBroadcast = false;
if (args.size() > 9) {
bungeeBroadcast = Boolean.valueOf(args.get(9));
}
if (!plugin.getBungeeSettings().isBungeeBroadcast()) {
if (wasOnline || plugin.getBungeeSettings().isBungeeBroadcastAlways()) {
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
} else {
plugin.getLogger().warning("No votesite for " + service);
if (!bungeeBroadcast) {
if (!plugin.getBungeeSettings().isBungeeBroadcast()
&& !plugin.getBungeeSettings().isDisableBroadcast()) {
if (wasOnline || plugin.getBungeeSettings().isBungeeBroadcastAlways()) {
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
broadcast = false;
} else {
plugin.getLogger().warning("No votesite for " + service);
}
}
}
} else {
broadcast = false;
}
user.bungeeVotePluginMessaging(service, time, text, !setTotals, wasOnline, broadcast);
if (plugin.getBungeeSettings().isPerServerPoints()) {
user.addPoints(plugin.getConfigFile().getPointsOnVote());
}
if (Boolean.valueOf(args.get(5))) {
@@ -135,17 +148,34 @@ public class BungeeHandler {
boolean wasOnline = Boolean.valueOf(args.get(4));
user.bungeeVotePluginMessaging(service, time, text, !setTotals, wasOnline);
boolean broadcast = true;
boolean bungeeBroadcast = false;
if (!plugin.getBungeeSettings().isBungeeBroadcast()) {
if (Boolean.valueOf(args.get(4)) || plugin.getBungeeSettings().isBungeeBroadcastAlways()) {
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
} else {
plugin.getLogger().warning("No votesite for " + service);
if (args.size() > 9) {
bungeeBroadcast = Boolean.valueOf(args.get(9));
}
if (!bungeeBroadcast) {
if (!plugin.getBungeeSettings().isBungeeBroadcast()
&& !plugin.getBungeeSettings().isDisableBroadcast()) {
if (Boolean.valueOf(args.get(4))
|| plugin.getBungeeSettings().isBungeeBroadcastAlways()) {
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
broadcast = false;
} else {
plugin.getLogger().warning("No votesite for " + service);
}
}
}
} else {
broadcast = false;
}
user.bungeeVotePluginMessaging(service, time, text, !setTotals, wasOnline, broadcast);
if (plugin.getBungeeSettings().isPerServerPoints()) {
user.addPoints(plugin.getConfigFile().getPointsOnVote());
}
if (Boolean.valueOf(args.get(5))) {
@@ -174,14 +204,17 @@ public class BungeeHandler {
plugin.getPluginMessaging().add(new PluginMessageHandler("VoteBroadcast") {
@Override
public void onRecieve(String subChannel, ArrayList<String> args) {
String uuid = args.get(0);
String service = args.get(1);
VotingPluginUser user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
} else {
plugin.getLogger().warning("No votesite for " + service);
if (args.size() > 2) {
String uuid = args.get(0);
String service = args.get(2);
VotingPluginUser user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid),
args.get(1));
VoteSite site = plugin.getVoteSite(service, true);
if (site != null) {
site.broadcastVote(user, false);
} else {
plugin.getLogger().warning("No votesite for " + service);
}
}
}
});
@@ -146,6 +146,9 @@ public class VotingPluginMain extends AdvancedCorePlugin {
@Getter
private String profile = "";
@Getter
private String buildNumber = "NOTSET";
@Getter
private ServerData serverData;
@@ -884,6 +887,7 @@ public class VotingPluginMain extends AdvancedCorePlugin {
if (conf != null) {
time = conf.getString("time", "");
profile = conf.getString("profile", "");
buildNumber = conf.getString("buildnumber", "NOTSET");
}
}
@@ -1073,7 +1077,8 @@ public class VotingPluginMain extends AdvancedCorePlugin {
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
if (getProfile().contains("dev")) {
plugin.getLogger().warning("Using dev build, this is not a stable build, use at your own risk");
plugin.getLogger().warning(
"Using dev build, this is not a stable build, use at your own risk. Build number: " + buildNumber);
}
boolean hasRewards = RewardHandler.getInstance().hasRewards(getConfigVoteSites().getData(),
@@ -188,14 +188,28 @@ public class VotingPluginMetrics {
}
}
}));
metrics.addCustomChart(new BStatsMetrics.SimplePie("number_of_users", new Callable<String>() {
@Override
public String call() throws Exception {
int total = UserManager.getInstance().getAllUUIDs().size() / 1000;
return "" + total;
}
}));
int users = UserManager.getInstance().getAllUUIDs().size();
if (users > 1000) {
metrics.addCustomChart(new BStatsMetrics.SimplePie("number_of_users_in_thousands", new Callable<String>() {
@Override
public String call() throws Exception {
int total = UserManager.getInstance().getAllUUIDs().size() / 1000;
return "" + total;
}
}));
}
if (users > 10000) {
metrics.addCustomChart(new BStatsMetrics.SimplePie("number_of_users_in_thousands_plus_10", new Callable<String>() {
@Override
public String call() throws Exception {
int total = UserManager.getInstance().getAllUUIDs().size() / 1000;
return "" + total;
}
}));
}
metrics.addCustomChart(new BStatsMetrics.SimplePie("data_storage", new Callable<String>() {
@Override
@@ -320,5 +334,15 @@ public class VotingPluginMetrics {
.hasRewards(plugin.getSpecialRewardsConfig().getData(), "VoteCoolDownEndedReward"));
}
}));
if (!plugin.getBuildNumber().equals("NOTSET")) {
metrics.addCustomChart(new BStatsMetrics.SimplePie("dev_build_number", new Callable<String>() {
@Override
public String call() throws Exception {
return "" + plugin.getBuildNumber();
}
}));
}
}
}
@@ -8,8 +8,10 @@ import java.io.DataOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.CodeSource;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -19,6 +21,8 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import com.bencodez.advancedcore.api.misc.ArrayUtils;
import com.bencodez.advancedcore.api.misc.encryption.EncryptionHandler;
@@ -41,10 +45,10 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.connection.Server;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.event.ServerConnectedEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.event.EventHandler;
public class VotingPluginBungee extends Plugin implements Listener {
@@ -74,7 +78,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
private boolean votifierEnabled = true;
public void checkCachedVotes(String server) {
public synchronized void checkCachedVotes(String server) {
if (getProxy().getServerInfo(server) != null) {
if (!getProxy().getServerInfo(server).getPlayers().isEmpty()) {
if (cachedVotes.containsKey(server) && !config.getBlockedServers().contains(server)) {
@@ -98,7 +102,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
cache.getService(), "" + cache.getTime(), Boolean.FALSE.toString(),
"" + cache.isRealVote(), cache.getText(),
"" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
} else {
debug("Not sending vote because user isn't on server " + server + ": "
+ cache.toString());
@@ -113,7 +117,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
}
public void checkOnlineVotes(ProxiedPlayer player, String uuid, String server) {
public synchronized void checkOnlineVotes(ProxiedPlayer player, String uuid, String server) {
if (player != null && player.isConnected() && cachedOnlineVotes.containsKey(uuid)) {
ArrayList<OfflineBungeeVote> c = cachedOnlineVotes.get(uuid);
if (!c.isEmpty()) {
@@ -125,7 +129,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
sendPluginMessageServer(server, "VoteOnline", cache.getPlayerName(), cache.getUuid(),
cache.getService(), "" + cache.getTime(), Boolean.FALSE.toString(),
"" + cache.isRealVote(), cache.getText(), "" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
}
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
}
@@ -245,12 +249,45 @@ public class VotingPluginBungee extends Plugin implements Listener {
getMysql().alterColumnType("DayVoteStreakLastUpdate", "MEDIUMTEXT");
}
/*
* private int mysqlUpdate(ArrayList<Column> cols, String uuid, String column,
* int toAdd) { int num = getValue(cols, column) + toAdd; debug("Setting " +
* column + " to " + num + " for " + uuid); mysql.update(uuid, column, num,
* DataType.INTEGER); return int; }
*/
private String buildNumber = "NOTSET";
public void loadVersionFile() {
Configuration conf = getVersionFile();
if (conf != null) {
buildNumber = conf.get("buildnumber", "NOTSET");
}
}
private Configuration getVersionFile() {
try {
CodeSource src = this.getClass().getProtectionDomain().getCodeSource();
if (src != null) {
URL jar = src.getLocation();
ZipInputStream zip = null;
zip = new ZipInputStream(jar.openStream());
while (true) {
ZipEntry e = zip.getNextEntry();
if (e != null) {
String name = e.getName();
if (name.equals("votingpluginversion.yml")) {
Reader defConfigStream = new InputStreamReader(zip);
if (defConfigStream != null) {
Configuration conf = ConfigurationProvider
.getProvider(net.md_5.bungee.config.YamlConfiguration.class)
.load(defConfigStream);
defConfigStream.close();
return conf;
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public void onDisable() {
@@ -275,6 +312,9 @@ public class VotingPluginBungee extends Plugin implements Listener {
voteCacheFile.save();
}
nonVotedPlayersCache.save();
if (mysql != null) {
mysql.shutdown();
}
getLogger().info("VotingPlugin disabled");
}
@@ -452,8 +492,17 @@ public class VotingPluginBungee extends Plugin implements Listener {
metrics.addCustomChart(
new BStatsMetricsBungee.SimplePie("waitforuseronline", () -> "" + getConfig().getWaitForUserOnline()));
if (!buildNumber.equals("NOTSET")) {
metrics.addCustomChart(new BStatsMetricsBungee.SimplePie("dev_build_number", () -> "" + buildNumber));
}
loadVersionFile();
getLogger().info("VotingPlugin loaded, using method: " + method.toString() + ", PluginMessagingVersion: "
+ BungeeVersion.getPluginMessageVersion());
if (!buildNumber.equals("NOTSET")) {
getLogger().info("Detected using dev build number: " + buildNumber);
}
}
@EventHandler
@@ -496,9 +545,18 @@ public class VotingPluginBungee extends Plugin implements Listener {
debug("Login: " + player);
ProxiedPlayer p = getProxy().getPlayer(player);
if (p != null && p.isConnected()) {
String server = p.getServer().getInfo().getName();
checkCachedVotes(server);
checkOnlineVotes(p, p.getUniqueId().toString(), server);
if (p.getServer() != null && p.getServer().getInfo() != null) {
final String server = p.getServer().getInfo().getName();
final ProxiedPlayer proixedPlayer = p;
getProxy().getScheduler().runAsync(this, new Runnable() {
@Override
public void run() {
checkCachedVotes(server);
checkOnlineVotes(proixedPlayer, proixedPlayer.getUniqueId().toString(), server);
}
});
}
}
return;
} else {
@@ -520,21 +578,6 @@ public class VotingPluginBungee extends Plugin implements Listener {
}
}
@EventHandler
public void onServerConnected(ServerConnectedEvent event) {
final String server = event.getServer().getInfo().getName();
final String uuid = event.getPlayer().getUniqueId().toString();
getProxy().getScheduler().schedule(this, new Runnable() {
@Override
public void run() {
checkCachedVotes(server);
checkOnlineVotes(event.getPlayer(), uuid, server);
}
}, 3, TimeUnit.SECONDS);
}
private UUID parseUUIDFromString(String uuidAsString) {
String[] parts = { "0x" + uuidAsString.substring(0, 8), "0x" + uuidAsString.substring(8, 12),
"0x" + uuidAsString.substring(12, 16), "0x" + uuidAsString.substring(16, 20),
@@ -759,7 +802,10 @@ public class VotingPluginBungee extends Plugin implements Listener {
sendPluginMessageServer(s, "Vote", player, uuid, service, "" + time,
Boolean.TRUE.toString(), "" + realVote, text.toString(),
"" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
}
if (config.getBroadcast()) {
sendPluginMessageServer(s, "VoteBroadcast", uuid, player, service);
}
}
}
@@ -769,7 +815,8 @@ public class VotingPluginBungee extends Plugin implements Listener {
&& !config.getBlockedServers().contains(p.getServer().getInfo().getName())) {
sendPluginMessageServer(p.getServer().getInfo().getName(), "VoteOnline", player, uuid, service,
"" + time, Boolean.TRUE.toString(), "" + realVote, text.toString(),
"" + getConfig().getBungeeManageTotals(), "" + BungeeVersion.getPluginMessageVersion());
"" + getConfig().getBungeeManageTotals(), "" + BungeeVersion.getPluginMessageVersion(),
"" + config.getBroadcast());
} else {
if (!cachedOnlineVotes.containsKey(uuid)) {
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
@@ -784,6 +831,9 @@ public class VotingPluginBungee extends Plugin implements Listener {
}
for (String s : getProxy().getServers().keySet()) {
sendPluginMessageServer(s, "VoteUpdate", uuid);
if (config.getBroadcast()) {
sendPluginMessageServer(s, "VoteBroadcast", uuid, player, service);
}
}
}
} else if (method.equals(BungeeMethod.SOCKETS)) {
@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry;
@@ -64,7 +66,6 @@ import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.vexsoftware.votifier.model.Vote;
import com.vexsoftware.votifier.velocity.event.VotifierEvent;
import lombok.Getter;
@@ -104,6 +105,8 @@ public class VotingPluginVelocity {
private VoteCache voteCacheFile;
private Timer timer;
@Inject
public VotingPluginVelocity(ProxyServer server, Logger logger, Metrics.Factory metricsFactory,
@DataDirectory Path dataDirectory) {
@@ -111,9 +114,10 @@ public class VotingPluginVelocity {
this.logger = logger;
this.dataDirectory = dataDirectory;
this.metricsFactory = metricsFactory;
timer = new Timer();
}
public void checkCachedVotes(RegisteredServer serverToCheck) {
public synchronized void checkCachedVotes(RegisteredServer serverToCheck) {
if (!serverToCheck.getPlayersConnected().isEmpty()) {
if (cachedVotes.containsKey(serverToCheck)
&& !config.getBlockedServers().contains(serverToCheck.getServerInfo().getName())) {
@@ -139,7 +143,7 @@ public class VotingPluginVelocity {
sendPluginMessageServer(serverToCheck, "Vote", cache.getPlayerName(), cache.getUuid(),
cache.getService(), "" + cache.getTime(), Boolean.FALSE.toString(),
"" + cache.isRealVote(), cache.getText(), "" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
} else {
debug("Not sending vote because user isn't on server " + serverToCheck + ": "
+ cache.toString());
@@ -153,7 +157,7 @@ public class VotingPluginVelocity {
}
public void checkOnlineVotes(Player player, String uuid, RegisteredServer serverToCheck) {
public synchronized void checkOnlineVotes(Player player, String uuid, RegisteredServer serverToCheck) {
if (player != null && player.isActive() && cachedOnlineVotes.containsKey(uuid)) {
ArrayList<OfflineBungeeVote> c = cachedOnlineVotes.get(uuid);
if (!c.isEmpty()) {
@@ -165,7 +169,7 @@ public class VotingPluginVelocity {
sendPluginMessageServer(serverToCheck, "VoteOnline", cache.getPlayerName(), cache.getUuid(),
cache.getService(), "" + cache.getTime(), Boolean.FALSE.toString(),
"" + cache.isRealVote(), cache.getText(), "" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
}
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
}
@@ -312,9 +316,22 @@ public class VotingPluginVelocity {
} else if (subchannel.equalsIgnoreCase("login")) {
String player = in.readUTF();
debug("Login: " + player);
Player p = server.getPlayer(player).get();
checkCachedVotes(p.getCurrentServer().get().getServer());
checkOnlineVotes(p, p.getUniqueId().toString(), p.getCurrentServer().get().getServer());
if (server.getPlayer(player).isPresent()) {
Player p = server.getPlayer(player).get();
if (p.getCurrentServer().isPresent()) {
final RegisteredServer server = p.getCurrentServer().get().getServer();
final Player p1 = p;
timer.schedule(new TimerTask() {
@Override
public void run() {
checkCachedVotes(server);
checkOnlineVotes(p1, p.getUniqueId().toString(), server);
}
}, 0);
}
}
return;
} else {
@@ -361,6 +378,9 @@ public class VotingPluginVelocity {
voteCacheFile.save();
}
nonVotedPlayersCache.save();
if (mysql != null) {
mysql.shutDown();
}
logger.info("VotingPlugin disabled");
}
@@ -544,12 +564,20 @@ public class VotingPluginVelocity {
metrics.addCustomChart(new SimplePie("plugin_version", () -> "" + version));
if (!buildNumber.equals("NOTSET")) {
metrics.addCustomChart(new SimplePie("dev_build_number", () -> "" + buildNumber));
}
logger.info("VotingPlugin velocity loaded, method: " + method.toString() + ", PluginMessagingVersion: "
+ BungeeVersion.getPluginMessageVersion() + ", Internal Jar Version: " + version);
if (!buildNumber.equals("NOTSET")) {
logger.info("Detected using dev build number: " + buildNumber);
}
}
private String version = "";
private File versionFile;
private String buildNumber = "NOTSET";
private void getVersionFile() {
try {
@@ -585,6 +613,7 @@ public class VotingPluginVelocity {
ConfigurationNode node = loader.load();
if (node != null) {
version = node.getNode("version").getString("");
buildNumber = node.getNode("buildnumber").getString("NOTSET");
}
return;
}
@@ -599,19 +628,20 @@ public class VotingPluginVelocity {
@Subscribe
public void onVotifierEvent(VotifierEvent event) {
server.getScheduler().buildTask(this, new Runnable() {
final String serviceSiteVote = event.getVote().getServiceName();
final String name = event.getVote().getUsername();
timer.schedule(new TimerTask() {
@Override
public void run() {
Vote vote = event.getVote();
String serviceSite = vote.getServiceName();
logger.info("Vote received " + vote.getUsername() + " from service site " + serviceSite);
String serviceSite = serviceSiteVote;
logger.info("Vote received " + name + " from service site " + serviceSite);
if (serviceSite.isEmpty()) {
serviceSite = "Empty";
}
vote(vote.getUsername(), serviceSite, true);
vote(name, serviceSite, true);
}
});
}, 0);
}
@@ -842,7 +872,10 @@ public class VotingPluginVelocity {
sendPluginMessageServer(s, "Vote", player, uuid, service, "" + time,
Boolean.TRUE.toString(), "" + realVote, text.toString(),
"" + getConfig().getBungeeManageTotals(),
"" + BungeeVersion.getPluginMessageVersion());
"" + BungeeVersion.getPluginMessageVersion(), "" + config.getBroadcast());
}
if (config.getBroadcast()) {
sendPluginMessageServer(s, "VoteBroadcast", uuid, player, service);
}
}
}
@@ -852,7 +885,8 @@ public class VotingPluginVelocity {
.contains(p.getCurrentServer().get().getServerInfo().getName())) {
sendPluginMessageServer(p.getCurrentServer().get().getServer(), "VoteOnline", player, uuid,
service, "" + time, Boolean.TRUE.toString(), "" + realVote, text.toString(),
"" + getConfig().getBungeeManageTotals(), "" + BungeeVersion.getPluginMessageVersion());
"" + getConfig().getBungeeManageTotals(), "" + BungeeVersion.getPluginMessageVersion(),
"" + config.getBroadcast());
} else {
if (!cachedOnlineVotes.containsKey(uuid)) {
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
@@ -868,6 +902,9 @@ public class VotingPluginVelocity {
for (RegisteredServer s : server.getAllServers()) {
sendPluginMessageServer(s, "VoteUpdate", uuid);
if (config.getBroadcast()) {
sendPluginMessageServer(s, "VoteBroadcast", uuid, player, service);
}
}
}
} else if (method.equals(BungeeMethod.SOCKETS)) {
@@ -363,6 +363,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
VotingPluginUser user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.clearCache();
synchronized (pointLock) {
user.addPoints(Integer.parseInt(args[3]));
}
@@ -378,6 +379,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
VotingPluginUser user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.clearCache();
user.removePoints(Integer.parseInt(args[3]));
sender.sendMessage(StringParser.getInstance().colorize("&cRemoved " + args[3] + " points from "
+ args[1] + ", " + args[1] + " now has " + user.getPoints() + " points"));
@@ -622,6 +624,12 @@ public class CommandLoader {
sendMessage(sender,
"Using AdvancedCore " + plugin.getVersion() + "' built on '" + plugin.getBuildTime());
if (!plugin.getAdvancedCoreBuildNumber().equals("NOTSET")) {
sendMessage(sender, "AdvancedCore Jenkins build number: " + plugin.getAdvancedCoreBuildNumber());
}
if (!plugin.getBuildNumber().equals("NOTSET")) {
sendMessage(sender, "Using votingplugin jenkins build: " + plugin.getBuildNumber());
}
}
});
@@ -1995,7 +2003,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
new VoteTopVoter(plugin, sender, null, top, 1).open(GUIMethod.CHAT);
new VoteTopVoter(plugin, sender, null, top, 1).open(GUIMethod.valueOf(plugin.getGui().getGuiMethodTopVoter().toUpperCase()));
}
});
@@ -2005,7 +2013,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
int page = Integer.parseInt(args[2]);
new VoteTopVoter(plugin, sender, null, top, page).open(GUIMethod.CHAT);
new VoteTopVoter(plugin, sender, null, top, page).open(GUIMethod.valueOf(plugin.getGui().getGuiMethodTopVoter().toUpperCase()));
}
});
}
@@ -2017,7 +2025,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
int page = Integer.parseInt(args[1]);
new VoteTopVoter(plugin, sender, null, TopVoter.getDefault(), page).open(GUIMethod.CHAT);
new VoteTopVoter(plugin, sender, null, TopVoter.getDefault(), page).open(GUIMethod.valueOf(plugin.getGui().getGuiMethodTopVoter().toUpperCase()));
}
});
@@ -73,6 +73,10 @@ public class BungeeSettings extends YMLFile {
@Getter
private boolean votifierBypass = false;
@ConfigDataBoolean(path = "DisableBroadcast")
@Getter
private boolean disableBroadcast = false;
public BungeeSettings(VotingPluginMain plugin) {
super(plugin, new File(plugin.getDataFolder(), "BungeeSettings.yml"));
}
@@ -76,6 +76,10 @@ public class PlayerVoteEvent extends Event {
@Setter
private boolean wasOnline;
@Getter
@Setter
private boolean broadcast = true;
public PlayerVoteEvent(VoteSite voteSite, String voteUsername, String serviceSite, boolean realVote) {
super(true);
this.player = voteUsername;
@@ -103,26 +103,28 @@ public class PlayerVoteListener implements Listener {
user = UserManager.getInstance().getVotingPluginUser(playerName);
}
// reupdate cache
user.clearCache();
user.updateName(true);
if (voteSite.isWaitUntilVoteDelay() && !user.canVoteSite(voteSite)) {
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
return;
}
synchronized (object) {
// reupdate cache
user.clearCache();
user.cache();
user.updateName(true);
// vote party
plugin.getVoteParty().vote(user, event.isRealVote(), event.isForceBungee());
// broadcast vote if enabled in config
if (plugin.getConfigFile().isBroadcastVotesEnabled()
&& (plugin.getBungeeSettings().isBungeeBroadcast() || !event.isBungee())) {
if (!plugin.getConfigFile().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
if (event.isBroadcast() && !plugin.getBungeeSettings().isDisableBroadcast() ) {
// broadcast vote if enabled in config
if (plugin.getConfigFile().isBroadcastVotesEnabled()
&& (plugin.getBungeeSettings().isBungeeBroadcast() || !event.isBungee())) {
if (!plugin.getConfigFile().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
}
}
@@ -81,7 +81,7 @@ public class VotiferEvent implements Listener {
&& (plugin.getBungeeHandler().getMethod().equals(BungeeMethod.PLUGINMESSAGING)
|| plugin.getBungeeHandler().getMethod().equals(BungeeMethod.SOCKETS))) {
plugin.getLogger().severe(
"Ignoring vote from votifier since pluginmessaging or socket bungee method is enabled, this means you aren't setup correctly for those methods");
"Ignoring vote from votifier since pluginmessaging or socket bungee method is enabled, this means you aren't setup correctly for those methods, please check: https://github.com/BenCodez/VotingPlugin/wiki/Bungeecord-Setups");
return;
}
String voteSiteNameStr = plugin.getVoteSiteName(false, voteSite);
@@ -57,10 +57,8 @@ public class CheckUpdate {
final Updater.UpdateResult result = plugin.getUpdater().getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.getUpdater().getVersion()
+ " Use /av download to get the latest update!");
plugin.getLogger().info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.getUpdater().getVersion());
break;
}
default: {
@@ -159,7 +159,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
public void bungeeVote(String service, BungeeMessageData text, boolean setTotals) {
if (plugin.getBungeeSettings().isUseBungeecoord()) {
VotingPluginMain.plugin.debug("Bungee vote for " + getPlayerName() + " on " + service);
plugin.debug("Bungee vote for " + getPlayerName() + " on " + service);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service, true), getPlayerName(), service,
true);
@@ -180,7 +180,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
public void bungeeVoteOnline(String service, BungeeMessageData text, boolean setTotals) {
if (plugin.getBungeeSettings().isUseBungeecoord()) {
VotingPluginMain.plugin.debug("Bungee online vote for " + getPlayerName() + " on " + service);
plugin.debug("Bungee online vote for " + getPlayerName() + " on " + service);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service, true), getPlayerName(), service,
true);
@@ -200,9 +200,9 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
}
public void bungeeVotePluginMessaging(String service, long time, BungeeMessageData text, boolean setTotals,
boolean wasOnline) {
boolean wasOnline, boolean broadcast) {
if (plugin.getBungeeSettings().isUseBungeecoord()) {
VotingPluginMain.plugin.debug("Pluginmessaging vote for " + getPlayerName() + " on " + service);
plugin.debug("Pluginmessaging vote for " + getPlayerName() + " on " + service);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(service, true), getPlayerName(), service,
true);
@@ -213,6 +213,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
voteEvent.setAddTotals(setTotals);
voteEvent.setBungeeTextTotals(text);
voteEvent.setWasOnline(wasOnline);
voteEvent.setBroadcast(broadcast);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
@@ -267,7 +268,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
try {
LocalDateTime now = plugin.getTimeChecker().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(VotingPluginMain.plugin.getOptions().getTimeHourOffSet());
.plusHours(plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
@@ -305,12 +306,14 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
ArrayList<Integer> days = new ArrayList<Integer>();
for (VoteSite voteSite : plugin.getVoteSites()) {
long time = user.getTime(voteSite);
if (time != 0) {
months.add(MiscUtils.getInstance().getMonthFromMili(time));
days.add(MiscUtils.getInstance().getDayFromMili(time));
} else {
return false;
if (voteSite.isEnabled() && !voteSite.isHidden()) {
long time = user.getTime(voteSite);
if (time != 0) {
months.add(MiscUtils.getInstance().getMonthFromMili(time));
days.add(MiscUtils.getInstance().getDayFromMili(time));
} else {
return false;
}
}
}
@@ -686,14 +689,14 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
* Off vote.
*/
public void offVote() {
if (!VotingPluginMain.plugin.getOptions().isProcessRewards()) {
VotingPluginMain.plugin.debug("Processing rewards is disabled");
if (!plugin.getOptions().isProcessRewards()) {
plugin.debug("Processing rewards is disabled");
return;
}
Player player = getPlayer();
if (player != null) {
VotingPluginMain.plugin.extraDebug("Checking offline vote site votes for " + player.getName());
plugin.extraDebug("Checking offline vote site votes for " + player.getName());
boolean topVoterIngorePerm = player.hasPermission("VotingPlugin.TopVoter.Ignore");
if (isTopVoterIgnore() != topVoterIngorePerm) {
@@ -719,7 +722,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
public void playerVote(VoteSite voteSite, boolean online, boolean broadcast, boolean bungee) {
if (plugin.getConfigFile().getFormatBroadcastWhenOnline() && plugin.getConfigFile().isBroadcastVotesEnabled()
&& broadcast) {
&& broadcast && !plugin.getBungeeSettings().isDisableBroadcast()) {
voteSite.broadcastVote(this);
}
voteSite.giveRewards(this, online, bungee);
@@ -1081,7 +1084,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
LocalDateTime now = plugin.getTimeChecker().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(VotingPluginMain.plugin.getOptions().getTimeHourOffSet());
.plusHours(plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
@@ -1178,7 +1181,7 @@ public class VotingPluginUser extends com.bencodez.advancedcore.api.user.Advance
LocalDateTime now = plugin.getTimeChecker().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(VotingPluginMain.plugin.getOptions().getTimeHourOffSet());
.plusHours(plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();