Compare commits

...
141 Commits
Author SHA1 Message Date
Ben12345rocks 4e38dd0f1a Update version number 2019-08-11 13:23:08 -04:00
Ben12345rocks 2264db76cc Bug fixes 2019-08-11 13:22:17 -04:00
Ben12345rocks 28082abde5 Change option 2019-08-09 20:01:03 -04:00
Ben12345rocks 4814cfae86 Update version number 2019-08-04 13:25:27 -04:00
Ben12345rocks 3aa7820239 More messages 2019-08-04 13:04:23 -04:00
Ben12345rocks c4a7232bca Add last month GUI 2019-08-03 21:25:33 -04:00
Ben12345rocks ee390ac0b1 Bug fix 2019-08-01 19:06:58 -04:00
Ben12345rocks 187ee01d82 Add new abilities to vote shop 2019-08-01 17:00:27 -04:00
Ben12345rocks 64f3d89abb Bug fix 2019-07-31 20:55:38 -04:00
Ben12345rocks bc33cef53f Minor bug fix 2019-07-31 20:45:56 -04:00
Ben12345rocks 199936262a Add option 2019-07-29 20:13:26 -04:00
Ben12345rocks 3b6eb22c16 Improvements 2019-07-28 14:23:40 -04:00
Ben12345rocks 0dc2ada7bc Improvements 2019-07-27 19:45:31 -04:00
Ben12345rocks f591756697 Alert of yml error when reloading 2019-07-27 18:59:02 -04:00
Ben12345rocks 86175dc284 Minor improvements 2019-07-24 19:27:16 -04:00
Ben12345rocks d69970acdd Minor improvements 2019-07-21 21:23:27 -04:00
Ben12345rocks 8242c4a977 Minor fix 2019-07-20 14:54:58 -04:00
Ben12345rocks f319bce854 Add update check on plugin reload 2019-07-20 14:53:52 -04:00
Ben12345rocks 8bd1bfc3e0 Update spigot 2019-07-19 19:51:02 -04:00
Ben12345rocks cec3232b51 Add total placeholders for rewards 2019-07-11 20:40:43 -04:00
Ben12345rocks 7dcd892106 Keep certain inventories from always closing 2019-07-05 13:41:53 -04:00
Ben12345rocks 78ca13fcb7 Update version number 2019-07-04 08:53:04 -04:00
Ben12345rocks 48d37045d2 Cleanup 2019-07-04 08:44:08 -04:00
Ben12345rocks 92e4ec5ddb Bug fix 2019-07-04 08:22:25 -04:00
Ben12345rocks 6d760e2c5b Add way of detecting if votifier loaded properly 2019-07-03 21:46:15 -04:00
Ben12345rocks ee4eb6d86c Add validator 2019-07-03 20:18:08 -04:00
Ben12345rocks 44cea60852 Improvement 2019-07-03 20:04:40 -04:00
Ben12345rocks 4f68c6677e Improvements 2019-07-03 14:40:07 -04:00
Ben12345rocks 018aa632c9 Bug fix 2019-07-02 08:17:43 -04:00
Ben12345rocks ac1f19817f Add limit for month total 2019-07-01 14:56:32 -04:00
Ben12345rocks 365ece55b1 Move commands over 2019-06-30 19:34:15 -04:00
Ben12345rocks 8bbbfc6c7c Update to 1.14.3 2019-06-24 20:45:10 -04:00
Ben12345rocks 5fb3c34745 Bug fix 2019-06-22 21:12:05 -04:00
Ben12345rocks 8f32a7fed8 Bug fix 2019-06-21 21:18:29 -04:00
Ben12345rocks 6a9a48fa81 Bug fixes 2019-06-21 20:59:50 -04:00
Ben12345rocks 2cd3ddf7e0 Use new api 2019-06-21 20:56:14 -04:00
Ben12345rocks c110a53494 Move placeholder api to advancedcore 2019-06-10 19:06:28 -04:00
Ben12345rocks 944ef03f80 Fixed bug with /av help 2019-06-08 21:48:32 -04:00
Ben12345rocks 654ee73945 Update version number 2019-06-08 20:08:37 -04:00
Ben12345rocks b113a068fd Improve reward test 2019-06-08 19:46:53 -04:00
Ben12345rocks 216f9e878f Add test for rewards 2019-06-08 19:35:22 -04:00
Ben 3c1404c429 Update README.md 2019-06-06 19:48:18 -04:00
Ben12345rocks 80d7251540 Improvements 2019-06-05 20:07:24 -04:00
Ben12345rocks 5d4fa15a0b Bug fixes 2019-05-29 17:48:00 -04:00
Ben12345rocks 02258478bb Bug fix 2019-05-29 17:24:48 -04:00
Ben12345rocks c4274e30ff Update to 1.14.2 2019-05-27 19:14:46 -04:00
Ben12345rocks aade5c2a80 Add reward for when cooldown ended 2019-05-27 17:24:36 -04:00
Ben12345rocks a09113f2c6 Bug fix 2019-05-27 17:15:02 -04:00
Ben12345rocks d5cd6cd16a Bug fixes 2019-05-26 14:40:55 -04:00
Ben12345rocks fc7ad2a3ff Bug fix 2019-05-26 12:30:29 -04:00
Ben12345rocks 1539d4199c Add additional information on startup 2019-05-26 12:27:12 -04:00
Ben12345rocks bf4fc1cb56 Bug fix 2019-05-21 20:08:31 -04:00
Ben12345rocks 9bc2ec59e5 Bug fix 2019-05-21 19:18:32 -04:00
Ben12345rocks 32baf04a75 Bug fix 2019-05-21 19:05:05 -04:00
Ben12345rocks a62da35686 Bug fix 2019-05-21 18:06:16 -04:00
Ben12345rocks 7a9f409b59 Bug fix 2019-05-21 17:02:52 -04:00
Ben12345rocks 12c103e354 Remove deprecated code 2019-05-20 20:18:16 -04:00
Ben12345rocks cd62cbf576 Better debug for cooldown events 2019-05-20 19:51:52 -04:00
Ben12345rocks e550d93ca5 Little fix 2019-05-18 09:20:17 -04:00
Ben12345rocks 25effd4805 Add event for cooldown ending 2019-05-18 09:18:32 -04:00
Ben12345rocks bb6066d867 Remove ip lookup 2019-05-16 19:44:25 -04:00
Ben12345rocks c44f40afd0 Update to 1.14.1 2019-05-13 21:15:11 -04:00
Ben12345rocks fa677ace84 Improvements 2019-05-12 17:03:43 -04:00
Ben12345rocks 37e312a6d9 Javadoc fix 2019-04-26 17:13:15 -04:00
Ben12345rocks 1358e32470 Update version number 2019-04-26 17:08:00 -04:00
Ben12345rocks e08eddb0c0 Update version to 1.14 2019-04-25 20:10:22 -04:00
Ben12345rocks f7ac8b5fa4 Update to 1.14 2019-04-23 17:21:54 -04:00
Ben12345rocks 7d192be572 Add ability to match ip's ontop of service sites 2019-04-22 17:01:37 -04:00
Ben12345rocks 7984dec523 Bug fix 2019-04-22 16:53:57 -04:00
Ben12345rocks bb420bc709 Change default option for preloadskulls 2019-04-14 18:30:16 -04:00
Ben12345rocks 78b9a336d9 Some config comment improvements 2019-04-14 12:56:52 -04:00
Ben12345rocks 667a4ea749 Disable vote shop command if disabled 2019-04-13 08:39:05 -04:00
Ben12345rocks 4ede4ff88b Bug fix 2019-04-06 20:22:31 -04:00
Ben12345rocks e26043958a Add ability to disable gui clicking in /vote gui 2019-04-06 20:03:59 -04:00
Ben12345rocks d3a6c267c6 Bug fix 2019-03-24 17:32:26 -04:00
Ben12345rocks 0d92dfa563 Add placeholders for global totals 2019-03-23 15:57:18 -04:00
Ben12345rocks 6e9916fcbd Update version number 2019-03-18 19:16:47 -04:00
Ben12345rocks e81c3e27bc Little fix 2019-03-09 20:50:22 -05:00
Ben12345rocks f4613cdce4 Update version number 2019-03-09 20:43:32 -05:00
Ben12345rocks 799340ce06 Added config option 2019-03-09 20:42:21 -05:00
Ben12345rocks ea1a033f2e Changes 2019-03-08 17:09:39 -05:00
Ben12345rocks dabdd8ae8f Add basic preloading 2019-03-07 20:35:45 -05:00
Ben12345rocks 3e2b7eede9 Config update 2019-03-07 18:52:12 -05:00
Ben12345rocks f941deed79 remove hardcode of vote today, closes #512 2019-03-07 18:40:44 -05:00
Ben12345rocks f601b4a134 Add debug for when user in vanish 2019-02-27 19:04:37 -05:00
Ben12345rocks 26630725bd Prevent loading plugin on 1.11 or lower 2019-02-26 18:55:13 -05:00
Ben12345rocks 7faa90ce43 Merge branch 'master' of https://github.com/Ben12345rocks/VotingPlugin 2019-02-23 19:25:15 -05:00
Ben12345rocks 4c99b6b06e Remove VotingPlugin.Player from /av givepoints 2019-02-18 17:26:25 -05:00
Ben 2f2d8278a4 Merge pull request #506 from kakd/patch-1
Minor spelling fixes in commens
2019-02-18 16:58:06 -05:00
kakd e8be2974f9 Minor spelling fixes in commens 2019-02-18 16:52:21 -05:00
Ben12345rocks 4930feff94 Add softdepend 2019-02-17 12:17:56 -05:00
Ben12345rocks 132d871039 Update version number 2019-02-16 18:51:38 -05:00
Ben12345rocks aea6954dbb Bug fix 2019-02-16 18:47:40 -05:00
Ben12345rocks 1ee8819e4c Add ability to transfer vote points 2019-02-16 08:12:45 -05:00
Ben12345rocks 41e3b7fbf6 Bug fix 2019-02-12 16:39:46 -05:00
Ben12345rocks 4218d240bc Bug fix 2019-02-11 17:09:17 -05:00
Ben12345rocks 683d6fcc42 Test commit 2019-02-11 17:07:12 -05:00
Ben12345rocks c9f6ab2fa6 Add event for when points received 2019-02-09 20:33:42 -05:00
Ben12345rocks c99d3baa3c Bug fix 2019-02-09 10:31:59 -05:00
Ben12345rocks d0ade2feff Add MVdW placeholders 2019-02-08 20:32:51 -05:00
Ben12345rocks dcebe5a701 Add authme support 2019-02-08 20:16:21 -05:00
Ben12345rocks d33791fb28 Update version number 2019-02-03 12:13:26 -05:00
Ben12345rocks 8512b3ab4f Bug fix 2019-02-01 20:12:06 -05:00
Ben12345rocks 4395d8cc89 Update version number 2019-01-19 19:30:37 -05:00
Ben12345rocks 55f4e6872c Add option to disable skulls for vote top 2019-01-13 12:19:09 -05:00
Ben12345rocks 6699a9204c Bug fix 2019-01-12 17:40:49 -05:00
Ben12345rocks 14e1a975c9 Improvements 2019-01-09 17:26:27 -05:00
Ben12345rocks 7ab3c4bcf9 Possible bug fix 2019-01-08 18:25:52 -05:00
Ben12345rocks 1866196571 Improvements 2019-01-07 16:47:25 -05:00
Ben12345rocks 301c21ed20 Preload skull for top voter 2019-01-06 14:01:55 -05:00
Ben12345rocks 2d5208a568 Update version number 2018-12-30 18:34:37 -05:00
Ben12345rocks 44a543e64c Bug fix 2018-12-30 18:34:09 -05:00
Ben12345rocks 458c66819a Bug fix 2018-12-30 17:35:27 -05:00
Ben12345rocks dcf4f3f15d Update version number 2018-12-30 15:20:25 -05:00
Ben12345rocks e33ef5420a Added another command 2018-12-30 13:05:55 -05:00
Ben12345rocks 8d1c3a05ce Add new command 2018-12-30 12:27:40 -05:00
Ben12345rocks 9a167a46d8 More command work 2018-12-29 20:54:45 -05:00
Ben12345rocks ffe60808b6 Added sound for inv clicks, command improvements 2018-12-29 20:45:54 -05:00
Ben12345rocks 1affd6c2fa Increase player name length 2018-12-29 19:27:02 -05:00
Ben12345rocks 17225dca5b Bug fixes 2018-12-22 19:54:20 -05:00
Ben12345rocks fc9f55ead8 Bug fix 2018-12-17 16:47:19 -05:00
Ben12345rocks eec877623e Add a class to make voting plugin hooks a lot easier 2018-12-16 19:15:48 -05:00
Ben12345rocks a06b0573c5 Made day vote streak update faster 2018-12-16 19:09:03 -05:00
Ben12345rocks dfcfee302f Bug fix 2018-12-16 12:39:21 -05:00
Ben12345rocks cb1cc27c60 Update version number 2018-12-15 09:18:56 -05:00
Ben12345rocks aed30a94c0 Bug fixes 2018-12-15 09:17:41 -05:00
Ben12345rocks 8e172e2647 Change default value 2018-12-15 09:01:10 -05:00
Ben12345rocks ca355e1a01 Add new commands 2018-12-14 20:26:46 -05:00
Ben12345rocks b0e18d5224 Added ability to disable aliases 2018-12-13 20:34:17 -05:00
Ben12345rocks f5fc80ef14 Performance improvement 2018-12-13 19:50:10 -05:00
Ben12345rocks 21f846f0bc Added ability to set percentage for vote streak 2018-12-13 19:43:18 -05:00
Ben12345rocks a6a742b91e Performance improvement 2018-12-13 19:23:32 -05:00
Ben12345rocks 4ca6510910 Test commit 2018-12-12 17:02:50 -05:00
Ben12345rocks e06ea06884 Code cleanup 2018-12-12 16:57:00 -05:00
Ben12345rocks 2c79dff678 Added new option 2018-12-12 16:43:37 -05:00
Ben12345rocks 56c4a094cf Little fix 2018-12-09 17:01:45 -05:00
Ben12345rocks 1898af9fea Little fix 2018-12-09 16:39:46 -05:00
Ben12345rocks 885d2bc019 Improvements 2018-12-09 15:39:54 -05:00
Ben12345rocks 12c604d09c Bug fix 2018-12-08 21:55:49 -05:00
Ben12345rocks 7b48699b39 Another spelling mistake 2018-12-08 19:49:24 -05:00
Ben12345rocks 3b5593882f Fix spelling mistake 2018-12-08 19:46:28 -05:00
34 changed files with 1813 additions and 927 deletions

No files matched your search

