Compare commits

...
331 Commits
Author SHA1 Message Date
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
Ben12345rocks 8c72154eed Update version number 2018-12-08 19:29:48 -05:00
Ben12345rocks 0dc942ecfd Add option to disable update checks 2018-12-07 17:24:36 -05:00
Ben12345rocks bc4d051590 Fix description 2018-12-06 18:57:10 -05:00
Ben12345rocks 011a0322ea Added new canvote placeholder for votesites 2018-12-06 18:56:30 -05:00
Ben12345rocks ed90db12a4 Add more placeholders 2018-12-05 19:51:29 -05:00
Ben12345rocks 3afea03485 Added ability to convert from superbvote 2018-12-05 19:26:58 -05:00
Ben12345rocks 6da17ee181 Minor fixes 2018-12-05 19:10:49 -05:00
Ben12345rocks e5d1c255c0 Add debug to vote party 2018-12-05 17:42:15 -05:00
Ben12345rocks b43754661c Added vote reward back button 2018-12-04 16:51:55 -05:00
Ben12345rocks 89c419c8df Bug fix 2018-12-03 21:23:47 -05:00
Ben12345rocks bd6b2b1edb Add permission for base /vote 2018-12-03 21:21:08 -05:00
Ben12345rocks b7c73902f2 Bug fix for vote party 2018-12-02 12:57:28 -05:00
Ben12345rocks c0995447de Broadcast before vote party rewards 2018-12-02 12:11:15 -05:00
Ben12345rocks d970506c76 Little improvements 2018-11-23 20:37:27 -05:00
Ben12345rocks 74fb06302a Little bits of cleanup 2018-11-23 20:28:03 -05:00
Ben12345rocks 1cfed8aa98 Bug fix 2018-11-22 18:31:59 -05:00
Ben12345rocks 9f563c37e5 Bug fix 2018-11-22 18:23:15 -05:00
Ben12345rocks d311588984 Update version number 2018-11-22 18:18:27 -05:00
Ben12345rocks 8c5324f602 Fully fix tab complete 2018-11-22 17:40:14 -05:00
Ben12345rocks 17832a0bf7 Bug fix for now 2018-11-21 16:55:04 -05:00
Ben12345rocks 3c415c63c9 Bug fix 2018-11-19 16:55:59 -05:00
Ben12345rocks 6ab27775d2 Bug fix 2018-11-19 16:39:56 -05:00
Ben12345rocks e04bf8210f Minor change 2018-11-18 14:06:19 -05:00
Ben12345rocks 7b4879ddf1 Bug fix 2018-11-18 13:57:22 -05:00
Ben12345rocks 081ac7bb3c Fix misspelling in config 2018-11-18 13:38:48 -05:00
Ben12345rocks d9894c6b74 Add description for placeholders 2018-11-18 13:35:30 -05:00
Ben12345rocks f13f56c830 Add ability to set description for placeholders 2018-11-18 13:26:21 -05:00
Ben12345rocks b6a67f2aeb Update version number 2018-11-18 12:56:04 -05:00
Ben12345rocks a5b416b210 Bug fix 2018-11-14 16:50:37 -05:00
Ben12345rocks caa4a7a714 Change help message 2018-11-13 20:17:27 -05:00
Ben12345rocks 72aa819361 Add command to force vote party 2018-11-13 20:16:26 -05:00
Ben12345rocks cf52db0c7d Bug fix 2018-11-13 20:13:43 -05:00
Ben12345rocks 5021c4bf67 Remove option 2018-11-13 19:45:16 -05:00
Ben12345rocks 9dd8e757d4 Fix typo 2018-11-13 19:26:00 -05:00
Ben12345rocks da7cdb74d4 Bug fix 2018-11-13 16:55:05 -05:00
Ben12345rocks 18c6ee6614 Bug fixes 2018-11-13 16:53:08 -05:00
Ben12345rocks cafe2b1de7 Slight case change on command 2018-11-05 19:29:56 -05:00
Ben12345rocks 74c94746c1 Check milestones on amount edit 2018-11-04 12:27:31 -05:00
Ben12345rocks 61130a1b2b Slight changes 2018-11-03 20:48:39 -04:00
Ben12345rocks 7dafa5c8eb Bug fix 2018-11-03 20:45:13 -04:00
Ben12345rocks c89edc47c3 Add more placeholders 2018-11-03 20:30:05 -04:00
Ben12345rocks 0b89df6262 Improve /av servicesites 2018-11-03 20:20:36 -04:00
Ben12345rocks c2218b2c67 Added command to set milestone count 2018-11-02 16:50:06 -04:00
Ben12345rocks 1950cfdd2d Little bug fixes 2018-11-01 19:23:08 -04:00
Ben12345rocks 71af70a026 Add new commands 2018-10-30 20:40:03 -04:00
Ben12345rocks b269c29f7c Add option to wait until votedelay is over to accept vote, closes #437 2018-10-29 19:28:31 -04:00
Ben12345rocks c9e8ade60f Update version number 2018-10-28 13:12:44 -04:00
Ben12345rocks 2364fd7ac6 Simple cleanup 2018-10-27 21:59:57 -04:00
Ben12345rocks 7135ed0f95 Code cleanup 2018-10-27 21:33:25 -04:00
Ben12345rocks b5fbaaaf92 More config api changes 2018-10-27 21:30:25 -04:00
Ben12345rocks 94c025886a Move more config options to newer api 2018-10-27 20:15:58 -04:00
Ben12345rocks 0956466edb Little bit of cleanup 2018-10-26 21:03:20 -04:00
Ben12345rocks b2b23ab622 Add option to only update with players online 2018-10-26 17:09:35 -04:00
Ben12345rocks 0e6529efbe Bug fix 2018-10-25 17:24:39 -04:00
Ben12345rocks f7ce51f63a Clear cache for voteshop 2018-10-25 17:19:48 -04:00
Ben12345rocks 68334ef1a2 Config improvements 2018-10-24 20:03:19 -04:00
Ben12345rocks 404c1eeb4d Added clearcacheonjoin option 2018-10-23 21:00:16 -04:00
Ben12345rocks 347c1d975d Update to 1.13.2 2018-10-23 20:55:17 -04:00
Ben12345rocks 3b022fc841 Bug fixes 2018-10-23 20:48:47 -04:00
Ben12345rocks 88afb70fad Add new option to always update 2018-10-23 16:54:01 -04:00
Ben12345rocks 62e21d9f93 Use lombok 2018-10-21 15:18:36 -04:00
Ben12345rocks 20289a5d7b Slight change 2018-10-21 13:52:24 -04:00
Ben12345rocks 02b0103fbd Add option to process rewards 2018-10-21 13:25:36 -04:00
Ben12345rocks a514ad6cac Javadoc fix 2018-10-20 17:21:08 -04:00
Ben12345rocks 894f1147fd Update version number 2018-10-20 17:17:03 -04:00
Ben12345rocks 6a881b7c5f Cleanup 2018-10-18 19:54:20 -04:00
Ben12345rocks b3eaac0fbb Change how placeholders work in vote shop 2018-10-17 20:05:51 -04:00
Ben12345rocks 4444b53106 Bug fix 2018-10-17 19:57:31 -04:00
Ben12345rocks ec4a28a63e Add vote shop limit system 2018-10-16 17:43:19 -04:00
Ben12345rocks f3722a32f5 Undo little change 2018-10-15 20:29:00 -04:00
Ben12345rocks b3cf416fc4 Minor change 2018-10-15 20:17:02 -04:00
Ben12345rocks 66c2f3a5a6 Minor fixes, changes to sign loading 2018-10-15 20:04:03 -04:00
Ben12345rocks 50609d6729 Little bit of cleanup 2018-10-14 19:28:13 -04:00
Ben12345rocks 0635e7370e Minor fixes 2018-10-14 13:59:10 -04:00
Ben12345rocks f94951cffa Send a player a message if service site might be invalid of fake votes 2018-10-14 13:44:39 -04:00
Ben 5ebdcca3e6 Update .project 2018-10-14 13:30:58 -04:00
Ben f00b7df49b Delete Build to server.launch 2018-10-14 13:30:27 -04:00
Ben12345rocks e0a6c14825 Copy to test server on build 2018-10-14 13:28:58 -04:00
Ben12345rocks a3bcc4a391 Change how votes are processed 2018-10-13 08:37:04 -04:00
Ben12345rocks 7af7034149 Update to advancedcore changes 2018-10-08 17:52:43 -04:00
Ben12345rocks 3cb18946ed lots of code improvements 2018-10-07 14:27:32 -04:00
Ben12345rocks ac604ee538 Change how fast signs update 2018-10-07 13:50:26 -04:00
Ben12345rocks aac3c129cc Change api for special rewards 2018-10-07 13:47:33 -04:00
Ben12345rocks 28695094ca Undo change for now, so no need to update expansion 2018-10-07 13:36:45 -04:00
Ben12345rocks ac583d58bc Slight changes 2018-10-06 09:05:42 -04:00
Ben12345rocks 52de25fad3 Relocate classes 2018-10-03 19:47:50 -04:00
Ben12345rocks 72bf623007 More improvements to placeholders, command to see values of a player 2018-10-03 19:44:02 -04:00
Ben12345rocks c6e61ea5a5 Javadoc fix 2018-09-30 13:29:43 -04:00
Ben12345rocks b400476758 Improvements, update version number 2018-09-30 13:22:11 -04:00
Ben12345rocks 9ff0fc8356 Switch to new methods 2018-09-29 09:16:14 -04:00
Ben12345rocks f7b142e8c6 A lot of api changes/improvements 2018-09-27 21:12:50 -04:00
Ben12345rocks 4d80915811 Improvements 2018-09-27 20:55:23 -04:00
Ben12345rocks f1edc73eca New placeholder api, command to see placeholders, not fully tested 2018-09-26 21:04:55 -04:00
Ben12345rocks 197beb1792 Remove need for slot numbers in vote gui 2018-09-26 20:24:54 -04:00
Ben12345rocks 3aed208345 Remove need for slot number in vote shop, other minor changes 2018-09-26 20:18:32 -04:00
Ben12345rocks 27e500fbf0 Lots of changes, added test command 2018-09-19 20:20:46 -04:00
Ben12345rocks a0f6016dcd Bug fix 2018-09-15 20:06:47 -04:00
Ben12345rocks f37abe15c7 Add service site placeholder to broadcasts 2018-09-11 16:46:37 -04:00
Ben12345rocks 8f66733fe7 Update version number 2018-08-26 13:00:45 -04:00
Ben12345rocks 1bafb69f84 Update to 1.13.1, bug fix for vote party 2018-08-26 12:54:30 -04:00
Ben12345rocks ed5ced8b31 Add ability to disable /vote reward 2018-08-25 08:17:40 -04:00
Ben12345rocks 468747847c Minor changes 2018-08-23 20:56:03 -04:00
Ben12345rocks d28ccc85ac Updates 2018-08-23 20:53:13 -04:00
Ben12345rocks 9b5d6333d1 Remove unneeded duplicate name 2018-08-21 17:22:28 -04:00
Ben12345rocks 99307f15c7 Add warning about running versions older than 1.13 2018-08-20 20:06:23 -04:00
Ben12345rocks 8e9db014d1 Bug fix 2018-08-20 19:40:58 -04:00
Ben12345rocks 5e88782475 Bug fix 2018-08-20 19:40:17 -04:00
Ben12345rocks ba50789744 Remove unneeded debug 2018-08-20 19:30:24 -04:00
Ben12345rocks f06e2d8045 Update to redesigned reward system 2018-08-18 21:03:19 -04:00
Ben12345rocks 58e7143a0a Bug fix 2018-08-13 19:16:11 -04:00
Ben12345rocks 0ee3706190 Update version number to 5.14.2 2018-08-11 11:29:31 -04:00
Ben12345rocks 9f7fc3dafd Bug fix 2018-08-11 11:29:03 -04:00
Ben12345rocks d8ce4a9578 Minor config addition 2018-08-11 11:03:45 -04:00
Ben12345rocks 574e8d4a54 Update version number to 5.14.1 2018-08-11 10:59:09 -04:00
Ben12345rocks 19a7a6a733 Change /vote last to show time since vote 2018-08-11 10:43:43 -04:00
Ben12345rocks 1e131e57c3 Minor config change 2018-08-05 12:28:35 -04:00
Ben12345rocks 57795bdb23 Update version number 2018-07-25 19:17:46 -04:00
Ben12345rocks 52bbb76aad Change version to beta 2018-07-22 14:55:01 -04:00
Ben12345rocks 1257ac4600 Update to 1.13 2018-07-22 13:56:34 -04:00
Ben12345rocks 64ffc38405 Convert many users at a time 2018-07-22 13:36:20 -04:00
Ben12345rocks f8009b05bc Bug fixes 2018-07-22 13:28:14 -04:00
Ben12345rocks 114f217046 Bug fixes 2018-07-21 21:44:56 -04:00
Ben12345rocks 2de309cccc Bug fix 2018-07-21 18:38:52 -04:00
Ben12345rocks 7f827857bc Improvements 2018-07-21 17:13:02 -04:00
Ben12345rocks 75e244f678 Quick change 2018-07-18 17:02:58 -04:00
Ben12345rocks a346f28df1 Bug fix 2018-07-18 17:00:56 -04:00
Ben12345rocks afa57566da Update version number 2018-07-16 16:56:17 -04:00
Ben12345rocks 6f46469ff6 Add nickname to broadcast 2018-07-15 20:54:55 -04:00
Ben12345rocks 7edf33a448 Undo, for bug fix 2018-07-15 19:10:39 -04:00
Ben12345rocks 4d7b30eb20 Update config 2018-07-15 15:39:44 -04:00
Ben12345rocks ed8d92e4a4 Update to 1.13 2018-07-15 15:04:47 -04:00
Ben12345rocks f7e62f5790 Disable syncing placeholders 2018-07-15 14:17:27 -04:00
Ben12345rocks 84146236b1 Update version number, bug fix 2018-07-15 14:10:18 -04:00
Ben12345rocks 97c4ee3564 Bug fixes 2018-07-15 14:04:30 -04:00
Ben12345rocks f8547c5d86 Bug fix 2018-07-15 13:49:14 -04:00
Ben12345rocks c97acf7a29 Many improvements 2018-07-15 13:42:45 -04:00
Ben12345rocks fbbb11a4b0 Bug fix 2018-07-14 19:59:39 -04:00
Ben12345rocks e517bb43b8 Minor changes 2018-07-14 19:47:26 -04:00
Ben12345rocks e43ef1ea3e Silence erros 2018-07-08 15:00:30 -04:00
Ben12345rocks 7ab78f30d5 Update version number 2018-07-07 19:55:31 -04:00
Ben12345rocks 668bc34157 Update version number 2018-07-06 08:45:17 -04:00
Ben12345rocks 5f89b30628 Change default option 2018-07-05 09:00:56 -04:00
Ben12345rocks 2145c9bc40 Mysql database improvements 2018-07-04 21:53:06 -04:00
Ben12345rocks fdb3bca7f8 Add ability to require permsission for voteshop 2018-06-16 19:58:49 -04:00
Ben12345rocks c96610d137 Add support for offline placeholders from new placeholderapi update 2018-06-13 16:54:50 -04:00
Ben12345rocks be6414602d Add config option to disable vote shop 2018-06-03 12:36:11 -04:00
Ben12345rocks a7b2d8010c Update version number 2018-05-07 20:09:23 -04:00
Ben12345rocks 4ccc5def2b Update version number 2018-05-06 12:55:22 -04:00
Ben12345rocks 5378d4e372 Slight bug fix 2018-05-04 16:57:37 -04:00
Ben12345rocks 8d37d39b1c Update version number 2018-04-21 20:54:13 -04:00
Ben12345rocks 473a83604c Add config option for delay 2018-04-16 19:19:08 -04:00
Ben12345rocks 4f72fbab78 Bug fix 2018-04-15 21:14:38 -04:00
Ben12345rocks 1f62d68aed Add a delay 2018-04-15 20:53:35 -04:00
Ben12345rocks 7c063bbe68 Only convert 500 users at a time 2018-04-15 20:23:54 -04:00
Ben12345rocks 4c11df4b37 Bug fix 2018-04-14 21:27:11 -04:00
Ben12345rocks f859caf1ee Bug fix 2018-04-14 10:29:03 -04:00
Ben12345rocks 566d688b57 Javadoc fixes 2018-03-30 09:09:34 -04:00
Ben12345rocks e4209b15c3 Update version number 2018-03-30 08:37:17 -04:00
Ben12345rocks bd5b26805a Update config 2018-03-25 13:05:22 -04:00
Ben12345rocks 27c43b8e8e New way to do multiple places for top voter 2018-03-25 12:55:41 -04:00
Ben12345rocks 5b719141fe Change default config 2018-03-22 16:52:57 -04:00
Ben12345rocks f8ee0bba17 Bug fixes 2018-03-22 16:52:05 -04:00
Ben12345rocks d5ea3c60a9 Implement new vote party system type 2018-03-22 16:50:46 -04:00
Ben12345rocks 3be9eaf47a Slight performance improvement 2018-03-21 19:12:07 -04:00
Ben12345rocks f385927958 implement config option for backups 2018-03-18 21:00:51 -04:00
Ben12345rocks ec491a937c Bug fix 2018-03-11 12:44:40 -04:00
Ben12345rocks 7bf879a08f Bug fix 2018-03-11 12:41:20 -04:00
Ben 18a0e1f338 Merge pull request #364 from Ben12345rocks/5.12.7
5.12.7
2018-03-11 12:31:24 -04:00
Ben12345rocks c7cbf0230c Update version number 2018-03-11 12:31:09 -04:00
Ben12345rocks cee519176a Bug fix, closes #363 2018-03-07 20:07:31 -05:00
Ben12345rocks 50d75449c0 Make error messages more clear 2018-03-05 19:21:54 -05:00
Ben12345rocks 316fbf7e62 Add next placeholder to text version of /vote 2018-03-05 19:11:25 -05:00
Ben12345rocks 7c82cbc6b4 Add new config option 2018-03-04 19:33:14 -05:00
Ben12345rocks 8387b48e6b Code cleanup 2018-03-04 12:33:44 -05:00
Ben12345rocks 0e806a2985 Bug fixes 2018-03-03 21:21:17 -05:00
Ben12345rocks d06041cfd8 Bug fix 2018-02-17 20:51:35 -05:00
Ben12345rocks 1a257a3858 Add placeholder 2018-02-17 20:31:19 -05:00
Ben12345rocks 90c0104de3 Update to 5.12.6 2018-02-17 20:27:37 -05:00
Ben b3473174de Merge pull request #352 from Ben12345rocks/5.12.5
5.12.5
2018-02-11 14:19:53 -05:00
Ben12345rocks 5b853b9ad4 Update version number 2018-02-11 14:19:45 -05:00
Ben12345rocks 3b3578fa87 Bug fixes 2018-02-11 12:54:08 -05:00
Ben12345rocks 6bf079068b Bug fix 2018-02-06 16:51:38 -05:00
Ben12345rocks 2a889ff2ce Update build path 2018-02-04 12:59:38 -05:00
Ben de9c9185f3 Merge pull request #341 from Ben12345rocks/5.12.4
5.12.4
2018-02-04 12:58:31 -05:00
Ben12345rocks 07c4534d10 Update version number 2018-02-04 12:51:28 -05:00
Ben12345rocks b3462bebe6 Add option for top voter award ties, closes #343 2018-02-01 20:03:53 -05:00
Ben12345rocks 5525a378ae Minor bug fix 2018-02-01 20:00:15 -05:00
Ben12345rocks bb8588e144 Bug fixes 2018-01-30 19:57:40 -05:00
Ben12345rocks 8abd596172 Minor improvement 2018-01-30 19:44:11 -05:00
Ben12345rocks df93655db3 Add a resync command 2018-01-30 16:54:49 -05:00
Ben12345rocks f1f97a8908 More testing 2018-01-29 20:07:13 -05:00
Ben12345rocks 65fe355d6d Bug fix 2018-01-29 17:58:52 -05:00
Ben12345rocks 7cd5954cd2 Quick bug fix, update version number 2018-01-28 15:46:51 -05:00
57 changed files with 4676 additions and 3129 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
@@ -0,0 +1,4 @@
eclipse.preferences.version=1
encoding/<project>=Cp1252
encoding/Resources=Cp1252
encoding/src=Cp1252
@@ -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.
Binary file not shown.
+233 -91
View File
@@ -4,12 +4,13 @@
# https://github.com/Ben12345rocks/VotingPlugin/wiki
# Valid Options:
# - SQLITE
# - SQLITE
# - FLAT
# - MYSQL
DataStorage: SQLITE
# Information for mysql
# See the end of the config for cache options
MySQL:
Host: ''
# Default port is 3306
@@ -28,21 +29,9 @@ MySQL:
#UseSSL: true
# Let players who never joined before vote
# Recommend: False (Will prevent creating random user data files)
# Recommend: False (Will prevent creating random user data)
AllowUnjoined: false
# If true, plugin will send scoreboards on some commands
SendScoreboards: true
# If true, plugin will automaticly generate votesites
# Disable this if you experience issues with sites being created randomly
AutoCreateVoteSites: true
# Automaticly download the latest version
# Will require a restart to actually update
# Note that updates take 30-40 minutes to load before they can be downloaded
AutoDownload: false
# ------------------------------------------------
# VoteReminding
# ------------------------------------------------
@@ -53,12 +42,12 @@ AutoDownload: 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
@@ -85,18 +74,9 @@ VoteReminding:
FadeIn: 10
ShowTime: 50
FadeOut: 10
Commands:
# Wether or not the following commands will open GUIs rather than display text
UseGUI:
Today: true
TopVoter: true
Last: true
Next: true
Total: true
Vote: true
Best: true
Streak: true
ActionBar:
Message: '&cRemember to vote'
Delay: 30
# ------------------------------------------------
# Format
@@ -110,11 +90,30 @@ Commands:
#
# Set Message to '' (2 ') to disable message
Commands:
# Whether or not the following commands will open GUIs rather than display text
UseGUI:
Today: true
TopVoter: true
Last: true
Next: true
Total: true
Vote: true
Best: true
Streak: true
# If true, you can right click a votesite from /vote (gui version) and open the vote reward gui for that site
# Can be used to display rewards for that site
VoteRewardFromVoteURL: false
# disable /vote reward commands
# Effective after restart
DisableVoteRewardGUIs: false
Format:
# CommandHandler help message
HelpLine: '&3&l%Command% - &3%HelpMessage%'
# Broadcast vote message
# Set to an empty message to disable
BroadcastMsg: '&6[&4Broadcast&6] &2Thanks &c%player% &2for voting on %SiteName%'
# Broadcast only when player is online
@@ -165,7 +164,12 @@ Format:
Title: '&3&l%player% Last Vote Times:'
# Lines for each vote site
# %time% = time, using timeformat below
Line: '&3%SiteName%: &6%time%'
# %timesince% = time since vote
Line: '&3%SiteName%: &6%timeSince%'
# Spelling of TimeType can be changed under Format.Commands.TimeFormats
TimeFormat: '%amount% %TimeType%'
LastVoted: '%times% ago'
NeverVoted: 'Never voted'
# Format for /vote total
Total:
@@ -220,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
@@ -230,9 +237,9 @@ Format:
# %Points% = player points
Points: '&a%Player% currently has &a&l%Points%&a Points!'
# Login message if player can vote on all sites
# Must be enabled in config.yml
LoginMsg: '&cRemember to vote!'
ToggleBroadcast:
Enabled: '&cYou will now see vote broadcasts'
Disabled: '&cYou will no longer see vote broadcasts'
# Msg on top voter award, will only send message if that place has a reward set
# %place% = place - 1,2,3,etc
@@ -242,6 +249,16 @@ Format:
# See https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
TimeFormat: 'EEE, d MMM yyyy HH:mm'
TimeFormats:
Day: 'Day'
Days: 'Days'
Hour: 'Hour'
Hours: 'Hours'
Minute: 'Minute'
Minutes: 'Minutes'
Second: 'Second'
Seconds: 'Seconds'
# Format for signs
# SiteName may be all, depending on sign
# %position% = position of player, set by sign
@@ -268,9 +285,18 @@ 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'
# Display text
# Used in /vote top (GUI)
@@ -284,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
@@ -301,49 +331,44 @@ GUI:
# You can set skulls of the player using the following
# Remove the # to enable
#Skull: '%Player%'
Slot: 0
Next:
Item:
Material: 'COMPASS'
Data: 0
Amount: 1
Name: '&4Next'
Slot: 1
Last:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Data: 0
Amount: 1
Name: '&4Last'
Slot: 2
Total:
Item:
Material: 'CHEST'
Data: 0
Amount: 1
Name: '&4Total'
Slot: 3
Top:
Item:
Material: 'SIGN'
Data: 0
Amount: 1
Name: '&4Top'
Slot: 4
Today:
Item:
Material: 'BOOK'
Data: 0
Amount: 1
Name: '&4Today'
Slot: 5
Shop:
Item:
Material: 'DIAMOND'
Data: 0
Amount: 1
Name: '&4Vote Shop'
Slot: 6
Lore:
- '&aYou currently have %points% points'
# GUI for /vote url
# And /vote if enabled in Config.yml
@@ -379,6 +404,8 @@ GUI:
Data: 0
Amount: 1
URLText: '%VoteUrl%'
VoteRewardBackButton: false
# Customize /vote reward
# Show players what you get when you vote on each site
VoteReward:
@@ -404,7 +431,6 @@ GUI:
# Remove this line for no lore
Lore:
- '&4Line 1'
Slot: 0
VoteLast:
Name: 'VoteLast: %player%'
BackButton: true
@@ -430,30 +456,35 @@ 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
DayTotal:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cDaily Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
WeekTotal:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cWeekly Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
MonthTotal:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cMonthly Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
AllTimeTotal:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cAllTime Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
@@ -461,19 +492,19 @@ GUI:
Name: 'VoteBest: %player%'
DayBest:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cDaily Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
WeekBest:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cWeekly Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
MonthBest:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cMonthly Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
@@ -482,37 +513,37 @@ GUI:
BackButton: false
CurrentDayStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cCurrent Daily Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
CurrentWeekStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cCurrent Weekly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
CurrentMonthStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cCurrent Monthly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestDayStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cHighest Daily Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestWeekStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cHighest Weekly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestMonthStreak:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Name: '&cHighest Monthly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
@@ -529,6 +560,11 @@ BackButton:
Name: '&8Back to VoteGUI'
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
@@ -545,14 +581,18 @@ Shop:
- '&c&lCost: &c3 Voting Points'
# Number of voting points this cost
Cost: 3
# Rewards to run if player buys succesfully
# Permission required, leave blank for no permission
Permission: ''
# Limit how many times you can buy this
#Limit: 3
# If true, item is not buyable
#NotBuyable: false
# Rewards to run if player buys successfully
Rewards:
Items:
Diamond:
Material: 'DIAMOND'
Amount: 1
# Slot
Slot: 0
Amount: 1
# ------------------------------------------------
# Extra Rewards
@@ -596,6 +636,8 @@ VoteParty:
Enabled: false
# Number of votes required to give rewards
VotesRequired: 20
# Increase the amount of votes required on each vote party reached
#IncreaseVotesRquired: 10
# If true, players who did not vote to reach the votes required will
# recieve the reward
GiveAllPlayers: false
@@ -610,30 +652,37 @@ VoteParty:
# Broadcast when vote party reached
Broadcast: '&cReached the vote party amount!'
# List of commands to execute, these only execute once.
# %player% does not work here
Commands: []
# Reward files to give
Rewards: []
# Rewards to give per player
Rewards:
Commands:
- say %player%
Items:
DIAMOND:
Material: 'DIAMOND'
Amount: 1
# Reset milestons at end of the month
# Reset milestones at end of the month
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
Rewards:
Messages:
Player: '&aYou got %milestone% milestone votes!'
VoteStreak:
# Valid options: Day, Week, Month
Day:
# Number of days in a row
# Each day requires one vote
# Add a - to give a reward for every multiple (e.g. 2-)
# Add a - to give a reward for every multiple (e.g. 2- = 2,4,6,8, and so on)
'2':
# Enabled or not
Enabled: false
@@ -661,13 +710,25 @@ 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
# IT WILL ONLY RUN ONE TIME FOR ANY NUMBER OF OFFLINE VOTES
# IT WILL ONLY RUN ONE TIME FOR ANY NUMBER OF OFFLINE VOTES (3 offline votes = 1 AnySiteReward)
# Any reward files listed here are ran on vote of any site
# It is recommended to add rewards to each site instead of here
# Using forceoffline won't work here
# Use EverySiteReward in VoteSites.yml for a global reward for each site
AnySiteRewards: []
@@ -676,18 +737,22 @@ AnySiteRewards: []
# ------------------------------------------------
# Top voter blacklist
# Hide these names from top voter lists
BlackList:
- 'Notch'
# If true players with the permission 'VotingPlugin.TopVoter.Ignore' will act
# as if there name was added on the the blacklist above
# This also applies for ops
# This also applies for players with op
TopVoterIgnorePermission: false
# /vote top default data displayed
# Valid Options: AllTime, Monthly, Weekly, Daily
VoteTopDefault: Monthly
# Whether or not to have ties on top voter rewards
TopVoterAwardsTies: true
# These are required to be enabled in order for top voter awards to work
LoadTopVoter:
AllTime: true
@@ -706,6 +771,7 @@ EnableMonthlyAwards: true
# Rewards to give
MonthlyAwards:
# Position. 1 is first in top voter, 2 is second, etc...
# Using 1-10 will reward players in first to tenth place with the same reward
1:
Rewards:
Messages:
@@ -744,20 +810,28 @@ DailyAwards:
# ------------------------------------------------
# Advanced
# Most of these values can be left untouched
# Most of these values can be left untouched for most setups
# ------------------------------------------------
# Number of points to give on vote
# 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
# Disable checking on world change
# May improve performance
DisableCheckOnWorldChange: false
# 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
@@ -773,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
@@ -785,36 +860,27 @@ 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
# Only update in the background when needed when set to false
AlwaysUpdate: false
# Update in the background only if players are online
UpdateWithPlayersOnlineOnly: false
# Delay between background updates like signs and more
# Default: 3 Minutes
# Longer times result in longer wait in stuff updating after a vote, like topvoter
DelayBetweenUpdates: 3
# Clear cache on update, setting to true reduces performance
ClearCacheOnUpdate: false
# Clears cache for the player who voted only
# Only effects if using mysql
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Set to true to disable no service site message on voting
# You should never have to touch this if everything is setup properly
# Will also disable a few other warnings about vote sites
DisableNoServiceSiteMessage: false
# Used in special cases
# Much slower, but may work better
AlternateUUIDLookup: false
# Shouldn't need to change this
AutoKillInvs: true
# Count fake votes
# If true fake votes will give points and totals
CountFakeVotes: true
@@ -830,6 +896,82 @@ PurgeOldData: false
# Minimum number of days offline in order to purge
PurgeMin: 90
# Whether or not to create daily backups. (Only the most recent ones get kept)
CreateBackups: true
# If true, plugin will send scoreboards on some commands
SendScoreboards: true
# If true, plugin will automaticly generate votesites
# Disable this if you experience issues with sites being created randomly
# Most cases this will work all the time
AutoCreateVoteSites: true
# Automaticly download the latest version
# Will require a restart to actually update
# Note: It takes 30-40 minutes before being able to download the latest build
# You can also use /av download
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
# ---------------------------------------------------------
# Clear cache on update, setting to true reduces update speed
ClearCacheOnUpdate: false
# Clear mysql on player join always
ClearCacheOnJoin: false
# Clears cache for the player who voted only
# Only effects if using mysql
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Disable using vault for permission checks
DisableVaultPermissions: false
# ###############################################################
# Deprecated options, don't recommend using any of these
# Whether or not to disable checking names on mojang, disable if you hit the rate limit
# Shouldn't make a noticeable impact if set to false
CheckNameMojang: true
#CheckNameMojang: false
# Shouldn't need to change this
#AutoKillInvs: true
# Used in special cases
# Much slower, but may work better
# Not recommended in newer versions
#AlternateUUIDLookup: false
# Disable checking on world change
# May improve performance
#DisableCheckOnWorldChange: false
+50 -3
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
@@ -28,11 +31,16 @@ VoteSites:
# Most sites are 24 hours
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)
# Setting this to true will execute the reward offline, NOT WHEN THE PLAYER IS OFFLINE
# Setting this to true will execute the reward offline while the player is offline
# This basiclly disables offline voting if set to true, don't misinterpret this option
ForceOffline: false
@@ -45,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'
+50 -36
View File
@@ -4,7 +4,8 @@ main: com.Ben12345rocks.VotingPlugin.Main
description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: Ben12345rocks
softdepend: [AdvancedCore]
softdepend: [MVdWPlaceholders, Votifier]
api-version: 1.13
commands:
vote:
description: Vote command
@@ -27,9 +28,6 @@ commands:
votetop:
description: See top voters
aliases: vtop
voteinfo:
description: See player info
aliases: vinfo
votetoday:
description: See who voted today
aliases: vtoday
@@ -57,21 +55,24 @@ commands:
votestreak:
description: A command
aliases: vstreak
votetogglebroadcast:
description: A command
aliases: vtogglebroadcast
votepoints:
description: A command
aliases: vpoints
votegivereward:
votechoices:
description: A command
voteselectChoiceReward:
alaises: vchoices
votegivepoints:
description: A command
alaises: vgivepoints
adminvotehelp:
description: Open adminvote help
aliases: avhelp
adminvote?:
description: Open adminvote help
aliases: av?
adminvoteconvert:
description: A command
adminvotereport:
description: Command Alias
aliases: avreport
@@ -93,24 +94,15 @@ commands:
adminvoterewards:
description: Command Alias
aliases: avrewards
adminvotereward:
description: Command Alias
aliases: avreward
adminvoteuuid:
description: Command Alias
aliases: avuuid
adminvotereset:
description: Command Alias
aliases: avreset
adminvotevotesite:
description: Command Alias
aliases: avvotesite
adminvoteconfig:
description: Command Alias
aliases: avconfig
adminvoteserverdata:
description: Command Alias
aliases: avserverdata
adminvotesettotal:
description: Command Alias
aliases: avsettotal
@@ -120,36 +112,20 @@ commands:
adminvotevote:
description: Command Alias
aliases: [avvote, fakevote]
adminvoteTriggerPlayerVoteEvent:
description: Command Alias
aliases: avTriggerPlayerVoteEvent
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
adminvoteusers:
description: Command Alias
aliases: avusers
adminvoteClearTotal:
description: Command Alias
aliases: avClearTotal
adminvoteConvertFromData:
description: Command Alias
aliases: avConvertFromData
adminvoteClearTotal:
description: Command Alias
aliases: avClearTotal
adminvoteBackgroundUpdate:
description: Command Alias
aliases: avBackgroundUpdate
@@ -159,9 +135,6 @@ commands:
adminvoteConvertFrom:
description: Command Alias
aliases: avConvertFrom
adminvoteRemovePoints:
description: Command Alias
aliases: avRemovePoints
adminvoteServiceSites:
description: Command Alias
aliases: avServiceSites
@@ -183,6 +156,45 @@ commands:
adminvoteplayername:
description: Command Alias
aliases: avplayername
adminvoteResyncMilestones:
description: Command Alias
aliases: avResyncMilestones
adminvoteClearOfflineRewards:
description: Command Alias
aliases: avClearOfflineRewards
adminvoteUserRemove:
description: Command Alias
aliases: avUserRemove
adminvotePurge:
description: Command Alias
aliases: avPurge
adminvoteJavascript:
description: Command Alias
aliases: avJavascript
adminvoteStatus:
description: Command Alias
aliases: avStatus
adminvoteTest:
description: Command Alias
aliases: avTest
adminvotePlaceholders:
description: Command Alias
aliases: avPlaceholders
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
@@ -202,4 +214,6 @@ permissions:
VotingPlugin.NoRemind:
description: Ignore vote reminding
default: false
VotingPlugin.Sign.Create:
description: Permission to create sign
+108 -4
View File
@@ -1,15 +1,17 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.12.2</version>
<version>5.19.2</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>
</properties>
<distributionManagement>
<repository>
@@ -33,6 +35,34 @@
</resource>
</resources>
<sourceDirectory>src</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<versionRange>[1,)</versionRange>
<goals>
<goal>delombok</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -44,6 +74,25 @@
<finalName>${project.name}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.2.0</version>
<executions>
<execution>
<id>delombok</id>
<phase>deploy</phase>
<goals>
<goal>delombok</goal>
</goals>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<outputDirectory>${project.basedir}/target/delombok</outputDirectory>
<sourceDirectory>${project.basedir}/src</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
@@ -71,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>
@@ -92,7 +145,6 @@
</excludes>
</artifactSet>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
@@ -108,6 +160,9 @@
<goal>jar</goal>
</goals>
<phase>deploy</phase>
<configuration>
<sourcepath>${project.basedir}/target/delombok</sourcepath>
</configuration>
</execution>
</executions>
</plugin>
@@ -138,6 +193,31 @@
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${user.home}/Documents/Test Server/plugins</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<includes>
<include>${project.artifactId}.jar</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
@@ -148,6 +228,10 @@
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
@@ -161,7 +245,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.12.2-R0.1-SNAPSHOT</version>
<version>1.14.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -185,5 +269,25 @@
<scope>system</scope>
<systemPath>${project.basedir}/Jars/VoteRoulette.jar</systemPath>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.mimimum.minecraft</groupId>
<artifactId>SuperbVote</artifactId>
<version>0.5.3</version>
<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>
File diff suppressed because it is too large. Load diff
@@ -17,9 +17,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
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;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
@@ -29,6 +29,7 @@ import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import net.md_5.bungee.api.chat.TextComponent;
@@ -99,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));
}
@@ -119,7 +120,7 @@ public class Commands {
boolean requirePerms = Config.getInstance().getFormatCommandsVoteHelpRequirePermission();
for (CommandHandler cmdHandle : plugin.adminVoteCommand) {
for (CommandHandler cmdHandle : plugin.getAdminVoteCommand()) {
if (sender.hasPermission(cmdHandle.getPerm()) && requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/adminvote"), cmdHandle.getHelpLine("/adminvote"));
} else {
@@ -191,7 +192,7 @@ public class Commands {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&c&lCommand : Permissions (seperated by |)");
for (CommandHandler handle : plugin.voteCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (sender instanceof Player) {
if (handle.hasPerm(sender)) {
msg.add("&a" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : true");
@@ -204,7 +205,7 @@ public class Commands {
}
for (CommandHandler handle : plugin.adminVoteCommand) {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (sender instanceof Player) {
if (handle.hasPerm(sender)) {
msg.add("&a" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : true");
@@ -240,7 +241,7 @@ public class Commands {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> text = new ArrayList<String>();
for (CommandHandler handle : plugin.voteCommand) {
for (CommandHandler handle : plugin.getVoteCommand()) {
if (handle.hasPerm(p)) {
msg.add("&a" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : true");
} else {
@@ -249,7 +250,7 @@ public class Commands {
}
for (CommandHandler handle : plugin.adminVoteCommand) {
for (CommandHandler handle : plugin.getAdminVoteCommand()) {
if (handle.hasPerm(p)) {
msg.add("&a" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : true");
} else {
@@ -320,10 +321,10 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterAllTimeScoreBoard(Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
public void sendTopVoterAllTimeScoreBoard(final Player player, int page) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterAllTime.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.AllTime).keySet());
int pageSize = (users.size() / pagesize);
if ((users.size() % pagesize) != 0) {
@@ -337,7 +338,7 @@ public class Commands {
for (int i = (page - 1) * pagesize; (i < users.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
scoreboard.add("" + (i + 1) + ": " + users.get(i).getPlayerName(),
plugin.topVoterAllTime.get(users.get(i)));
plugin.getTopVoter(TopVoter.AllTime).get(users.get(i)));
}
scoreboard.build();
scoreboard.send(player);
@@ -346,8 +347,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -361,10 +361,10 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterDailyScoreBoard(Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
public void sendTopVoterDailyScoreBoard(final Player player, int page) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterDaily.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
int pageSize = (users.size() / pagesize);
if ((users.size() % pagesize) != 0) {
@@ -378,7 +378,7 @@ public class Commands {
for (int i = (page - 1) * pagesize; (i < users.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
scoreboard.add("" + (i + 1) + ": " + users.get(i).getPlayerName(),
plugin.topVoterDaily.get(users.get(i)));
plugin.getTopVoter(TopVoter.Daily).get(users.get(i)));
}
scoreboard.build();
scoreboard.send(player);
@@ -387,8 +387,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -402,10 +401,10 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterMonthlyScoreBoard(Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
public void sendTopVoterMonthlyScoreBoard(final Player player, int page) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterMonthly.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Monthly).keySet());
int pageSize = (users.size() / pagesize);
if ((users.size() % pagesize) != 0) {
@@ -419,7 +418,7 @@ public class Commands {
for (int i = (page - 1) * pagesize; (i < users.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
scoreboard.add("" + (i + 1) + ": " + users.get(i).getPlayerName(),
plugin.topVoterMonthly.get(users.get(i)));
plugin.getTopVoter(TopVoter.Monthly).get(users.get(i)));
}
scoreboard.build();
scoreboard.send(player);
@@ -428,8 +427,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -443,10 +441,10 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterWeeklyScoreBoard(Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
public void sendTopVoterWeeklyScoreBoard(final Player player, int page) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterWeekly.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
int pageSize = (users.size() / pagesize);
if ((users.size() % pagesize) != 0) {
@@ -460,7 +458,7 @@ public class Commands {
for (int i = (page - 1) * pagesize; (i < users.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
scoreboard.add("" + (i + 1) + ": " + users.get(i).getPlayerName(),
plugin.topVoterWeekly.get(users.get(i)));
plugin.getTopVoter(TopVoter.Weekly).get(users.get(i)));
}
scoreboard.build();
scoreboard.send(player);
@@ -469,8 +467,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
@@ -485,8 +482,8 @@ public class Commands {
* @param page
* the page
*/
public void sendVoteTodayScoreBoard(Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
public void sendVoteTodayScoreBoard(final Player player, int page) {
if (Main.plugin.getOptions().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
String[] voteToday = voteToday();
@@ -508,8 +505,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
@@ -540,7 +536,7 @@ public class Commands {
}
public void updateVoteToday(ArrayList<User> users) {
plugin.voteToday.clear();
plugin.getVoteToday().clear();
for (User user : users) {
HashMap<VoteSite, LocalDateTime> times = new HashMap<VoteSite, LocalDateTime>();
@@ -555,7 +551,7 @@ public class Commands {
}
}
if (times.keySet().size() > 0) {
plugin.voteToday.put(user, times);
plugin.getVoteToday().put(user, times);
}
}
@@ -595,6 +591,7 @@ public class Commands {
* the vote site
* @return the string
*/
@Deprecated
public String voteCommandLastDate(User user, VoteSite voteSite) {
long time = user.getTime(voteSite);
if (time > 0) {
@@ -605,11 +602,92 @@ public class Commands {
return "";
}
public String voteCommandLastDuration(User user, VoteSite voteSite) {
long time = user.getTime(voteSite);
if (time > 0) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
Duration dur = Duration.between(lastVote, now);
long diffSecond = dur.getSeconds();
int diffDays = (int) (diffSecond / 60 / 60 / 24);
int diffHours = (int) (diffSecond / 60 / 60 - diffDays * 24);
int diffMinutes = (int) (diffSecond / 60 - diffHours * 60 - diffDays * 24 * 60);
int diffSeconds = (int) (diffSecond - diffMinutes * 60 - diffHours * 60 * 60 - diffDays * 24 * 60 * 60);
String info = "";
if (diffDays == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsDay()), "amount", "" + diffDays);
info += " ";
} else if (diffDays > 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsDays()), "amount", "" + diffDays);
info += " ";
}
if (diffHours == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsHour()), "amount", "" + diffHours);
info += " ";
} else if (diffHours > 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsHours()), "amount", "" + diffHours);
info += " ";
}
if (diffMinutes == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsMinute()), "amount", "" + diffMinutes);
info += " ";
} else if (diffMinutes > 1) {
info += StringUtils.getInstance().replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsMinutes()), "amount", "" + diffMinutes);
info += " ";
}
if (diffSeconds == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsSecond()), "amount", "" + diffSeconds);
} else {
info += StringUtils.getInstance().replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatCommandsVoteLastTimeFormat(), "TimeType",
Config.getInstance().getFormatTimeFormatsSeconds()), "amount", "" + diffSeconds);
}
info = StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatCommandsVoteLastLastVoted(), "times", info);
return info;
}
return Config.getInstance().getFormatCommandsVoteLastNeverVoted();
}
public String voteCommandLastLine(User user, VoteSite voteSite) {
String timeString = voteCommandLastDate(user, voteSite);
String timeSince = voteCommandLastDuration(user, voteSite);
return config.getFormatCommandsVoteLastLine().replace("%Month% %Day%, %Year% %Hour%:%Minute% %ampm%", "%time%")
.replace("%time%", timeString).replace("%SiteName%", voteSite.getDisplayName());
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("time", timeString);
placeholders.put("SiteName", voteSite.getDisplayName());
placeholders.put("timesince", timeSince);
return StringUtils.getInstance().replacePlaceHolder(Config.getInstance().getFormatCommandsVoteLastLine(),
placeholders);
}
/**
@@ -654,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();
@@ -684,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));
@@ -713,10 +792,10 @@ public class Commands {
public String[] voteCommandTotal(User user) {
ArrayList<String> msg = new ArrayList<String>();
int daily = user.getDailyTotal();
int weekly = user.getWeeklyTotal();
int month = user.getMonthTotal();
int all = user.getAllTimeTotal();
int daily = user.getTotal(TopVoter.Daily);
int weekly = user.getTotal(TopVoter.Weekly);
int month = user.getTotal(TopVoter.Monthly);
int all = user.getTotal(TopVoter.AllTime);
for (String s : config.getFormatCommandsVoteTotal()) {
String str = StringUtils.getInstance().replaceIgnoreCase(s, "%DailyTotal%", "" + daily);
@@ -749,10 +828,10 @@ public class Commands {
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
daily += user.getDailyTotal();
weekly += user.getWeeklyTotal();
month += user.getMonthTotal();
all += user.getAllTimeTotal();
daily += user.getTotal(TopVoter.Daily);
weekly += user.getTotal(TopVoter.Weekly);
month += user.getTotal(TopVoter.Monthly);
all += user.getTotal(TopVoter.AllTime);
}
for (String s : config.getFormatCommandsVoteTotalAll()) {
@@ -781,7 +860,7 @@ public class Commands {
boolean requirePerms = config.getFormatCommandsVoteHelpRequirePermission();
for (CommandHandler cmdHandle : plugin.voteCommand) {
for (CommandHandler cmdHandle : plugin.getVoteCommand()) {
if (cmdHandle.hasPerm(sender)) {
unsorted.put(cmdHandle.getHelpLineCommand("/vote"), cmdHandle.getHelpLine("/vote"));
} else if (!requirePerms) {
@@ -805,12 +884,19 @@ public class Commands {
*/
public String[] voteToday() {
ArrayList<String> msg = new ArrayList<String>();
for (User user : plugin.voteToday.keySet()) {
for (User user : plugin.getVoteToday().keySet()) {
for (VoteSite voteSite : plugin.voteToday.get(user).keySet()) {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getInstance().getFormatTimeFormat());
String timeString = plugin.voteToday.get(user).get(voteSite).format(formatter);
msg.add("&6" + user.getPlayerName() + " : " + voteSite.getKey() + " : " + timeString);
String timeString = plugin.getVoteToday().get(user).get(voteSite).format(formatter);
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);
@@ -835,15 +921,17 @@ public class Commands {
msg = StringUtils.getInstance().replaceIgnoreCase(msg, "%url%", voteURL);
msg = StringUtils.getInstance().replaceIgnoreCase(msg, "%SiteName%", voteSite.getDisplayName());
msg = StringUtils.getInstance().replaceIgnoreCase(msg, "%player%", user.getPlayerName());
msg = StringUtils.getInstance().replacePlaceHolder(msg, "Next",
"" + voteCommandNextInfo(user, voteSite));
sites.add(msg);
}
}
if (user != null) {
HashMap<String, String> phs = new HashMap<String, String>();
phs.put("DailyTotal", "" + user.getDailyTotal());
phs.put("WeekTotal", "" + user.getWeeklyTotal());
phs.put("MonthTotal", "" + user.getMonthTotal());
phs.put("Total", "" + user.getAllTimeTotal());
phs.put("DailyTotal", "" + user.getTotal(TopVoter.Daily));
phs.put("WeekTotal", "" + user.getTotal(TopVoter.Weekly));
phs.put("MonthTotal", "" + user.getTotal(TopVoter.Monthly));
phs.put("Total", "" + user.getTotal(TopVoter.AllTime));
sites = ArrayUtils.getInstance().replacePlaceHolder(sites, phs);
}
@@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
@@ -55,14 +55,13 @@ public class CommandAdminVote implements CommandExecutor {
/*
* (non-Javadoc)
*
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
for (CommandHandler commandHandler : plugin.adminVoteCommand) {
for (CommandHandler commandHandler : plugin.getAdminVoteCommand()) {
if (commandHandler.runCommand(sender, args)) {
return true;
}
@@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -32,7 +32,6 @@ public class CommandAliases implements CommandExecutor {
/*
* (non-Javadoc)
*
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
@@ -50,9 +49,9 @@ public class CommandAliases implements CommandExecutor {
ArrayList<CommandHandler> handles = new ArrayList<CommandHandler>();
if (adminCommand) {
handles.addAll(plugin.adminVoteCommand);
handles.addAll(plugin.getAdminVoteCommand());
} else {
handles.addAll(plugin.voteCommand);
handles.addAll(plugin.getVoteCommand());
}
for (CommandHandler cmdHandle : handles) {
@@ -82,7 +81,7 @@ public class CommandAliases implements CommandExecutor {
}
}
}
/*
* for (String arg : cmdHandle.getArgs()[0].split("&")) { argsNew.set(0, arg);
* if (cmdHandle.runCommand(sender, Utils.getInstance().convertArray(argsNew)))
@@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
// TODO: Auto-generated Javadoc
@@ -47,7 +47,6 @@ public class CommandVote implements CommandExecutor {
/*
* (non-Javadoc)
*
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
@@ -55,7 +54,7 @@ public class CommandVote implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
for (CommandHandler commandHandler : plugin.voteCommand) {
for (CommandHandler commandHandler : plugin.getVoteCommand()) {
if (commandHandler.runCommand(sender, args)) {
return true;
}
@@ -8,6 +8,11 @@ import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
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.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;
@@ -16,12 +21,10 @@ import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.InputMethod;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.ValueRequest;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.ValueRequestBuilder;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.BooleanListener;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.NumberListener;
import com.Ben12345rocks.AdvancedCore.Util.ValueRequest.Listeners.StringListener;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
public class AdminGUI {
@@ -52,41 +55,34 @@ public class AdminGUI {
*/
public ArrayList<BInventoryButton> adminGUIButtons() {
ArrayList<BInventoryButton> buttons = new ArrayList<BInventoryButton>();
ArrayList<String> lore = new ArrayList<String>();
lore.add("&cOnly enabled sites are listed in this section");
lore.add("&cMiddle Click to create");
buttons.add(new BInventoryButton("&cVoteSites", ArrayUtils.getInstance().convert(lore),
buttons.add(new BInventoryButton("&cVoteSites",
new String[] { "&cOnly enabled sites are listed in this section", "&cMiddle Click to create" },
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
if (event.getClick().equals(ClickType.MIDDLE)) {
Player player = event.getPlayer();
if (event.getClick().equals(ClickType.MIDDLE)) {
new ValueRequest().requestString(player, new StringListener() {
new ValueRequest().requestString(player, new StringListener() {
@Override
public void onInput(Player player, String value) {
ConfigVoteSites.getInstance().generateVoteSite(value);
player.sendMessage("Generated site");
plugin.reload();
}
});
} else {
openAdminGUIVoteSites(player);
}
@Override
public void onInput(Player player, String value) {
ConfigVoteSites.getInstance().generateVoteSite(value);
player.sendMessage("Generated site");
plugin.reload();
}
});
} else {
openAdminGUIVoteSites(player);
}
}
});
lore = new ArrayList<String>();
buttons.add(new BInventoryButton("&cReload Plugin", ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE, 1, (short) 3)) {
buttons.add(new BInventoryButton("&cReload Plugin", new String[] {}, new ItemStack(Material.STONE, 1)) {
@Override
public void onClick(ClickEvent event) {
event.getPlayer().performCommand("av reload");
plugin.reload();
}
});
@@ -115,8 +111,6 @@ public class AdminGUI {
lore.add("ServiceSite: " + voteSite.getServiceSite());
lore.add("VoteURL: " + voteSite.getVoteURL());
lore.add("VoteDelay: " + voteSite.getVoteDelay());
// lore.add("Rewards: " +
// ArrayUtils.getInstance().makeStringList(voteSite.getRewards()));
inv.addButton(count, new BInventoryButton(voteSite.getKey(), ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE)) {
@@ -143,7 +137,7 @@ public class AdminGUI {
* the vote site
*/
public void openAdminGUIVoteSiteSite(Player player, VoteSite voteSite) {
BInventory inv = new BInventory("VoteSite: " + voteSite.getDisplayName());
EditGUI inv = new EditGUI("VoteSite: " + voteSite.getDisplayName());
inv.setMeta(player, "VoteSite", voteSite);
inv.addButton(new BInventoryButton(voteSite.getItem().setName("&cForce vote")) {
@@ -161,7 +155,8 @@ public class AdminGUI {
Object ob = PlayerUtils.getInstance().getPlayerMeta(player, "VoteSite");
if (ob != null) {
VoteSite site = (VoteSite) ob;
VotiferEvent.playerVote(value, site.getServiceSite(), false);
PlayerVoteEvent voteEvent = new PlayerVoteEvent(site, value, site.getServiceSite(), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
}
}, ArrayUtils.getInstance().convert(playerNames)).usingMethod(InputMethod.INVENTORY)
@@ -169,137 +164,91 @@ public class AdminGUI {
}
});
inv.addButton(new BInventoryButton("SetPriority", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("Priority", voteSite.getPriority()) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
new ValueRequest().requestNumber(player, "" + voteSite.getPriority(), null, new NumberListener() {
@Override
public void onInput(Player player, Number value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), value.intValue());
player.sendMessage("Set Priority");
plugin.reload();
}
});
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 BInventoryButton("SetServiceSite", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new EditGUIButton(new EditGUIValueString("ServiceSite", voteSite.getServiceSite()) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null, new StringListener() {
@Override
public void onInput(Player player, String value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setServiceSite(siteName, value);
player.sendMessage("Set ServiceSite");
plugin.reload();
}
});
}
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setServiceSite(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new BInventoryButton("SetName", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new EditGUIButton(new EditGUIValueString("Name", voteSite.getDisplayName()) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null, new StringListener() {
@Override
public void onInput(Player player, String value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), value);
player.sendMessage("Set name");
plugin.reload();
}
});
}
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 BInventoryButton("SetVoteURL", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new EditGUIButton(new EditGUIValueString("VoteURL", voteSite.getVoteURL()) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
new ValueRequest().requestString(player, voteSite.getVoteURL(), null, new StringListener() {
@Override
public void onInput(Player player, String value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteURL(siteName, value);
player.sendMessage("Set VoteURL");
plugin.reload();
}
});
}
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteURL(siteName, value);
plugin.reload();
}
});
}));
inv.addButton(new BInventoryButton("SetVoteDelay", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new EditGUIButton(new EditGUIValueNumber("VoteDelay", voteSite.getVoteDelay()) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
new ValueRequest().requestNumber(player, "" + voteSite.getVoteDelay(), null, new NumberListener() {
@Override
public void onInput(Player player, Number value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelay(siteName, value.intValue());
player.sendMessage("Set VoteDelay");
plugin.reload();
}
});
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelay(siteName, num.intValue());
plugin.reload();
}
});
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetEnabled", new String[0], new ItemStack(Material.STONE)) {
}));
@Override
public void onClick(ClickEvent event) {
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("Enabled", voteSite.isEnabled()) {
Player player = event.getWhoClicked();
new ValueRequest().requestBoolean(player,
"" + ConfigVoteSites.getInstance().getVoteSiteEnabled(voteSite.getKey()),
new BooleanListener() {
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setEnabled(siteName, value);
plugin.reload();
}
}));
@Override
public void onInput(Player player, boolean value) {
VoteSite voteSite = (VoteSite) event.getMeta("VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setEnabled(siteName, value);
player.sendMessage("Set Enabled");
plugin.reload();
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("ForceOffline", voteSite.isGiveOffline()) {
}
});
}
});
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setForceOffline(siteName, value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("VoteDelayDaily", voteSite.isVoteDelayDaily()) {
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, value);
plugin.reload();
}
}));
inv.openInventory(player);
}
@@ -1,15 +1,19 @@
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;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory.ClickEvent;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
@@ -21,12 +25,11 @@ import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.TopVoter;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteShop.VoteShop;
public class PlayerGUIs {
static PlayerGUIs instance = new PlayerGUIs();
@@ -49,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) {
@@ -107,12 +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().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));
@@ -120,6 +142,7 @@ public class PlayerGUIs {
String[] lore = new String[1];
lore = ArrayUtils.getInstance().convert(Config.getInstance().getVoteGUISlotLore(slot));
if (lore.length == 0) {
if (slot.equalsIgnoreCase("url")) {
lore = Commands.getInstance().voteURLs(user);
@@ -147,36 +170,56 @@ public class PlayerGUIs {
}
}
builder.setLore(lore);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("points", "" + user.getPoints());
inv.addButton(Config.getInstance().getVoteGUISlotSlot(slot), new BInventoryButton(builder) {
builder.setPlaceholders(placeholders);
builder.setLore(ArrayUtils.getInstance().convert(lore));
inv.addButton(new BInventoryButton(builder) {
@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")) {
VoteShop.getInstance().voteShop(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);
}
}
}
}
});
}
});
@@ -201,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);
@@ -230,18 +266,115 @@ 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);
}
public void openVoteShop(Player player) {
if (!Config.getInstance().getVoteShopEnabled()) {
player.sendMessage(StringUtils.getInstance().colorize("&cVote shop disabled"));
return;
}
BInventory inv = new BInventory(Config.getInstance().getVoteShopName());
for (final String identifier : Config.getInstance().getIdentifiers()) {
String perm = Config.getInstance().getVoteShopPermission(identifier);
boolean hasPerm = false;
if (perm.isEmpty()) {
hasPerm = true;
} else {
hasPerm = player.hasPermission(perm);
}
int limit = Config.getInstance().getIdentifierLimit(identifier);
boolean limitPass = true;
if (limit > 0) {
User user = UserManager.getInstance().getVotingPluginUser(player);
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
}
}
if (!Config.getInstance().getVoteShopNotBuyable(identifier)) {
if (hasPerm && (limitPass || !Config.getInstance().isVoteShopHideLimitedReached())) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(new BInventoryButton(builder) {
@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) {
// 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)) {
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);
}
} else {
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
} else {
user.sendMessage(Config.getInstance().getVoteShopLimitReached());
}
}
}
}.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(getBackButton());
}
inv.openInventory(player);
}
public void openVoteStreak(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(StringUtils.getInstance()
@@ -304,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);
@@ -319,12 +446,15 @@ public class PlayerGUIs {
public void openVoteToday(Player player) {
setSelectedPlayer(player, null);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTodayName());
for (User user : plugin.voteToday.keySet()) {
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
for (User user : plugin.getVoteToday().keySet()) {
for (VoteSite voteSite : plugin.voteToday.get(user).keySet()) {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getInstance().getFormatTimeFormat());
String timeString = plugin.voteToday.get(user).get(voteSite).format(formatter);
String msg = "&6" + user.getPlayerName() + " : " + voteSite.getDisplayName() + " : " + timeString;
String timeString = plugin.getVoteToday().get(user).get(voteSite).format(formatter);
String msg = "&6" + voteSite.getDisplayName() + " : " + timeString;
inv.addButton(inv.getNextSlot(), new BInventoryButton(user.getPlayerName(), new String[] { msg },
MiscUtils.getInstance().setSkullOwner(user.getOfflinePlayer())) {
@@ -333,70 +463,105 @@ 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();
}
BInventory inv = null;
Set<Entry<User, Integer>> users = null;
String topVoter = "";
if (top.equals(TopVoter.Monthly)) {
topVoter = Config.getInstance().getFormatTopVoterMonthly();
users = plugin.topVoterMonthly.entrySet();
} else if (top.equals(TopVoter.Weekly)) {
topVoter = Config.getInstance().getFormatTopVoterWeekly();
users = plugin.topVoterWeekly.entrySet();
} else if (top.equals(TopVoter.Daily)) {
topVoter = Config.getInstance().getFormatTopVoterDaily();
users = plugin.topVoterDaily.entrySet();
} else {
topVoter = Config.getInstance().getFormatTopVoterAllTime();
users = plugin.topVoterAllTime.entrySet();
String topVoter = top.getName();
users = plugin.getTopVoter(top).entrySet();
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteTopName(), "topvoter", topVoter));
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
inv = new BInventory(StringUtils.getInstance().replacePlaceHolder(Config.getInstance().getGUIVoteTopName(),
"topvoter", topVoter));
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++;
}
final TopVoter cur = top;
inv.getPageButtons().add(new BInventoryButton(
new ItemBuilder(Config.getInstance().getGUIVoteTopSwitchItem()).addPlaceholder("Top", topVoter)) {
@@ -412,14 +577,9 @@ 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);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
@@ -430,47 +590,21 @@ public class PlayerGUIs {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteTotalName(), "player", user.getPlayerName()));
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalDayTotalItem())
.addPlaceholder("Total", "" + user.getDailyTotal())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalWeekTotalItem())
.addPlaceholder("Total", "" + user.getWeeklyTotal())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalMonthTotalItem())
.addPlaceholder("Total", "" + user.getMonthTotal())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalAllTimeTotalItem())
.addPlaceholder("Total", "" + user.getAllTimeTotal())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
if (Config.getInstance().getGUIVoteTotalBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
for (TopVoter top : TopVoter.values()) {
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalItem(top))
.addPlaceholder("Total", "" + user.getTotal(top)).addPlaceholder("topvoter", top.getName())) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
public void onClick(ClickEvent clickEvent) {
}
});
}
if (Config.getInstance().getGUIVoteTotalBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
@@ -506,8 +640,6 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
User user = UserManager.getInstance().getVotingPluginUser(event.getPlayer());
Player player = event.getWhoClicked();
player.closeInventory();
user.sendMessage(Commands.getInstance().voteURLs(user));
}
@@ -516,9 +648,8 @@ public class PlayerGUIs {
count++;
}
for (VoteSite voteSite : plugin.getVoteSites()) {
for (final VoteSite voteSite : plugin.getVoteSites()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteURLAlreadyVotedItemSection());
if (user.canVoteSite(voteSite)) {
builder = new ItemBuilder(Config.getInstance().getVoteURLCanVoteItemSection());
} else {
@@ -532,17 +663,19 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
Player player = event.getPlayer();
if (player != null) {
player.closeInventory();
User user = UserManager.getInstance().getVotingPluginUser(player);
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getGUIVoteURLURLText(), "voteurl",
voteSite.getVoteURL()), "sitename", voteSite.getDisplayName()),
"player", player.getName()));
if (Config.getInstance().isCommandsVoteRewardFromVoteURL()
&& event.getClick().equals(ClickType.RIGHT)) {
voteReward(player, voteSite.getKey());
} else {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().getGUIVoteURLURLText(), "voteurl",
voteSite.getVoteURL()), "sitename", voteSite.getDisplayName()),
"player", player.getName()));
}
}
}
@@ -551,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);
@@ -570,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")) {
@@ -590,7 +720,7 @@ public class PlayerGUIs {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.WATCH).setName("&4Last Vote")
inv.addButton(new BInventoryButton(new ItemBuilder(Material.CLOCK).setName("&4Last Vote")
.addLoreLine(Commands.getInstance().voteCommandLastLine(user, site))) {
@Override
@@ -600,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);
}
@@ -627,26 +751,19 @@ public class PlayerGUIs {
BInventory inv = new BInventory(Config.getInstance().getGUIVoteRewardName());
if ((siteName == null) || (siteName == "")) {
int count = 0;
for (VoteSite voteSite : plugin.getVoteSites()) {
try {
ItemBuilder builder = voteSite.getItem();
final VoteSite site = voteSite;
inv.addButton(count, new BInventoryButton(builder) {
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
if (player != null) {
player.closeInventory();
player.performCommand("vote reward " + site.getKey());
}
voteReward(player, (String) getData("site"));
}
});
count++;
}.addData("site", voteSite.getKey()));
} catch (Exception ex) {
}
@@ -660,10 +777,6 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
if (player != null) {
player.closeInventory();
}
}
@@ -671,6 +784,10 @@ public class PlayerGUIs {
}
}
if (Config.getInstance().isVoteRewardBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
}
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import com.Ben12345rocks.AdvancedCore.Objects.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -24,7 +24,6 @@ public class AdminVoteTabCompleter implements TabCompleter {
/*
* (non-Javadoc)
*
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
@@ -36,7 +35,7 @@ public class AdminVoteTabCompleter implements TabCompleter {
Set<String> cmds = new HashSet<String>();
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.adminVoteCommand, sender, args,
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.getAdminVoteCommand(), sender, args,
args.length - 1));
for (String str : cmds) {
@@ -11,8 +11,8 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Objects.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -28,9 +28,10 @@ public class AliasesTabCompleter implements TabCompleter {
/** The cmd handle. */
public CommandHandler cmdHandle;
private boolean adminCommand;
/*
* (non-Javadoc)
*
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
@@ -52,9 +53,9 @@ public class AliasesTabCompleter implements TabCompleter {
ArrayList<CommandHandler> cmdHandlers = new ArrayList<CommandHandler>();
if (adminCommand) {
cmdHandlers.addAll(plugin.adminVoteCommand);
cmdHandlers.addAll(plugin.getAdminVoteCommand());
} else {
cmdHandlers.addAll(plugin.voteCommand);
cmdHandlers.addAll(plugin.getVoteCommand());
}
ConcurrentHashMap<String, ArrayList<String>> tabCompletes = TabCompleteHandler.getInstance()
.getTabCompleteOptions();
@@ -102,6 +103,4 @@ public class AliasesTabCompleter implements TabCompleter {
return this;
}
private boolean adminCommand;
}
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import com.Ben12345rocks.AdvancedCore.Objects.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -25,7 +25,6 @@ public class VoteTabCompleter implements TabCompleter {
/*
* (non-Javadoc)
*
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
@@ -37,7 +36,7 @@ public class VoteTabCompleter implements TabCompleter {
Set<String> cmds = new HashSet<String>();
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.voteCommand, sender, args,
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.getVoteCommand(), sender, args,
args.length - 1));
for (String str : cmds) {
@@ -7,8 +7,16 @@ import java.util.Set;
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;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import lombok.Getter;
// TODO: Auto-generated Javadoc
/**
@@ -31,6 +39,254 @@ public class Config extends YMLFile {
return instance;
}
@ConfigDataString(
path = "Format.Commands.Vote.ToggleBroadcasts.Enabled", defaultValue = "&cYou will now see vote broadcasts"
)
@Getter
private String formatCommandsVoteToggleBroadcastEnabled;
@ConfigDataString(
path = "Format.Commands.Vote.ToggleBroadcasts.Disabled",
defaultValue = "&cYou will no longer see vote broadcasts"
)
@Getter
private String formatCommandsVoteToggleBroadcastDisabled;
@ConfigDataBoolean(path = "Commands.VoteRewardFromVoteURL")
@Getter
private boolean commandsVoteRewardFromVoteURL = false;
@ConfigDataString(path = "Format.Commands.Vote.Last.TimeFormat", defaultValue = "%amount% %TimeType%")
@Getter
private String formatCommandsVoteLastTimeFormat;
@ConfigDataString(path = "Format.Commands.Vote.Last.Line", defaultValue = "&3%SiteName%: &6%timeSince% ago")
@Getter
private String formatCommandsVoteLastLine;
@ConfigDataString(path = "Format.Commands.Vote.Last.NeverVoted", defaultValue = "Never voted")
@Getter
private String formatCommandsVoteLastNeverVoted;
@ConfigDataString(path = "Format.Commands.Vote.Last.LastVoted", defaultValue = "%times% ago")
@Getter
private String formatCommandsVoteLastLastVoted;
@ConfigDataString(path = "Format.TimeFormats.Days", defaultValue = "Days")
@Getter
private String formatTimeFormatsDays;
@ConfigDataString(path = "Format.TimeFormats.Day", defaultValue = "Day")
@Getter
private String formatTimeFormatsDay;
@ConfigDataString(path = "Format.TimeFormats.Hours", defaultValue = "Hours")
@Getter
private String formatTimeFormatsHours;
@ConfigDataString(path = "Format.TimeFormats.Hour", defaultValue = "Hour")
@Getter
private String formatTimeFormatsHour;
@ConfigDataString(path = "Format.TimeFormats.Minutes", defaultValue = "Minutes")
@Getter
private String formatTimeFormatsMinutes;
@ConfigDataString(path = "Format.TimeFormats.Minute", defaultValue = "Minute")
@Getter
private String formatTimeFormatsMinute;
@ConfigDataString(path = "Format.TimeFormats.Seconds", defaultValue = "Seconds")
@Getter
private String formatTimeFormatsSeconds;
@ConfigDataString(path = "Format.TimeFormats.Second", defaultValue = "Second")
@Getter
private String formatTimeFormatsSecond;
@ConfigDataBoolean(path = "Commands.DisableVoteRewardGUIs")
@Getter
private boolean commandsDisableVoteRewardGUIs;
@ConfigDataBoolean(path = "AlwaysUpdate")
@Getter
private boolean alwaysUpdate = false;
@ConfigDataBoolean(path = "UpdateWithPlayersOnlineOnly")
@Getter
private boolean updateWithPlayersOnlineOnly = false;
@ConfigDataBoolean(path = "AllowUnjoined")
@Getter
private boolean allowUnjoined = false;
@ConfigDataBoolean(path = "AddTotals")
@Getter
private boolean addTotals = true;
@Getter
private String allSitesRewardPath = "AllSites";
@ConfigDataBoolean(path = "AlternateUUIDLookup")
@Getter
private boolean alternateUUIDLookup = false;
@Getter
private String anySiteRewardsPath = "AnySiteRewards";
@ConfigDataBoolean(path = "AutoCreateVoteSites")
@Getter
private boolean autoCreateVoteSites = true;
@ConfigDataBoolean(path = "Format.BroadcastVote")
@Getter
private boolean broadcastVotesEnabled = true;
@ConfigDataBoolean(path = "clearCacheOnUpdate")
@Getter
private boolean clearCacheOnUpdate = false;
@ConfigDataBoolean(path = "ClearCacheOnVote")
@Getter
private boolean clearCacheOnVote = false;
@ConfigDataBoolean(path = "Commands.UseGUI.Best")
@Getter
private boolean commandsUseGUIBest = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Last")
@Getter
private boolean commandsUseGUILast = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Next")
@Getter
private boolean commandsUseGUINext = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Streak")
@Getter
private boolean commandsUseGUIStreak = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Today")
@Getter
private boolean commandsUseGUIToday = true;
@ConfigDataBoolean(path = "Commands.UseGUI.TopVoter")
@Getter
private boolean commandsUseGUITopVoter = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Total")
@Getter
private boolean commandsUseGUITotal = true;
@ConfigDataBoolean(path = "Commands.UseGUI.Vote")
@Getter
private boolean commandsUseGUIVote = true;
@ConfigDataBoolean(path = "CountFakeVotes")
@Getter
private boolean countFakeVotes = true;
@ConfigDataBoolean(path = "GUI.VoteRewardBackButton")
@Getter
private boolean voteRewardBackButton = false;
@ConfigDataInt(path = "ConvertDelay", defaultValue = 30000)
@Getter
private int convertDelay;
@ConfigDataBoolean(path = "EnableDailyRewards")
@Getter
private boolean enableDailyRewards = false;
@ConfigDataBoolean(path = "DisableUpdateChecking")
@Getter
private boolean disableUpdateChecking = false;
@ConfigDataInt(path = "DelayBetweenUpdates")
@Getter
private int delayBetweenUpdates = 3;
@ConfigDataBoolean(path = "DisableNoServiceSiteMessage")
@Getter
private boolean disableNoServiceSiteMessage = false;
@ConfigDataBoolean(path = "DisableAdvancedTab")
@Getter
private boolean disableAdvancedTab = false;
@Getter
private String firstVoteRewardsPath = "FirstVote";
@ConfigDataBoolean(path = "LogVotesToFile")
@Getter
private boolean logVotesToFile = false;
@ConfigDataBoolean(path = "EnableMonthlyAwards")
@Getter
private boolean enableMonthlyAwards = false;
@Getter
private String votePartyRewardsPath = "VoteParty.Rewards";
@ConfigDataBoolean(path = "EnableWeeklyAwards")
@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.
*/
@@ -38,55 +294,6 @@ public class Config extends YMLFile {
super(new File(Main.plugin.getDataFolder(), "Config.yml"));
}
/**
* Allow un joined.
*
* @return true, if successful
*/
public boolean allowUnJoined() {
return getData().getBoolean("AllowUnjoined");
}
/**
* Gets the all sites reward.
*
* @return the all sites reward
*/
public String getAllSitesRewardPath() {
return "AllSites";
}
public boolean getAlternateUUIDLookup() {
return getData().getBoolean("AlternateUUIDLookup");
}
/**
* Gets the rewards.
*
* @return the rewards
*/
public String getAnySiteRewardsPath() {
return "AnySiteRewards";
}
/**
* Gets the auto create vote sites.
*
* @return the auto create vote sites
*/
public boolean getAutoCreateVoteSites() {
return getData().getBoolean("AutoCreateVoteSites");
}
public boolean getAutoDownload() {
return getData().getBoolean("AutoDownload");
}
public boolean getAutoKillInvs() {
return getData().getBoolean("AutoKillInvs", true);
}
public ConfigurationSection getBackButton() {
return getData().getConfigurationSection("BackButton");
}
@@ -101,59 +308,6 @@ public class Config extends YMLFile {
return (ArrayList<String>) getData().getList("BlackList", new ArrayList<String>());
}
/**
* Gets the broad cast votes enabled.
*
* @return the broad cast votes enabled
*/
public boolean getBroadCastVotesEnabled() {
return getData().getBoolean("BroadcastVote", true);
}
public boolean getDisableCheckOnWorldChange() {
return getData().getBoolean("DisableCheckOnWorldChange");
}
public boolean getClearCacheOnUpdate() {
return getData().getBoolean("ClearCacheOnUpdate");
}
public boolean getCommandsUseGUIBest() {
return getData().getBoolean("Commands.UseGUI.Best");
}
public boolean getCommandsUseGUILast() {
return getData().getBoolean("Commands.UseGUI.Last", true);
}
public boolean getCommandsUseGUINext() {
return getData().getBoolean("Commands.UseGUI.Next", true);
}
public boolean getCommandsUseGUIStreak() {
return getData().getBoolean("Commands.UseGUI.Streak");
}
public boolean getCommandsUseGUIToday() {
return getData().getBoolean("Commands.UseGUI.Today", true);
}
public boolean getCommandsUseGUITopVoter() {
return getData().getBoolean("Commands.UseGUI.TopVoter", true);
}
public boolean getCommandsUseGUITotal() {
return getData().getBoolean("Commands.UseGUI.Total", true);
}
public boolean getCommandsUseGUIVote() {
return getData().getBoolean("Commands.UseGUI.Vote", true);
}
public boolean getCountFakeVotes() {
return getData().getBoolean("CountFakeVotes", true);
}
/**
* Gets the cumulative reward enabled.
*
@@ -208,24 +362,8 @@ public class Config extends YMLFile {
return getData().getBoolean("Cumulative." + cumulative + ".VotesInSameWeek");
}
/**
* Gets the daily award rewards path
*
* @param pos
* the pos
* @return the daily award rewards
*/
public String getDailyAwardRewardsPath(int pos) {
return "DailyAwards." + pos + ".Rewards";
}
/**
* Gets the daily awards enabled.
*
* @return the daily awards enabled
*/
public boolean getDailyAwardsEnabled() {
return getData().getBoolean("EnableDailyAwards");
public String getDailyAwardRewardsPath(String path) {
return "DailyAwards." + path + ".Rewards";
}
/**
@@ -242,49 +380,6 @@ public class Config extends YMLFile {
}
}
public String getDataStorage() {
return getData().getString("DataStorage", "FLAT");
}
/**
* Gets the debug enabled.
*
* @return the debug enabled
*/
public boolean getDebugEnabled() {
return getData().getBoolean("Debug");
}
/**
* Gets the debug info ingame.
*
* @return the debug info ingame
*/
public boolean getDebugInfoIngame() {
return getData().getBoolean("DebugInfoIngame");
}
public int getDelayBetweenUpdates() {
return getData().getInt("DelayBetweenUpdates", 3);
}
public boolean getDisableNoServiceSiteMessage() {
return getData().getBoolean("DisableNoServiceSiteMessage");
}
public boolean getExtraDebug() {
return getData().getBoolean("ExtraDebug");
}
/**
* Gets the first vote rewards.
*
* @return the first vote rewards
*/
public String getFirstVoteRewardsPath() {
return "FirstVote";
}
/**
* Gets the broad cast msg.
*
@@ -351,15 +446,6 @@ public class Config extends YMLFile {
}
/**
* Gets the commands vote last line.
*
* @return the commands vote last line
*/
public String getFormatCommandsVoteLastLine() {
return getData().getString("Format.Commands.Vote.Last.Line", "&3%SiteName%: &6%time%");
}
/**
* Gets the commands vote last title.
*
@@ -549,15 +635,6 @@ public class Config extends YMLFile {
return getData().getString("Format.NotNumber", "&cError on &6%arg%&c, number expected!");
}
/**
* Gets the page size.
*
* @return the page size
*/
public int getFormatPageSize() {
return 10;
}
public String getFormatPrevPage() {
return getData().getString("Format.PrevPage", "&aPrevious Page");
}
@@ -661,6 +738,10 @@ public class Config extends YMLFile {
return getData().getString("Format.TopVoter.Weekly", "Weekly");
}
public String getFormatUserNotExist() {
return getData().getString("Format.UserNotExist", "&cUser does not exist: %player%");
}
/**
* Gets the vote help.
*
@@ -671,6 +752,10 @@ public class Config extends YMLFile {
return (ArrayList<String>) getData().getList("Format.Commands.Vote.Help.Lines", new ArrayList<String>());
}
public boolean getGiveDefaultPermission() {
return getData().getBoolean("GiveDefaultPermission", true);
}
public ConfigurationSection getGUIVoteBestDayBestItem() {
return getData().getConfigurationSection("GUI.VoteBest.DayBest.Item");
}
@@ -787,6 +872,22 @@ public class Config extends YMLFile {
return getData().getConfigurationSection("GUI.VoteTotal.DayTotal.Item");
}
public ConfigurationSection getGUIVoteTotalItem(TopVoter top) {
switch (top) {
case AllTime:
return getGUIVoteTotalAllTimeTotalItem();
case Daily:
return getGUIVoteTotalDayTotalItem();
case Monthly:
return getGUIVoteTotalMonthTotalItem();
case Weekly:
return getGUIVoteTotalWeekTotalItem();
default:
return getGUIVoteTotalAllTimeTotalItem();
}
}
public ConfigurationSection getGUIVoteTotalMonthTotalItem() {
return getData().getConfigurationSection("GUI.VoteTotal.MonthTotal.Item");
}
@@ -807,29 +908,20 @@ public class Config extends YMLFile {
return getData().getString("GUI.VoteURL.Name", "&cVoteURL");
}
public String getGUIVoteURLURLText() {
return getData().getString("GUI.VoteURL.URLText", "%VoteUrl%");
}
public String getGUIVoteURLSiteName() {
return getData().getString("GUI.VoteURLSite.Name", "VoteSite %site%");
}
public String getGUIVoteURLURLText() {
return getData().getString("GUI.VoteURL.URLText", "%VoteUrl%");
}
public int getIdentifierCost(String identifier) {
return getData().getInt("Shop." + identifier + ".Cost");
}
public String getIdentifierFromSlot(int slot) {
for (String identifier : getIdentifiers()) {
if (getIdentifierSlot(identifier) == slot) {
return identifier;
}
}
return null;
}
public int getIdentifierItemAmount(String identifier) {
return getData().getInt("Shop." + identifier + ".Item.Amount");
public int getIdentifierLimit(String identifier) {
return getData().getInt("Shop." + identifier + ".Limit", -1);
}
public String getIdentifierRewardsPath(String identifier) {
@@ -845,16 +937,23 @@ public class Config extends YMLFile {
return new HashSet<String>();
}
public boolean getCheckNameMojang() {
return getData().getBoolean("CheckNameMojang", true);
}
public ConfigurationSection getIdentifierSection(String identifier) {
return getData().getConfigurationSection("Shop." + identifier);
}
public int getIdentifierSlot(String identifier) {
return getData().getInt("Shop." + identifier + ".Slot");
public boolean getLoadTopVoter(TopVoter top) {
switch (top) {
case AllTime:
return getLoadTopVoterAllTime();
case Daily:
return getLoadTopVoterDaily();
case Monthly:
return getLoadTopVoterMonthly();
case Weekly:
return getLoadTopVoterWeekly();
default:
return false;
}
}
public boolean getLoadTopVoterAllTime() {
@@ -873,24 +972,6 @@ public class Config extends YMLFile {
return getData().getBoolean("LoadTopVoter.Weekly");
}
/**
* Gets the log debug to file.
*
* @return the log debug to file
*/
public boolean getLogDebugToFile() {
return getData().getBoolean("LogDebugToFile", true);
}
/**
* Gets the log votes to file.
*
* @return the log votes to file
*/
public boolean getLogVotesToFile() {
return getData().getBoolean("LogVotesToFile");
}
/**
* Gets the milestone reward enabled.
*
@@ -930,24 +1011,8 @@ public class Config extends YMLFile {
}
}
/**
* Gets the monthly award rewards.
*
* @param pos
* the pos
* @return the monthly award rewards
*/
public String getMonthlyAwardRewardsPath(int pos) {
return "MonthlyAwards." + pos + ".Rewards";
}
/**
* Gets the monthly awards enabled.
*
* @return the monthly awards enabled
*/
public boolean getMonthlyAwardsEnabled() {
return getData().getBoolean("EnableMonthlyAwards");
public String getMonthlyAwardRewardsPath(String path) {
return "MonthlyAwards." + path + ".Rewards";
}
/**
@@ -963,14 +1028,18 @@ public class Config extends YMLFile {
}
}
public ConfigurationSection getMySql() {
return getData().getConfigurationSection("MySQL");
}
public int getPointsOnVote() {
return getData().getInt("PointsOnVote", 1);
}
public int getPurgeMin() {
return getData().getInt("PurgeMin", 90);
}
public boolean getPurgeOldData() {
return getData().getBoolean("PurgeOldData");
}
/**
* Gets the request API default method.
*
@@ -994,15 +1063,6 @@ public class Config extends YMLFile {
return getData().getBoolean("ResetMilestonesMonthly");
}
/**
* Gets the send scoreboards.
*
* @return the send scoreboards
*/
public boolean getSendScoreboards() {
return getData().getBoolean("SendScoreboards");
}
/**
* Gets the store top voters daily.
*
@@ -1030,12 +1090,12 @@ public class Config extends YMLFile {
return getData().getBoolean("StoreTopVoters.Weekly");
}
public boolean getTopVoterIgnorePermission() {
return getData().getBoolean("TopVoterIgnorePermission");
public boolean getTopVoterAwardsTies() {
return getData().getBoolean("TopVoterAwardsTies", true);
}
public int getUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
public boolean getTopVoterIgnorePermission() {
return getData().getBoolean("TopVoterIgnorePermission");
}
/**
@@ -1059,7 +1119,7 @@ public class Config extends YMLFile {
*/
@SuppressWarnings("unchecked")
public ArrayList<String> getVoteGUISlotLore(String slot) {
return (ArrayList<String>) getData().getList("GUI.VoteGUI." + slot + ".Lore", new ArrayList<String>());
return (ArrayList<String>) getData().getList("GUI.VoteGUI." + slot + ".Item.Lore", new ArrayList<String>());
}
/**
@@ -1087,13 +1147,18 @@ public class Config extends YMLFile {
* @return the vote GUI slot slot
*/
public int getVoteGUISlotSlot(String slot) {
return getData().getInt("GUI.VoteGUI." + slot + ".Slot");
return getData().getInt("GUI.VoteGUI." + slot + ".Slot", -1);
}
public String getVotePartyBroadcast() {
return getData().getString("VoteParty.Broadcast", "");
}
@SuppressWarnings("unchecked")
public ArrayList<String> getVotePartyCommands() {
return (ArrayList<String>) getData().getList("VoteParty.Commands", new ArrayList<String>());
}
public boolean getVotePartyCountFakeVotes() {
return getData().getBoolean("VoteParty.CountFakeVotes", true);
}
@@ -1116,30 +1181,20 @@ public class Config extends YMLFile {
return getData().getBoolean("VoteParty.GiveAllPlayers");
}
public boolean getVotePartyResetEachDay() {
return getData().getBoolean("VoteParty.ResetEachDay");
public int getVotePartyIncreaseVotesRquired() {
return getData().getInt("VoteParty.IncreaseVotesRquired", 0);
}
public boolean getAddTotals() {
return getData().getBoolean("AddTotals", true);
public boolean getVotePartyResetEachDay() {
return getData().getBoolean("VoteParty.ResetEachDay");
}
public boolean getVotePartyResetMontly() {
return getData().getBoolean("VoteParty.ResetMonthly");
}
/**
* Gets the vote party rewards.
*
* @return the vote party rewards
*/
public String getVotePartyRewardsPath() {
return "VoteParty.Rewards";
}
@SuppressWarnings("unchecked")
public ArrayList<String> getVotePartyCommands() {
return (ArrayList<String>) getData().getList("VoteParty.Commands", new ArrayList<String>());
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
@@ -1200,25 +1255,25 @@ public class Config extends YMLFile {
return getData().getBoolean("VoteShopBackButton", true);
}
public boolean getGiveDefaultPermission() {
return getData().getBoolean("GiveDefaultPermission", true);
public boolean getVoteShopEnabled() {
return getData().getBoolean("VoteShopEnabled", true);
}
public String getVoteShopName() {
return getData().getString("GUI.VoteShopName", "VoteShop");
}
public String getFormatUserNotExist() {
return getData().getString("Format.UserNotExist", "&cUser does not exist: %player%");
public String getVoteShopPermission(String ident) {
return getData().getString("Shop." + ident + ".Permission", "");
}
public boolean getPurgeOldData() {
return getData().getBoolean("PurgeOldData");
}
@ConfigDataBoolean(path = "OverrideVersionDisable")
@Getter
private boolean overrideVersionDisable = false;
public int getPurgeMin() {
return getData().getInt("PurgeMin", 90);
}
@ConfigDataBoolean(path = "LastMonthGUI")
@Getter
private boolean lastMonthGUI = false;
/**
* Gets the vote site items.
@@ -1255,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.
*
@@ -1349,24 +1408,8 @@ public class Config extends YMLFile {
return getData().getBoolean("GUI.VoteURL.ViewAllUrlsButtonEnabled");
}
/**
* Gets the weekly award rewards.
*
* @param pos
* the pos
* @return the weekly award rewards
*/
public String getWeeklyAwardRewardsPath(int pos) {
return "WeeklyAwards." + pos + ".Rewards";
}
/**
* Gets the weekly awards enabled.
*
* @return the weekly awards enabled
*/
public boolean getWeeklyAwardsEnabled() {
return getData().getBoolean("EnableWeeklyAwards");
public String getWeeklyAwardRewardsPath(String path) {
return "WeeklyAwards." + path + ".Rewards";
}
/**
@@ -1382,104 +1425,13 @@ public class Config extends YMLFile {
}
}
public void loadValues() {
new AnnotationHandler().load(getData(), this);
}
@Override
public void onFileCreation() {
plugin.saveResource("Config.yml", true);
}
/**
* Sets the allow un joined.
*
* @param value
* the new allow un joined
*/
public void setAllowUnJoined(boolean value) {
getData().set("AllowUnjoined", value);
saveData();
}
/**
* Sets the rewards.
*
* @param rewards
* the new rewards
*/
public void setAnySiteRewards(ArrayList<String> rewards) {
getData().set("AnySiteRewards", rewards);
saveData();
}
/**
* Sets the broadcast vote enabled.
*
* @param value
* the new broadcast vote enabled
*/
public void setBroadcastVoteEnabled(boolean value) {
getData().set("BroadcastVote", value);
saveData();
}
/**
* Sets the debug enabled.
*
* @param value
* the new debug enabled
*/
public void setDebugEnabled(boolean value) {
getData().set("Debug", value);
saveData();
}
/**
* Sets the debug info ingame.
*
* @param value
* the new debug info ingame
*/
public void setDebugInfoIngame(boolean value) {
getData().set("DebugInfoIngame", value);
saveData();
}
/**
* Sets the top voter awards enabled.
*
* @param value
* the new top voter awards enabled
*/
public void setTopVoterAwardsEnabled(boolean value) {
getData().set("TopVoterAwards", value);
saveData();
}
public void setVoteRemindingEnabled(boolean value) {
getData().set("VoteReminding.Enabled", value);
saveData();
}
public void setVoteRemindingRemindDelay(int value) {
getData().set("VoteReminding.RemindDelay", value);
saveData();
}
public void setVoteRemindingRemindOnLogin(boolean value) {
getData().set("VoteReminding.RemindOnLogin", value);
saveData();
}
public void setVoteRemindingRemindOnlyOnce(boolean value) {
getData().set("VoteReminding.RemindOnlyOnce", value);
saveData();
}
public void setVoteRemindingRewards(ArrayList<String> value) {
getData().set("VoteReminding.Rewards", value);
saveData();
}
public boolean getClearCacheOnVote() {
return getData().getBoolean("ClearCacheOnVote");
}
}
@@ -51,7 +51,7 @@ public class ConfigVoteSites extends YMLFile {
* the site name
*/
public void generateVoteSite(String siteName) {
if (Config.getInstance().getAutoCreateVoteSites()) {
if (Config.getInstance().isAutoCreateVoteSites()) {
String org = siteName;
siteName = siteName.replace(".", "_");
plugin.getLogger().warning("VoteSite " + siteName
@@ -252,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.
*
@@ -353,6 +357,11 @@ public class ConfigVoteSites extends YMLFile {
set(siteName, "Enabled", disabled);
}
public void setForceOffline(String siteName, boolean value) {
set(siteName, "ForceOffline", value);
}
/**
* Sets the priority.
*
@@ -401,6 +410,10 @@ public class ConfigVoteSites extends YMLFile {
set(siteName, "VoteDelay", voteDelay);
}
public void setVoteDelayDaily(String siteName, boolean value) {
set(siteName, "VoteDelayDaily", value);
}
/**
* Sets the vote URL.
*
@@ -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();
}
}
@@ -10,7 +10,7 @@ import org.bukkit.configuration.ConfigurationSection;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
// TODO: Auto-generated Javadoc
/**
@@ -78,7 +78,7 @@ public class ServerData {
getData().set("Signs." + count + ".Data", data);
getData().set("Signs." + count + ".Position", position);
saveData();
plugin.signs.add(new SignHandler("" + count, getSignLocation("" + count), getSignData("" + count),
plugin.getSigns().add(new SignHandler("" + count, getSignLocation("" + count), getSignData("" + count),
getSignPosition("" + count)));
}
@@ -151,6 +151,10 @@ public class ServerData {
}
}
public int getVotePartyExtraRequired() {
return getData().getInt("VotePartyExtraRequired", 0);
}
/**
* Next sign number.
*
@@ -238,6 +242,11 @@ public class ServerData {
saveData();
}
public void setVotePartyExtraRequired(int value) {
getData().set("VotePartyExtraRequired", value);
saveData();
}
/**
* Update values.
*/
@@ -1,74 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
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.Objects.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerJoinEvent.
*/
public class PlayerJoinEvent implements Listener {
/** The plugin. */
private static Main plugin;
/**
* Instantiates a new player join event.
*
* @param plugin
* the plugin
*/
public PlayerJoinEvent(Main plugin) {
PlayerJoinEvent.plugin = plugin;
}
/**
* On player login.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(PlayerLoginEvent event) {
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (event.getPlayer() == null
|| (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() == null)) {
return;
}
Player player = event.getPlayer();
if (player != null) {
User user = UserManager.getInstance().getVotingPluginUser(player);
// run remind
user.loginMessage();
if (user.getData().hasData()) {
// give offline vote (if they voted
// offline)
user.offVote();
}
}
}
}, 20L);
}
}
@@ -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;
}
}
@@ -5,11 +5,14 @@ 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 PlayerVoteAllSitesEvent extends Event {
public class PlayerSpecialRewardEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
@@ -23,34 +26,26 @@ public class PlayerVoteAllSitesEvent extends Event {
return handlers;
}
@Getter
@Setter
private User user;
/** The cancelled. */
@Getter
@Setter
private SpecialRewardType type;
@Getter
@Setter
private boolean cancelled;
public PlayerVoteAllSitesEvent(User user) {
super();
setUser(user);
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user
* the user to set
*/
public void setUser(User user) {
public PlayerSpecialRewardEvent(User user, SpecialRewardType type) {
super(true);
this.type = type;
this.user = user;
}
/*
* (non-Javadoc)
*
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
@@ -58,23 +53,4 @@ public class PlayerVoteAllSitesEvent extends Event {
return handlers;
}
/**
* Checks if is cancelled.
*
* @return true, if is cancelled
*/
public boolean isCancelled() {
return cancelled;
}
/**
* Sets the cancelled.
*
* @param bln
* the new cancelled
*/
public void setCancelled(boolean bln) {
cancelled = bln;
}
}
@@ -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;
}
}
@@ -5,6 +5,9 @@ import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
@@ -23,24 +26,36 @@ public class PlayerVoteEvent extends Event {
return handlers;
}
/** The player. */
@Getter
@Setter
private String player;
/** The vote site. */
@Getter
@Setter
private VoteSite voteSite;
/** The cancelled. */
@Getter
@Setter
private boolean cancelled;
public PlayerVoteEvent(VoteSite voteSite, String voteUsername) {
super();
setPlayer(voteUsername);
setVoteSite(voteSite);
@Getter
@Setter
private boolean realVote = true;
@Getter
@Setter
private String serviceSite = "";
public PlayerVoteEvent(VoteSite voteSite, String voteUsername, String serviceSite, boolean realVote) {
super(true);
this.player = voteUsername;
this.voteSite = voteSite;
this.realVote = realVote;
this.serviceSite = serviceSite;
}
/*
* (non-Javadoc)
*
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
@@ -48,55 +63,4 @@ public class PlayerVoteEvent extends Event {
return handlers;
}
/**
* Gets the player.
*
* @return the player
*/
public String getPlayer() {
return player;
}
/**
* Gets the vote site.
*
* @return the vote site
*/
public VoteSite getVoteSite() {
return voteSite;
}
/**
* Checks if is cancelled.
*
* @return true, if is cancelled
*/
public boolean isCancelled() {
return cancelled;
}
/**
* Sets the cancelled.
*
* @param bln
* the new cancelled
*/
public void setCancelled(boolean bln) {
cancelled = bln;
}
public void setPlayer(String voteUsername) {
this.player = voteUsername;
}
/**
* Sets the vote site.
*
* @param voteSite
* the new vote site
*/
public void setVoteSite(VoteSite voteSite) {
this.voteSite = voteSite;
}
}
@@ -0,0 +1,24 @@
package com.Ben12345rocks.VotingPlugin.Events;
import lombok.Getter;
public enum SpecialRewardType {
ALLSITE, CUMMULATIVE, MILESTONE, VOTESTREAK, FIRSTVOTE;
@Getter
private int amount = -1;
@Getter
private String type = "";
public SpecialRewardType setAmount(int num) {
amount = num;
return this;
}
public SpecialRewardType setType(String type) {
this.type = type;
return this;
}
}
@@ -3,6 +3,9 @@ package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
@@ -21,16 +24,16 @@ public class VotePartyEvent extends Event {
return handlers;
}
/** The cancelled. */
@Getter
@Setter
private boolean cancelled;
public VotePartyEvent() {
super();
super(true);
}
/*
* (non-Javadoc)
*
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
@@ -38,23 +41,4 @@ public class VotePartyEvent extends Event {
return handlers;
}
/**
* Checks if is cancelled.
*
* @return true, if is cancelled
*/
public boolean isCancelled() {
return cancelled;
}
/**
* Sets the cancelled.
*
* @param bln
* the new cancelled
*/
public void setCancelled(boolean bln) {
cancelled = bln;
}
}
@@ -1,199 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Objects.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
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.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.OtherRewards.OtherVoteReward;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.vexsoftware.votifier.model.Vote;
import com.vexsoftware.votifier.model.VotifierEvent;
// TODO: Auto-generated Javadoc
/**
* The Class VotiferEvent.
*/
public class VotiferEvent implements Listener {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
private static Object object = new Object();
public static void playerVote(final String playerName, final String voteSiteURL) {
playerVote(playerName, voteSiteURL, true);
}
public static void playerVote(final String playerName, final String voteSiteURL, final boolean realVote) {
if (!PlayerUtils.getInstance().isValidUser(playerName) && !config.allowUnJoined()) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
}
User user = UserManager.getInstance().getVotingPluginUser(playerName);
VoteSite voteSite = plugin.getVoteSite(voteSiteURL);
if (voteSite == null) {
if (!Config.getInstance().getDisableNoServiceSiteMessage()) {
plugin.getLogger().warning("No voting site with the service site: '" + voteSiteURL + "'");
plugin.getLogger().warning(
"Please read here on how to fix it: https://github.com/Ben12345rocks/VotingPlugin/wiki/Common-Problems");
ArrayList<String> services = new ArrayList<String>();
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.warning("Current service sites: " + ArrayUtils.getInstance().makeStringList(services));
}
return;
}
synchronized (object) {
// vote party
VoteParty.getInstance().vote(user, realVote);
// broadcast vote if enabled in config
if (config.getBroadCastVotesEnabled()) {
if (!Config.getInstance().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
}
// update last vote time
user.setTime(voteSite);
OtherVoteReward.getInstance().checkFirstVote(user);
if (user.isReminded()) {
user.setReminded(false);
}
// check if player has voted on all sites in one day
if (user.isOnline() || voteSite.isGiveOffline()) {
user.playerVote(voteSite, true, false);
user.closeInv();
} else {
user.addOfflineVote(voteSite.getKey());
// plugin.debug(ArrayUtils.getInstance().makeStringList(user.getOfflineVotes()));
plugin.debug(
"Offline vote set for " + playerName + " (" + user.getUUID() + ") on " + voteSite.getKey());
}
// add to total votes
if (Config.getInstance().getCountFakeVotes() || realVote) {
if (Config.getInstance().getAddTotals()) {
user.addTotal();
user.addTotalDaily();
user.addTotalWeekly();
}
user.addPoints();
}
OtherVoteReward.getInstance().checkAllSites(user);
OtherVoteReward.getInstance().checkCumualativeVotes(user);
OtherVoteReward.getInstance().checkMilestone(user);
if (Config.getInstance().getClearCacheOnVote()) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().removePlayer(user.getUUID());
}
}
}
plugin.setUpdate(true);
}
/**
* Instantiates a new votifer event.
*
* @param plugin
* the plugin
*/
public VotiferEvent(Main plugin) {
VotiferEvent.plugin = plugin;
}
/**
* On votifer event.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onVotiferEvent(VotifierEvent event) {
Vote vote = event.getVote();
final String voteSite = vote.getServiceName();
final String voteUsername = vote.getUsername().trim();
ServerData.getInstance().addServiceSite(voteSite);
if (voteUsername.length() == 0) {
plugin.getLogger().warning("No name from vote on " + voteSite);
return;
}
plugin.getLogger().info("Recieved a vote from '" + voteSite + "' by player '" + voteUsername + "'!");
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
String voteSiteName = plugin.getVoteSiteName(voteSite);
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
if (sites != null) {
if (!sites.contains(voteSiteName) && Config.getInstance().getAutoCreateVoteSites()) {
plugin.getLogger()
.warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
}
} else if (Config.getInstance().getAutoCreateVoteSites()) {
plugin.getLogger().warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
}
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName), voteUsername);
plugin.getServer().getPluginManager().callEvent(voteEvent);
if (voteEvent.isCancelled()) {
plugin.debug("Vote cancelled");
return;
}
playerVote(voteUsername, voteSite, true);
}
});
}
}
@@ -1,4 +1,4 @@
package com.Ben12345rocks.VotingPlugin.Events;
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -9,7 +9,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
// TODO: Auto-generated Javadoc
/**
@@ -45,7 +45,7 @@ public class BlockBreak implements Listener {
@Override
public void run() {
for (SignHandler sign : plugin.signs) {
for (SignHandler sign : plugin.getSigns()) {
if (sign.getLocation().equals(loc)) {
sign.removeSign();
sign.setValid(false);
@@ -0,0 +1,48 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.util.ArrayList;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
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
/**
* The Class PlayerJoinEvent.
*/
public class PlayerCommandSendListener implements Listener {
@SuppressWarnings("unused")
private static Main plugin;
public PlayerCommandSendListener(Main plugin) {
PlayerCommandSendListener.plugin = plugin;
}
@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()) {
if (CommandLoader.getInstance().isVotingPluginCommand(event.getPlayer(), cmd)) {
if (!CommandLoader.getInstance().hasPermission(event.getPlayer(), cmd) && !whiteListed.contains(cmd)) {
removeCmds.add(cmd);
// plugin.debug("removed " + cmd);
} else {
removeCmds.remove(cmd);
whiteListed.add(cmd);
// plugin.debug("has " + cmd);
}
}
}
event.getCommands().removeAll(removeCmds);
}
}
@@ -1,4 +1,4 @@
package com.Ben12345rocks.VotingPlugin.Events;
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
@@ -9,7 +9,7 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
@@ -44,7 +44,7 @@ public class PlayerInteract implements Listener {
// plugin.debug("Checking for sign click");
if (event.getClickedBlock().getState() instanceof Sign) {
// plugin.debug(player.getName() + " right clicked a sign");
for (SignHandler sign : plugin.signs) {
for (SignHandler sign : plugin.getSigns()) {
if (sign.isLocationSame(event.getClickedBlock().getLocation())) {
// plugin.debug(player.getName() +
// " right clicked a top voter sign, sending message");
@@ -0,0 +1,62 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerJoinEvent.
*/
public class PlayerJoinEvent implements Listener {
/** The plugin. */
@SuppressWarnings("unused")
private static Main plugin;
/**
* Instantiates a new player join event.
*
* @param plugin
* the plugin
*/
public PlayerJoinEvent(Main plugin) {
PlayerJoinEvent.plugin = plugin;
}
/**
* On player login.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(AdvancedCoreLoginEvent event) {
if (event.getPlayer() == null
|| (Main.plugin.getStorageType().equals(UserStorage.MYSQL) && Main.plugin.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");
}
// run remind
user.loginMessage();
if (user.getData().hasData()) {
// give offline vote (if they voted offline)
user.offVote();
}
}
}
@@ -0,0 +1,151 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.util.ArrayList;
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.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
// TODO: Auto-generated Javadoc
/**
* The Class VotiferEvent.
*/
public class PlayerVoteListener implements Listener {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
private static Object object = new Object();
/**
* Instantiates a new votifer event.
*
* @param plugin
* the plugin
*/
public PlayerVoteListener(Main plugin) {
PlayerVoteListener.plugin = plugin;
}
/**
* On votifer event.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onplayerVote(PlayerVoteEvent event) {
String playerName = event.getPlayer();
if (!PlayerUtils.getInstance().isValidUser(playerName)) {
if (!config.isAllowUnjoined()) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
}
}
VoteSite voteSite = event.getVoteSite();
// check valid service sites
if (voteSite == null) {
if (!Config.getInstance().isDisableNoServiceSiteMessage()) {
plugin.getLogger().warning("No voting site with the service site: '" + event.getServiceSite() + "'");
plugin.getLogger().warning(
"Please read here on how to fix it: https://github.com/Ben12345rocks/VotingPlugin/wiki/Common-Problems");
ArrayList<String> services = new ArrayList<String>();
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.warning("Current known service sites: " + ArrayUtils.getInstance().makeStringList(services));
}
return;
}
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.updateName();
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;
}
synchronized (object) {
// vote party
VoteParty.getInstance().vote(user, event.isRealVote());
// broadcast vote if enabled in config
if (config.isBroadcastVotesEnabled()) {
if (!Config.getInstance().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
}
// update last vote time
user.setTime(voteSite);
user.setLastVoteCoolDownCheck(false, voteSite);
// check first vote rewards
SpecialRewards.getInstance().checkFirstVote(user);
if (user.isReminded()) {
user.setReminded(false);
}
// check if player has voted on all sites in one day
if ((user.isOnline() || voteSite.isGiveOffline()) && Main.plugin.getOptions().isProcessRewards()) {
user.playerVote(voteSite, true, false);
user.closeInv();
} else {
user.addOfflineVote(voteSite.getKey());
plugin.debug(
"Offline vote set for " + playerName + " (" + user.getUUID() + ") on " + voteSite.getKey());
}
// add to total votes
if (Config.getInstance().isCountFakeVotes() || event.isRealVote()) {
if (Config.getInstance().isAddTotals()) {
user.addTotal();
user.addTotalDaily();
user.addTotalWeekly();
}
user.addPoints();
}
user.checkDayVoteStreak();
// other rewards
SpecialRewards.getInstance().checkAllSites(user);
SpecialRewards.getInstance().checkCumualativeVotes(user);
SpecialRewards.getInstance().checkMilestone(user);
}
plugin.setUpdate(true);
}
}
@@ -1,4 +1,4 @@
package com.Ben12345rocks.VotingPlugin.Events;
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
@@ -0,0 +1,122 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.util.ArrayList;
import org.bukkit.Bukkit;
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;
// TODO: Auto-generated Javadoc
/**
* The Class VotiferEvent.
*/
public class VotiferEvent implements Listener {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Instantiates a new votifer event.
*
* @param plugin
* the plugin
*/
public VotiferEvent(Main plugin) {
VotiferEvent.plugin = plugin;
}
/**
* On votifer event.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onVotiferEvent(VotifierEvent event) {
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() {
@Override
public void run() {
ServerData.getInstance().addServiceSite(voteSite);
}
});
if (voteUsername.length() == 0) {
plugin.getLogger().warning("No name from vote on " + voteSite);
return;
}
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() {
@Override
public void run() {
String voteSiteName = plugin.getVoteSiteName(voteSite);
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
boolean createSite = false;
if (sites != null) {
if (!sites.contains(voteSiteName)) {
createSite = true;
}
} 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,
voteSite, true);
plugin.getServer().getPluginManager().callEvent(voteEvent);
if (voteEvent.isCancelled()) {
plugin.debug("Vote cancelled");
return;
}
}
});
}
}
@@ -1,4 +1,4 @@
package com.Ben12345rocks.VotingPlugin.Events;
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
File diff suppressed because it is too large. Load diff
@@ -11,18 +11,23 @@ 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.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
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.OtherRewards.OtherVoteReward;
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;
import com.Ben12345rocks.VotingPlugin.VoteReminding.VoteReminding;
@@ -30,7 +35,7 @@ import com.Ben12345rocks.VotingPlugin.VoteReminding.VoteReminding;
/**
* The Class User.
*/
public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
/** The plugin. */
static Main plugin = Main.plugin;
@@ -126,7 +131,13 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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());
}
/**
@@ -190,8 +201,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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);
@@ -204,7 +216,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return now.isAfter(nextvote);
} else {
if (now.getDayOfYear() != lastVote.getDayOfYear() && now.getYear() != lastVote.getYear()) {
if (now.getDayOfYear() != lastVote.getDayOfYear() || now.getYear() != lastVote.getYear()) {
return true;
}
return false;
@@ -250,13 +262,41 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return true;
}
public void clearTotals() {
setAllTimeTotal(0);
resetDailyTotalVotes();
resetMonthlyTotalVotes();
setWeeklyTotal(0);
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>());
setOfflineOtherRewards(new ArrayList<String>());
}
public void clearTotals() {
for (TopVoter top : TopVoter.values()) {
resetTotals(top);
}
}
@Deprecated
public int getAllTimeTotal() {
return getUserData().getInt("AllTimeTotal");
}
@@ -273,6 +313,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return getData().getInt("BestWeekVoteStreak");
}
@Deprecated
public int getDailyTotal() {
return getUserData().getInt("DailyTotal");
}
@@ -281,6 +322,18 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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");
}
public HashMap<String, Boolean> getHasGottenMilestone() {
HashMap<String, Boolean> hasGottenMilestone = new HashMap<String, Boolean>();
ArrayList<String> milestoneList = getUserData().getStringList("GottenMileStones");
@@ -306,6 +359,39 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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");
}
public HashMap<VoteSite, Long> getLastVotes() {
HashMap<VoteSite, Long> lastVotes = new HashMap<VoteSite, Long>();
ArrayList<String> LastVotesList = getUserData().getStringList("LastVotes");
@@ -339,9 +425,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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;
}
@@ -349,14 +435,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return getData().getInt("MilestoneCount", getAllTimeTotal());
}
@Deprecated
public int getMonthTotal() {
return getData().getInt("MonthTotal");
}
public int getLastMonthTotal() {
return getData().getInt("LastMonthTotal");
}
public int getMonthVoteStreak() {
return getData().getInt("MonthVoteStreak");
}
@@ -393,10 +476,31 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return 0;
}
public int getTotal(TopVoter top) {
switch (top) {
case AllTime:
return getUserData().getInt("AllTimeTotal");
case Daily:
return getUserData().getInt("DailyTotal");
case Monthly:
return getData().getInt("MonthTotal");
case Weekly:
return getUserData().getInt("WeeklyTotal");
default:
break;
}
return 0;
}
public int getVotePartyVotes() {
return getUserData().getInt("VotePartyVotes");
}
public int getVoteShopIdentifierLimit(String identifier) {
return getData().getInt("VoteShopLimit" + identifier);
}
@Deprecated
public int getWeeklyTotal() {
return getUserData().getInt("WeeklyTotal");
}
@@ -405,44 +509,34 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return getData().getInt("WeekVoteStreak");
}
/**
* Give daily top voter award.
*
* @param place
* the place
*/
public void giveDailyTopVoterAward(int place) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").send(this);
public void giveDailyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").setOnline(isOnline())
.send(this);
}
/**
* Give monthly top voter award.
*
* @param place
* the place
*/
public void giveMonthlyTopVoterAward(int place) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").send(this);
public void giveMonthlyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").setOnline(isOnline())
.send(this);
}
public void giveOfflineOtherRewards() {
ArrayList<String> offlineRewards = getOfflineOtherRewards();
for (String str : offlineRewards) {
if (str.equalsIgnoreCase("FirstVote")) {
OtherVoteReward.getInstance().giveFirstVoteRewards(this, false);
SpecialRewards.getInstance().giveFirstVoteRewards(this, false);
} else if (str.equalsIgnoreCase("AllSites")) {
OtherVoteReward.getInstance().giveAllSitesRewards(this, false);
SpecialRewards.getInstance().giveAllSitesRewards(this, false);
} else if (str.equalsIgnoreCase("VoteParty")) {
VoteParty.getInstance().giveReward(this);
VoteParty.getInstance().giveReward(this, false);
} else if (str.contains("Cumulative")) {
String st = str.substring("Cumulative".length());
if (StringUtils.getInstance().isInt(st)) {
int votesRequired = Integer.parseInt(st);
if (votesRequired != 0) {
if (Config.getInstance().getCumulativeRewardEnabled(votesRequired)) {
OtherVoteReward.getInstance().giveCumulativeVoteReward(this, false, votesRequired);
SpecialRewards.getInstance().giveCumulativeVoteReward(this, false, votesRequired);
}
}
}
@@ -452,37 +546,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
int votesRequired = Integer.parseInt(st);
if (votesRequired > 0) {
if (Config.getInstance().getMilestoneRewardEnabled(votesRequired)) {
OtherVoteReward.getInstance().giveMilestoneVoteReward(this, true, votesRequired);
}
}
}
} else if (str.contains("MonthlyTopVoter")) {
String st = str.substring("MontlyTopVoter".length());
if (StringUtils.getInstance().isInt(st)) {
int place = Integer.parseInt(st);
if (place > 0) {
if (Config.getInstance().getMonthlyAwardsEnabled()) {
giveMonthlyTopVoterAward(place);
}
}
}
} else if (str.contains("WeeklyTopVoter")) {
String st = str.substring("WeeklyTopVoter".length());
if (StringUtils.getInstance().isInt(st)) {
int place = Integer.parseInt(st);
if (place > 0) {
if (Config.getInstance().getWeeklyAwardsEnabled()) {
giveWeeklyTopVoterAward(place);
}
}
}
} else if (str.contains("DailyTopVoter")) {
String st = str.substring("DailyTopVoter".length());
if (StringUtils.getInstance().isInt(st)) {
int place = Integer.parseInt(st);
if (place > 0) {
if (Config.getInstance().getDailyAwardsEnabled()) {
giveDailyTopVoterAward(place);
SpecialRewards.getInstance().giveMilestoneVoteReward(this, true, votesRequired);
}
}
}
@@ -493,7 +557,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
String st = args[2];
if (Config.getInstance().getVoteStreakRewardEnabled(type, st)) {
OtherVoteReward.getInstance().giveVoteStreakReward(this, false, type, "" + st, -1);
SpecialRewards.getInstance().giveVoteStreakReward(this, false, type, "" + st, -1);
}
}
@@ -507,15 +571,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
/**
* Give weekly top voter award.
*
* @param place
* the place
*/
public void giveWeeklyTopVoterAward(int place) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(place))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").send(this);
public void giveWeeklyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").setOnline(isOnline())
.send(this);
}
/**
@@ -524,7 +583,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* @return true if user got the first vote reward
*/
public boolean hasGottenFirstVote() {
return getAllTimeTotal() != 0;
return getTotal(TopVoter.AllTime) != 0;
}
/**
@@ -542,12 +601,26 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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 Boolean.valueOf(getUserData().getString("Reminded"));
return getUserData().getBoolean("Reminded");
}
public boolean isTopVoterIgnore() {
return Boolean.valueOf(getUserData().getString("TopVoterIgnore"));
return getUserData().getBoolean("TopVoterIgnore");
}
/**
@@ -563,7 +636,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* Off vote.
*/
public void offVote() {
AdvancedCoreHook.getInstance().extraDebug("Checking offline vote site votes");
if (!Main.plugin.getOptions().isProcessRewards()) {
Main.plugin.debug("Processing rewards is disabled");
return;
}
Main.plugin.extraDebug("Checking offline vote site votes");
Player player = getPlayer();
if (player != null) {
boolean topVoterIngorePerm = player.hasPermission("VotingPlugin.TopVoter.Ignore");
@@ -602,11 +679,11 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* the broadcast
*/
public void playerVote(VoteSite voteSite, boolean online, boolean broadcast) {
if (Config.getInstance().getFormatBroadcastWhenOnline() && Config.getInstance().getBroadCastVotesEnabled()
if (Config.getInstance().getFormatBroadcastWhenOnline() && Config.getInstance().isBroadcastVotesEnabled()
&& broadcast) {
voteSite.broadcastVote(this);
}
voteSite.giveSiteReward(this, online);
voteSite.giveRewards(this, online);
}
/**
@@ -624,17 +701,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return false;
}
public void resetDailyTotalVotes() {
setDailyTotal(0);
}
public void resetMonthlyTotalVotes() {
setLastMonthTotal(getMonthTotal());
setMonthTotal(0);
}
public void resetWeeklyTotalVotes() {
setWeeklyTotal(0);
public void resetTotals(TopVoter topVoter) {
setTotal(topVoter, 0);
}
/**
@@ -645,11 +713,12 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
*/
public void sendVoteEffects(boolean online) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getAnySiteRewardsPath(), online);
Config.getInstance().getAnySiteRewardsPath(), new RewardOptions().setOnline(online));
}
@Deprecated
public void setAllTimeTotal(int allTimeTotal) {
getUserData().setInt("AllTimeTotal", allTimeTotal);
setTotal(TopVoter.AllTime, allTimeTotal);
}
public void setBestDayVoteStreak(int streak) {
@@ -664,8 +733,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getData().setInt("BestWeekVoteStreak", streak);
}
@Deprecated
public void setDailyTotal(int total) {
getUserData().setInt("DailyTotal", total);
setTotal(TopVoter.Daily, total);
}
public void setDayVoteStreak(int streak) {
@@ -675,6 +745,14 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
public void setDayVoteStreakLastUpdate(long time) {
getData().setString("DayVoteStreakLastUpdate", "" + time);
}
public void setDisableBroadcast(boolean value) {
getUserData().setBoolean("DisableBroadcast", value);
}
public void setHasGotteMilestone(int votesRequired, boolean b) {
HashMap<String, Boolean> hasGottenMilestone = getHasGottenMilestone();
hasGottenMilestone.put("" + votesRequired, b);
@@ -702,6 +780,25 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.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()) {
@@ -715,12 +812,9 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getData().setInt("MilestoneCount", value);
}
@Deprecated
public void setMonthTotal(int total) {
getData().setInt("MonthTotal", total);
}
public void setLastMonthTotal(int total) {
getData().setInt("LastMonthTotal", total);
setTotal(TopVoter.Monthly, total);
}
public void setMonthVoteStreak(int streak) {
@@ -766,12 +860,43 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getUserData().setString("TopVoterIgnore", "" + topVoterIgnore);
}
public void setTotal(TopVoter top, int value) {
switch (top) {
case AllTime:
getUserData().setInt("AllTimeTotal", value);
break;
case Daily:
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:
getUserData().setInt("WeeklyTotal", value);
break;
default:
break;
}
}
public void setVotePartyVotes(int value) {
getUserData().setInt("VotePartyVotes", value);
}
public void setVoteShopIdentifierLimit(String identifier, int value) {
getData().setInt("VoteShopLimit" + identifier, value);
}
@Deprecated
public void setWeeklyTotal(int total) {
getUserData().setInt("WeeklyTotal", total);
setTotal(TopVoter.Weekly, total);
}
public void setWeekVoteStreak(int streak) {
@@ -791,10 +916,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return true;
}
public void clearOfflineRewards() {
setOfflineVotes(new ArrayList<String>());
setOfflineRewards(new ArrayList<String>());
setOfflineOtherRewards(new ArrayList<String>());
public boolean voteStreakUpdatedToday(LocalDateTime time) {
return MiscUtils.getInstance().getTime(getDayVoteStreakLastUpdate()).getDayOfYear() == time.getDayOfYear();
}
}
@@ -1,18 +1,28 @@
package com.Ben12345rocks.VotingPlugin.Objects;
import java.util.ArrayList;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
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.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class VoteSite.
*/
@@ -27,32 +37,49 @@ public class VoteSite {
/** The plugin. */
static Main plugin = Main.plugin;
/** The vote URL. */
@Getter
@Setter
private String voteURL;
/** The service site. */
@Getter
@Setter
private String serviceSite;
/** The site name. */
@Getter
@Setter
private String key;
@Getter
@Setter
private String displayName;
/** The vote delay. */
@Getter
@Setter
private double voteDelay;
/** The enabled. */
@Getter
@Setter
private boolean enabled;
@Getter
@Setter
private boolean voteDelayDaily;
/** The priority. */
@Getter
@Setter
private int priority;
@Setter
private ConfigurationSection item;
@Getter
@Setter
private boolean giveOffline;
@Getter
@Setter
private boolean waitUntilVoteDelay;
/**
* Instantiates a new vote site.
*
@@ -84,16 +111,24 @@ public class VoteSite {
if (!user.isVanished()) {
String playerName = user.getPlayerName();
String bc = StringUtils.getInstance().colorize(config.getFormatBroadCastMsg());
bc = bc.replace("%player%", playerName).replace("%SiteName%", getDisplayName());
MiscUtils.getInstance().broadcast(bc);
}
}
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("player", playerName);
placeholders.put("nickname",
(user.getPlayer() != null) ? user.getPlayer().getDisplayName() : user.getPlayerName());
placeholders.put("sitename", getDisplayName());
placeholders.put("servicesite", getServiceSite());
bc = StringUtils.getInstance().replacePlaceHolder(bc, placeholders);
ArrayList<Player> players = new ArrayList<Player>();
for (Player p : Bukkit.getOnlinePlayers()) {
if (!UserManager.getInstance().getVotingPluginUser(p).getDisableBroadcast()) {
players.add(p);
}
}
/**
* @return the displayName
*/
public String getDisplayName() {
return displayName;
MiscUtils.getInstance().broadcast(bc, players);
} else {
plugin.debug(user.getPlayerName() + " is vanished, not broadcasting");
}
}
/**
@@ -109,49 +144,6 @@ public class VoteSite {
}
}
/**
* @return the key
*/
public String getKey() {
return key;
}
/**
* Gets the priority.
*
* @return the priority
*/
public int getPriority() {
return priority;
}
/**
* Gets the service site.
*
* @return the service site
*/
public String getServiceSite() {
return serviceSite;
}
/**
* Gets the vote delay.
*
* @return the vote delay
*/
public double getVoteDelay() {
return voteDelay;
}
/**
* Gets the vote URL.
*
* @return the vote URL
*/
public String getVoteURL() {
return voteURL;
}
/**
* Give rewards.
*
@@ -174,18 +166,6 @@ public class VoteSite {
return RewardHandler.getInstance().hasRewards(configVoteSites.getData(), configVoteSites.getRewardsPath(key));
}
/**
* Give site reward.
*
* @param user
* the user
* @param online
* the online
*/
public void giveSiteReward(User user, boolean online) {
giveRewards(user, online);
}
/**
* Inits the.
*/
@@ -202,119 +182,12 @@ public class VoteSite {
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
waitUntilVoteDelay = configVoteSites.getWaitUntilVoteDelay(key);
}
/**
* Checks if is enabled.
*
* @return true, if is enabled
*/
public boolean isEnabled() {
return enabled;
}
/**
* @return the giveOffline
*/
public boolean isGiveOffline() {
return giveOffline;
}
/**
* @return the voteDelayDaily
*/
public boolean isVoteDelayDaily() {
return voteDelayDaily;
}
/**
* @param displayName
* the displayName to set
*/
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
/**
* Sets the enabled.
*
* @param enabled
* the new enabled
*/
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
/**
* @param giveOffline
* the giveOffline to set
*/
public void setGiveOffline(boolean giveOffline) {
this.giveOffline = giveOffline;
}
/**
* @param item
* the item to set
*/
public void setItem(ConfigurationSection item) {
this.item = item;
}
/**
* @param key
* the key to set
*/
public void setKey(String key) {
this.key = key;
}
/**
* Sets the priority.
*
* @param priority
* the new priority
*/
public void setPriority(int priority) {
this.priority = priority;
}
/**
* Sets the service site.
*
* @param serviceSite
* the new service site
*/
public void setServiceSite(String serviceSite) {
this.serviceSite = serviceSite;
}
/**
* Sets the vote delay.
*
* @param voteDelay
* the new vote delay
*/
public void setVoteDelay(double voteDelay) {
this.voteDelay = voteDelay;
}
/**
* @param voteDelayDaily
* the voteDelayDaily to set
*/
public void setVoteDelayDaily(boolean voteDelayDaily) {
this.voteDelayDaily = voteDelayDaily;
}
/**
* Sets the vote URL.
*
* @param voteURL
* the new vote URL
*/
public void setVoteURL(String voteURL) {
this.voteURL = voteURL;
public boolean isVaidServiceSite() {
return ArrayUtils.getInstance().containsIgnoreCase(ServerData.getInstance().getServiceSites(),
getServiceSite());
}
}
@@ -1,20 +1,26 @@
package com.Ben12345rocks.VotingPlugin.Objects;
package com.Ben12345rocks.VotingPlugin.Signs;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
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;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
@@ -22,13 +28,16 @@ import com.Ben12345rocks.VotingPlugin.Data.ServerData;
*/
public class SignHandler {
/** The sign. */
@Getter
@Setter
private String sign;
/** The location. */
@Getter
@Setter
private Location location;
/** The data. */
@Getter
@Setter
private String data;
/** The lines. */
@@ -46,8 +55,9 @@ public class SignHandler {
/** The votes. */
private int votes;
/** The is valid. */
private boolean isValid;
@Getter
@Setter
private boolean valid;
/**
* Instantiates a new sign handler.
@@ -72,6 +82,17 @@ public class SignHandler {
playerName = "";
}
@SuppressWarnings("deprecation")
private boolean checkSkull(Block block) {
if (block.getState() instanceof Skull) {
Skull skull = (Skull) block.getState();
skull.setOwner(playerName);
skull.update();
return true;
}
return false;
}
/**
* Check skulls.
*/
@@ -103,24 +124,6 @@ public class SignHandler {
}
/**
* Gets the data.
*
* @return the data
*/
public String getData() {
return data;
}
/**
* Gets the location.
*
* @return the location
*/
public Location getLocation() {
return location;
}
/**
* Gets the right click message.
*
@@ -135,15 +138,6 @@ public class SignHandler {
return msg;
}
/**
* Gets the sign.
*
* @return the sign
*/
public String getSign() {
return sign;
}
/**
* Checks if is location same.
*
@@ -155,15 +149,6 @@ public class SignHandler {
return loc.equals(getLocation());
}
/**
* Checks if is valid.
*
* @return true, if is valid
*/
public boolean isValid() {
return isValid;
}
/**
* Removes the sign.
*/
@@ -171,46 +156,6 @@ public class SignHandler {
ServerData.getInstance().removeSign(sign);
}
/**
* Sets the data.
*
* @param data
* the new data
*/
public void setData(String data) {
this.data = data;
}
/**
* Sets the location.
*
* @param location
* the new location
*/
public void setLocation(Location location) {
this.location = location;
}
/**
* Sets the sign.
*
* @param sign
* the new sign
*/
public void setSign(String sign) {
this.sign = sign;
}
/**
* Sets the valid.
*
* @param isValid
* the new valid
*/
public void setValid(boolean isValid) {
this.isValid = isValid;
}
/**
* Store sign.
*/
@@ -236,13 +181,13 @@ public class SignHandler {
ArrayList<User> users = null;
if (data.equalsIgnoreCase("all")) {
users = plugin.convertSet(plugin.topVoterAllTime.keySet());
users = plugin.convertSet(plugin.getTopVoter(TopVoter.AllTime).keySet());
} else if (data.equalsIgnoreCase("monthly")) {
users = plugin.convertSet(plugin.topVoterMonthly.keySet());
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Monthly).keySet());
} else if (data.equalsIgnoreCase("weekly")) {
users = plugin.convertSet(plugin.topVoterWeekly.keySet());
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
} else if (data.equalsIgnoreCase("daily")) {
users = plugin.convertSet(plugin.topVoterDaily.keySet());
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
}
if (users != null && users.size() >= position) {
@@ -251,13 +196,13 @@ public class SignHandler {
votes = 0;
if (data.equalsIgnoreCase("all")) {
votes = plugin.topVoterAllTime.get(user);
votes = plugin.getTopVoter(TopVoter.AllTime).get(user);
} else if (data.equalsIgnoreCase("monthly")) {
votes = plugin.topVoterMonthly.get(user);
votes = plugin.getTopVoter(TopVoter.Monthly).get(user);
} else if (data.equalsIgnoreCase("weekly")) {
votes = plugin.topVoterWeekly.get(user);
votes = plugin.getTopVoter(TopVoter.Weekly).get(user);
} else if (data.equalsIgnoreCase("daily")) {
votes = plugin.topVoterDaily.get(user);
votes = plugin.getTopVoter(TopVoter.Daily).get(user);
}
for (int j = 0; j < lines.size(); j++) {
@@ -305,20 +250,26 @@ public class SignHandler {
}
} catch (Exception ex) {
AdvancedCoreHook.getInstance().debug(ex);
Main.plugin.debug(ex);
}
}
}, delay);
}
@SuppressWarnings("deprecation")
public void updateSkulls(Location loc1, Location loc2) {
for (Block block : MiscUtils.getInstance().getRegionBlocks(location.getWorld(), loc1, loc2)) {
if (block.getState() instanceof Skull) {
Skull skull = (Skull) block.getState();
skull.setOwner(playerName);
skull.update();
BlockState state = getLocation().getBlock().getState();
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;
}
}
for (Block block : MiscUtils.getInstance().getRegionBlocks(location.getWorld(), loc1, loc2)) {
checkSkull(block);
}
}
}
@@ -6,7 +6,6 @@ import org.bukkit.Location;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
// TODO: Auto-generated Javadoc
/**
@@ -66,10 +65,10 @@ public class Signs {
* Load signs.
*/
public void loadSigns() {
plugin.signs = new ArrayList<SignHandler>();
plugin.setSigns(new ArrayList<SignHandler>());
for (String sign : ServerData.getInstance().getSigns()) {
// plugin.getLogger().info("Loading sign " + sign);
plugin.signs.add(new SignHandler(sign, ServerData.getInstance().getSignLocation(sign),
plugin.getSigns().add(new SignHandler(sign, ServerData.getInstance().getSignLocation(sign),
ServerData.getInstance().getSignData(sign), ServerData.getInstance().getSignPosition(sign)));
}
}
@@ -78,7 +77,7 @@ public class Signs {
* Store signs.
*/
public void storeSigns() {
for (SignHandler sign : plugin.signs) {
for (SignHandler sign : plugin.getSigns()) {
sign.storeSign();
}
}
@@ -87,14 +86,16 @@ public class Signs {
* Update signs.
*/
public void updateSigns() {
for (int i = plugin.signs.size() - 1; i >= 0; i--) {
if (!plugin.signs.get(i).isValid()) {
int time = 0;
for (int i = plugin.getSigns().size() - 1; i >= 0; i--) {
if (!plugin.getSigns().get(i).isValid()) {
plugin.debug("Sign " + i + " invalid, removing from data.");
plugin.signs.get(i).removeSign();
plugin.signs.remove(i);
plugin.getSigns().get(i).removeSign();
plugin.getSigns().remove(i);
} else {
plugin.signs.get(i).updateLines();
plugin.signs.get(i).updateSign(i * 3);
plugin.getSigns().get(i).updateLines();
plugin.getSigns().get(i).updateSign(time);
time += 5;
}
}
@@ -1,23 +1,26 @@
package com.Ben12345rocks.VotingPlugin.OtherRewards;
package com.Ben12345rocks.VotingPlugin.SpecialRewards;
import java.util.Set;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
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.PlayerVoteAllSitesEvent;
import com.Ben12345rocks.VotingPlugin.Events.PlayerSpecialRewardEvent;
import com.Ben12345rocks.VotingPlugin.Events.SpecialRewardType;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
// TODO: Auto-generated Javadoc
/**
* The Class OtherVoteReward.
*/
public class OtherVoteReward {
public class SpecialRewards {
/** The config. */
static Config config = Config.getInstance();
@@ -26,7 +29,7 @@ public class OtherVoteReward {
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The instance. */
static OtherVoteReward instance = new OtherVoteReward();
static SpecialRewards instance = new SpecialRewards();
/** The plugin. */
static Main plugin = Main.plugin;
@@ -36,14 +39,14 @@ public class OtherVoteReward {
*
* @return single instance of OtherVoteReward
*/
public static OtherVoteReward getInstance() {
public static SpecialRewards getInstance() {
return instance;
}
/**
* Instantiates a new other vote reward.
*/
private OtherVoteReward() {
private SpecialRewards() {
}
/**
@@ -52,8 +55,8 @@ public class OtherVoteReward {
* @param plugin
* the plugin
*/
public OtherVoteReward(Main plugin) {
OtherVoteReward.plugin = plugin;
public SpecialRewards(Main plugin) {
SpecialRewards.plugin = plugin;
}
/**
@@ -90,11 +93,11 @@ public class OtherVoteReward {
Config.getInstance().getCumulativeRewardsPath(votesRequired))) {
int total = 0;
if (Config.getInstance().getCumulativeVotesInSameDay(votesRequired)) {
total = user.getDailyTotal();
total = user.getTotal(TopVoter.Daily);
} else if (Config.getInstance().getCumulativeVotesInSameWeek(votesRequired)) {
total = user.getWeeklyTotal();
total = user.getTotal(TopVoter.Weekly);
} else {
total = user.getAllTimeTotal();
total = user.getTotal(TopVoter.AllTime);
}
if ((total % votesRequired) == 0 && total != 0) {
@@ -226,14 +229,14 @@ public class OtherVoteReward {
* the online
*/
public void giveAllSitesRewards(User user, boolean online) {
PlayerVoteAllSitesEvent event = new PlayerVoteAllSitesEvent(user);
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user, SpecialRewardType.ALLSITE);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getAllSitesRewardPath(), online);
Config.getInstance().getAllSitesRewardPath(), new RewardOptions().setOnline(online));
}
/**
@@ -247,6 +250,14 @@ public class OtherVoteReward {
* the cumulative
*/
public void giveCumulativeVoteReward(User user, boolean online, int cumulative) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.CUMMULATIVE.setAmount(cumulative));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getCumulativeRewardsPath(cumulative))
.setOnline(online).withPlaceHolder("Cumulative", "" + cumulative).send(user);
}
@@ -260,8 +271,14 @@ public class OtherVoteReward {
* the online
*/
public void giveFirstVoteRewards(User user, boolean online) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user, SpecialRewardType.FIRSTVOTE);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getFirstVoteRewardsPath(), online);
Config.getInstance().getFirstVoteRewardsPath(), new RewardOptions().setOnline(online));
}
/**
@@ -275,14 +292,27 @@ public class OtherVoteReward {
* the milestone
*/
public void giveMilestoneVoteReward(User user, boolean online, int milestone) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.MILESTONE.setAmount(milestone));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMilestoneRewardsPath(milestone))
.setOnline(online).withPlaceHolder("Milestone", "" + milestone).send(user);
}
public void giveVoteStreakReward(User user, boolean online, String type, String string, int votes) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.VOTESTREAK.setType(type).setAmount(votes));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVoteStreakRewardsPath(type, string))
.setOnline(online).withPlaceHolder("Type", type).withPlaceHolder("Streak", "" + votes).send(user);
}
}
@@ -0,0 +1,74 @@
package com.Ben12345rocks.VotingPlugin.Test;
import java.util.ArrayList;
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 {
private static VoteTester instance = new VoteTester();
public static VoteTester getInstance() {
return instance;
}
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>();
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(site), name,
plugin.getVoteSiteServiceSite(site), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
long start2 = System.currentTimeMillis();
timesPerVote.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerVote) {
timeTotal += t.longValue();
}
long timePerVoteAvg = timeTotal / timesPerVote.size();
Main.plugin.getLogger()
.info("Time to process votes (" + amount + "): " + time + " ms, average per vote " + timePerVoteAvg
+ " ms. " + Main.plugin.getStorageType() + ", " + UserManager.getInstance().getAllUUIDs().size()
+ " users. " + Main.plugin.getVoteSites().size() + " votesites");
}
}
@@ -1,4 +1,4 @@
package com.Ben12345rocks.VotingPlugin.Objects;
package com.Ben12345rocks.VotingPlugin.TopVoter;
import java.util.ArrayList;
@@ -24,6 +24,18 @@ public enum TopVoter {
return AllTime;
}
public String getName() {
if (this.equals(TopVoter.Monthly)) {
return Config.getInstance().getFormatTopVoterMonthly();
} else if (this.equals(TopVoter.Weekly)) {
return Config.getInstance().getFormatTopVoterWeekly();
} else if (this.equals(TopVoter.Daily)) {
return Config.getInstance().getFormatTopVoterDaily();
} else {
return Config.getInstance().getFormatTopVoterAllTime();
}
}
public TopVoter next() {
ArrayList<TopVoter> list = new ArrayList<TopVoter>();
if (Config.getInstance().getLoadTopVoterAllTime()) {
@@ -51,19 +63,28 @@ public enum TopVoter {
}
public TopVoter prev() {
switch (this) {
case AllTime:
return Daily;
case Daily:
return Weekly;
case Monthly:
return AllTime;
case Weekly:
return Monthly;
default:
return AllTime;
ArrayList<TopVoter> list = new ArrayList<TopVoter>();
if (Config.getInstance().getLoadTopVoterAllTime()) {
list.add(TopVoter.AllTime);
}
if (Config.getInstance().getLoadTopVoterMonthly()) {
list.add(TopVoter.Monthly);
}
if (Config.getInstance().getLoadTopVoterWeekly()) {
list.add(TopVoter.Weekly);
}
if (Config.getInstance().getLoadTopVoterDaily()) {
list.add(TopVoter.Daily);
}
for (int i = list.size() - 1; i >= 0; i--) {
if (list.get(i).equals(this)) {
int prev = i - 1;
if (prev < 0) {
prev = list.size() - 1;
}
return TopVoter.values()[prev];
}
}
return TopVoter.AllTime;
}
}
@@ -16,20 +16,19 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Listeners.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.PreDateChangedEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.WeekChangeEvent;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.PreDateChangedEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.WeekChangeEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.YML.YMLFileHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.OtherRewards.OtherVoteReward;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class TopVoterHandler implements Listener {
@@ -66,67 +65,85 @@ public class TopVoterHandler implements Listener {
public String[] getTopVotersWeekly() {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<User> users = plugin.convertSet(plugin.topVoterWeekly.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
for (int i = 0; i < users.size(); i++) {
String line = Config.getInstance().getFormatCommandVoteTopLine().replace("%num%", "" + (i + 1))
.replace("%player%", users.get(i).getPlayerName())
.replace("%votes%", "" + plugin.topVoterWeekly.get(users.get(i)));
.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Weekly).get(users.get(i)));
msg.add(line);
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onDateChanged(DateChangedEvent event) {
plugin.setUpdate(true);
private HashMap<Integer, String> handlePlaces(Set<String> places) {
HashMap<Integer, String> place = new HashMap<Integer, String>();
for (String p : places) {
String[] data = p.split("-");
try {
if (data.length > 1) {
for (int i = Integer.parseInt(data[0]); i < Integer.parseInt(data[1]); i++) {
place.put(i, p);
}
} else {
place.put(Integer.parseInt(data[0]), p);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return place;
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPreDateChanged(PreDateChangedEvent event) {
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.getDailyTotal() == 0 && user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
} else {
user.addDayVoteStreak();
if (!user.voteStreakUpdatedToday(LocalDateTime.now().minusDays(1))) {
if (user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
}
}
OtherVoteReward.getInstance().checkVoteStreak(user, "Day");
if (user.getHighestDailyTotal() < user.getDailyTotal()) {
user.setHighestDailyTotal(user.getDailyTotal());
if (user.getHighestDailyTotal() < user.getTotal(TopVoter.Daily)) {
user.setHighestDailyTotal(user.getTotal(TopVoter.Daily));
}
}
if (Config.getInstance().getStoreTopVotersDaily()) {
plugin.debug("Storing TopVoters Daily");
storeDailyTopVoters();
plugin.getLogger().info("Saving TopVoters Daily");
storeTopVoters(TopVoter.Daily);
}
if (Config.getInstance().getDailyAwardsEnabled()) {
Set<String> places = Config.getInstance().getDailyPossibleRewardPlaces();
if (Config.getInstance().isEnableDailyRewards()) {
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getDailyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterDaily.keySet()) {
for (User user : plugin.getTopVoter(TopVoter.Daily).keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (user.getDailyTotal() != lastTotal) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Daily) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.contains(Integer.toString(i))) {
user.giveDailyTopVoterAward(i);
if (places.containsKey(i)) {
user.giveDailyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getDailyTotal();
lastTotal = user.getTotal(TopVoter.Daily);
}
}
resetDailyTotals();
resetTotals(TopVoter.Daily);
}
@@ -134,41 +151,52 @@ public class TopVoterHandler implements Listener {
public void onMonthChange(MonthChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getMonthTotal() == 0 && user.getMonthVoteStreak() != 0) {
if (user.getTotal(TopVoter.Monthly) == 0 && user.getMonthVoteStreak() != 0) {
user.setMonthVoteStreak(0);
} else {
user.addMonthVoteStreak();
OtherVoteReward.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");
}
}
if (user.getHighestMonthlyTotal() < user.getMonthTotal()) {
user.setHighestMonthlyTotal(user.getMonthTotal());
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");
storeMonthlyTopVoters();
plugin.getLogger().info("Saving TopVoters Monthly");
storeTopVoters(TopVoter.Monthly);
}
if (Config.getInstance().getMonthlyAwardsEnabled()) {
Set<String> places = Config.getInstance().getMonthlyPossibleRewardPlaces();
if (Config.getInstance().isEnableMonthlyAwards()) {
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getMonthlyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterMonthly.keySet()) {
for (User user : plugin.getTopVoter(TopVoter.Monthly).keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (user.getMonthTotal() != lastTotal) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Monthly) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.contains(Integer.toString(i))) {
user.giveMonthlyTopVoterAward(i);
if (places.containsKey(i)) {
user.giveMonthlyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getMonthTotal();
lastTotal = user.getTotal(TopVoter.Monthly);
}
}
resetMonthlyTotals();
resetTotals(TopVoter.Monthly);
if (Config.getInstance().getResetMilestonesMonthly()) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
@@ -178,47 +206,59 @@ public class TopVoterHandler implements Listener {
}
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPreDateChanged(PreDateChangedEvent event) {
plugin.setUpdate(true);
plugin.update();
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWeekChange(WeekChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getWeeklyTotal() == 0 && user.getWeekVoteStreak() != 0) {
if (user.getTotal(TopVoter.Weekly) == 0 && user.getWeekVoteStreak() != 0) {
user.setWeekVoteStreak(0);
} else {
user.addWeekVoteStreak();
OtherVoteReward.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.getWeeklyTotal()) {
user.setHighestWeeklyTotal(user.getWeeklyTotal());
if (user.getHighestWeeklyTotal() < user.getTotal(TopVoter.Weekly)) {
user.setHighestWeeklyTotal(user.getTotal(TopVoter.Weekly));
}
}
if (Config.getInstance().getStoreTopVotersWeekly()) {
plugin.debug("Storing TopVoters Weekly");
storeWeeklyTopVoters();
plugin.getLogger().info("Saving TopVoters Weekly");
storeTopVoters(TopVoter.Weekly);
}
if (Config.getInstance().getWeeklyAwardsEnabled()) {
Set<String> places = Config.getInstance().getWeeklyPossibleRewardPlaces();
if (Config.getInstance().isEnableWeeklyAwards()) {
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getWeeklyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterWeekly.keySet()) {
for (User user : plugin.getTopVoter(TopVoter.Weekly).keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (user.getWeeklyTotal() != lastTotal) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Weekly) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.contains(Integer.toString(i))) {
user.giveWeeklyTopVoterAward(i);
if (places.containsKey(i)) {
user.giveWeeklyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getWeeklyTotal();
lastTotal = user.getTotal(TopVoter.Weekly);
}
}
resetWeeklyTotals();
resetTotals(TopVoter.Weekly);
}
@@ -226,29 +266,11 @@ public class TopVoterHandler implements Listener {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
public void resetDailyTotals() {
public void resetTotals(TopVoter topVoter) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getDailyTotal() != 0) {
user.resetDailyTotalVotes();
}
}
}
public void resetMonthlyTotals() {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getMonthTotal() != 0) {
user.resetMonthlyTotalVotes();
}
}
}
public void resetWeeklyTotals() {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getWeeklyTotal() != 0) {
user.resetWeeklyTotalVotes();
if (user.getTotal(topVoter) != 0) {
user.resetTotals(topVoter);
}
}
}
@@ -280,56 +302,30 @@ public class TopVoterHandler implements Listener {
return sortedMap;
}
public void storeDailyTopVoters() {
LocalDateTime time = LocalDateTime.now().minusHours(5);
String month = time.getMonth().toString();
int year = time.getYear();
int day = time.getDayOfMonth();
YMLFileHandler file = new YMLFileHandler(new File(plugin.getDataFolder(),
"TopVoter" + File.separator + "Daily" + File.separator + year + "_" + month + "_" + day + ".yml"));
file.setup();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterDaily.entrySet()) {
topVoters.add(count + ": " + entry.getKey().getPlayerName() + ": " + entry.getValue());
count++;
}
file.getData().set("Day", topVoters);
file.saveData();
}
public void storeMonthlyTopVoters() {
LocalDateTime time = LocalDateTime.now().minusHours(10);
String month = time.getMonth().toString();
int year = time.getYear();
YMLFileHandler file = new YMLFileHandler(new File(plugin.getDataFolder(),
"TopVoter" + File.separator + "Monthly" + File.separator + month + "_" + year + ".yml"));
file.setup();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterMonthly.entrySet()) {
topVoters.add(count + ": " + entry.getKey().getPlayerName() + ": " + entry.getValue());
count++;
}
file.getData().set("Month", topVoters);
file.saveData();
}
public void storeWeeklyTopVoters() {
LocalDateTime time = LocalDateTime.now().minusHours(10);
public void storeTopVoters(TopVoter top) {
LocalDateTime time = LocalDateTime.now().minusDays(1);
String month = time.getMonth().toString();
int year = time.getYear();
int week = time.getDayOfYear();
YMLFileHandler file = new YMLFileHandler(new File(plugin.getDataFolder(),
"TopVoter" + File.separator + "Weekly" + File.separator + year + "_" + month + "_" + week + ".yml"));
int day = time.getDayOfMonth();
String fileName = "TopVoter" + File.separator + top.toString() + File.separator + year + "_" + month;
if (top.equals(TopVoter.Daily)) {
fileName += "_" + day;
} else if (top.equals(TopVoter.Weekly)) {
fileName += "_" + week;
}
fileName += ".yml";
YMLFileHandler file = new YMLFileHandler(new File(plugin.getDataFolder(), fileName));
file.setup();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterWeekly.entrySet()) {
for (Entry<User, Integer> entry : plugin.getTopVoter(top).entrySet()) {
topVoters.add(count + ": " + entry.getKey().getPlayerName() + ": " + entry.getValue());
count++;
}
file.getData().set("Week", topVoters);
file.getData().set(top.toString(), topVoters);
file.saveData();
}
@@ -345,7 +341,7 @@ public class TopVoterHandler implements Listener {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterAllTime.entrySet()) {
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
@@ -385,7 +381,7 @@ public class TopVoterHandler implements Listener {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterDaily.entrySet()) {
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
@@ -425,7 +421,7 @@ public class TopVoterHandler implements Listener {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterMonthly.entrySet()) {
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
@@ -460,7 +456,8 @@ public class TopVoterHandler implements Listener {
*/
public String[] topVotersAllTime() {
ArrayList<String> msg = new ArrayList<String>();
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(plugin.topVoterAllTime.entrySet());
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(
plugin.getTopVoter(TopVoter.AllTime).entrySet());
int i = 0;
for (Entry<User, Integer> entry : list) {
String line = "%num%: %player%, %votes%";
@@ -468,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());
@@ -488,16 +485,16 @@ public class TopVoterHandler implements Listener {
public String[] topVotersDaily() {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<User> users = plugin.convertSet(plugin.topVoterDaily.keySet());
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
for (int i = 0; i < users.size(); i++) {
String line = "%num%: %player%, %votes%";
line = line.replace("%num%", "" + (i + 1));
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.topVoterMonthly.get(users.get(i)));
line = line.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Monthly).get(users.get(i)));
msg.add(line);
}
@@ -512,7 +509,8 @@ public class TopVoterHandler implements Listener {
*/
public String[] topVotersMonthly() {
ArrayList<String> msg = new ArrayList<String>();
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(plugin.topVoterMonthly.entrySet());
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(
plugin.getTopVoter(TopVoter.Monthly).entrySet());
int i = 0;
for (Entry<User, Integer> entry : list) {
String line = "%num%: %player%, %votes%";
@@ -520,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());
@@ -544,7 +542,7 @@ public class TopVoterHandler implements Listener {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.topVoterWeekly.entrySet()) {
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
@@ -572,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();
@@ -583,53 +601,19 @@ public class TopVoterHandler implements Listener {
}
}
}
plugin.topVoterAllTime.clear();
if (Config.getInstance().getLoadTopVoterAllTime()) {
for (User user : users) {
int total = user.getAllTimeTotal();
if (total > 0) {
plugin.topVoterAllTime.put(user, total);
}
}
plugin.topVoterAllTime = sortByValues(plugin.topVoterAllTime, false);
plugin.debug("All Time TopVoter loaded");
}
plugin.topVoterMonthly.clear();
if (Config.getInstance().getLoadTopVoterMonthly()) {
for (User user : users) {
int total = user.getMonthTotal();
if (total > 0) {
plugin.topVoterMonthly.put(user, total);
for (TopVoter top : TopVoter.values()) {
plugin.getTopVoter(top).clear();
if (Config.getInstance().getLoadTopVoter(top)) {
for (User user : users) {
int total = user.getTotal(top);
if (total > 0) {
plugin.getTopVoter(top).put(user, total);
}
}
plugin.getTopVoter().put(top, sortByValues(plugin.getTopVoter(top), false));
plugin.debug(top.toString() + " TopVoter loaded");
}
plugin.topVoterMonthly = sortByValues(plugin.topVoterMonthly, false);
plugin.debug("Monthly TopVoter loaded");
}
plugin.topVoterWeekly.clear();
if (Config.getInstance().getLoadTopVoterWeekly()) {
for (User user : users) {
int total = user.getWeeklyTotal();
if (total > 0) {
plugin.topVoterWeekly.put(user, total);
}
}
plugin.topVoterWeekly = sortByValues(plugin.topVoterWeekly, false);
plugin.debug("Weekly TopVoter loaded");
}
plugin.topVoterDaily.clear();
if (Config.getInstance().getLoadTopVoterDaily()) {
for (User user : users) {
int total = user.getDailyTotal();
if (total > 0) {
plugin.topVoterDaily.put(user, total);
}
}
plugin.topVoterDaily = sortByValues(plugin.topVoterDaily, false);
plugin.debug("Daily TopVoter loaded");
}
plugin.debug("Updated TopVoter");
@@ -0,0 +1,125 @@
package com.Ben12345rocks.VotingPlugin.Updater;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
// TODO: Auto-generated Javadoc
/**
* The Class CheckUpdate.
*/
public class CheckUpdate {
/** The instance. */
static CheckUpdate instance = new CheckUpdate();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of CheckUpdate.
*
* @return single instance of CheckUpdate
*/
public static CheckUpdate getInstance() {
return instance;
}
/**
* Instantiates a new check update.
*/
private CheckUpdate() {
}
/**
* Instantiates a new check update.
*
* @param plugin
* the plugin
*/
public CheckUpdate(Main plugin) {
CheckUpdate.plugin = plugin;
}
/**
* Check update.
*/
public void checkUpdate() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
plugin.setUpdater(new Updater(plugin, 15358, false));
final Updater.UpdateResult result = plugin.getUpdater().getResult();
switch (result) {
case FAIL_SPIGOT: {
plugin.getLogger().info("Failed to check for update for " + plugin.getName() + "!");
break;
}
case NO_UPDATE: {
plugin.getLogger()
.info(plugin.getName() + " is up to date! Version: " + plugin.getUpdater().getVersion());
break;
}
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: "
+ plugin.getUpdater().getVersion() + " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
public void checkUpdateBasic() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
plugin.setUpdater(new Updater(plugin, 15358, false));
final Updater.UpdateResult result = plugin.getUpdater().getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: "
+ plugin.getUpdater().getVersion() + " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
/**
* Start up.
*/
public void startUp() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
checkUpdate();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
checkUpdateBasic();
}
}, 1000 * 60 * 1200, 1000 * 60 * 1200);
}
}, 10l);
}
}
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
@@ -32,6 +32,14 @@ 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()));
}
public User getVotingPluginUser(OfflinePlayer player) {
return getVotingPluginUser(player.getName());
}
@@ -49,8 +57,4 @@ public class UserManager {
public User getVotingPluginUser(UUID uuid) {
return new User(uuid);
}
public User getVotingPluginUser(java.util.UUID uuid) {
return getVotingPluginUser(new UUID(uuid.toString()));
}
}
@@ -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,19 +1,24 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import java.util.ArrayList;
import java.util.Map.Entry;
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;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import lombok.Getter;
// TODO: Auto-generated Javadoc
/**
* The Class PlaceHolders.
@@ -35,6 +40,12 @@ public class PlaceHolders {
return instance;
}
@Getter
private ArrayList<PlaceHolder<User>> placeholders = new ArrayList<PlaceHolder<User>>();
@Getter
private ArrayList<PlaceHolder<User>> nonPlayerPlaceholders = new ArrayList<PlaceHolder<User>>();
/**
* Instantiates a new place holders.
*/
@@ -51,205 +62,472 @@ public class PlaceHolders {
PlaceHolders.plugin = plugin;
}
public synchronized String getPlaceHolder(Player p, String identifier) {
public String getPlaceHolder(OfflinePlayer p, String identifier) {
identifier = StringUtils.getInstance().replaceJavascript(p, identifier);
for (PlaceHolder<User> placeholder : nonPlayerPlaceholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, null, identifier);
}
}
User user = UserManager.getInstance().getVotingPluginUser(p);
// %VotingPlugin_total% - Total votes of all vote sites
if (identifier.equalsIgnoreCase("total")) {
return Integer.toString(user.getMonthTotal());
} else if (identifier.equalsIgnoreCase("alltimetotal")) {
return Integer.toString(user.getAllTimeTotal());
} else if (identifier.equalsIgnoreCase("lastmonthtotal")) {
return Integer.toString(user.getLastMonthTotal());
}
String[] args = identifier.split("_");
if (args.length > 1 && args[0].equalsIgnoreCase("total")) {
if (args[1].equalsIgnoreCase("all")) {
return Integer.toString(user.getAllTimeTotal());
} else if (args[1].equalsIgnoreCase("month")) {
return Integer.toString(user.getMonthTotal());
} else if (args[1].equalsIgnoreCase("week")) {
return Integer.toString(user.getWeeklyTotal());
} else if (args[1].equalsIgnoreCase("daily")) {
return Integer.toString(user.getDailyTotal());
for (PlaceHolder<User> placeholder : placeholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, user, identifier);
}
}
if (identifier.equalsIgnoreCase("BestDailyTotal")) {
return "" + user.getHighestDailyTotal();
} else if (identifier.equalsIgnoreCase("BestWeeklyTotal")) {
return "" + user.getHighestWeeklyTotal();
} else if (identifier.equalsIgnoreCase("BestMonthlyTotal")) {
return "" + user.getHighestMonthlyTotal();
} else if (identifier.equalsIgnoreCase("DailyVoteStreak")) {
return "" + user.getDayVoteStreak();
} else if (identifier.equalsIgnoreCase("WeeklyVoteStreak")) {
return "" + user.getWeekVoteStreak();
} else if (identifier.equalsIgnoreCase("MonthlyVoteStreak")) {
return "" + user.getMonthVoteStreak();
} else if (identifier.equalsIgnoreCase("BestDailyVoteStreak")) {
return "" + user.getBestDayVoteStreak();
} else if (identifier.equalsIgnoreCase("BestWeeklyVoteStreak")) {
return "" + user.getBestWeekVoteStreak();
} else if (identifier.equalsIgnoreCase("BestMonthlyVoteStreak")) {
return "" + user.getBestMonthVoteStreak();
return "Not a valid placeholder";
}
public String getPlaceHolder(Player p, String identifier) {
identifier = StringUtils.getInstance().replaceJavascript(p, identifier);
return getPlaceHolder((OfflinePlayer) p, identifier);
}
public void load() {
placeholders.clear();
nonPlayerPlaceholders.clear();
// older placeholders, might be removed in the future
placeholders.add(new PlaceHolder<User>("total") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(TopVoter.Monthly));
}
}.withDescription("Month total"));
placeholders.add(new PlaceHolder<User>("alltimetotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(TopVoter.AllTime));
}
}.withDescription("Alltime total"));
placeholders.add(new PlaceHolder<User>("lastmonthtotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getLastMonthTotal());
}
}.withDescription("Last month total"));
// end of older placeholders
placeholders.add(new PlaceHolder<User>("DisableBroadcast") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.getDisableBroadcast();
}
}.withDescription("Returns true/false if user has broadcast disabled"));
placeholders.add(new PlaceHolder<User>("MilestoneCount") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.getMilestoneCount();
}
}.withDescription("User milestonecount"));
for (final String identifier : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getIdentifierLimit(identifier) > 0) {
placeholders.add(new PlaceHolder<User>("VoteShopLimit_" + identifier) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String ident) {
return "" + user.getVoteShopIdentifierLimit(identifier);
}
}.withDescription("User voteshop limit for " + identifier));
}
}
// %VotingPlugin_points% - Total votes of all vote sites
if (identifier.equalsIgnoreCase("points")) {
return Integer.toString(user.getPoints());
}
for (final TopVoter top : TopVoter.values()) {
placeholders.add(new PlaceHolder<User>("Total_" + top.toString()) {
// %VotingPlugin_VotePartyVotesNeeded - Number of votes needed until
// vote party rewards
if (identifier.equalsIgnoreCase("VotePartyVotesNeeded")) {
return Integer.toString(VoteParty.getInstance().getNeededVotes());
} else if (identifier.equalsIgnoreCase("VotePartyVotesCurrent")) {
return Integer.toString(VoteParty.getInstance().getTotalVotes());
} else if (identifier.equalsIgnoreCase("VotePartyVotesRequired")) {
return Integer.toString(Config.getInstance().getVotePartyVotesRequired());
}
// %VotingPlugin_canvote% - Whether or not a player can vote on all
// sites
if (identifier.equalsIgnoreCase("canvote")) {
return Boolean.toString(user.canVoteAll());
}
// %VotingPlugin_next_SITENAME% - Next time you can vote for voteSite
if (startsWithIgnoreCase(identifier, "next")) {
if (args.length > 1) {
String str = args[1];
for (int i = 2; i < args.length; i++) {
str += "_" + args[i];
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(top));
}
}.withDescription("User total for " + top.getName()));
}
placeholders.add(new PlaceHolder<User>("BestDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestDailyTotal());
}
}.withDescription("Best daily total"));
placeholders.add(new PlaceHolder<User>("BestWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestWeeklyTotal());
}
}.withDescription("Best weekly total"));
placeholders.add(new PlaceHolder<User>("BestMonthlyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestMonthlyTotal());
}
}.withDescription("Best monthly total"));
placeholders.add(new PlaceHolder<User>("DailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getDayVoteStreak());
}
}.withDescription("Current daily votestreak"));
placeholders.add(new PlaceHolder<User>("WeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getWeekVoteStreak());
}
}.withDescription("Current weekly votestreak"));
placeholders.add(new PlaceHolder<User>("MonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getMonthVoteStreak());
}
}.withDescription("Current month votestreak"));
placeholders.add(new PlaceHolder<User>("BestDailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestDayVoteStreak());
}
}.withDescription("Best daily votestreak"));
placeholders.add(new PlaceHolder<User>("BestWeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestWeekVoteStreak());
}
}.withDescription("Best weekly votestreak"));
placeholders.add(new PlaceHolder<User>("BestMonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestMonthVoteStreak());
}
}.withDescription("Best month votestreak"));
placeholders.add(new PlaceHolder<User>("Points") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getPoints());
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder<User>("CanVote") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Boolean.toString(user.canVoteAll());
}
}.withDescription("Return true/false if player can vote on all sites"));
for (final VoteSite voteSite : plugin.getVoteSites()) {
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<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<User>("CanVote_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.canVoteSite(voteSite);
}
}.withDescription("Whether or not player can vote on " + voteSite.getKey()));
}
placeholders.add(new PlaceHolder<User>("Top_All_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return playerNextVote(user, str);
} else {
return "";
}
}
}.withDescription("Get user top voter position"));
// %VotingPlugin_last_SITENAME% - Next time you can vote for voteSite
if (startsWithIgnoreCase(identifier, "last")) {
if (args.length > 1) {
String str = args[1];
for (int i = 2; i < args.length; i++) {
str += "_" + args[i];
}
return playerLastVote(user, str);
}
}
if (args.length > 2) {
if (args[0].equalsIgnoreCase("top")) {
if (StringUtils.getInstance().isInt(args[2])) {
int number = Integer.parseInt(args[2]);
int num = 1;
if (args[1].equalsIgnoreCase("all")) {
for (Entry<User, Integer> entry : plugin.topVoterAllTime.entrySet()) {
if (num == number) {
if (args.length > 3 && args[3].equalsIgnoreCase("votes")) {
return "" + entry.getValue().intValue();
} else {
return entry.getKey().getPlayerName();
}
}
num++;
}
} else if (args[1].equalsIgnoreCase("month")) {
for (Entry<User, Integer> entry : plugin.topVoterMonthly.entrySet()) {
if (num == number) {
if (args.length > 3 && args[3].equalsIgnoreCase("votes")) {
return "" + entry.getValue().intValue();
} else {
return entry.getKey().getPlayerName();
}
}
num++;
}
} else if (args[1].equalsIgnoreCase("week")) {
for (Entry<User, Integer> entry : plugin.topVoterWeekly.entrySet()) {
if (num == number) {
if (args.length > 3 && args[3].equalsIgnoreCase("votes")) {
return "" + entry.getValue().intValue();
} else {
return entry.getKey().getPlayerName();
}
}
num++;
}
} else if (args[1].equalsIgnoreCase("daily")) {
for (Entry<User, Integer> entry : plugin.topVoterDaily.entrySet()) {
if (num == number) {
if (args.length > 3 && args[3].equalsIgnoreCase("votes")) {
return "" + entry.getValue().intValue();
} else {
return entry.getKey().getPlayerName();
}
}
num++;
}
}
} else if (args[2].equalsIgnoreCase("Position")) {
int num = 1;
if (args[1].equalsIgnoreCase("all")) {
for (Entry<User, Integer> entry : plugin.topVoterAllTime.entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
} else if (args[1].equalsIgnoreCase("month")) {
for (Entry<User, Integer> entry : plugin.topVoterMonthly.entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
} else if (args[1].equalsIgnoreCase("week")) {
for (Entry<User, Integer> entry : plugin.topVoterWeekly.entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
} else if (args[1].equalsIgnoreCase("daily")) {
for (Entry<User, Integer> entry : plugin.topVoterDaily.entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
placeholders.add(new PlaceHolder<User>("Top_AllVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.AllTime);
}
num++;
}
return "";
}
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
return identifier;
placeholders.add(new PlaceHolder<User>("Top_All_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Month_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Month_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_MonthVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Monthly);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Week_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Week_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_WeekVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Weekly);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Daily_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Daily_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_DailyVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Daily);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
// non players
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesCurrent") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getTotalVotes());
}
}.withDescription("Current amount of voteparty votes"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesNeeded") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getNeededVotes());
}
}.withDescription("Voteparty votes needed"));
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"));
}
public String playerLastVote(User user, String siteName) {
if (!ConfigVoteSites.getInstance().getVoteSitesNames().contains(siteName)) {
return "";
}
VoteSite voteSite = plugin.getVoteSite(siteName);
return Commands.getInstance().voteCommandLastDate(user, voteSite);
}
public String playerNextVote(User user, String siteName) {
if (!ConfigVoteSites.getInstance().getVoteSitesNames().contains(siteName)) {
return "";
}
VoteSite voteSite = plugin.getVoteSite(siteName);
return Commands.getInstance().voteCommandNextInfo(user, voteSite);
}
public boolean startsWithIgnoreCase(String str1, String str2) {
return str1.toLowerCase().startsWith(str2.toLowerCase());
}
}
@@ -1,114 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Util.Updater;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.VotingPlugin.Main;
// TODO: Auto-generated Javadoc
/**
* The Class CheckUpdate.
*/
public class CheckUpdate {
/** The instance. */
static CheckUpdate instance = new CheckUpdate();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of CheckUpdate.
*
* @return single instance of CheckUpdate
*/
public static CheckUpdate getInstance() {
return instance;
}
/**
* Instantiates a new check update.
*/
private CheckUpdate() {
}
/**
* Instantiates a new check update.
*
* @param plugin
* the plugin
*/
public CheckUpdate(Main plugin) {
CheckUpdate.plugin = plugin;
}
/**
* Check update.
*/
public void checkUpdate() {
plugin.updater = new Updater(plugin, 15358, false);
final Updater.UpdateResult result = plugin.updater.getResult();
switch (result) {
case FAIL_SPIGOT: {
plugin.getLogger().info("Failed to check for update for " + plugin.getName() + "!");
break;
}
case NO_UPDATE: {
plugin.getLogger().info(plugin.getName() + " is up to date! Version: " + plugin.updater.getVersion());
break;
}
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
public void checkUpdateBasic() {
plugin.updater = new Updater(plugin, 15358, false);
final Updater.UpdateResult result = plugin.updater.getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
/**
* Start up.
*/
public void startUp() {
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
checkUpdate();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
checkUpdateBasic();
}
}, 1000 * 60 * 1200, 1000 * 60 * 1200);
}
}, 10l);
}
}
@@ -1,3 +1,4 @@
package com.Ben12345rocks.VotingPlugin.VoteParty;
import java.util.ArrayList;
@@ -8,10 +9,10 @@ import org.bukkit.command.CommandSender;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Listeners.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
@@ -86,16 +87,21 @@ public class VoteParty implements Listener {
* Check.
*/
public void check() {
if (getTotalVotes() >= Config.getInstance().getVotePartyVotesRequired()) {
setTotalVotes(getTotalVotes() - Config.getInstance().getVotePartyVotesRequired());
if (getTotalVotes() >= getVotesRequired()) {
setTotalVotes(getTotalVotes() - getVotesRequired());
VotePartyEvent event = new VotePartyEvent();
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
giveRewards();
MiscUtils.getInstance().broadcast(Config.getInstance().getVotePartyBroadcast());
giveRewards();
if (Config.getInstance().getVotePartyIncreaseVotesRquired() > 0) {
ServerData.getInstance().setVotePartyExtraRequired(ServerData.getInstance().getVotePartyExtraRequired()
+ Config.getInstance().getVotePartyIncreaseVotesRquired());
}
}
}
@@ -109,7 +115,7 @@ public class VoteParty implements Listener {
public void commandVoteParty(CommandSender sender) {
if (Config.getInstance().getVotePartyEnabled()) {
ArrayList<String> msg = Config.getInstance().getFormatCommandsVoteParty();
int votesRequired = Config.getInstance().getVotePartyVotesRequired();
int votesRequired = getVotesRequired();
int votes = getTotalVotes();
int neededVotes = votesRequired - votes;
HashMap<String, String> placeholders = new HashMap<String, String>();
@@ -129,7 +135,7 @@ public class VoteParty implements Listener {
* @return the needed votes
*/
public int getNeededVotes() {
int votesRequired = Config.getInstance().getVotePartyVotesRequired();
int votesRequired = getVotesRequired();
int votes = getTotalVotes();
int neededVotes = votesRequired - votes;
return neededVotes;
@@ -158,22 +164,27 @@ public class VoteParty implements Listener {
return new ArrayList<String>();
}
/**
* Give reward.
*
* @param user
* the user
*/
public int getVotesRequired() {
int required = Config.getInstance().getVotePartyVotesRequired();
int extra = ServerData.getInstance().getVotePartyExtraRequired();
if (extra > 0) {
return required + extra;
}
return required;
}
public void giveReward(User user) {
/*
* if (PlayerUtils.getInstance().isPlayerOnline(user.getPlayerName())) { if
* (user.getVotePartyVotes() >= Config.getInstance().getUserVotesRequired()) {
* RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
* Config.getInstance().getVotePartyRewardsPath()); } } else {
* user.addOfflineOtherReward("VoteParty"); }
*/
if (Config.getInstance().getVotePartyUserVotesRequired() > 0) {
if (user.getVotePartyVotes() < Config.getInstance().getVotePartyUserVotesRequired()) {
return;
}
}
giveReward(user, user.isOnline());
}
public void giveReward(User user, boolean online) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(user.isOnline())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
@@ -193,11 +204,13 @@ public class VoteParty implements Listener {
}
if (Config.getInstance().getVotePartyGiveAllPlayers()) {
plugin.debug("Giving all players vote party");
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
}
} else {
plugin.debug(ArrayUtils.getInstance().makeStringList(getVotedUsers()));
for (String uuid : getVotedUsers()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
@@ -226,6 +239,7 @@ public class VoteParty implements Listener {
public void reset() {
setVotedUsers(new ArrayList<String>());
setTotalVotes(0);
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getVotePartyVotes() != 0) {
@@ -3,7 +3,7 @@ package com.Ben12345rocks.VotingPlugin.VoteReminding;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
@@ -1,78 +0,0 @@
package com.Ben12345rocks.VotingPlugin.VoteShop;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
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.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.GUI.PlayerGUIs;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VoteShop {
static VoteShop instance = new VoteShop();
static Main plugin = Main.plugin;
public static VoteShop getInstance() {
return instance;
}
private VoteShop() {
}
public VoteShop(Main plugin) {
VoteShop.plugin = plugin;
}
public void voteShop(Player player) {
BInventory inv = new BInventory(Config.getInstance().getVoteShopName());
for (String identifier : Config.getInstance().getIdentifiers()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(Config.getInstance().getIdentifierSlot(identifier), new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
User user = UserManager.getInstance().getVotingPluginUser(player);
int points = Config.getInstance().getIdentifierCost(identifier);
String identifier = Config.getInstance().getIdentifierFromSlot(event.getSlot());
if (identifier != null) {
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier));
user.sendMessage(Config.getInstance().getFormatShopPurchaseMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
} else {
user.sendMessage(Config.getInstance().getFormatShopFailedMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
}
}
}
});
}
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.openInventory(player);
}
}
@@ -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();
}
}