+6
View File
@@ -2,6 +2,12 @@
Plugin on SpigotMC
https://www.spigotmc.org/resources/votingplugin.15358/
![img](http://badge.henrya.org/spigot/downloads?id=15358&color=green)
![img2](http://badge.henrya.org/spigot/version?id=15358&color=red)
## License
### Creative Commons Arttribution 3.0 Unported
https://github.com/Ben12345rocks/VotingPlugin/blob/master/VotingPlugin/LICENSE.txt
@@ -1,13 +1,4 @@
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
@@ -17,40 +8,14 @@ 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.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.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
@@ -59,65 +24,4 @@ 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=warning
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.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=info
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
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.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.source=1.8
Binary file not shown.
+84 -13
View File
@@ -4,7 +4,7 @@
# https://github.com/Ben12345rocks/VotingPlugin/wiki
# Valid Options:
# - SQLITE
# - SQLITE
# - FLAT
# - MYSQL
DataStorage: SQLITE
@@ -42,12 +42,12 @@ AllowUnjoined: false
VoteReminding:
# Enable vote reminding
# This will remind player when he can vote on all sites
# Requires VoteDelay's to be setup properly
# Requires VoteDelays to be setup properly
# Use /vote next to see when you can be reminded
# Players require the perm "VotingPlugin.Login.RemindVotes" or "VotingPlugin.Player"
Enabled: true
# Wether or t to remind only once when the player can vote
# Whether or not to remind only once when the player can vote
# Does not apply to login reminds.
RemindOnlyOnce: true
@@ -91,7 +91,7 @@ VoteReminding:
# Set Message to '' (2 ') to disable message
Commands:
# Wether or not the following commands will open GUIs rather than display text
# Whether or not the following commands will open GUIs rather than display text
UseGUI:
Today: true
TopVoter: true
@@ -224,6 +224,9 @@ Format:
- '&3Highest Week Streak: &3&l%BestWeeklyStreak%'
- '&3Highest Month Streak: &3&l%BestMonthlyStreak%'
Today:
Line: '&6%player% : %VoteSite% : %Time%'
# PlaceHolders:
# %VotesRequired% = VotesRequired
# %NeededVotes% = Number of votes needed to reach VotesRequired
@@ -282,9 +285,16 @@ Format:
# User not exist message, from commands such as /vote next (player)
UserNotExist: '&cUser does not exist: %player%'
# Text for page buttons in inventories
PrevPage: '&aPrevious Page'
NextPage: '&aNext Page'
# Prev/Next page tems in GUIs
PrevItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aPrevious Page'
NextItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aNext Page'
InvFull: '&cInventory full, dropping items on ground'
@@ -300,6 +310,10 @@ Format:
# GUI Options
# ------------------------------------------------
# Enable command for last month gui
# Requires restart to take effect
LastMonthGUI: false
# Configure GUI's here
# Note: Slots start at 0 instead of 1, max slot is 53 (don't go over) (E.g: last slot in first row of inventory is 8)
# Item Material's can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
@@ -442,6 +456,11 @@ GUI:
# Number of topvoters to display on page +9
# 9 Slots on the botton are used for page buttons
Size: 27
# If true, /vote top will show player heads
UseSkull: true
# Item for player in GUI if use skull is false
PlayerItem:
Material: 'PAPER'
VoteTotal:
Name: 'VoteTotal: %player%'
BackButton: true
@@ -542,6 +561,10 @@ BackButton:
VoteShopBackButton: true
VoteShopEnabled: true
# Hide items in vote shop which user can not buy
VoteShopHideLimitedReached: true
# Requires above to be false
VoteShopLimitReached: '&aYou reached your limit'
Shop:
# Identifier
# Used in placeholders for formats
@@ -562,7 +585,9 @@ Shop:
Permission: ''
# Limit how many times you can buy this
#Limit: 3
# Rewards to run if player buys succesfully
# If true, item is not buyable
#NotBuyable: false
# Rewards to run if player buys successfully
Rewards:
Items:
Diamond:
@@ -629,7 +654,7 @@ VoteParty:
# List of commands to execute, these only execute once.
# %player% does not work here
Commands: []
# Rewards to give
# Rewards to give per player
Rewards:
Commands:
- say %player%
@@ -644,7 +669,7 @@ ResetMilestonesMonthly: false
MileStones:
# Number of votes required
# Allows multiple milestones
# Number be be around ' (E.g. '1')
# Number be around ' (E.g. '1')
# Can have multiple listed here
'20':
Enabled: false
@@ -685,6 +710,17 @@ VoteStreak:
Rewards:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Requirement:
# Require certain percentage of votes
UsePercentage: false
# Percentage requirements of votes
# 50 = %50
Day: 50
Week: 50
Month: 50
# Reward given when vote cooldown ended
VoteCoolDownEndedReward: []
# ONLY USE THIS FOR TITLES/SOUNDS AND OTHER EFFECTS
@@ -781,10 +817,22 @@ DailyAwards:
# Set to 0 to give no points
PointsOnVote: 1
AlwaysCloseInventory: false
# Set this to false to disable the plugin adding totals
# Not really recommended
AddTotals: true
# Click sound when using gui
# Set to none for no sound
ClickSound:
Sound: 'UI_BUTTON_CLICK'
Volume: 1.0
Pitch: 1.0
# Limit monthly votes to number of days of a month multipled by the number of sites
LimitMonthlyVotes: false
# Debug
Debug: false
@@ -799,7 +847,8 @@ DebugInGame: false
# Will log debug messages to VotingPlugin/Log/log.txt
# Requires Debug to be on
LogDebugToFile: false
# Only needed for extra cases
#LogDebugToFile: false
# Options for request api
# Current methods
@@ -811,7 +860,7 @@ RequestAPI:
DefaultMethod: 'Anvil'
DisabledMethods: []
# Wether or not to log every vote to a file
# Whether or not to log every vote to a file
# Use this if you wanna track player votes
# Not recommended though
LogVotesToFile: false
@@ -867,10 +916,28 @@ AutoDownload: false
# Whether or not to disable update checks
DisableUpdateChecking: false
# Allow transfer of vote points
AllowVotePointTransfers: false
# Disable this on a hub server for example
# Still processes rewards for offline rewards (just won't give any)
ProcessRewards: true
# Disable checking permissions on tab complete
DisableAdvancedTab: false
# Load command aliases, such as /avgui
# Requires restart to take effect
LoadCommandAliases: true
# Wait until user is logged in with AuthMe
# Requires AuthMe
WaitUntilLoggedIn: true
# Preload skulls to improve performance
# If false, skulls will be cached as they are used
PreloadSkulls: false
# ---------------------------------------------------------
# Mysql cache options
# Clearing cache forces the plugin to pull from database
@@ -887,6 +954,10 @@ ClearCacheOnJoin: false
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Use vault for permission checks
# May not work on some plugins
UseVaultPermissions: false
# ###############################################################
# Deprecated options, don't recommend using any of these
@@ -904,4 +975,4 @@ ClearCacheOnVote: false
# Disable checking on world change
# May improve performance
#DisableCheckOnWorldChange: false
#DisableCheckOnWorldChange: false
+46 -2
View File
@@ -1,5 +1,7 @@
VoteSites:
# VoteSite name
# VoteSite key
# Used for saving data for votesites
# Use a short name if you can
ExampleVoteSite:
# Enable voteSite
# If false, votesite will not be loaded by plugin
@@ -16,7 +18,8 @@ VoteSites:
# The serviceName from the vote, has to be correct to work correctly
# Gotten from voting on the site (will be in console/log)
# Usually is the main part of the url(e.g. PlanetMinecraft.com)
# Usually is the main part of the url(e.g. PlanetMinecraft.com), but not always
# See console when you vote (it will notify you if the plugin didn't find a votingsite matching the service site
ServiceSite: 'PlanetMinecraft.com'
# vote url for /vote
@@ -29,9 +32,11 @@ VoteSites:
VoteDelay: 24
# Require waiting until votedelay time has pasted in order to accept vote
# Recommend: false
WaitUntilVoteDelay: false
# Reset vote delay each day (for certain sites that do this)
# Recommend: false
VoteDelayDaily: false
# If true, rewards can be executed offline (requires ForceOffline to be true in the reward)
@@ -48,8 +53,47 @@ VoteSites:
# Rewards to give
# https://github.com/Ben12345rocks/AdvancedCore/wiki/Rewards
Rewards:
# Execute console commands
Commands:
- 'say hello'
# Send player a message
Messages:
Player: 'You voted'
# Site 2 example
Site2:
Enabled: false
Name: 'Site2'
ServiceSite: 'PlanetMinecraft.com'
VoteURL: 'link to vote URL here, used in /vote'
VoteDelay: 24
Item:
Material: 'DIAMOND'
Amount: 1
Rewards:
Commands:
- 'say hello'
# Advanced example
# 50% chance for reward1, if reward1 not given then 20% chance to get reward2, if reward2 not given then fallback
AdvancedPriority:
# Similar to priority, but no need to have to use reward files
# Add requirements under each reward
# Will go in order from list here and try to run each of the following rewards...
# This name can be anything, but they need to be different
Reward1:
Chance: 50
# Any other requirement here
# If any requirement fails, the next will be attempted
Messages:
Player: 'You got first reward'
Reward2:
Chance: 20
Messages:
Player: 'You got second reward'
# Fallback, 100% chance, after other rewards fail chances
Fallback:
Messages:
Player: 'You got unlucky'
Messages:
Player: 'You voted'
+16 -12
View File
@@ -4,6 +4,7 @@ main: com.Ben12345rocks.VotingPlugin.Main
description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: Ben12345rocks
softdepend: [MVdWPlaceholders, Votifier]
api-version: 1.13
commands:
vote:
@@ -63,6 +64,9 @@ commands:
votechoices:
description: A command
alaises: vchoices
votegivepoints:
description: A command
alaises: vgivepoints
adminvotehelp:
description: Open adminvote help
aliases: avhelp
@@ -108,18 +112,9 @@ commands:
adminvotevote:
description: Command Alias
aliases: [avvote, fakevote]
adminvotesetpoints:
description: Command Alias
aliases: avsetpoints
adminvoteaddpoints:
description: Command Alias
aliases: avaddpoints
adminvotegui:
description: Command Alias
aliases: avgui
votesetrequestmethod:
description: Command Alias
aliases: [vsetrequestmethod, setrequesetmethod]
adminvotegivereward:
description: Command Alias
aliases: avgivereward
@@ -140,9 +135,6 @@ commands:
adminvoteConvertFrom:
description: Command Alias
aliases: avConvertFrom
adminvoteRemovePoints:
description: Command Alias
aliases: avRemovePoints
adminvoteServiceSites:
description: Command Alias
aliases: avServiceSites
@@ -191,6 +183,18 @@ commands:
adminvoteDownloadJenkins:
description: Command Alias
aliases: avDownloadJenkins
adminvoteForceVoteParty:
description: Command Alias
aliases: avForceVoteParty
adminvoteUserEditValue:
description: Command Alias
aliases: avUserEditValue
adminvoteSetRequestMethod:
description: Command Alias
aliases: avSetRequestMethod
adminvoteUser:
description: Command Alias
aliases: avUser
permissions:
VotingPlugin.Player:
description: Allows basic access player commands
+13 -2
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.17</version>
<version>5.19.3</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -120,6 +120,10 @@
<pattern>com.zaxxer.HikariCP</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.HikariCP</shadedPattern>
</relocation>
<relocation>
<pattern>com.zaxxer.hikari</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.hikari</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j.slf4j-simple</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.slf4j-simple</shadedPattern>
@@ -241,7 +245,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.13.2-R0.1-SNAPSHOT</version>
<version>1.14.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -278,5 +282,12 @@
<scope>system</scope>
<systemPath>${project.basedir}/Jars/SuperbVote-0.5.3.jar</systemPath>
</dependency>
<dependency>
<groupId>be.maximvdw</groupId>
<artifactId>MVdWPlaceholderAPI</artifactId>
<version>LATEST</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/MVdWPlaceholderAPI.jar</systemPath>
</dependency>
</dependencies>
</project>
@@ -14,7 +14,6 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandle;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
@@ -27,6 +26,7 @@ import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.ValueRequest;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.BooleanListener;
@@ -47,7 +47,6 @@ import com.Ben12345rocks.VotingPlugin.Test.VoteTester;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolders;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.google.common.collect.ListMultimap;
@@ -89,6 +88,8 @@ public class CommandLoader {
return instance;
}
private Object pointLock = new Object();
/** The commands. */
private HashMap<String, CommandHandler> commands;
@@ -144,6 +145,71 @@ public class CommandLoader {
return playerPerm;
}
public boolean hasPermission(Player player, String cmd) {
if (cmd.startsWith("votingplugin:")) {
cmd = cmd.substring("votingplugin:".length());
}
if (commands.containsKey(cmd)) {
return commands.get(cmd).hasPerm(player);
}
boolean adminCommand = false;
if (cmd.startsWith("vote")) {
cmd = cmd.substring("vote".length());
} else if (cmd.startsWith("v")) {
cmd = cmd.substring(1);
} else if (cmd.startsWith("av")) {
adminCommand = true;
cmd = cmd.substring("av".length());
} else if (cmd.startsWith("adminvote")) {
adminCommand = true;
cmd = cmd.substring("adminvote".length());
}
// plugin.debug(cmd);
if (!adminCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
} else {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
}
return false;
}
public boolean isVotingPluginCommand(Player player, String cmd) {
if (plugin.getCommand(cmd) != null || cmd.startsWith("votingplugin")) {
return true;
}
for (String str : commands.keySet()) {
if (str.equalsIgnoreCase(cmd)) {
return true;
}
}
return false;
}
/**
* Load admin vote command.
*/
@@ -199,7 +265,6 @@ public class CommandLoader {
plugin.getAdminVoteCommand().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) {
@@ -243,16 +308,18 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "SetPoints", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetPoints|" + adminPerm, "Set players voting points") {
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "SetPoints", "(number)" },
"VotingPlugin.Commands.AdminVote.SetPoints|" + adminPerm, "Set players voting points") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setPoints(Integer.parseInt(args[2]));
sender.sendMessage(StringUtils.getInstance().colorize("&cSet " + args[1] + " points to " + args[2]));
}
});
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setPoints(Integer.parseInt(args[3]));
sender.sendMessage(
StringUtils.getInstance().colorize("&cSet " + args[1] + " points to " + args[3]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ResyncMilestones" },
"VotingPlugin.Commands.AdminVote.SetResyncMilestones|" + adminPerm, "Resync Milestones") {
@@ -269,29 +336,33 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "AddPoints", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.AddPoints|" + adminPerm, "Add to players voting points") {
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "AddPoints", "(number)" },
"VotingPlugin.Commands.AdminVote.AddPoints|" + adminPerm, "Add to players voting points") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.addPoints(Integer.parseInt(args[2]));
sender.sendMessage(StringUtils.getInstance().colorize("&cGave " + args[1] + " " + args[2] + " points"
+ ", " + args[1] + " now has " + user.getPoints() + " points"));
}
});
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
synchronized (pointLock) {
user.addPoints(Integer.parseInt(args[3]));
}
sender.sendMessage(StringUtils.getInstance().colorize("&cGave " + args[1] + " " + args[3]
+ " points" + ", " + args[1] + " now has " + user.getPoints() + " points"));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "RemovePoints", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.RemovePoints|" + adminPerm, "Remove voting points") {
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "RemovePoints", "(number)" },
"VotingPlugin.Commands.AdminVote.RemovePoints|" + adminPerm, "Remove voting points") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.removePoints(Integer.parseInt(args[2]));
sender.sendMessage(StringUtils.getInstance().colorize("&cRemoved " + args[2] + " points from " + args[1]
+ ", " + args[1] + " now has " + user.getPoints() + " points"));
}
});
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.removePoints(Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance().colorize("&cRemoved " + args[3] + " points from "
+ args[1] + ", " + args[1] + " now has " + user.getPoints() + " points"));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "Help&?" },
"VotingPlugin.Commands.AdminVote.Help|" + adminPerm, "See this page") {
@@ -389,10 +460,22 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
sender.sendMessage(ChatColor.RED + "Reloading " + plugin.getName() + "...");
sendMessage(sender, "&4" + "Reloading " + plugin.getName() + "...");
plugin.reload();
sender.sendMessage(
ChatColor.RED + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
if (plugin.isYmlError()) {
sendMessage(sender, "&3Detected yml error, please check server log for details");
}
sendMessage(sender,
"&4" + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
if (ServerData.getInstance().getServiceSites().size() == 0) {
sendMessage(sender, "&c"
+ "Detected that server hasn't received any votes from votifier, please check votifier connection");
}
if (!Config.getInstance().isDisableUpdateChecking()
&& plugin.getUpdater().getResult().equals(Updater.UpdateResult.UPDATE_AVAILABLE)) {
sendMessage(sender,
"&3Plugin has update available! https://www.spigotmc.org/resources/votingplugin.15358/");
}
}
});
@@ -538,7 +621,7 @@ public class CommandLoader {
try {
sender.sendMessage("Starting to convert");
UserStorage prevStorage = UserStorage.valueOf(args[1].toUpperCase());
plugin.convertDataStorage(prevStorage, AdvancedCoreHook.getInstance().getStorageType());
plugin.convertDataStorage(prevStorage, Main.plugin.getStorageType());
sender.sendMessage("Finished converting!");
} catch (Exception ex) {
ex.printStackTrace();
@@ -546,58 +629,37 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "SetTotal", "Month", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetTotal.Month|" + adminPerm, "Set month totals for player") {
for (final TopVoter top : TopVoter.values()) {
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "SetTotal", top.toString(), "(number)" },
"VotingPlugin.Commands.AdminVote.SetTotal." + top.toString() + "|" + adminPerm,
"Set " + top.toString() + " totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
UserManager.getInstance().getVotingPluginUser(args[2]).setTotal(TopVoter.Monthly,
Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance()
.colorize("&cSet month total for '" + args[2] + "' to " + args[3]));
}
});
@Override
public void execute(CommandSender sender, String[] args) {
UserManager.getInstance().getVotingPluginUser(args[1]).setTotal(top,
Integer.parseInt(args[4]));
sender.sendMessage(StringUtils.getInstance().colorize(
"&cSet " + top.toString() + " total for '" + args[1] + "' to " + args[4]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "SetTotal", "AllTime", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetTotal.AllTime|" + adminPerm,
"Set alltime totals for player") {
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "AddTotal", top.toString(), "(number)" },
"VotingPlugin.Commands.AdminVote.AddTotal." + top.toString() + "|" + adminPerm,
"Add " + top.toString() + " totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
UserManager.getInstance().getVotingPluginUser(args[2]).setTotal(TopVoter.AllTime,
Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance()
.colorize("&cSet alltime total for '" + args[2] + "' to " + args[3]));
}
});
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setTotal(top, user.getTotal(top) + Integer.parseInt(args[4]));
sender.sendMessage(StringUtils.getInstance()
.colorize("&cAdded " + top.toString() + " total for " + args[1]));
}
});
}
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "SetTotal", "Week", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetTotal.Week|" + adminPerm, "Set week totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
UserManager.getInstance().getVotingPluginUser(args[2]).setTotal(TopVoter.Weekly,
Integer.parseInt(args[3]));
sender.sendMessage(
StringUtils.getInstance().colorize("&cSet week total for '" + args[2] + "' to " + args[3]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "SetTotal", "Day", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.SetTotal.Day|" + adminPerm, "Set day totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
UserManager.getInstance().getVotingPluginUser(args[2]).setTotal(TopVoter.Daily,
Integer.parseInt(args[3]));
sender.sendMessage(
StringUtils.getInstance().colorize("&cSet day total for '" + args[2] + "' to " + args[3]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "ClearTotal", "(player)" },
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "User", "(player)", "ClearTotal" },
"VotingPlugin.Commands.AdminVote.ClearTotal|" + adminPerm, "Clear Totals for player") {
@Override
@@ -609,75 +671,29 @@ public class CommandLoader {
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "AddTotal", "Month", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.AddTotal.Month|" + adminPerm, "Add month totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
user.setTotal(TopVoter.Monthly, user.getTotal(TopVoter.Monthly) + Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded month total for " + args[2]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "AddTotal", "AllTime", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.AddTotal.AllTime|" + adminPerm,
"Add alltime totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
user.setTotal(TopVoter.AllTime, user.getTotal(TopVoter.AllTime) + Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded alltime total for " + args[2]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "AddTotal", "Week", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.AddTotal.Week|" + adminPerm, "Add week totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
user.setTotal(TopVoter.Weekly, user.getTotal(TopVoter.Weekly) + Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded week total for " + args[2]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "AddTotal", "Day", "(player)", "(number)" },
"VotingPlugin.Commands.AdminVote.AddTotal.Day|" + adminPerm, "Add day totals for player") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[2]);
user.setTotal(TopVoter.Daily, user.getTotal(TopVoter.Daily) + Integer.parseInt(args[3]));
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded day total for " + args[2]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "AddMilestoneCount", "(player)", "(number)" },
.add(new CommandHandler(new String[] { "User", "(player)", "AddMilestoneCount", "(number)" },
"VotingPlugin.Commands.AdminVote.AddMilestoneCount|" + adminPerm, "Add milestonecount") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setMilestoneCount(user.getMilestoneCount() + Integer.parseInt(args[2]));
user.setMilestoneCount(user.getMilestoneCount() + Integer.parseInt(args[3]));
SpecialRewards.getInstance().checkMilestone(user);
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded milestonecount for " + args[1]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "SetMilestoneCount", "(player)", "(number)" },
.add(new CommandHandler(new String[] { "User", "(player)", "SetMilestoneCount", "(number)" },
"VotingPlugin.Commands.AdminVote.SetMilestoneCount|" + adminPerm, "Set milestonecount") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
user.setMilestoneCount(Integer.parseInt(args[2]));
user.setMilestoneCount(Integer.parseInt(args[3]));
SpecialRewards.getInstance().checkMilestone(user);
sender.sendMessage(StringUtils.getInstance().colorize("&cAdded milestonecount for " + args[1]));
sender.sendMessage(StringUtils.getInstance()
.colorize("&cSet milestonecount for " + args[1] + " to " + args[3]));
}
});
@@ -696,9 +712,36 @@ public class CommandLoader {
}
plugin.getServer().getPluginManager().callEvent(voteEvent);
if (plugin.isYmlError()) {
sendMessage(sender,
"&4" + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
sendMessage(sender, "&3Detected yml error, please check server log for details");
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(Player)", "ForceVote", "(Sitename)" },
"VotingPlugin.Commands.AdminVote.Vote|" + adminPerm, "Trigger manual vote") {
@Override
public void execute(CommandSender sender, String[] args) {
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(args[3]), args[1], args[3],
false);
sendMessage(sender, "&cTriggering vote...");
if (voteEvent.getVoteSite() != null) {
if (!voteEvent.getVoteSite().isVaidServiceSite()) {
sendMessage(sender,
"&cPossible issue with service site, has the server gotten the vote from "
+ voteEvent.getServiceSite() + "?");
}
}
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "VoteSite", "(sitename)", "Create" },
"VotingPlugin.Commands.AdminVote.VoteSite.Edit|" + adminPerm, "Create VoteSite") {
@@ -719,7 +762,7 @@ public class CommandLoader {
@Override
public void execute(CommandSender sender, String[] args) {
AdvancedCoreHook.getInstance().getOptions().setDebug(true);
Main.plugin.getOptions().setDebug(true);
}
});
@@ -914,6 +957,19 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "TestReward", "(Player)", "(reward)", "(number)" },
"VotingPlugin.Commands.AdminVote.TestReward|" + adminPerm, "Test reward times") {
@Override
public void execute(CommandSender sender, String[] args) {
VoteTester.getInstance().testRewards(Integer.parseInt(args[3]), args[1], args[2]);
if (isPlayer(sender)) {
sendMessage(sender, "&cSee console for details");
}
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "Placeholders" },
"VotingPlugin.Commands.AdminVote.Placeholders|" + adminPerm,
@@ -923,7 +979,7 @@ public class CommandLoader {
public void execute(CommandSender sender, String[] args) {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&cPlaceholders:");
for (PlaceHolder placeholder : PlaceHolders.getInstance().getPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "#";
@@ -935,7 +991,7 @@ public class CommandLoader {
}
}
for (PlaceHolder placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "#";
@@ -962,6 +1018,60 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "ForceMilestone", "(Number)" },
"VotingPlugin.Commands.AdminVote.ForceMilestone|" + adminPerm, "Force a milestone") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveMilestoneVoteReward(user, user.isOnline(), parseInt(args[3]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "ForceCummulative", "(Number)" },
"VotingPlugin.Commands.AdminVote.ForceCummulative|" + adminPerm, "Force a cummulative reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveCumulativeVoteReward(user, user.isOnline(), parseInt(args[3]));
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "User", "(player)", "ForceAllSites" },
"VotingPlugin.Commands.AdminVote.ForceAllSites|" + adminPerm, "Force a allsites reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveAllSitesRewards(user, user.isOnline());
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "User", "(player)", "ForceFirstVote" },
"VotingPlugin.Commands.AdminVote.ForceFirstVote|" + adminPerm, "Force a firstvote reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveFirstVoteRewards(user, user.isOnline());
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "User", "(player)", "ForceVoteStreak", "(Text)", "(Number)" },
"VotingPlugin.Commands.AdminVote.ForceVoteStreak|" + adminPerm, "Force a votestreak reward") {
@Override
public void execute(CommandSender sender, String[] args) {
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
SpecialRewards.getInstance().giveVoteStreakReward(user, user.isOnline(), args[3], args[4],
parseInt(args[4]));
}
});
plugin.getAdminVoteCommand()
.add(new CommandHandler(new String[] { "Placeholders", "(player)" },
"VotingPlugin.Commands.AdminVote.Placeholders.Players|" + adminPerm,
@@ -972,7 +1082,7 @@ public class CommandLoader {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&cPlaceholders:");
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
for (PlaceHolder placeholder : PlaceHolders.getInstance().getPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "1";
@@ -981,7 +1091,7 @@ public class CommandLoader {
+ placeholder.placeholderRequest(user.getOfflinePlayer(), user, identifier));
}
for (PlaceHolder placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
for (PlaceHolder<User> placeholder : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String identifier = placeholder.getIdentifier();
if (identifier.endsWith("_")) {
identifier += "1";
@@ -994,14 +1104,14 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(new String[] { "" },
"VotingPlugin.Commands.AdminVote|" + adminPerm, "Base command") {
plugin.getAdminVoteCommand().add(
new CommandHandler(new String[] {}, "VotingPlugin.Commands.AdminVote|" + adminPerm, "Base command") {
@Override
public void execute(CommandSender sender, String[] args) {
sendMessage(sender, "&cInvalid command, see /adminvote help");
}
});
@Override
public void execute(CommandSender sender, String[] args) {
sendMessage(sender, "&cInvalid command, see /adminvote help");
}
});
ArrayList<CommandHandler> avCommands = com.Ben12345rocks.AdvancedCore.Commands.CommandLoader.getInstance()
.getBasicAdminCommands("VotingPlugin");
@@ -1017,15 +1127,22 @@ public class CommandLoader {
*/
public void loadAliases() {
commands = new HashMap<String, CommandHandler>();
if (!Config.getInstance().isLoadCommandAliases()) {
return;
}
for (CommandHandler cmdHandle : plugin.getVoteCommand()) {
if (cmdHandle.getArgs().length > 0) {
String[] args = cmdHandle.getArgs()[0].split("&");
for (String arg : args) {
commands.put("vote" + arg, cmdHandle);
try {
plugin.getCommand("vote" + arg).setExecutor(new CommandAliases(cmdHandle, false));
plugin.getCommand("vote" + arg)
.setTabCompleter(new AliasesTabCompleter().setCMDHandle(cmdHandle, false));
for (String str : plugin.getCommand("vote" + arg).getAliases()) {
commands.put(str, cmdHandle);
}
} catch (Exception ex) {
plugin.debug("Failed to load command and tab completer for /vote" + arg);
}
@@ -1038,11 +1155,15 @@ public class CommandLoader {
if (cmdHandle.getArgs().length > 0) {
String[] args = cmdHandle.getArgs()[0].split("&");
for (String arg : args) {
commands.put("adminvote" + arg, cmdHandle);
try {
plugin.getCommand("adminvote" + arg).setExecutor(new CommandAliases(cmdHandle, true));
plugin.getCommand("adminvote" + arg)
.setTabCompleter(new AliasesTabCompleter().setCMDHandle(cmdHandle, true));
for (String str : plugin.getCommand("adminvote" + arg).getAliases()) {
commands.put(str, cmdHandle);
}
} catch (Exception ex) {
plugin.debug("Failed to load command and tab completer for /adminvote" + arg + ": "
+ ex.getMessage());
@@ -1219,14 +1340,16 @@ public class CommandLoader {
}
});
plugin.getVoteCommand().add(new CommandHandler(new String[] { "Shop" },
"VotingPlugin.Commands.Vote.Shop|" + playerPerm, "Open VoteShop GUI", false) {
if (Config.getInstance().getVoteShopEnabled()) {
plugin.getVoteCommand().add(new CommandHandler(new String[] { "Shop" },
"VotingPlugin.Commands.Vote.Shop|" + playerPerm, "Open VoteShop GUI", false) {
@Override
public void execute(CommandSender sender, String[] args) {
PlayerGUIs.getInstance().openVoteShop((Player) sender);
}
});
@Override
public void execute(CommandSender sender, String[] args) {
PlayerGUIs.getInstance().openVoteShop((Player) sender);
}
});
}
plugin.getVoteCommand().add(new CommandHandler(new String[] { "URL" },
"VotingPlugin.Commands.Vote.URL|" + playerPerm, "Open VoteURL GUI", false) {
@@ -1445,6 +1568,19 @@ public class CommandLoader {
}
});
if (Config.getInstance().isLastMonthGUI()) {
plugin.getVoteCommand()
.add(new CommandHandler(new String[] { "LastMonthTop" },
"VotingPlugin.Commands.Vote.LastMonthTop|" + playerPerm,
"Open list of Top Voters from last month") {
@Override
public void execute(CommandSender sender, String[] args) {
PlayerGUIs.getInstance().openVoteTopLastMonth((Player) sender);
}
});
}
plugin.getVoteCommand().add(new CommandHandler(new String[] { "Top" },
"VotingPlugin.Commands.Vote.Top|" + playerPerm, "Open list of Top Voters") {
@@ -1869,6 +2005,31 @@ public class CommandLoader {
}
});
if (Config.getInstance().isAllowVotePointTransfers()) {
plugin.getVoteCommand().add(new CommandHandler(new String[] { "GivePoints", "(player)", "(number)" },
"VotingPlugin.Commands.Vote.GivePoints", "Give someone points from your points", false) {
@Override
public void execute(CommandSender sender, String[] args) {
if (Config.getInstance().isAllowVotePointTransfers()) {
User cPlayer = UserManager.getInstance().getVotingPluginUser((Player) sender);
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
int pointsToGive = Integer.parseInt(args[2]);
if (cPlayer.getPoints() >= pointsToGive) {
user.addPoints(pointsToGive);
cPlayer.removePoints(pointsToGive);
sendMessage(sender, "&c" + pointsToGive + " points given to " + user.getPlayerName());
user.sendMessage(
"&cYou received " + pointsToGive + " points from " + cPlayer.getPlayerName());
} else {
sendMessage(sender, "&cNot enough points");
}
}
}
});
}
plugin.getVoteCommand().add(
new CommandHandler(new String[] {}, "VotingPlugin.Commands.Vote|" + playerPerm, "See voting URLs") {
@@ -1905,67 +2066,4 @@ public class CommandLoader {
public void setCommands(HashMap<String, CommandHandler> commands) {
this.commands = commands;
}
public boolean isVotingPluginCommand(Player player, String cmd) {
if (plugin.getCommand(cmd) != null || cmd.startsWith("votingplugin")) {
return true;
}
for (String str : plugin.getDescription().getCommands().keySet()) {
for (String str1 : plugin.getCommand(str).getAliases()) {
if (str1.equalsIgnoreCase(cmd)) {
return true;
}
}
}
return false;
}
public boolean hasPermission(Player player, String cmd) {
if (cmd.startsWith("votingplugin:")) {
cmd = cmd.substring("votingplugin:".length());
}
boolean adminCommand = false;
if (cmd.startsWith("vote")) {
cmd = cmd.substring("vote".length());
} else if (cmd.startsWith("v")) {
cmd = cmd.substring(1);
} else if (cmd.startsWith("av")) {
adminCommand = true;
cmd = cmd.substring("av".length());
} else if (cmd.startsWith("adminvote")) {
adminCommand = true;
cmd = cmd.substring("adminvote".length());
}
// plugin.debug(cmd);
if (!adminCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
} else {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (handle.isCommand(cmd)) {
// plugin.debug("is handle " + ArrayUtils.getInstance()
// .makeStringList(ArrayUtils.getInstance().convert(handle.getArgs())));
if (handle.hasPerm(player)) {
// plugin.debug("has perm");
return true;
} else {
// plugin.debug("no perm " + cmd);
}
}
}
}
return false;
}
}
@@ -17,8 +17,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.TimeChecker.TimeChecker;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
@@ -100,7 +100,7 @@ public class Commands {
msg.add(StringUtils.getInstance().stringToComp("&3&l() = Needed"));
msg.add(StringUtils.getInstance().stringToComp("&3&lAliases: adminvote, av"));
for (int i = pagesize * page; (i < text.size()) && (i < ((page + 1) * pagesize) - 1); i++) {
for (int i = pagesize * page; (i < text.size()) && (i < ((page + 1) * pagesize)); i++) {
msg.add(text.get(i));
}
@@ -322,7 +322,7 @@ public class Commands {
* the page
*/
public void sendTopVoterAllTimeScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.AllTime).keySet());
@@ -362,7 +362,7 @@ public class Commands {
* the page
*/
public void sendTopVoterDailyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
@@ -402,7 +402,7 @@ public class Commands {
* the page
*/
public void sendTopVoterMonthlyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Monthly).keySet());
@@ -442,7 +442,7 @@ public class Commands {
* the page
*/
public void sendTopVoterWeeklyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
@@ -483,7 +483,7 @@ public class Commands {
* the page
*/
public void sendVoteTodayScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().getOptions().isSendScoreboards()) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
String[] voteToday = voteToday();
@@ -732,8 +732,9 @@ public class Commands {
String info = new String();
long time = user.getTime(voteSite);
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
@@ -762,7 +763,7 @@ public class Commands {
}
} else {
if (lastVote.getDayOfYear() == now.getDayOfYear() && lastVote.getYear() == now.getYear()) {
LocalDateTime midnight = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0);
LocalDateTime midnight = TimeChecker.getInstance().getTime().plusDays(1).withHour(0).withMinute(0);
Duration dur = Duration.between(now, midnight);
int diffHours = (int) (dur.getSeconds() / (60 * 60));
@@ -888,7 +889,14 @@ public class Commands {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getInstance().getFormatTimeFormat());
String timeString = plugin.getVoteToday().get(user).get(voteSite).format(formatter);
msg.add("&6" + user.getPlayerName() + " : " + voteSite.getKey() + " : " + timeString);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("player", user.getPlayerName());
placeholders.put("votesite", voteSite.getKey());
placeholders.put("time", timeString);
msg.add(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatCommandsVoteTodayLine(), placeholders));
// msg.add("&6" + user.getPlayerName() + " : " + voteSite.getKey() + " : " +
// timeString);
}
}
msg = ArrayUtils.getInstance().colorize(msg);
@@ -10,11 +10,12 @@ import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUI;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIValueType;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueBoolean;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueNumber;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueString;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory.ClickEvent;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.InputMethod;
@@ -163,99 +164,91 @@ public class AdminGUI {
}
});
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Priority", voteSite.getPriority(),
EditGUIValueType.NUMBER) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("Priority", voteSite.getPriority()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), (int) value);
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), num.intValue());
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "ServiceSite", voteSite.getServiceSite(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("ServiceSite", voteSite.getServiceSite()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setServiceSite(siteName, (String) value);
ConfigVoteSites.getInstance().setServiceSite(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Name", voteSite.getDisplayName(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("Name", voteSite.getDisplayName()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), (String) value);
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteURL", voteSite.getVoteURL(),
EditGUIValueType.STRING) {
inv.addButton(new EditGUIButton(new EditGUIValueString("VoteURL", voteSite.getVoteURL()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteURL(siteName, (String) value);
ConfigVoteSites.getInstance().setVoteURL(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteDelay", voteSite.getVoteDelay(),
EditGUIValueType.NUMBER) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("VoteDelay", voteSite.getVoteDelay()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelay(siteName, (int) value);
ConfigVoteSites.getInstance().setVoteDelay(siteName, num.intValue());
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "Enabled", voteSite.isEnabled(),
EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("Enabled", voteSite.isEnabled()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setEnabled(siteName, (boolean) value);
ConfigVoteSites.getInstance().setEnabled(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "ForceOffline", voteSite.isGiveOffline(),
EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("ForceOffline", voteSite.isGiveOffline()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setForceOffline(siteName, (boolean) value);
ConfigVoteSites.getInstance().setForceOffline(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new EditGUIButton(new ItemBuilder(Material.DIAMOND), "VoteDelayDaily",
voteSite.isVoteDelayDaily(), EditGUIValueType.BOOLEAN) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("VoteDelayDaily", voteSite.isVoteDelayDaily()) {
@Override
public void setValue(Player player, Object value) {
VoteSite voteSite = (VoteSite) getMeta(player, "VoteSite");
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, (boolean) value);
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, value);
plugin.reload();
}
});
}));
inv.openInventory(player);
}
@@ -1,16 +1,17 @@
package com.Ben12345rocks.VotingPlugin.Commands.GUI;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
@@ -51,12 +52,28 @@ public class PlayerGUIs {
private PlayerGUIs() {
}
public ItemBuilder getBackButton() {
public BInventoryButton getBackButton() {
ConfigurationSection sec = Config.getInstance().getBackButton();
ItemBuilder item;
if (sec != null) {
return new ItemBuilder(sec);
item = new ItemBuilder(sec);
} else {
item = new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
}
return new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
BInventoryButton b = new BInventoryButton(item) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getWhoClicked(), getSelectedPlayer(event.getWhoClicked()));
}
};
if (!Config.getInstance().isAlwaysCloseInventory()) {
b.dontClose();
}
return b;
}
public User getSelectedPlayer(Player player) {
@@ -109,13 +126,15 @@ public class PlayerGUIs {
&& !player.hasPermission("VotingPlugin.Mod"))
|| (!player.hasPermission("VotingPlugin.Commands.Vote.GUI")
&& !player.hasPermission("VotingPlugin.Player"))) {
player.sendMessage(
StringUtils.getInstance().colorize(AdvancedCoreHook.getInstance().getOptions().getFormatNoPerms()));
player.sendMessage(StringUtils.getInstance().colorize(Main.plugin.getOptions().getFormatNoPerms()));
return;
}
setSelectedPlayer(player, user);
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteGUIName(), "player", user.getPlayerName()));
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
for (String slot : Config.getInstance().getVoteGUISlots()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteGUISlotSection(slot));
@@ -161,30 +180,46 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
String cmd = Config.getInstance().getVoteGUISlotCommand(slot);
User user = getSelectedPlayer(player);
if (!cmd.equals("")) {
player.performCommand(cmd);
} else {
if (slot.equalsIgnoreCase("url")) {
openVoteURL(player);
} else if (slot.equalsIgnoreCase("next")) {
openVoteNext(player, user);
} else if (slot.equalsIgnoreCase("last")) {
openVoteLast(player, user);
} else if (slot.equalsIgnoreCase("total")) {
openVoteTotal(player, user);
} else if (slot.equalsIgnoreCase("top")) {
openVoteTop(player, null);
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
openVoteShop(player);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
Player player = event.getWhoClicked();
String cmd = Config.getInstance().getVoteGUISlotCommand(slot);
User user = getSelectedPlayer(player);
if (cmd.equalsIgnoreCase("none")) {
return;
} else if (!cmd.equals("")) {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
player.performCommand(cmd);
}
});
} else {
if (slot.equalsIgnoreCase("url")) {
openVoteURL(player);
} else if (slot.equalsIgnoreCase("next")) {
openVoteNext(player, user);
} else if (slot.equalsIgnoreCase("last")) {
openVoteLast(player, user);
} else if (slot.equalsIgnoreCase("total")) {
openVoteTotal(player, user);
} else if (slot.equalsIgnoreCase("top")) {
openVoteTop(player, null);
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
openVoteShop(player);
} else if (slot.equalsIgnoreCase("lastmonth")) {
openVoteTopLastMonth(player);
}
}
}
}
});
}
});
@@ -209,14 +244,7 @@ public class PlayerGUIs {
}
if (Config.getInstance().getGUIVoteLastBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
@@ -238,14 +266,7 @@ public class PlayerGUIs {
}
if (Config.getInstance().getGUIVoteNextBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
@@ -278,70 +299,77 @@ public class PlayerGUIs {
}
}
if (hasPerm && limitPass) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
if (!Config.getInstance().getVoteShopNotBuyable(identifier)) {
if (hasPerm && (limitPass || !Config.getInstance().isVoteShopHideLimitedReached())) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(new BInventoryButton(builder) {
inv.addButton(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);
user.clearCache();
String identifier = (String) getData("identifier");
int limit = (int) getData("Limit");
int points = Config.getInstance().getIdentifierCost(identifier);
if (identifier != null) {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.clearCache();
String identifier = (String) getData("identifier");
int limit = (int) getData("Limit");
int points = Config.getInstance().getIdentifierCost(identifier);
if (identifier != null) {
// limit fail-safe, should never be needed, except in rare cases
boolean limitPass = true;
if (limit > 0) {
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
// limit fail-safe, should never be needed, except in rare cases
boolean limitPass = true;
if (limit > 0) {
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
}
}
}
if (limitPass) {
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier", identifier);
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
if (limitPass) {
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier", identifier);
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier),
new RewardOptions().setPlaceholders(placeholders));
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier),
new RewardOptions().setPlaceholders(placeholders));
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
if (limit > 0) {
user.setVoteShopIdentifierLimit(identifier,
user.getVoteShopIdentifierLimit(identifier) + 1);
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
if (limit > 0) {
user.setVoteShopIdentifierLimit(identifier,
user.getVoteShopIdentifierLimit(identifier) + 1);
}
} else {
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
} else {
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopFailedMsg(), placeholders));
user.sendMessage(Config.getInstance().getVoteShopLimitReached());
}
}
}
}
}.addData("identifier", identifier).addData("Limit", limit));
}.addData("identifier", identifier).addData("Limit", limit));
}
} else {
if (hasPerm) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
}
}.dontClose().addData("identifier", identifier).addData("Limit", limit));
}
}
}
if (Config.getInstance().getVoteShopBackButton()) {
inv.addButton(new BInventoryButton(PlayerGUIs.getInstance().getBackButton()) {
@Override
public void onClick(ClickEvent event) {
PlayerGUIs.getInstance().openVoteGUI(event.getPlayer(),
UserManager.getInstance().getVotingPluginUser(player));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
@@ -409,13 +437,7 @@ public class PlayerGUIs {
});
if (Config.getInstance().getGUIVoteStreakBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
@@ -424,6 +446,9 @@ public class PlayerGUIs {
public void openVoteToday(Player player) {
setSelectedPlayer(player, null);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTodayName());
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
for (User user : plugin.getVoteToday().keySet()) {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
@@ -438,25 +463,64 @@ public class PlayerGUIs {
User user = UserManager.getInstance()
.getVotingPluginUser(clickEvent.getClickedItem().getItemMeta().getDisplayName());
openVoteGUI(player, user);
}
});
}
}
if (Config.getInstance().getGUIVoteTodayBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteTopLastMonth(Player player) {
Set<Entry<User, Integer>> users = null;
users = plugin.getLastMonthTopVoter().entrySet();
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteTopName(), "topvoter", "Last Month"));
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
int pos = 1;
for (Entry<User, Integer> entry : users) {
ItemBuilder playerItem;
if (Config.getInstance().isGuiVoteTopUseSkull()) {
playerItem = new ItemBuilder(entry.getKey().getPlayerHead());
} else {
playerItem = new ItemBuilder(Material.valueOf(Config.getInstance().getGuiVoteTopPlayerItemMaterial()));
}
playerItem.setLore(new ArrayList<String>());
inv.addButton(new BInventoryButton(playerItem.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore()).addPlaceholder("position", "" + pos)
.addPlaceholder("player", entry.getKey().getPlayerName())
.addPlaceholder("votes", "" + entry.getValue())) {
@Override
public void onClick(ClickEvent clickEvent) {
User user = (User) getData("User");
openVoteGUI(player, user);
}
}.addData("player", entry.getKey().getPlayerName()).addData("User", entry.getKey()));
pos++;
}
if (Config.getInstance().getGUIVoteTopBackButton()) {
inv.getPageButtons().add(getBackButton().setSlot(1));
}
inv.setPages(true);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
}
public void openVoteTop(Player player, TopVoter top) {
if (top == null) {
top = TopVoter.getDefault();
@@ -468,28 +532,33 @@ public class PlayerGUIs {
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteTopName(), "topvoter", topVoter));
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
int pos = 1;
for (Entry<User, Integer> entry : users) {
ItemBuilder playerItem;
inv.addButton(new BInventoryButton(
new ItemBuilder(MiscUtils.getInstance().setSkullOwner(entry.getKey().getOfflinePlayer()))
.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore())
.addPlaceholder("position", "" + pos)
.addPlaceholder("player", entry.getKey().getPlayerName())
.addPlaceholder("votes", "" + entry.getValue())) {
if (Config.getInstance().isGuiVoteTopUseSkull()) {
playerItem = new ItemBuilder(entry.getKey().getPlayerHead());
} else {
playerItem = new ItemBuilder(Material.valueOf(Config.getInstance().getGuiVoteTopPlayerItemMaterial()));
}
playerItem.setLore(new ArrayList<String>());
inv.addButton(new BInventoryButton(playerItem.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore()).addPlaceholder("position", "" + pos)
.addPlaceholder("player", entry.getKey().getPlayerName())
.addPlaceholder("votes", "" + entry.getValue())) {
@Override
public void onClick(ClickEvent clickEvent) {
// ItemBuilder item = new ItemBuilder(clickEvent.getClickedItem());
// String name = ChatColor.stripColor(item.getName()).split(":")[1].trim();
String name = (String) clickEvent.getButton().getData("player");
User user = UserManager.getInstance().getVotingPluginUser(name);
User user = (User) getData("User");
openVoteGUI(player, user);
}
}.addData("player", entry.getKey().getPlayerName()));
}.addData("player", entry.getKey().getPlayerName()).addData("User", entry.getKey()));
pos++;
}
@@ -508,13 +577,7 @@ public class PlayerGUIs {
});
if (Config.getInstance().getGUIVoteTopBackButton()) {
inv.getPageButtons().add(new BInventoryButton(getBackButton().setSlot(1)) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.getPageButtons().add(getBackButton().setSlot(1));
}
inv.setPages(true);
@@ -540,14 +603,7 @@ public class PlayerGUIs {
}
if (Config.getInstance().getGUIVoteTotalBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
@@ -628,13 +684,7 @@ public class PlayerGUIs {
}
if (Config.getInstance().getGUIVoteURLBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
@@ -647,6 +697,9 @@ public class PlayerGUIs {
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteURLSiteName(), "site", site.getDisplayName()));
inv.setMeta(player, "VoteSite", site);
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
inv.addButton(
new BInventoryButton(new ItemBuilder(Material.BOW).setName("&4URL").addLoreLine("Click to see URL")) {
@@ -677,13 +730,7 @@ public class PlayerGUIs {
});
if (Config.getInstance().getGUIVoteURLBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
@@ -738,13 +785,7 @@ public class PlayerGUIs {
}
if (Config.getInstance().isVoteRewardBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
inv.addButton(getBackButton());
}
inv.openInventory(player);
@@ -9,6 +9,7 @@ import org.bukkit.configuration.ConfigurationSection;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.AnnotationHandler;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataBoolean;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataDouble;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataInt;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataString;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
@@ -209,6 +210,10 @@ public class Config extends YMLFile {
@Getter
private boolean disableNoServiceSiteMessage = false;
@ConfigDataBoolean(path = "DisableAdvancedTab")
@Getter
private boolean disableAdvancedTab = false;
@Getter
private String firstVoteRewardsPath = "FirstVote";
@@ -227,6 +232,61 @@ public class Config extends YMLFile {
@Getter
private boolean enableWeeklyAwards = false;
@ConfigDataDouble(path = "VoteStreak.Requirement.Day")
@Getter
private double voteStreakRequirementDay = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Week")
@Getter
private double voteStreakRequirementWeek = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Month")
@Getter
private double voteStreakRequirementMonth = 50;
@ConfigDataBoolean(path = "VoteStreak.Requirement.UsePercentage")
@Getter
private boolean voteStreakRequirementUsePercentage = false;
@ConfigDataBoolean(path = "LoadCommandAliases")
@Getter
private boolean loadCommandAliases = true;
@ConfigDataBoolean(path = "GUI.VoteTop.UseSkull")
@Getter
private boolean guiVoteTopUseSkull = true;
@ConfigDataString(path = "GUI.VoteTop.PlayerItem.Material")
@Getter
private String guiVoteTopPlayerItemMaterial = "PAPER";
@ConfigDataBoolean(path = "AllowVotePointTransfers")
@Getter
private boolean allowVotePointTransfers = false;
@ConfigDataBoolean(path = "LimitMonthlyVotes")
@Getter
private boolean limitMonthlyVotes = false;
@ConfigDataBoolean(path = "AlwaysCloseInventory")
@Getter
private boolean alwaysCloseInventory = false;
@ConfigDataBoolean(path = "VoteShopHideLimitedReached")
@Getter
private boolean voteShopHideLimitedReached = true;
@ConfigDataString(path = "VoteShopLimitReached")
@Getter
private String voteShopLimitReached = "&aYou reached your limit";
@Getter
private int formatPageSize = 10;
@ConfigDataString(path = "Format.Commands.Vote.Today.Line")
@Getter
private String formatCommandsVoteTodayLine = "&6%player% : %VoteSite% : %Time%";
/**
* Instantiates a new config.
*/
@@ -575,9 +635,6 @@ public class Config extends YMLFile {
return getData().getString("Format.NotNumber", "&cError on &6%arg%&c, number expected!");
}
@Getter
private int formatPageSize = 10;
public String getFormatPrevPage() {
return getData().getString("Format.PrevPage", "&aPrevious Page");
}
@@ -1041,10 +1098,6 @@ public class Config extends YMLFile {
return getData().getBoolean("TopVoterIgnorePermission");
}
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
* Gets the vote GUI slot command.
*
@@ -1140,6 +1193,10 @@ public class Config extends YMLFile {
return getData().getBoolean("VoteParty.ResetMonthly");
}
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
* Gets the vote party votes required.
*
@@ -1210,6 +1267,14 @@ public class Config extends YMLFile {
return getData().getString("Shop." + ident + ".Permission", "");
}
@ConfigDataBoolean(path = "OverrideVersionDisable")
@Getter
private boolean overrideVersionDisable = false;
@ConfigDataBoolean(path = "LastMonthGUI")
@Getter
private boolean lastMonthGUI = false;
/**
* Gets the vote site items.
*
@@ -1245,6 +1310,10 @@ public class Config extends YMLFile {
return getData().getInt("GUI.VoteReward." + siteName + ".Items." + item + ".Slot");
}
public boolean getVoteShopNotBuyable(String shop) {
return getData().getBoolean("Shop." + shop + ".NotBuyable", false);
}
/**
* Gets the votes required.
*
@@ -124,10 +124,6 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getString("ServiceSite");
}
public boolean getWaitUntilVoteDelay(String siteName) {
return getData(siteName).getBoolean("WaitUntilVoteDelay", false);
}
/**
* Gets the vote delay.
*
@@ -256,6 +252,10 @@ public class ConfigVoteSites extends YMLFile {
return getData(siteName).getString("VoteURL");
}
public boolean getWaitUntilVoteDelay(String siteName) {
return getData(siteName).getBoolean("WaitUntilVoteDelay", false);
}
/**
* Checks if is service site good.
*
@@ -0,0 +1,84 @@
package com.Ben12345rocks.VotingPlugin.CoolDown;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteCoolDownEndEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class VoteReminding.
*/
public class CoolDownCheck implements Listener {
/** The instance. */
static CoolDownCheck instance = new CoolDownCheck();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of VoteReminding.
*
* @return single instance of VoteReminding
*/
public static CoolDownCheck getInstance() {
return instance;
}
/**
* Instantiates a new vote reminding.
*/
private CoolDownCheck() {
}
/**
* Instantiates a new vote reminding.
*
* @param plugin
* the plugin
*/
public CoolDownCheck(Main plugin) {
CoolDownCheck.plugin = plugin;
}
public void checkAll() {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
if (Main.plugin != null) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getUserData().hasData() && user.hasLoggedOnBefore()) {
user.checkCoolDownEvents();
}
}
}
}
});
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onCoolDownEnd(PlayerVoteCoolDownEndEvent event) {
RewardHandler.getInstance().giveReward(event.getPlayer(), Config.getInstance().getData(),
"VoteCoolDownEndedReward",
new RewardOptions().addPlaceholder("Votesite", event.getVoteSite().getDisplayName()));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChangeEnd(DateChangedEvent event) {
checkAll();
}
}
@@ -0,0 +1,60 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerReceivePointsEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User player;
@Getter
@Setter
private int points;
@Getter
@Setter
private boolean cancelled;
@Getter
@Setter
private String serviceSite = "";
public PlayerReceivePointsEvent(User user, int points) {
super(true);
this.player = user;
this.points = points;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -40,8 +40,8 @@ public class PlayerSpecialRewardEvent extends Event {
public PlayerSpecialRewardEvent(User user, SpecialRewardType type) {
super(true);
setType(type);
setUser(user);
this.type = type;
this.user = user;
}
/*
@@ -0,0 +1,57 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerVoteCoolDownEndEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User player;
@Getter
@Setter
private VoteSite voteSite;
@Getter
@Setter
private boolean cancelled;
public PlayerVoteCoolDownEndEvent(User user, VoteSite site) {
super(true);
player = user;
voteSite = site;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -48,10 +48,10 @@ public class PlayerVoteEvent extends Event {
public PlayerVoteEvent(VoteSite voteSite, String voteUsername, String serviceSite, boolean realVote) {
super(true);
setPlayer(voteUsername);
setVoteSite(voteSite);
setRealVote(realVote);
setServiceSite(serviceSite);
this.player = voteUsername;
this.voteSite = voteSite;
this.realVote = realVote;
this.serviceSite = serviceSite;
}
/*
@@ -9,6 +9,7 @@ import org.bukkit.event.player.PlayerCommandSendEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.CommandLoader;
import com.Ben12345rocks.VotingPlugin.Config.Config;
// TODO: Auto-generated Javadoc
/**
@@ -25,6 +26,9 @@ public class PlayerCommandSendListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onTab(PlayerCommandSendEvent event) {
if (Config.getInstance().isDisableAdvancedTab()) {
return;
}
ArrayList<String> removeCmds = new ArrayList<String>();
ArrayList<String> whiteListed = new ArrayList<String>();
for (String cmd : event.getCommands()) {
@@ -4,9 +4,8 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
@@ -19,6 +18,7 @@ import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class PlayerJoinEvent implements Listener {
/** The plugin. */
@SuppressWarnings("unused")
private static Main plugin;
/**
@@ -38,31 +38,25 @@ public class PlayerJoinEvent implements Listener {
* the event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(PlayerLoginEvent event) {
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
public void onPlayerLogin(AdvancedCoreLoginEvent event) {
if (event.getPlayer() == null
|| (Main.plugin.getStorageType().equals(UserStorage.MYSQL) && Main.plugin.getMysql() == null)) {
return;
}
Player player = event.getPlayer();
@Override
public void run() {
if (event.getPlayer() == null
|| (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() == null)) {
return;
}
Player player = event.getPlayer();
User user = UserManager.getInstance().getVotingPluginUser(player);
if (player.isOp() && plugin.isYmlError()) {
user.sendMessage("&cVotingPlugin: Detected yml error, please chceck console for details");
}
if (player != null) {
User user = UserManager.getInstance().getVotingPluginUser(player);
// run remind
user.loginMessage();
// run remind
user.loginMessage();
if (user.getData().hasData()) {
// give offline vote (if they voted offline)
user.offVote();
}
}
}
}, 20L);
if (user.getData().hasData()) {
// give offline vote (if they voted offline)
user.offVote();
}
}
}
@@ -6,7 +6,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -88,7 +87,7 @@ public class PlayerVoteListener implements Listener {
if (Config.getInstance().isClearCacheOnVote()) {
user.clearCache();
}
if (voteSite.isWaitUntilVoteDelay() && !user.canVoteSite(voteSite)) {
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
return;
@@ -108,6 +107,7 @@ public class PlayerVoteListener implements Listener {
// update last vote time
user.setTime(voteSite);
user.setLastVoteCoolDownCheck(false, voteSite);
// check first vote rewards
SpecialRewards.getInstance().checkFirstVote(user);
@@ -118,8 +118,7 @@ public class PlayerVoteListener implements Listener {
// check if player has voted on all sites in one day
if ((user.isOnline() || voteSite.isGiveOffline())
&& AdvancedCoreHook.getInstance().getOptions().isProcessRewards()) {
if ((user.isOnline() || voteSite.isGiveOffline()) && Main.plugin.getOptions().isProcessRewards()) {
user.playerVote(voteSite, true, false);
user.closeInv();
} else {
@@ -138,6 +137,8 @@ public class PlayerVoteListener implements Listener {
user.addPoints();
}
user.checkDayVoteStreak();
// other rewards
SpecialRewards.getInstance().checkAllSites(user);
SpecialRewards.getInstance().checkCumualativeVotes(user);
@@ -7,11 +7,13 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.vexsoftware.votifier.model.Vote;
import com.vexsoftware.votifier.model.VotifierEvent;
@@ -51,6 +53,7 @@ public class VotiferEvent implements Listener {
Vote vote = event.getVote();
final String voteSite = vote.getServiceName();
final String IP = vote.getAddress();
final String voteUsername = vote.getUsername().trim();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@@ -65,10 +68,12 @@ public class VotiferEvent implements Listener {
return;
}
plugin.getLogger().info("Recieved a vote from '" + voteSite + "' by player '" + voteUsername + "'!");
plugin.getLogger()
.info("Recieved a vote from service site '" + voteSite + "' by player '" + voteUsername + "'!");
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
plugin.debug("IP: " + IP);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@@ -77,15 +82,27 @@ public class VotiferEvent implements Listener {
String voteSiteName = plugin.getVoteSiteName(voteSite);
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
boolean createSite = false;
if (sites != null) {
if (!sites.contains(voteSiteName) && Config.getInstance().isAutoCreateVoteSites()) {
plugin.getLogger()
.warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
if (!sites.contains(voteSiteName)) {
createSite = true;
}
} else if (Config.getInstance().isAutoCreateVoteSites()) {
plugin.getLogger().warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
} else {
createSite = true;
}
if (Config.getInstance().isAutoCreateVoteSites() && createSite) {
plugin.getLogger().warning("VoteSite with service site '" + voteSiteName
+ "' does not exist, attempting to generaterate...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ArrayList<String> services = new ArrayList<String>();
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.info("Current known service sites: " + ArrayUtils.getInstance().makeStringList(services));
}
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName), voteUsername,
@@ -16,21 +16,29 @@ import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.AdvancedCorePlugin;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardPlaceholderHandle;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInject;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectInt;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectValidator;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueNumber;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Javascript.JavascriptPlaceholderRequest;
import com.Ben12345rocks.AdvancedCore.Util.Logger.Logger;
import com.Ben12345rocks.AdvancedCore.Util.Metrics.BStatsMetrics;
@@ -46,6 +54,7 @@ import com.Ben12345rocks.VotingPlugin.Commands.TabCompleter.AdminVoteTabComplete
import com.Ben12345rocks.VotingPlugin.Commands.TabCompleter.VoteTabCompleter;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.CoolDown.CoolDownCheck;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Listeners.BlockBreak;
import com.Ben12345rocks.VotingPlugin.Listeners.PlayerCommandSendListener;
@@ -63,9 +72,11 @@ import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.Updater.CheckUpdate;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.MVdWPlaceholders;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolders;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.Ben12345rocks.VotingPlugin.VoteReminding.VoteReminding;
import com.vexsoftware.votifier.Votifier;
import lombok.Getter;
import lombok.Setter;
@@ -73,7 +84,7 @@ import lombok.Setter;
/**
* The Class Main.
*/
public class Main extends JavaPlugin {
public class Main extends AdvancedCorePlugin {
/** The config. */
public static Config config;
@@ -87,6 +98,9 @@ public class Main extends JavaPlugin {
@Getter
private LinkedHashMap<TopVoter, LinkedHashMap<User, Integer>> topVoter;
@Getter
private LinkedHashMap<User, Integer> lastMonthTopVoter;
@Getter
@Setter
private Updater updater;
@@ -131,26 +145,37 @@ public class Main extends JavaPlugin {
}
}
private boolean checkVotifierLoaded() {
try {
Class.forName("com.vexsoftware.votifier.Votifier");
if (Votifier.getInstance().getVoteReceiver() == null) {
return false;
}
} catch (ClassNotFoundException e) {
debug("Using NuVotiifer?");
}
return true;
}
public void convertDataStorage(UserStorage from, UserStorage to) {
if (from == null || to == null) {
throw new RuntimeException("Invalid Storage Method");
}
UserStorage cur = AdvancedCoreHook.getInstance().getStorageType();
AdvancedCoreHook.getInstance().getOptions().setStorageType(from);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
UserStorage cur = getStorageType();
getOptions().setStorageType(from);
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
ArrayList<String> uuids = new ArrayList<String>(UserManager.getInstance().getAllUUIDs());
while (uuids.size() > 0) {
HashMap<User, HashMap<String, String>> data = new HashMap<User, HashMap<String, String>>();
AdvancedCoreHook.getInstance().getOptions().setStorageType(from);
// AdvancedCoreHook.getInstance().setStorageType(to);
getOptions().setStorageType(from);
loadUserAPI(getOptions().getStorageType());
// setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
ArrayList<String> converted = new ArrayList<String>();
@@ -172,7 +197,7 @@ public class Main extends JavaPlugin {
data.put(user, values);
debug("[Convert] Added " + uuid);
} catch (Exception e) {
AdvancedCoreHook.getInstance().debug(e);
debug(e);
plugin.getLogger().warning("Exception occoured for '" + uuid + "': " + e.getMessage()
+ ", turn debug on to see full stack traces");
}
@@ -188,17 +213,17 @@ public class Main extends JavaPlugin {
plugin.getLogger()
.info("Finished getting data from " + from.toString() + " Converting " + data.size() + " users");
AdvancedCoreHook.getInstance().getOptions().setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
getOptions().setStorageType(to);
loadUserAPI(getOptions().getStorageType());
if (getStorageType().equals(UserStorage.MYSQL) && getMysql() != null) {
getMysql().clearCache();
}
writeConvertData(data);
}
AdvancedCoreHook.getInstance().getOptions().setStorageType(cur);
AdvancedCoreHook.getInstance().reload();
getOptions().setStorageType(cur);
reload();
plugin.getLogger().info("Finished convertting");
}
@@ -207,16 +232,6 @@ public class Main extends JavaPlugin {
return new ArrayList<User>(set);
}
/**
* Debug.
*
* @param message
* the message
*/
public void debug(String message) {
AdvancedCoreHook.getInstance().debug(plugin, message);
}
public LinkedHashMap<User, Integer> getTopVoter(TopVoter top) {
return topVoter.get(top);
}
@@ -232,10 +247,6 @@ public class Main extends JavaPlugin {
return UserManager.getInstance().getVotingPluginUser(uuid);
}
public UserManager getUserManager() {
return UserManager.getInstance();
}
public VoteParty getVoteParty() {
return VoteParty.getInstance();
}
@@ -265,31 +276,37 @@ public class Main extends JavaPlugin {
/**
* Gets the vote site name.
*
* @param url
* @param urls
* the url
* @return the vote site name
*/
public String getVoteSiteName(String url) {
public String getVoteSiteName(String... urls) {
ArrayList<String> sites = ConfigVoteSites.getInstance().getVoteSitesNames();
if (url == null) {
return null;
}
if (sites != null) {
for (String siteName : sites) {
String URL = ConfigVoteSites.getInstance().getServiceSite(siteName);
if (URL != null) {
if (URL.equalsIgnoreCase(url)) {
for (String url : urls) {
if (url == null) {
return null;
}
if (sites != null) {
for (String siteName : sites) {
String URL = ConfigVoteSites.getInstance().getServiceSite(siteName);
if (URL != null) {
if (URL.equalsIgnoreCase(url)) {
return siteName;
}
}
}
for (String siteName : sites) {
if (siteName.equalsIgnoreCase(url)) {
return siteName;
}
}
}
for (String siteName : sites) {
if (siteName.equalsIgnoreCase(url)) {
return siteName;
}
}
return url;
}
return url;
for (String url : urls) {
return url;
}
return "";
}
@@ -315,6 +332,10 @@ public class Main extends JavaPlugin {
}
public UserManager getVotingPluginUserManager() {
return UserManager.getInstance();
}
public boolean hasVoteSite(String site) {
String siteName = getVoteSiteName(site);
for (VoteSite voteSite : getVoteSites()) {
@@ -330,13 +351,30 @@ public class Main extends JavaPlugin {
@Override
public void run() {
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
getTimer().schedule(new TimerTask() {
@Override
public void run() {
update();
if (plugin != null) {
update();
} else {
cancel();
}
}
}, 1000, 1000 * 60 * Config.getInstance().getDelayBetweenUpdates());
getTimer().schedule(new TimerTask() {
@Override
public void run() {
if (plugin != null) {
CoolDownCheck.getInstance().checkAll();
} else {
cancel();
}
}
}, 1000 * 60 * 10, 1000 * 60 * 5);
}
}, 40L);
@@ -555,7 +593,7 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
return "" + AdvancedCoreHook.getInstance().getOptions().isSendScoreboards();
return "" + getOptions().isSendScoreboards();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("numberofuser") {
@@ -567,6 +605,10 @@ public class Main extends JavaPlugin {
num = num * 100;
int num2 = (total + 100) / 100;
num2 = num2 * 100;
if (total < 1000) {
num = 0;
num2 = 1000;
}
return "" + num + "-" + num2;
}
});
@@ -574,14 +616,14 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
return AdvancedCoreHook.getInstance().getOptions().getStorageType().toString();
return getOptions().getStorageType().toString();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("DisableCheckOnWorldChange") {
@Override
public String getValue() {
return "" + AdvancedCoreHook.getInstance().getOptions().isDisableCheckOnWorldChange();
return "" + getOptions().isDisableCheckOnWorldChange();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("votereminding_enabled") {
@@ -670,42 +712,13 @@ public class Main extends JavaPlugin {
});
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onDisable()
*/
@Override
public void onDisable() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onEnable()
*/
@Override
public void onEnable() {
plugin = this;
setupFiles();
loadVoteSites();
AdvancedCoreHook.getInstance().setJenkinsSite("ben12345rocks.com");
updateAdvancedCoreHook();
AdvancedCoreHook.getInstance().loadHook(this);
public void onPostLoad() {
registerCommands();
registerEvents();
checkVotifier();
CheckUpdate.getInstance().startUp();
VoteReminding.getInstance().loadRemindChecking();
plugin.signs = new ArrayList<SignHandler>();
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@@ -716,6 +729,15 @@ public class Main extends JavaPlugin {
}
});
lastMonthTopVoter = new LinkedHashMap<User, Integer>();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
TopVoterHandler.getInstance().loadLastMonth();
debug("Loaded last month top voters");
}
});
topVoter = new LinkedHashMap<TopVoter, LinkedHashMap<User, Integer>>();
for (TopVoter top : TopVoter.values()) {
topVoter.put(top, new LinkedHashMap<User, Integer>());
@@ -735,53 +757,89 @@ public class Main extends JavaPlugin {
metrics();
AdvancedCoreHook.getInstance().getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
// javascript api
getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
@Override
public Object getObject(OfflinePlayer player) {
return getUserManager().getVotingPluginUser(player);
return getVotingPluginUserManager().getVotingPluginUser(player);
}
});
getJavascriptEngine().put("VotingPluginHooks", VotingPluginHooks.getInstance());
loadTimer();
// placeholderapi loading
PlaceHolders.getInstance().load();
// set columns
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Reminded", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("PlayerName", "VARCHAR(20)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Points", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MileStoneTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
// MVDW placeholders, may be removed in the future
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
MVdWPlaceholders.getInstance().loadMVdWPlaceholders();
}
RewardHandler.getInstance().getInjectedRewards().add(new RewardInjectInt("Points", 0) {
// set columns
if (getStorageType().equals(UserStorage.MYSQL)) {
getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
getMysql().alterColumnType("Reminded", "VARCHAR(5)");
getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
getMysql().alterColumnType("PlayerName", "VARCHAR(30)");
getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("Points", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("MileStoneTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
}
// Add rewards
RewardHandler.getInstance().addInjectedReward(new RewardInjectInt("Points", 0) {
@Override
public void onRewardRequest(com.Ben12345rocks.AdvancedCore.UserManager.User user, int num,
public String onRewardRequest(Reward reward, com.Ben12345rocks.AdvancedCore.UserManager.User user, int num,
HashMap<String, String> placeholders) {
UserManager.getInstance().getVotingPluginUser(user).addPoints(num);
return null;
}
});
}.synchronize().addEditButton(
new EditGUIButton(new ItemBuilder(Material.PAPER), new EditGUIValueNumber("Points", null) {
@Override
public void setValue(Player player, Number value) {
Reward reward = (Reward) getInv().getData("Reward");
reward.getConfig().set("Points", value.intValue());
}
})).validator(new RewardInjectValidator() {
@Override
public void onValidate(Reward reward, RewardInject inject, ConfigurationSection data) {
if (data.getInt(inject.getPath(), -1) == 0) {
warning(reward, inject, "Points can not be 0");
}
}
}));
for (final TopVoter top : TopVoter.values())
RewardHandler.getInstance().addPlaceholder(new RewardPlaceholderHandle("Total_" + top.toString()) {
@Override
public String getValue(Reward reward, com.Ben12345rocks.AdvancedCore.UserManager.User user) {
User vUser = UserManager.getInstance().getVotingPluginUser(user);
return "" + vUser.getTotal(top);
}
});
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
@@ -816,15 +874,67 @@ public class Main extends JavaPlugin {
@Override
public void run() {
plugin.getLogger().warning(
"Detected an issue with voting sites, check the plugin startup log for more details");
"Detected an issue with voting sites, check the server startup log for more details");
}
}, 30l);
}
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (!checkVotifierLoaded()) {
plugin.getLogger().warning("Detected votifier not loaded properly, check startup for details");
}
}
});
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onEnable()
*/
@Override
public void onPreLoad() {
plugin = this;
// disable plugin for older versions below 1.12
if (NMSManager.getInstance().isVersion("1.7", "1.8", "1.9", "1.10", "1.11", "1.12")) {
plugin.getLogger().severe("Detected running " + NMSManager.getInstance().getVersion()
+ ", this version is not supported on this build. Support is limited");
plugin.getLogger().severe("Detected running " + Bukkit.getVersion()
+ ", this version is not supported on this build, read the plugin page. Disabling...");
if (!Config.getInstance().isOverrideVersionDisable()) {
Bukkit.getPluginManager().disablePlugin(this);
return;
} else {
plugin.getLogger().warning("Overriding version disable, beware of using this! This may cause issues!");
}
}
setupFiles();
loadVoteSites();
setJenkinsSite("ben12345rocks.com");
updateAdvancedCoreHook();
}
/*
* (non-Javadoc)
* @see org.bukkit.plugin.java.JavaPlugin#onDisable()
*/
@Override
public void onUnLoad() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
/**
@@ -850,6 +960,7 @@ public class Main extends JavaPlugin {
if (perm != null) {
if (Config.getInstance().getGiveDefaultPermission()) {
perm.setDefault(PermissionDefault.TRUE);
getLogger().info("Giving VotingPlugin.Player permission by default, can be disabled in the config");
} else {
perm.setDefault(PermissionDefault.OP);
}
@@ -873,57 +984,80 @@ public class Main extends JavaPlugin {
pm.registerEvents(new PlayerInteract(this), this);
pm.registerEvents(new VotingPluginUpdateEvent(this), this);
pm.registerEvents(new PlayerCommandSendListener(this), this);
pm.registerEvents(new CoolDownCheck(this), this);
plugin.debug("Loaded Events");
}
/**
* Reload.
*/
public void reload() {
setUpdate(true);
config.reloadData();
config.loadValues();
configVoteSites.reloadData();
updateAdvancedCoreHook();
plugin.loadVoteSites();
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
AdvancedCoreHook.getInstance().reload();
PlaceHolders.getInstance().load();
}
private void checkYMLError() {
if (config.isFailedToRead() || configVoteSites.isFailedToRead()) {
ymlError = true;
} else if (!config.isFailedToRead() && !configVoteSites.isFailedToRead()) {
ymlError = false;
}
private void setupFiles() {
try {
config = Config.getInstance();
config.setup();
config.loadValues();
} catch (Exception e) {
e.printStackTrace();
if (config.isFailedToRead()) {
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getLogger().severe("Failed to load Config.yml");
e.printStackTrace();
}
}, 10);
}
try {
configVoteSites = ConfigVoteSites.getInstance();
configVoteSites.setup();
} catch (Exception e) {
e.printStackTrace();
if (configVoteSites.isFailedToRead()) {
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getLogger().severe("Failed to load VoteSites.yml");
e.printStackTrace();
}
}, 10);
}
}
/**
* Reload.
*/
@Override
public void reload() {
setUpdate(true);
config.reloadData();
config.loadValues();
configVoteSites.reloadData();
checkYMLError();
updateAdvancedCoreHook();
plugin.loadVoteSites();
reloadAdvancedCore();
PlaceHolders.getInstance().load();
CoolDownCheck.getInstance().checkAll();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
update();
}
});
}
@Getter
private boolean ymlError = false;
private void setupFiles() {
config = Config.getInstance();
config.setup();
config.loadValues();
configVoteSites = ConfigVoteSites.getInstance();
configVoteSites.setup();
checkYMLError();
plugin.debug("Loaded Files");
@@ -940,14 +1074,14 @@ public class Main extends JavaPlugin {
update = false;
synchronized (plugin) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
if (getStorageType().equals(UserStorage.MYSQL)) {
if (getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else if (Config.getInstance().isClearCacheOnUpdate()) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
getMysql().clearCache();
} else {
AdvancedCoreHook.getInstance().getMysql().clearCacheBasic();
getMysql().clearCacheBasic();
}
}
@@ -960,7 +1094,7 @@ public class Main extends JavaPlugin {
if (uuid != null && !uuid.isEmpty()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
users.add(user);
// AdvancedCoreHook.getInstance().extraDebug("Loading " + uuid);
// extraDebug("Loading " + uuid);
// java.lang.Thread.sleep(5000);
}
}
@@ -979,8 +1113,8 @@ public class Main extends JavaPlugin {
time1 = ((System.currentTimeMillis() - time) / 1000);
plugin.debug("Background task finished in " + time1 + " seconds");
} catch (Exception ex) {
ex.printStackTrace();
plugin.getLogger().info("Looks like something went wrong.");
ex.printStackTrace();
}
}
@@ -991,13 +1125,13 @@ public class Main extends JavaPlugin {
}
public void updateAdvancedCoreHook() {
AdvancedCoreHook.getInstance().getJavascriptEngine().put("VotingPlugin", this);
AdvancedCoreHook.getInstance().allowDownloadingFromSpigot(15358);
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
getJavascriptEngine().put("VotingPlugin", this);
allowDownloadingFromSpigot(15358);
setConfigData(Config.getInstance().getData());
}
private void writeConvertData(HashMap<User, HashMap<String, String>> data) {
boolean checkInt = AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL);
boolean checkInt = getStorageType().equals(UserStorage.MYSQL);
for (Entry<User, HashMap<String, String>> entry : data.entrySet()) {
try {
for (Entry<String, String> values : entry.getValue().entrySet()) {
@@ -11,18 +11,21 @@ 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.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.TimeChecker.TimeChecker;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
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.Events.PlayerReceivePointsEvent;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteCoolDownEndEvent;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
@@ -128,7 +131,13 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
* the value
*/
public void addPoints(int value) {
setPoints(getPoints() + value);
PlayerReceivePointsEvent event = new PlayerReceivePointsEvent(this, value);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
setPoints(getPoints() + event.getPoints());
}
/**
@@ -192,8 +201,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
if (time == 0) {
return true;
}
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
LocalDateTime now = TimeChecker.getInstance().getTime();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())
.plusHours(Main.plugin.getOptions().getTimeHourOffSet());
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
@@ -252,6 +262,28 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return true;
}
public void checkCoolDownEvents() {
for (VoteSite site : plugin.getVoteSites()) {
if (canVoteSite(site) != getLastCoolDownCheck(site)) {
plugin.debug(getPlayerName() + " vote cooldown ended: " + site.getKey());
PlayerVoteCoolDownEndEvent event = new PlayerVoteCoolDownEndEvent(this, site);
plugin.getServer().getPluginManager().callEvent(event);
setLastVoteCoolDownCheck(true, site);
}
}
}
public void checkDayVoteStreak() {
if (!voteStreakUpdatedToday(LocalDateTime.now())) {
if (!Config.getInstance().isVoteStreakRequirementUsePercentage()
|| hasPercentageTotal(TopVoter.Daily, Config.getInstance().getVoteStreakRequirementDay(), null)) {
addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(this, "Day");
setDayVoteStreakLastUpdate(System.currentTimeMillis());
}
}
}
public void clearOfflineRewards() {
setOfflineVotes(new ArrayList<String>());
setOfflineRewards(new ArrayList<String>());
@@ -290,6 +322,14 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return getData().getInt("DayVoteStreak");
}
public long getDayVoteStreakLastUpdate() {
String str = getData().getString("DayVoteStreakLastUpdate");
if (str.isEmpty()) {
return 0;
}
return Long.parseLong(str);
}
public boolean getDisableBroadcast() {
return getUserData().getBoolean("DisableBroadcast");
}
@@ -319,6 +359,35 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return getData().getInt("HighestWeeklyTotal");
}
public boolean getLastCoolDownCheck(VoteSite site) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
if (array.containsKey(site)) {
return array.get(site).booleanValue();
}
return true;
}
public HashMap<VoteSite, Boolean> getLastCoolDownCheckArray() {
HashMap<VoteSite, Boolean> lastVotesCheck = new HashMap<VoteSite, Boolean>();
ArrayList<String> LastVotesCheckList = getUserData().getStringList("LastVoteCoolDownCheck");
for (String str : LastVotesCheckList) {
String[] data = str.split("//");
if (data.length > 1 && plugin.hasVoteSite(data[0])) {
VoteSite site = plugin.getVoteSite(data[0]);
if (site != null) {
Boolean value = Boolean.FALSE;
try {
value = Boolean.valueOf(data[1]);
} catch (NumberFormatException e) {
plugin.debug("Not value: " + data[1]);
}
lastVotesCheck.put(site, value);
}
}
}
return lastVotesCheck;
}
public int getLastMonthTotal() {
return getData().getInt("LastMonthTotal");
}
@@ -356,9 +425,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
for (VoteSite voteSite : plugin.getVoteSites()) {
times.put(voteSite, getTime(voteSite));
}
LinkedHashMap<VoteSite, Long> sorted = (LinkedHashMap<VoteSite, Long>) times.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
LinkedHashMap<VoteSite, Long> sorted = new LinkedHashMap<>(
times.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
return sorted;
}
@@ -417,6 +486,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return getData().getInt("MonthTotal");
case Weekly:
return getUserData().getInt("WeeklyTotal");
default:
break;
}
return 0;
}
@@ -440,15 +511,18 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
public void giveDailyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").setOnline(isOnline())
.send(this);
}
public void giveMonthlyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").setOnline(isOnline())
.send(this);
}
public void giveOfflineOtherRewards() {
// old reward api, will be removed in the future
ArrayList<String> offlineRewards = getOfflineOtherRewards();
for (String str : offlineRewards) {
if (str.equalsIgnoreCase("FirstVote")) {
@@ -500,7 +574,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
public void giveWeeklyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").setOnline(isOnline())
.send(this);
}
/**
@@ -527,6 +602,20 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return false;
}
public boolean hasPercentageTotal(TopVoter top, double percentage, LocalDateTime time) {
int total = getTotal(top);
switch (top) {
case Daily:
return total / plugin.getVoteSites().size() * 100 > percentage;
case Monthly:
return total / (plugin.getVoteSites().size() * time.getMonth().length(false)) * 100 > percentage;
case Weekly:
return total / (plugin.getVoteSites().size() * 7) * 100 > percentage;
default:
return false;
}
}
public boolean isReminded() {
return getUserData().getBoolean("Reminded");
}
@@ -548,11 +637,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
* Off vote.
*/
public void offVote() {
if (!AdvancedCoreHook.getInstance().getOptions().isProcessRewards()) {
AdvancedCoreHook.getInstance().debug("Processing rewards is disabled");
if (!Main.plugin.getOptions().isProcessRewards()) {
Main.plugin.debug("Processing rewards is disabled");
return;
}
AdvancedCoreHook.getInstance().extraDebug("Checking offline vote site votes");
Main.plugin.extraDebug("Checking offline vote site votes");
Player player = getPlayer();
if (player != null) {
boolean topVoterIngorePerm = player.hasPermission("VotingPlugin.TopVoter.Ignore");
@@ -563,6 +652,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
// plugin.debug(ArrayUtils.getInstance().makeStringList(offlineVotes));
if (offlineVotes.size() > 0) {
sendVoteEffects(true);
setOfflineVotes(new ArrayList<String>());
}
for (int i = 0; i < offlineVotes.size(); i++) {
@@ -574,8 +664,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
}
setOfflineVotes(new ArrayList<String>());
giveOfflineOtherRewards();
}
}
@@ -614,9 +702,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
public void resetTotals(TopVoter topVoter) {
if (topVoter.equals(TopVoter.Monthly)) {
setLastMonthTotal(getTotal(TopVoter.Monthly));
}
setTotal(topVoter, 0);
}
@@ -633,7 +718,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setAllTimeTotal(int allTimeTotal) {
getUserData().setInt("AllTimeTotal", allTimeTotal);
setTotal(TopVoter.AllTime, allTimeTotal);
}
public void setBestDayVoteStreak(int streak) {
@@ -650,7 +735,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setDailyTotal(int total) {
getUserData().setInt("DailyTotal", total);
setTotal(TopVoter.Daily, total);
}
public void setDayVoteStreak(int streak) {
@@ -660,6 +745,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
}
}
public void setDayVoteStreakLastUpdate(long time) {
getData().setString("DayVoteStreakLastUpdate", "" + time);
}
public void setDisableBroadcast(boolean value) {
getUserData().setBoolean("DisableBroadcast", value);
}
@@ -691,10 +780,25 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
getData().setInt("HighestWeeklyTotal", total);
}
public void setLastCoolDownCheckArray(HashMap<VoteSite, Boolean> lastVotesCheck) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Boolean> entry : lastVotesCheck.entrySet()) {
String str = entry.getKey().getKey() + "//" + entry.getValue().booleanValue();
data.add(str);
}
getUserData().setStringList("LastVoteCoolDownCheck", data);
}
public void setLastMonthTotal(int total) {
getData().setInt("LastMonthTotal", total);
}
public void setLastVoteCoolDownCheck(boolean lastDelay, VoteSite voteSite) {
HashMap<VoteSite, Boolean> array = getLastCoolDownCheckArray();
array.put(voteSite, Boolean.valueOf(lastDelay));
setLastCoolDownCheckArray(array);
}
public void setLastVotes(HashMap<VoteSite, Long> lastVotes) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Long> entry : lastVotes.entrySet()) {
@@ -710,7 +814,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setMonthTotal(int total) {
getData().setInt("MonthTotal", total);
setTotal(TopVoter.Monthly, total);
}
public void setMonthVoteStreak(int streak) {
@@ -765,6 +869,12 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
getUserData().setInt("DailyTotal", value);
break;
case Monthly:
if (Config.getInstance().isLimitMonthlyVotes()) {
int days = TimeChecker.getInstance().getTime().getMonth().maxLength();
if (value > days) {
value = days * plugin.getVoteSites().size();
}
}
getData().setInt("MonthTotal", value);
break;
case Weekly:
@@ -786,7 +896,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
@Deprecated
public void setWeeklyTotal(int total) {
getUserData().setInt("WeeklyTotal", total);
setTotal(TopVoter.Weekly, total);
}
public void setWeekVoteStreak(int streak) {
@@ -806,4 +916,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
return true;
}
public boolean voteStreakUpdatedToday(LocalDateTime time) {
return MiscUtils.getInstance().getTime(getDayVoteStreakLastUpdate()).getDayOfYear() == time.getDayOfYear();
}
}
@@ -126,6 +126,8 @@ public class VoteSite {
}
MiscUtils.getInstance().broadcast(bc, players);
} else {
plugin.debug(user.getPlayerName() + " is vanished, not broadcasting");
}
}
@@ -9,8 +9,8 @@ import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.block.Skull;
import org.bukkit.block.data.Directional;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -250,7 +250,7 @@ public class SignHandler {
}
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
}
}, delay);
@@ -258,9 +258,9 @@ public class SignHandler {
public void updateSkulls(Location loc1, Location loc2) {
BlockState state = getLocation().getBlock().getState();
if (state instanceof Sign) {
org.bukkit.material.Sign s = (org.bukkit.material.Sign) state.getData();
Block b = location.getBlock().getRelative(s.getAttachedFace());
if (state instanceof Sign && state.getBlockData() instanceof Directional) {
Directional s = (Directional) state.getBlockData();
Block b = location.getBlock().getRelative(s.getFacing());
Block above = b.getRelative(BlockFace.UP);
if (checkSkull(above)) {
return;
@@ -2,9 +2,12 @@ package com.Ben12345rocks.VotingPlugin.Test;
import java.util.ArrayList;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VoteTester {
@@ -17,6 +20,33 @@ public class VoteTester {
private Main plugin = Main.plugin;
public void testRewards(int amount, String name, String rewardName) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerReward = new ArrayList<Long>();
User user = UserManager.getInstance().getVotingPluginUser(name);
Reward reward = RewardHandler.getInstance().getReward(rewardName);
int rewardsGiven = 0;
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
if (reward.canGiveReward(user, new RewardOptions())) {
rewardsGiven++;
RewardHandler.getInstance().giveReward(user, reward, new RewardOptions().setIgnoreRequirements(true));
}
long start2 = System.currentTimeMillis();
timesPerReward.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerReward) {
timeTotal += t.longValue();
}
long timePerRewardAvg = timeTotal / timesPerReward.size();
Main.plugin.getLogger().info("Time to process rewards (" + amount + "): " + time + " ms, average per reward "
+ timePerRewardAvg + " ms. " + Main.plugin.getStorageType() + ", "
+ UserManager.getInstance().getAllUUIDs().size() + " users. " + rewardsGiven + " rewards given");
}
public void testVotes(int amount, String name, String site) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerVote = new ArrayList<Long>();
@@ -37,9 +67,8 @@ public class VoteTester {
long timePerVoteAvg = timeTotal / timesPerVote.size();
Main.plugin.getLogger()
.info("Time to process votes (" + amount + "): " + time + " ms, average per vote " + timePerVoteAvg
+ " ms. " + AdvancedCoreHook.getInstance().getStorageType() + ", "
+ UserManager.getInstance().getAllUUIDs().size() + " users. "
+ Main.plugin.getVoteSites().size() + " votesites");
+ " ms. " + Main.plugin.getStorageType() + ", " + UserManager.getInstance().getAllUUIDs().size()
+ " users. " + Main.plugin.getVoteSites().size() + " votesites");
}
}
@@ -16,7 +16,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.MonthChangeEvent;
@@ -101,17 +100,17 @@ public class TopVoterHandler implements Listener {
public void onDateChanged(DateChangedEvent event) {
plugin.setUpdate(true);
plugin.update();
loadLastMonth();
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChange(DayChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getTotal(TopVoter.Daily) == 0 && user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
} else {
user.addDayVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Day");
if (!user.voteStreakUpdatedToday(LocalDateTime.now().minusDays(1))) {
if (user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
}
}
if (user.getHighestDailyTotal() < user.getTotal(TopVoter.Daily)) {
@@ -120,7 +119,7 @@ public class TopVoterHandler implements Listener {
}
if (Config.getInstance().getStoreTopVotersDaily()) {
plugin.debug("Storing TopVoters Daily");
plugin.getLogger().info("Saving TopVoters Daily");
storeTopVoters(TopVoter.Daily);
}
@@ -155,17 +154,23 @@ public class TopVoterHandler implements Listener {
if (user.getTotal(TopVoter.Monthly) == 0 && user.getMonthVoteStreak() != 0) {
user.setMonthVoteStreak(0);
} else {
user.addMonthVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Month");
if (!Config.getInstance().isVoteStreakRequirementUsePercentage() || user.hasPercentageTotal(
TopVoter.Monthly, Config.getInstance().getVoteStreakRequirementMonth(),
LocalDateTime.now().minusDays(1))) {
user.addMonthVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Month");
}
}
user.setLastMonthTotal(user.getTotal(TopVoter.Monthly));
if (user.getHighestMonthlyTotal() < user.getTotal(TopVoter.Monthly)) {
user.setHighestMonthlyTotal(user.getTotal(TopVoter.Monthly));
}
}
if (Config.getInstance().getStoreTopVotersMonthly()) {
plugin.debug("Storing TopVoters Monthly");
plugin.getLogger().info("Saving TopVoters Monthly");
storeTopVoters(TopVoter.Monthly);
}
@@ -190,6 +195,7 @@ public class TopVoterHandler implements Listener {
lastTotal = user.getTotal(TopVoter.Monthly);
}
}
resetTotals(TopVoter.Monthly);
if (Config.getInstance().getResetMilestonesMonthly()) {
@@ -215,8 +221,11 @@ public class TopVoterHandler implements Listener {
if (user.getTotal(TopVoter.Weekly) == 0 && user.getWeekVoteStreak() != 0) {
user.setWeekVoteStreak(0);
} else {
user.addWeekVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Week");
if (!Config.getInstance().isVoteStreakRequirementUsePercentage() || user.hasPercentageTotal(
TopVoter.Weekly, Config.getInstance().getVoteStreakRequirementWeek(), null)) {
user.addWeekVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Week");
}
}
if (user.getHighestWeeklyTotal() < user.getTotal(TopVoter.Weekly)) {
@@ -225,7 +234,7 @@ public class TopVoterHandler implements Listener {
}
if (Config.getInstance().getStoreTopVotersWeekly()) {
plugin.debug("Storing TopVoters Weekly");
plugin.getLogger().info("Saving TopVoters Weekly");
storeTopVoters(TopVoter.Weekly);
}
@@ -456,7 +465,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
@@ -483,7 +492,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", users.get(i).getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Monthly).get(users.get(i)));
msg.add(line);
@@ -509,7 +518,7 @@ public class TopVoterHandler implements Listener {
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
@@ -561,6 +570,26 @@ public class TopVoterHandler implements Listener {
return ArrayUtils.getInstance().convert(msg);
}
public void loadLastMonth() {
if (Config.getInstance().isLastMonthGUI()) {
plugin.getLastMonthTopVoter().clear();
LinkedHashMap<User, Integer> totals = new LinkedHashMap<User, Integer>();
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
int total = user.getLastMonthTotal();
if (total > 0) {
totals.put(user, total);
}
}
plugin.getLastMonthTopVoter().putAll(sortByValues(totals, false));
plugin.debug("Loaded last month top voters");
}
}
public synchronized void updateTopVoters(ArrayList<User> users1) {
ArrayList<User> users = new ArrayList<User>();
ArrayList<String> blackList = getTopVoterBlackList();
@@ -32,6 +32,10 @@ public class UserManager {
return com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getAllUUIDs();
}
public User getVotingPluginUser(com.Ben12345rocks.AdvancedCore.UserManager.User user) {
return getVotingPluginUser(java.util.UUID.fromString(user.getUUID()));
}
public User getVotingPluginUser(java.util.UUID uuid) {
return getVotingPluginUser(new UUID(uuid.toString()));
}
@@ -44,10 +48,6 @@ public class UserManager {
return getVotingPluginUser(player.getName());
}
public User getVotingPluginUser(com.Ben12345rocks.AdvancedCore.UserManager.User user) {
return getVotingPluginUser(java.util.UUID.fromString(user.getUUID()));
}
@SuppressWarnings("deprecation")
public User getVotingPluginUser(String playerName) {
return new User(com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getProperName(playerName));
@@ -0,0 +1,88 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import be.maximvdw.placeholderapi.PlaceholderAPI;
import be.maximvdw.placeholderapi.PlaceholderReplaceEvent;
import be.maximvdw.placeholderapi.PlaceholderReplacer;
// TODO: Auto-generated Javadoc
/**
* The Class PlaceHolders.
*/
public class MVdWPlaceholders {
/** The instance. */
static MVdWPlaceholders instance = new MVdWPlaceholders();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of PlaceHolders.
*
* @return single instance of PlaceHolders
*/
public static MVdWPlaceholders getInstance() {
return instance;
}
/**
* Instantiates a new place holders.
*/
private MVdWPlaceholders() {
}
/**
* Instantiates a new place holders.
*
* @param plugin
* the plugin
*/
public MVdWPlaceholders(Main plugin) {
MVdWPlaceholders.plugin = plugin;
}
public void loadMVdWPlaceholders() {
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
// The plugin is enabled
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(),
UserManager.getInstance().getVotingPluginUser(event.getOfflinePlayer()),
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(), null,
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
}
}
}
@@ -1,56 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.OfflinePlayer;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
public abstract class PlaceHolder {
@Getter
private String identifier;
@Getter
private boolean useStartsWith = false;
@Getter
private String description;
public PlaceHolder(String identifier) {
this.identifier = identifier;
}
public PlaceHolder(String identifier, boolean useStartsWith) {
this.identifier = identifier;
this.useStartsWith = useStartsWith;
}
public boolean matches(String identifier) {
if (isUseStartsWith()) {
if (StringUtils.getInstance().startsWithIgnoreCase(identifier, getIdentifier())) {
return true;
}
} else {
if (getIdentifier().equalsIgnoreCase(identifier)) {
return true;
}
}
return false;
}
public abstract String placeholderRequest(OfflinePlayer p, User user, String identifier);
public PlaceHolder useStartsWith() {
useStartsWith = true;
return this;
}
public PlaceHolder withDescription(String desc) {
description = desc;
return this;
}
public boolean hasDescription() {
return description != null;
}
}
@@ -7,6 +7,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
@@ -40,10 +41,10 @@ public class PlaceHolders {
}
@Getter
private ArrayList<PlaceHolder> placeholders = new ArrayList<PlaceHolder>();
private ArrayList<PlaceHolder<User>> placeholders = new ArrayList<PlaceHolder<User>>();
@Getter
private ArrayList<PlaceHolder> nonPlayerPlaceholders = new ArrayList<PlaceHolder>();
private ArrayList<PlaceHolder<User>> nonPlayerPlaceholders = new ArrayList<PlaceHolder<User>>();
/**
* Instantiates a new place holders.
@@ -64,7 +65,7 @@ public class PlaceHolders {
public String getPlaceHolder(OfflinePlayer p, String identifier) {
identifier = StringUtils.getInstance().replaceJavascript(p, identifier);
for (PlaceHolder placeholder : nonPlayerPlaceholders) {
for (PlaceHolder<User> placeholder : nonPlayerPlaceholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, null, identifier);
}
@@ -72,13 +73,13 @@ public class PlaceHolders {
User user = UserManager.getInstance().getVotingPluginUser(p);
for (PlaceHolder placeholder : placeholders) {
for (PlaceHolder<User> placeholder : placeholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, user, identifier);
}
}
return identifier;
return "Not a valid placeholder";
}
public String getPlaceHolder(Player p, String identifier) {
@@ -91,7 +92,7 @@ public class PlaceHolders {
nonPlayerPlaceholders.clear();
// older placeholders, might be removed in the future
placeholders.add(new PlaceHolder("total") {
placeholders.add(new PlaceHolder<User>("total") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -99,7 +100,7 @@ public class PlaceHolders {
}
}.withDescription("Month total"));
placeholders.add(new PlaceHolder("alltimetotal") {
placeholders.add(new PlaceHolder<User>("alltimetotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -107,7 +108,7 @@ public class PlaceHolders {
}
}.withDescription("Alltime total"));
placeholders.add(new PlaceHolder("lastmonthtotal") {
placeholders.add(new PlaceHolder<User>("lastmonthtotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -117,7 +118,7 @@ public class PlaceHolders {
// end of older placeholders
placeholders.add(new PlaceHolder("DisableBroadcast") {
placeholders.add(new PlaceHolder<User>("DisableBroadcast") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -125,7 +126,7 @@ public class PlaceHolders {
}
}.withDescription("Returns true/false if user has broadcast disabled"));
placeholders.add(new PlaceHolder("MilestoneCount") {
placeholders.add(new PlaceHolder<User>("MilestoneCount") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -135,7 +136,7 @@ public class PlaceHolders {
for (final String identifier : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getIdentifierLimit(identifier) > 0) {
placeholders.add(new PlaceHolder("VoteShopLimit_" + identifier) {
placeholders.add(new PlaceHolder<User>("VoteShopLimit_" + identifier) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String ident) {
@@ -146,7 +147,7 @@ public class PlaceHolders {
}
for (final TopVoter top : TopVoter.values()) {
placeholders.add(new PlaceHolder("Total_" + top.toString()) {
placeholders.add(new PlaceHolder<User>("Total_" + top.toString()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -155,7 +156,7 @@ public class PlaceHolders {
}.withDescription("User total for " + top.getName()));
}
placeholders.add(new PlaceHolder("BestDailyTotal") {
placeholders.add(new PlaceHolder<User>("BestDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -163,7 +164,7 @@ public class PlaceHolders {
}
}.withDescription("Best daily total"));
placeholders.add(new PlaceHolder("BestWeeklyTotal") {
placeholders.add(new PlaceHolder<User>("BestWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -171,7 +172,7 @@ public class PlaceHolders {
}
}.withDescription("Best weekly total"));
placeholders.add(new PlaceHolder("BestMonthlyTotal") {
placeholders.add(new PlaceHolder<User>("BestMonthlyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -179,7 +180,7 @@ public class PlaceHolders {
}
}.withDescription("Best monthly total"));
placeholders.add(new PlaceHolder("DailyVoteStreak") {
placeholders.add(new PlaceHolder<User>("DailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -187,7 +188,7 @@ public class PlaceHolders {
}
}.withDescription("Current daily votestreak"));
placeholders.add(new PlaceHolder("WeeklyVoteStreak") {
placeholders.add(new PlaceHolder<User>("WeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -195,7 +196,7 @@ public class PlaceHolders {
}
}.withDescription("Current weekly votestreak"));
placeholders.add(new PlaceHolder("MonthVoteStreak") {
placeholders.add(new PlaceHolder<User>("MonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -203,7 +204,7 @@ public class PlaceHolders {
}
}.withDescription("Current month votestreak"));
placeholders.add(new PlaceHolder("BestDailyVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestDailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -211,7 +212,7 @@ public class PlaceHolders {
}
}.withDescription("Best daily votestreak"));
placeholders.add(new PlaceHolder("BestWeeklyVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestWeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -219,7 +220,7 @@ public class PlaceHolders {
}
}.withDescription("Best weekly votestreak"));
placeholders.add(new PlaceHolder("BestMonthVoteStreak") {
placeholders.add(new PlaceHolder<User>("BestMonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -227,7 +228,7 @@ public class PlaceHolders {
}
}.withDescription("Best month votestreak"));
placeholders.add(new PlaceHolder("Points") {
placeholders.add(new PlaceHolder<User>("Points") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -235,7 +236,7 @@ public class PlaceHolders {
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder("CanVote") {
placeholders.add(new PlaceHolder<User>("CanVote") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -244,21 +245,21 @@ public class PlaceHolders {
}.withDescription("Return true/false if player can vote on all sites"));
for (final VoteSite voteSite : plugin.getVoteSites()) {
placeholders.add(new PlaceHolder("Next_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("Next_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandNextInfo(user, voteSite);
}
}.withDescription("How long until user can vote on " + voteSite.getKey()));
placeholders.add(new PlaceHolder("Last_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("Last_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandLastDuration(user, voteSite);
}
}.withDescription("How long ago user voted on " + voteSite.getKey()));
placeholders.add(new PlaceHolder("CanVote_" + voteSite.getKey()) {
placeholders.add(new PlaceHolder<User>("CanVote_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -267,7 +268,7 @@ public class PlaceHolders {
}.withDescription("Whether or not player can vote on " + voteSite.getKey()));
}
placeholders.add(new PlaceHolder("Top_All_Position") {
placeholders.add(new PlaceHolder<User>("Top_All_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -282,7 +283,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_AllVotes_") {
placeholders.add(new PlaceHolder<User>("Top_AllVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -296,9 +297,9 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_All_") {
placeholders.add(new PlaceHolder<User>("Top_All_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -314,7 +315,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_Month_Position") {
placeholders.add(new PlaceHolder<User>("Top_Month_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -329,7 +330,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Month_") {
placeholders.add(new PlaceHolder<User>("Top_Month_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -343,9 +344,9 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
}.useStartsWith().withDescription("Get user at position in top voter"));
placeholders.add(new PlaceHolder("Top_MonthVotes_") {
placeholders.add(new PlaceHolder<User>("Top_MonthVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -359,9 +360,9 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Week_Position") {
placeholders.add(new PlaceHolder<User>("Top_Week_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -376,7 +377,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Week_") {
placeholders.add(new PlaceHolder<User>("Top_Week_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -392,7 +393,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_WeekVotes_") {
placeholders.add(new PlaceHolder<User>("Top_WeekVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -406,9 +407,9 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder("Top_Daily_Position") {
placeholders.add(new PlaceHolder<User>("Top_Daily_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -423,7 +424,7 @@ public class PlaceHolders {
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder("Top_Daily_") {
placeholders.add(new PlaceHolder<User>("Top_Daily_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -439,7 +440,7 @@ public class PlaceHolders {
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder("Top_DailyVotes_") {
placeholders.add(new PlaceHolder<User>("Top_DailyVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -453,11 +454,11 @@ public class PlaceHolders {
}
return "";
}
}.useStartsWith().withDescription("Get user votes at postion in top voter"));
}.useStartsWith().withDescription("Get user votes at position in top voter"));
// non players
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesCurrent") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesCurrent") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -465,7 +466,7 @@ public class PlaceHolders {
}
}.withDescription("Current amount of voteparty votes"));
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesNeeded") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesNeeded") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
@@ -473,12 +474,60 @@ public class PlaceHolders {
}
}.withDescription("Voteparty votes needed"));
nonPlayerPlaceholders.add(new PlaceHolder("VotePartyVotesRequired") {
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesRequired") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getVotesRequired());
}
}.withDescription("Amount of votes needed for voteparty"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalMonthTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Monthly).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global month total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalAllTimeTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.AllTime).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global alltime total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Weekly).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global weekly total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Daily).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global daily total"));
}
}
@@ -173,12 +173,6 @@ public class VoteParty implements Listener {
return required;
}
public void giveReward(User user, boolean online) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
public void giveReward(User user) {
if (Config.getInstance().getVotePartyUserVotesRequired() > 0) {
if (user.getVotePartyVotes() < Config.getInstance().getVotePartyUserVotesRequired()) {
@@ -188,6 +182,12 @@ public class VoteParty implements Listener {
giveReward(user, user.isOnline());
}
public void giveReward(User user, boolean online) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
/**
* Give rewards.
*/
@@ -0,0 +1,31 @@
package com.Ben12345rocks.VotingPlugin;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInject;
import com.Ben12345rocks.AdvancedCore.Rewards.InjectedRequirement.RequirementInject;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VotingPluginHooks {
private static VotingPluginHooks instance = new VotingPluginHooks();
public static VotingPluginHooks getInstance() {
return instance;
}
public void addCustomRequirement(RequirementInject inject) {
RewardHandler.getInstance().addInjectedRequirements(inject);
}
public void addCustomReward(RewardInject inject) {
RewardHandler.getInstance().addInjectedReward(inject);
}
public Main getMainClass() {
return Main.plugin;
}
public UserManager getUserManager() {
return UserManager.getInstance();
}
}