Compare commits

..
329 Commits
Author SHA1 Message Date
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
Ben12345rocks 5618d4b479 Update version number 2018-01-28 14:34:04 -05:00
Ben 898b2985e5 Merge pull request #339 from Ben12345rocks/5.12.2
5.12.2
2018-01-28 14:32:39 -05:00
Ben12345rocks cd7fa2cd39 Minor change 2018-01-28 13:55:43 -05:00
Ben12345rocks 62afcfc820 Add more debug 2018-01-24 17:28:17 -05:00
Ben12345rocks 12233d1061 Bug fix, closes #338 2018-01-22 16:51:44 -05:00
Ben12345rocks c2b3178f2e Bug fixes 2018-01-21 19:05:38 -05:00
Ben12345rocks 2e01c1eafd Bug fix 2018-01-21 15:07:19 -05:00
Ben12345rocks 384ace3013 Add option to clear cache on vote 2018-01-20 17:47:31 -05:00
Ben 2693874d99 Merge pull request #334 from Ben12345rocks/5.12.1
5.12.1
2018-01-14 20:25:23 -05:00
Ben12345rocks f5b780453c Update build path 2018-01-14 20:25:06 -05:00
Ben12345rocks 7a7bb93091 Update version number 2018-01-14 20:19:40 -05:00
Ben12345rocks 8933dac0db Add option to UseSSL, closes #337 2018-01-14 19:43:42 -05:00
Ben12345rocks 822e0a5766 Closes #336 2018-01-14 13:16:57 -05:00
Ben12345rocks e1fdc5cd6b Use new api 2018-01-13 14:35:02 -05:00
Ben12345rocks 3b0451b348 Improving checking of valid service sites 2018-01-07 13:26:47 -05:00
Ben12345rocks 4de380318f Add ability to disable checking names on mojang 2018-01-05 17:55:54 -05:00
Ben12345rocks 1c7afc8bb3 Bug fix 2018-01-01 15:30:26 -05:00
Ben12345rocks 7b15289c43 Bug fix 2017-12-31 13:23:44 -05:00
Ben12345rocks 241746fdf0 Update build path 2017-12-21 19:40:50 -05:00
Ben 37932f570e Merge pull request #322 from Ben12345rocks/5.12
5.12
2017-12-21 19:39:41 -05:00
Ben12345rocks 1c834a480f Other changes 2017-12-21 19:31:51 -05:00
Ben12345rocks 6a0d74f400 Update version number 2017-12-18 20:13:52 -05:00
Ben12345rocks feed85d9bb Add support for player name in vote url 2017-12-18 16:46:30 -05:00
Ben12345rocks f9b4adf342 Back to beta version 2017-12-17 16:35:13 -05:00
Ben12345rocks a04b9b996d Update version number 2017-12-17 15:45:51 -05:00
Ben12345rocks 4992c547ed Add an option to add totals 2017-12-17 15:27:54 -05:00
Ben12345rocks d5c1f3bf11 Some improvements to top voter files 2017-12-17 15:17:10 -05:00
Ben12345rocks b82736e933 More performance boosts 2017-12-17 13:59:00 -05:00
Ben12345rocks d0d1e262c2 Performance changes 2017-12-17 13:55:03 -05:00
Ben12345rocks 0b0dea8f51 Bug fixes 2017-12-16 14:40:05 -05:00
Ben12345rocks 48e1298b73 Allow top voter ties 2017-12-16 12:54:44 -05:00
Ben12345rocks 8d850dde7e Add command to reset offline rewards/votes 2017-12-14 20:00:30 -05:00
Ben12345rocks 963ff8b5f2 Add an option to reset vote party monthly 2017-12-11 19:33:56 -05:00
Ben12345rocks 5a871656c5 Add beta build version 2017-12-10 17:13:22 -05:00
Ben12345rocks 011e18ff9d Remove debug 2017-12-10 17:11:58 -05:00
Ben12345rocks 53f9b2c9f8 Major improvements 2017-12-10 17:07:11 -05:00
Ben12345rocks fe488158df Bug fix 2017-12-10 15:15:08 -05:00
Ben12345rocks 699bb1bdf6 Rename a config option to avoid confusion 2017-12-10 14:58:56 -05:00
Ben12345rocks f9c8b8a719 Generate item section for a vote site 2017-12-10 14:40:12 -05:00
Ben12345rocks 242eceda2c Fix typo 2017-12-10 14:17:46 -05:00
Ben12345rocks 98cd79684e Minor improvements 2017-12-10 14:16:13 -05:00
Ben12345rocks 5b4f73dadf Small api improvement 2017-12-09 20:12:40 -05:00
Ben12345rocks a8113aa941 Add new events 2017-12-09 20:09:29 -05:00
Ben12345rocks f741dbf6a7 Add last month total, closes #317 2017-12-05 18:59:25 -05:00
Ben12345rocks f589817301 Add ability to execute console commands once for vote party, closes #316 2017-12-03 13:21:36 -05:00
Ben12345rocks 27874ecb70 Fixed wrong month showing in top voter monthly files 2017-12-03 13:12:00 -05:00
Ben12345rocks 73726123ae Update build path 2017-11-19 15:56:33 -05:00
Ben 0a7637f04b Merge pull request #312 from Ben12345rocks/5.11
5.11
2017-11-19 15:36:35 -05:00
Ben12345rocks c4d3068895 Update version number 2017-11-19 15:25:05 -05:00
Ben12345rocks c497d338f9 Minor improvement 2017-11-19 15:23:29 -05:00
Ben12345rocks 9140466e02 Lots of improvements, closes #306 2017-11-19 14:28:42 -05:00
Ben12345rocks 2d6b1ebd33 Add ability to edit url text from vote url gui 2017-11-13 21:04:22 -05:00
Ben12345rocks d0ff76e9c4 Add permission to ignore vote reminding 2017-11-13 20:58:57 -05:00
Ben12345rocks 6ff6b14c2d Bug fixes, closes #303 2017-10-29 12:45:12 -04:00
Ben12345rocks 198dffe5df Javadoc fixes 2017-10-22 15:51:27 -04:00
Ben12345rocks 868a755d86 Bug fixes 2017-10-22 15:48:30 -04:00
Ben12345rocks 9f4c6bf250 Update build path 2017-10-22 15:28:15 -04:00
Ben 655cec2bac Merge pull request #299 from Ben12345rocks/5.10.5
5.10.5
2017-10-22 15:24:41 -04:00
Ben12345rocks 9fc0b2c9a3 Bug fix 2017-10-22 14:58:02 -04:00
Ben12345rocks 5aa396cc67 Lots of bug fixes, added purging 2017-10-22 14:51:54 -04:00
Ben12345rocks d11b90fabd Update version number 2017-10-22 12:27:05 -04:00
Ben12345rocks bc85b88c27 Improve update message. 2017-10-22 12:26:18 -04:00
Ben12345rocks a9e110f21f Made /vote party say its disabled when disabled 2017-10-20 21:05:50 -04:00
Ben12345rocks aa4622437f Bug fix 2017-10-20 21:01:55 -04:00
Ben12345rocks 46eb548962 Bug fixes 2017-10-20 14:49:29 -04:00
Ben12345rocks 25b3494dc5 Bug fixes 2017-10-19 21:55:59 -04:00
Ben12345rocks 33602b3ed2 Bug fixes 2017-10-19 20:34:21 -04:00
Ben12345rocks 36662ab18d Bug fixes 2017-10-19 15:48:05 -04:00
Ben12345rocks 40473b14a2 Bug fixes 2017-10-19 15:07:38 -04:00
Ben12345rocks 6ca6529f2c Improvements 2017-10-19 13:42:04 -04:00
Ben12345rocks a6b2945b14 More improvements 2017-10-19 11:51:11 -04:00
Ben12345rocks b5fc7da7c9 Lots of command improvements 2017-10-19 11:48:23 -04:00
Ben12345rocks 41104be50f Minor bug fix 2017-10-16 21:56:10 -04:00
Ben12345rocks e2dabbb8c1 Update build path 2017-10-16 21:38:50 -04:00
Ben12345rocks 5f37262a48 Update build path 2017-10-16 21:37:59 -04:00
Ben12345rocks efd48a1005 Add download completion message, closes #296 2017-10-16 21:36:54 -04:00
Ben12345rocks a813172c43 Bug fix 2017-10-14 08:17:54 -04:00
Ben12345rocks 0f8f190a21 Javadoc fixes 2017-10-13 20:47:32 -04:00
Ben12345rocks 0f87222709 Update build path and new config option 2017-10-13 20:42:15 -04:00
Ben 518ecfc42b Merge pull request #294 from Ben12345rocks/5.10.3
5.10.3
2017-10-13 20:18:15 -04:00
Ben12345rocks d02c4a4b70 Update version number 2017-10-13 19:57:05 -04:00
Ben12345rocks 9359b4fb05 Bug fixes 2017-10-13 11:06:16 -04:00
Ben12345rocks 4f3ba5b1c4 Make storage type case insensitive 2017-10-13 10:34:39 -04:00
Ben12345rocks 600287e9c5 Add a warning if no rewards are detected for vote sites on startup 2017-10-13 10:21:14 -04:00
Ben12345rocks a05114e277 Added vote option in votesite admin gui 2017-10-13 10:11:43 -04:00
Ben12345rocks 5449038cfd Changes to permissions 2017-10-11 20:25:52 -04:00
Ben12345rocks 853cdd0a13 Code cleanup 2017-10-11 20:13:16 -04:00
Ben12345rocks 3cd36d3fd7 Add options for fake votes, closes #269 2017-10-11 20:11:00 -04:00
Ben12345rocks bd3abaae76 Use better skull system, closes #293 2017-10-03 16:54:37 -04:00
Ben12345rocks a9a70a20ee Bug fix 2017-10-01 19:22:37 -04:00
Ben12345rocks 2fc2067bc5 Bug fixes, closes #288 2017-10-01 13:49:44 -04:00
Ben12345rocks 2e6e3617a3 Fix issues with permissions 2017-10-01 13:43:35 -04:00
Ben12345rocks c590ca5a93 Bug fix, closes #286 2017-09-29 16:03:38 -04:00
Ben12345rocks 2772db23b8 Improvements 2017-09-29 15:31:47 -04:00
Ben12345rocks ee3217b942 Bug fix 2017-09-28 15:13:22 -04:00
Ben12345rocks b1dfe6a14b Bug fix 2017-09-28 14:52:01 -04:00
Ben12345rocks 222a3824af Bug fix 2017-09-28 14:49:44 -04:00
Ben12345rocks 5f5d3dd2c5 Bug fixes 2017-09-28 14:45:07 -04:00
Ben12345rocks 84ba523233 Bug fix 2017-09-28 14:35:07 -04:00
Ben12345rocks 1da224ff6b closes #281 2017-09-28 14:16:56 -04:00
Ben12345rocks e2efe2b289 Added more config options, closes #283 2017-09-28 14:02:58 -04:00
Ben12345rocks 9cf044aa64 Bug fixes, closes #280 2017-09-26 16:30:55 -04:00
Ben12345rocks eac8078a65 Improvements 2017-09-26 14:20:35 -04:00
Ben12345rocks 2cf97ba408 Javadoc fix 2017-09-26 14:15:30 -04:00
Ben 23ffc18289 Merge pull request #279 from Ben12345rocks/5.10.2
5.10.2
2017-09-26 14:12:57 -04:00
Ben12345rocks 2152a6688f Update version number 2017-09-26 14:12:03 -04:00
Ben12345rocks c3220392eb Improve message 2017-09-26 14:10:45 -04:00
Ben12345rocks fec401485b Improve the service sites message 2017-09-26 14:03:27 -04:00
Ben12345rocks 2b2a6385b4 Bug fixes 2017-09-26 11:23:16 -04:00
Ben12345rocks 9937f3d9c0 Bug fixes 2017-09-26 10:50:54 -04:00
Ben12345rocks b276d516a6 Improve message for offline vote debug 2017-09-26 10:30:47 -04:00
Ben12345rocks d6a336e9b9 Bug fixes 2017-09-26 10:29:52 -04:00
Ben12345rocks b356cb1794 Bug fixes, closes #276 2017-09-26 08:46:29 -04:00
Ben12345rocks 4b0a2ee384 Add backbutton to vote shop 2017-09-25 21:31:44 -04:00
Ben12345rocks 8dab62124e Add a warning to help track down missing item sections 2017-09-25 21:23:18 -04:00
Ben12345rocks a7df1a0150 Bug fix 2017-09-25 21:00:00 -04:00
Ben12345rocks f2d7e24400 Make names case insensitive, closes #267 2017-09-25 20:52:21 -04:00
Ben12345rocks fa74bdcb3c Bug fix 2017-09-25 20:30:25 -04:00
Ben12345rocks 80a4cb8f78 Improve vote delay daily, closes #272 2017-09-25 20:29:46 -04:00
Ben12345rocks f16aef16d4 Add a method of getting service sites, closes #271 2017-09-25 20:23:19 -04:00
Ben12345rocks e7a1a1241b Bug fixes, closes #273, closes #274 2017-09-25 20:09:56 -04:00
Ben12345rocks 0ee002e3fb Bug fix, closes #278 2017-09-25 20:01:42 -04:00
Ben12345rocks 69ab9df8b3 Minor config fix 2017-09-25 19:53:59 -04:00
Ben12345rocks 54ff1dd66b Update build path 2017-09-22 09:46:28 -04:00
Ben12345rocks 75732910e2 Update build path 2017-09-22 09:44:36 -04:00
Ben 9c6614836a Merge pull request #266 from Ben12345rocks/5.10.1
5.10.1
2017-09-22 09:42:47 -04:00
Ben12345rocks 72148816e5 Update version number 2017-09-22 08:56:35 -04:00
Ben12345rocks f969c91170 Don't set points if no points are added 2017-09-21 08:46:10 -04:00
Ben12345rocks 904d660919 Trim leading and trailing whitespace from votes 2017-09-20 11:45:46 -04:00
Ben12345rocks fb5449effe Bug fixes 2017-09-17 20:05:31 -04:00
Ben12345rocks 46db998e17 Make yml errors much more visible 2017-09-17 15:23:33 -04:00
Ben12345rocks 2bcf096584 Bug fix 2017-09-03 15:34:59 -04:00
Ben12345rocks c2b7e2388e javadoc fix 2017-09-03 15:27:44 -04:00
Ben 180ae04b24 Merge pull request #256 from Ben12345rocks/5.10
5.10
2017-09-03 15:23:27 -04:00
Ben12345rocks 73efcfb87f Update build path 2017-09-03 15:23:03 -04:00
Ben12345rocks 6ba2ff582a Remove debug 2017-09-03 15:16:28 -04:00
Ben12345rocks d622b5b684 Improvements 2017-09-03 15:10:55 -04:00
Ben12345rocks 2247134daa Update version number 2017-09-03 13:06:49 -04:00
Ben12345rocks 7de7150e41 Update build path 2017-09-03 13:01:14 -04:00
Ben12345rocks be23989a20 Add ability to not clear cache on update, improving speeds 2017-09-03 12:44:37 -04:00
Ben12345rocks 8c4bdc8e20 Add option to disregard fake votes for voteparty 2017-09-03 12:24:46 -04:00
Ben12345rocks f4d507d821 Add command for voteparty 2017-09-03 12:16:44 -04:00
Ben12345rocks 43fd338efd New option 2017-08-30 10:28:12 -04:00
Ben12345rocks c51873e7b2 Improvements 2017-08-30 10:23:06 -04:00
Ben 5e1d5b534b Merge pull request #251 from Ben12345rocks/5.9.7
5.9.7
2017-08-27 13:02:22 -04:00
Ben12345rocks c762ef5be1 Update version number 2017-08-27 12:59:45 -04:00
Ben12345rocks 1d0f8d5c06 Prevent exploits 2017-08-26 19:46:44 -04:00
Ben12345rocks 6129480077 More config options, closes #248 2017-08-24 11:35:44 -04:00
Ben12345rocks f8d7c837f9 Add command to clear offline votes, closes #249 2017-08-24 11:23:29 -04:00
Ben12345rocks d7aba7b390 Add an option for max mysql size 2017-08-20 12:29:56 -04:00
Ben12345rocks 5833a1c5cc Update build path 2017-08-11 20:52:36 -04:00
Ben12345rocks 6833247a8c Update build path 2017-08-11 20:49:57 -04:00
Ben 46087ccad5 Merge pull request #244 from Ben12345rocks/5.9.6
5.9.6
2017-08-11 20:49:16 -04:00
Ben12345rocks 4634d6bdc2 More improvements 2017-08-11 20:38:38 -04:00
Ben12345rocks 3f451c888a Improvements to service sites 2017-08-11 20:36:49 -04:00
Ben12345rocks ea448e3920 Bug fix 2017-08-11 20:25:33 -04:00
Ben12345rocks 169aaf026e Update version number 2017-08-11 14:11:01 -04:00
Ben12345rocks 0af3f7f2bc Update build path 2017-08-08 10:38:50 -04:00
Ben b3baa33c39 Merge pull request #240 from Ben12345rocks/5.9.5
5.9.5
2017-08-08 10:34:31 -04:00
Ben12345rocks e7f8aac88d Bug fix 2017-08-08 10:30:12 -04:00
Ben12345rocks 6ce4040bae Update build path 2017-08-07 17:37:44 -04:00
Ben12345rocks f5e38b2b1b Update version number 2017-08-07 17:22:19 -04:00
Ben12345rocks 9fdb9b4efb Minor change to user api 2017-08-06 12:44:57 -04:00
Ben12345rocks 29f020bdc0 Bug fix 2017-08-03 18:22:34 -04:00
Ben12345rocks cce5bb0672 Bug fix, closes #238 2017-08-03 17:47:43 -04:00
Ben12345rocks 8a0cd0426c Fix offline top voter messaging 2017-08-02 21:02:38 -04:00
Ben12345rocks 397c4392a0 Update perms list 2017-08-02 19:33:27 -04:00
Ben12345rocks 4784b372c9 Make site names non case sensitive, closes #235 2017-07-31 20:09:35 -04:00
Ben12345rocks 1521d0787c Add vanish support for broadcasting, closes #232 2017-07-31 20:05:30 -04:00
Ben12345rocks 9cbcb74822 Improve last vote time showing when never voted, closes #237 2017-07-31 19:57:07 -04:00
Ben ae75f63c94 Merge pull request #231 from Ben12345rocks/5.9.4
5.9.4
2017-07-23 17:06:25 -04:00
Ben12345rocks e91e2e109c Update build path 2017-07-23 17:02:33 -04:00
Ben12345rocks 0fb0a6351d Add options to remove back button, closes #227 2017-07-23 16:50:45 -04:00
Ben12345rocks 10d06c170d Code cleanup 2017-07-23 14:48:16 -04:00
Ben12345rocks a4c0a9b45b Update version number 2017-07-23 14:43:57 -04:00
Ben12345rocks 63fc8d436e Update advancedcore 2017-07-23 14:42:49 -04:00
Ben12345rocks 6160110ba2 Improvements 2017-07-22 19:34:34 -04:00
Ben12345rocks e337c267a8 Fix typo, closes #228 2017-07-22 19:26:08 -04:00
Ben12345rocks b0abbcc99f Improve mysql loading for background task, closes #230 2017-07-22 19:10:25 -04:00
Ben12345rocks f75dffe5df Remove /v, Closes #229 2017-07-22 19:03:08 -04:00
Ben12345rocks 146d981c23 Update 2017-07-22 18:52:44 -04:00
Ben12345rocks 2e7ed9c1c1 Update Settings 2017-07-21 09:45:42 -04:00
Ben 198fe10447 Merge pull request #226 from Ben12345rocks/5.9.3
5.9.3
2017-07-16 17:10:04 -04:00
Ben12345rocks ab8dd96a79 Update version number 2017-07-16 17:10:45 -04:00
Ben12345rocks cac0b0e99c Add ability to give vote site rewards offline 2017-07-15 19:10:21 -04:00
Ben12345rocks 80ae9dbe2d Update build path 2017-07-12 09:28:08 -04:00
Ben f91a02ba3f Merge pull request #222 from Ben12345rocks/5.9.2
5.9.2
2017-07-11 11:57:38 -04:00
Ben12345rocks 25d718a37c Update version number 2017-07-11 11:46:59 -04:00
Ben12345rocks 6114373237 Update version number 2017-07-11 11:10:49 -04:00
Ben12345rocks 3c60c99c83 Closes #221 2017-07-10 10:21:19 -04:00
Ben12345rocks e237b382cd Bug fixes, closes #197, closes #220 2017-07-10 10:07:46 -04:00
Ben12345rocks a07b69cc08 Update javadoc 2017-07-09 15:39:17 -04:00
Ben 7f1ceaf500 Merge pull request #219 from Ben12345rocks/5.9.1
5.9.1
2017-07-09 15:34:03 -04:00
Ben12345rocks 6b8924c08b Update build path 2017-07-09 15:34:15 -04:00
Ben12345rocks 1f80578e7a Bug fixes 2017-07-09 14:58:07 -04:00
Ben12345rocks 2f78c4b462 Bug fix 2017-07-09 14:20:19 -04:00
Ben12345rocks 89b0d71267 Update version number 2017-07-09 13:53:01 -04:00
Ben12345rocks 77363ce3c7 Don't show banned players on top voters 2017-07-09 13:49:58 -04:00
Ben12345rocks 9477c063de Fix auto generate sites not working correctly 2017-07-09 13:39:28 -04:00
Ben12345rocks dc00652e69 Add back button for guis 2017-07-09 13:23:57 -04:00
Ben12345rocks 374ba2ee95 Add some more placeholders for /vote 2017-07-09 13:01:14 -04:00
Ben12345rocks 8fd8b1ad35 Add a vote delay for certain sites that reset daily 2017-07-09 12:48:13 -04:00
Ben12345rocks 2c05ce4870 Change to help commands 2017-07-09 12:16:34 -04:00
Ben dca689ec37 Merge pull request #212 from Ben12345rocks/5.9
5.9
2017-06-28 08:20:33 -04:00
Ben12345rocks ee4d52377f Update version number 2017-06-28 08:19:38 -04:00
Ben12345rocks ac41c9413c Update API 2017-06-28 08:13:48 -04:00
Ben12345rocks 596968f869 Add Jar, closes #208 2017-06-26 15:13:56 -04:00
Ben12345rocks 0d2221d195 Add VoteRoulette converter 2017-06-26 14:53:14 -04:00
Ben12345rocks 23fa59f98f Fix data storage conversion 2017-06-26 13:38:50 -04:00
Ben12345rocks cb81b61096 Add more messages on convert 2017-06-25 15:05:17 -04:00
Ben12345rocks 186917992c Add a basic converter for GAL, closes #206 2017-06-22 14:40:44 -04:00
Ben12345rocks 6b70e4fee4 Add ability to set points on vote, closes #207 2017-06-20 19:51:08 -04:00
Ben12345rocks 79c98c8b86 Allow reward files to run offline, closes #200 2017-06-20 19:45:13 -04:00
Ben12345rocks b8e0830b0b Fix typo in Config.yml 2017-06-20 19:38:27 -04:00
Ben12345rocks 1cd1a0ab75 Update build path 2017-06-18 20:26:48 -04:00
Ben 481510a1e8 Merge pull request #205 from Ben12345rocks/5.8.7
5.8.7
2017-06-18 20:16:10 -04:00
Ben12345rocks 3a95ef9b23 Slight improvement 2017-06-18 20:16:44 -04:00
Ben12345rocks f7af9210cb Minor changes to bstats 2017-06-18 19:57:31 -04:00
Ben12345rocks 9f5fe338f4 Update version number, closes #201, closes #203 2017-06-18 19:42:46 -04:00
Ben12345rocks 967be0aa19 Add broadcast for vote party 2017-06-18 18:01:32 -04:00
Ben12345rocks 6e0b62a1dd Add every site reward 2017-06-18 17:57:22 -04:00
Ben12345rocks a8ec557c9e Bug fix 2017-06-16 16:02:41 -04:00
Ben12345rocks 252263da74 Update version number 2017-06-14 15:28:14 -04:00
Ben12345rocks e7696bed25 Minor improvements 2017-06-11 16:51:36 -04:00
Ben12345rocks 064451d2b5 Update version number 2017-06-11 15:21:59 -04:00
Ben12345rocks daa25805fa Change the way converting data storages work 2017-06-08 16:03:16 -04:00
Ben12345rocks cc010d9738 Fix shop item not working 2017-06-03 19:46:46 -04:00
Ben12345rocks cbe58a1f18 Update build path 2017-06-03 19:27:05 -04:00
Ben c29247d2a0 Merge pull request #198 from Ben12345rocks/5.8.4
5.8.4
2017-06-03 19:21:02 -04:00
Ben12345rocks a28cdfc6bf Update version number 2017-06-03 19:21:39 -04:00
Ben12345rocks 7db5cd59da More improvements 2017-06-03 10:40:33 -04:00
Ben12345rocks 0ebb0c9a70 Changes to /vgui 2017-06-03 09:50:37 -04:00
Ben12345rocks 9ba20ddd02 Bug fixes, closes #197 2017-06-02 15:43:06 -04:00
Ben12345rocks 7fddc0af12 Improve support for /reload, closes #194 2017-06-02 15:25:10 -04:00
43 changed files with 3138 additions and 2051 deletions

No files matched your search

+1 -1
View File
@@ -11,7 +11,7 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
@@ -2,8 +2,11 @@ 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
@@ -64,12 +67,14 @@ 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
@@ -81,7 +86,7 @@ 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=warning
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
@@ -92,6 +97,9 @@ 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
@@ -99,6 +107,7 @@ 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
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.jboss.ide.eclipse.as.core.singledeployable.deployableList=\n
Binary file not shown.
+186 -49
View File
@@ -19,6 +19,13 @@ MySQL:
Password: ''
# Max number of connections
MaxConnections: 1
# Maxium size of caching mysql
# -1 for no limit
# Affecting this value may affect performance
MaxSize: -1
# Table name prefix, for use with mutliple servers
Prefix: ''
#UseSSL: true
# Let players who never joined before vote
# Recommend: False (Will prevent creating random user data files)
@@ -70,7 +77,7 @@ VoteReminding:
# Can add titles and more in the reward file
Rewards:
Messages:
Player: '&aRemeber to vote!'
Player: '&aRemember to vote!'
Title:
Enabled: false
Title: '&cRemember to vote!'
@@ -78,18 +85,6 @@ 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
# ------------------------------------------------
# Format
@@ -103,17 +98,30 @@ Commands:
#
# Set Message to '' (2 ') to disable message
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
# 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:
# Message when player tries to run command without required permissions
NoPerms: '&cYou do not have enough permission!'
# Message when player types a command but does not input a number where needed
NotNumber: '&cError on &6%arg%&c, number expected!'
# 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
@@ -155,6 +163,8 @@ Format:
TimeUntilVote: '%hours% Hours and %minutes% Minutes'
# If there is an error finding out time until next vote
Error: '&cCould not caculate time until next vote!'
# For sites that have this, requires votedelaydaily to be set to true in the site
VoteDelayDaily: '%hours% Hours and %minutes% Minutes'
# Format for /vote last
Last:
@@ -162,7 +172,11 @@ 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% ago'
# Spelling of TimeType can be changed under Format.Commands.TimeFormats
TimeFormat: '%amount% %TimeType%'
NeverVoted: 'Never voted'
# Format for /vote total
Total:
@@ -227,9 +241,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
@@ -239,6 +253,16 @@ Format:
# See https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
TimeFormat: 'EEE, d MMM yyyy HH:mm'
TimeFomrats:
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
@@ -260,7 +284,24 @@ Format:
# Shop messages when using the /vote shop
ShopPurchase: '&aYou bought the %Identifier% for %Points% Points!'
ShopFailed: '&cYou do not have %Points% points to purhcase this!'
ShopFailed: '&cYou do not have %Points% points to purchase this!'
# 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'
InvFull: '&cInventory full, dropping items on ground'
# Display text
# Used in /vote top (GUI)
TopVoter:
Daily: 'Daily'
Weekly: 'Weekly'
Monthly: 'Monthly'
AllTime: 'AllTime'
# ------------------------------------------------
# GUI Options
@@ -293,7 +334,7 @@ GUI:
Slot: 1
Last:
Item:
Material: 'WATCH'
Material: 'CLOCK'
Data: 0
Amount: 1
Name: '&4Last'
@@ -319,12 +360,14 @@ GUI:
Amount: 1
Name: '&4Today'
Slot: 5
Rewards:
Shop:
Item:
Material: 'DIAMOND'
Data: 0
Amount: 1
Name: '&4Voting Rewards'
Name: '&4Vote Shop'
Lore:
- '&aYou currently have %points% points'
Slot: 6
# GUI for /vote url
@@ -332,6 +375,7 @@ GUI:
VoteURL:
# GUI Name
Name: '&cVoteURL'
BackButton: true
SiteName: '&c%Name%'
SeeURL: '&cClick to see URL'
NextVote: '&cCan Vote In: %Info%'
@@ -341,10 +385,16 @@ GUI:
Material: 'REDSTONE_BLOCK'
Data: 0
Amount: 1
Name: '&4All Voting Sites'
Lore:
- '&cClick Me'
CanVoteItem:
Material: 'EMERALD_BLOCK'
Data: 0
Amount: 1
Name: '&4All Voting Sites'
Lore:
- '&cClick Me'
AlreadyVotedItem:
Material: 'REDSTONE_BLOCK'
Data: 0
@@ -353,6 +403,7 @@ GUI:
Material: 'EMERALD_BLOCK'
Data: 0
Amount: 1
URLText: '%VoteUrl%'
# Customize /vote reward
# Show players what you get when you vote on each site
VoteReward:
@@ -381,12 +432,16 @@ GUI:
Slot: 0
VoteLast:
Name: 'VoteLast: %player%'
BackButton: true
VoteNext:
Name: 'VoteNext: %player%'
BackButton: true
VoteToday:
Name: 'VoteToday'
BackButton: true
VoteTop:
Name: 'VoteTop %topvoter%'
BackButton: false
Item:
Name: '&3&l%position%: &3%player%'
Lore: '&3&lVotes: &3%votes%'
@@ -402,27 +457,28 @@ GUI:
Size: 27
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
@@ -430,57 +486,58 @@ 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
VoteStreak:
Name: 'VoteBest: %player%'
Name: 'VoteStreak: %player%'
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
@@ -489,7 +546,15 @@ GUI:
VoteGUIName: '&cVoteGUI: &c&l%player%'
VoteRewardName: 'VoteReward'
VoteShopName: 'VoteShop'
BackButton:
Material: 'PAPER'
Data: 0
Amount: 1
Name: '&8Back to VoteGUI'
VoteShopBackButton: true
VoteShopEnabled: true
Shop:
# Identifier
# Used in placeholders for formats
@@ -506,6 +571,8 @@ Shop:
- '&c&lCost: &c3 Voting Points'
# Number of voting points this cost
Cost: 3
# Permission required, leave blank for no permission
Permission: ''
# Rewards to run if player buys succesfully
Rewards:
Items:
@@ -557,15 +624,31 @@ 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
# If true, the vote count will reset each day
ResetEachDay: false
# Reset at the end of the month
ResetMonthly: false
# Count votes from /av vote?
CountFakeVotes: true
# Number of user votes that apply to vote party total the user needs to get rewards
UserVotesRequired: 0
# Broadcast when vote party reached
Broadcast: '&cReached the vote party amount!'
# List of commands to execute, these only execute once.
# %player% does not work here
Commands: []
# Reward files to give
Rewards: []
Rewards:
Commands:
- say %player%
# Reset milestons at end of the month
ResetMilestonesMonthly: false
MileStones:
# Number of votes required
@@ -577,12 +660,13 @@ MileStones:
Rewards:
Messages:
Player: '&aYou got %milestone% milestone votes!'
ResetMonthly: false
VoteStreak:
# Valid options: Day, Week, Month
Day:
# Number of days in a row
# Each day requires one vote
# Add a - to give a reward for every multiple (e.g. 2-)
'2':
# Enabled or not
Enabled: false
@@ -591,7 +675,8 @@ VoteStreak:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Week:
# Number of days in a row
# Number of weeks in a row
# Requires atleast one vote per week
'2':
# Enabled or not
Enabled: false
@@ -600,7 +685,8 @@ VoteStreak:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Month:
# Number of days in a row
# Number of months in a row
# Requires atleast 1 vote per month
'2':
# Enabled or not
Enabled: false
@@ -614,6 +700,7 @@ VoteStreak:
# IT WILL ONLY RUN ONE TIME FOR ANY NUMBER OF OFFLINE VOTES
# 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
AnySiteRewards: []
@@ -634,6 +721,9 @@ TopVoterIgnorePermission: false
# 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
@@ -652,8 +742,9 @@ 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:
Rewards:
Messages:
Player: '&aYou came in first place in %TopVoter%!'
2:
@@ -693,9 +784,17 @@ DailyAwards:
# Most of these values can be left untouched
# ------------------------------------------------
# Wether or not to check on world change
# Should only be used if you do per world rewards
CheckOnWorldChange: false
# Number of points to give on vote
# Set to 0 to give no points
PointsOnVote: 1
# 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
# Debug
Debug: false
@@ -733,6 +832,44 @@ LogVotesToFile: false
# 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
# Give VotingPlugin.Player by default
# Requires restart to take affect
GiveDefaultPermission: true
# Remove old player files
# Happens on startup or /av purge
PurgeOldData: false
# Minimum number of days offline in order to purge
PurgeMin: 90
# 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: false
# Whether or not to create daily backups. (Only the most recent ones get saved)
CreateBackups: true
+20 -2
View File
@@ -28,11 +28,29 @@ VoteSites:
# Most sites are 24 hours
VoteDelay: 24
# Reset vote delay each day (for certain sites that do this)
VoteDelayDaily: false
# If true, rewards can be executed offline (requires ForceOffline to be true in the reward)
# 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
# VoteSite Material for GUI's
# Removing this may result in an error, required on each site
Item:
Material: 'DIAMOND'
Amount: 1
# List of reward files to give to voter
# Rewards to give
# https://github.com/Ben12345rocks/AdvancedCore/wiki/Rewards
Rewards:
- 'ExampleReward'
Commands:
- 'say hello'
Messages:
Player: 'You voted'
# Reward for any site
# Similar to AnySiteReward
# This requires the site to be configured in order to get the reward.
EverySiteReward: []
+46 -3
View File
@@ -5,11 +5,10 @@ description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: Ben12345rocks
softdepend: [AdvancedCore]
api-version: 1.13
commands:
vote:
description: Vote command
v:
description: Vote command
adminvote:
description: Admin commands for VotingPlugin
av:
@@ -158,10 +157,51 @@ commands:
adminvoteClearCache:
description: Command Alias
aliases: avClearCache
adminvoteConvertFrom:
description: Command Alias
aliases: avConvertFrom
adminvoteRemovePoints:
description: Command Alias
aliases: avRemovePoints
adminvoteServiceSites:
description: Command Alias
aliases: avServiceSites
adminvoteSetVotePartyCount:
description: Command Alias
aliases: avSetVotePartyCount
adminvoteClearOfflineVotes:
description: Command Alias
aliases: avClearOfflineVotes
adminvoteGiveAll:
description: Command Alias
aliases: avGiveAll
adminvoteGiveAllOnline:
description: Command Alias
aliases: avGiveAllOnline
adminvoteForceTimeChanged:
description: Command Alias
aliases: avForceTimeChanged
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
permissions:
VotingPlugin.Player:
description: Allows basic access player commands
default: true
VotingPlugin.Mod:
description: Allows mod access player commands
VotingPlugin.Admin:
@@ -175,4 +215,7 @@ permissions:
description: Allows access to create signs
VotingPlugin.TopVoter.Ignore:
description: Allows you to be exempt from top voter
VotingPlugin.NoRemind:
description: Ignore vote reminding
default: false
+20 -9
View File
@@ -1,9 +1,10 @@
<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.8.3</version>
<version>5.15</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -55,25 +56,25 @@
other plugins -->
<relocation>
<pattern>com.Ben12345rocks.AdvancedCore</pattern>
<shadedPattern>${groupId}.${artifactId}.AdvancedCore</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.AdvancedCore</shadedPattern>
</relocation>
<!-- Lets relocate the shaded API so we dont cause any conflicts with
other plugins -->
<relocation>
<pattern>net.pl3x.bukkit.chatapi</pattern>
<shadedPattern>${groupId}.${artifactId}</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}</shadedPattern>
</relocation>
<relocation>
<pattern>me.mrten.mysqlapi</pattern>
<shadedPattern>${groupId}.${artifactId}.mysqlapi</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.mysqlapi</shadedPattern>
</relocation>
<relocation>
<pattern>com.zaxxer.HikariCP</pattern>
<shadedPattern>${groupId}.${artifactId}.HikariCP</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.HikariCP</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j.slf4j-simple</pattern>
<shadedPattern>${groupId}.${artifactId}.slf4j-simple</shadedPattern>
<shadedPattern>${project.groupId}.${project.artifactId}.slf4j-simple</shadedPattern>
</relocation>
</relocations>
</configuration>
@@ -148,6 +149,10 @@
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
@@ -156,13 +161,12 @@
<artifactId>AdvancedCore</artifactId>
<version>master-SNAPSHOT</version>
</dependency>
<!-- <dependency> <groupId>com.Ben12345rocks</groupId> <artifactId>AdvancedCore</artifactId>
<version>LATEST</version> <scope>compile</scope> </dependency> -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.12-pre2-SNAPSHOT</version>
<version>1.13.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -179,5 +183,12 @@
<scope>system</scope>
<systemPath>${project.basedir}/Jars/GAListener.jar</systemPath>
</dependency>
<dependency>
<groupId>com.mythicacraft</groupId>
<artifactId>voteroulette</artifactId>
<version>3.2.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/VoteRoulette.jar</systemPath>
</dependency>
</dependencies>
</project>
File diff suppressed because it is too large. Load diff
@@ -18,14 +18,13 @@ 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.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Scoreboards.SimpleScoreboard;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Executers.CommandVote;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.User;
@@ -122,9 +121,9 @@ public class Commands {
for (CommandHandler cmdHandle : plugin.adminVoteCommand) {
if (sender.hasPermission(cmdHandle.getPerm()) && requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/av"), cmdHandle.getHelpLine("/av"));
unsorted.put(cmdHandle.getHelpLineCommand("/adminvote"), cmdHandle.getHelpLine("/adminvote"));
} else {
unsorted.put(cmdHandle.getHelpLineCommand("/av"), cmdHandle.getHelpLine("/av"));
unsorted.put(cmdHandle.getHelpLineCommand("/adminvote"), cmdHandle.getHelpLine("/adminvote"));
}
}
ArrayList<String> unsortedList = new ArrayList<String>();
@@ -188,32 +187,105 @@ public class Commands {
return ArrayUtils.getInstance().convert(msg);
}
/**
* List perms.
*
* @return the string[]
*/
public String[] listPerms() {
public String[] listPerms(CommandSender sender) {
ArrayList<String> msg = new ArrayList<String>();
msg.add("&c&lCommand : Permissions (seperated by |)");
for (CommandHandler handle : plugin.voteCommand) {
msg.add(handle.getHelpLineCommand("/v") + " : " + handle.getPerm());
if (sender instanceof Player) {
if (handle.hasPerm(sender)) {
msg.add("&a" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : true");
} else {
msg.add("&c" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : false");
}
} else {
msg.add(handle.getHelpLineCommand("/vote") + " : " + handle.getPerm());
}
}
for (CommandHandler handle : plugin.adminVoteCommand) {
msg.add(handle.getHelpLineCommand("/av") + " : " + handle.getPerm());
if (sender instanceof Player) {
if (handle.hasPerm(sender)) {
msg.add("&a" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : true");
} else {
msg.add("&c" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : false");
}
} else {
msg.add(handle.getHelpLineCommand("/av") + " : " + handle.getPerm());
}
}
for (Permission perm : plugin.getDescription().getPermissions()) {
msg.add(perm.getName());
if (sender instanceof Player) {
if (sender.hasPermission(perm)) {
msg.add("&a" + perm.getName() + " : true");
} else {
msg.add("&c" + perm.getName() + " : false");
}
} else {
msg.add(perm.getName());
}
}
msg = ArrayUtils.getInstance().colorize(msg);
Collections.sort(msg, String.CASE_INSENSITIVE_ORDER);
return ArrayUtils.getInstance().convert(msg);
}
public void listPerms(CommandSender sender, String player, int page) {
Player p = Bukkit.getPlayer(player);
if (p != null) {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> text = new ArrayList<String>();
for (CommandHandler handle : plugin.voteCommand) {
if (handle.hasPerm(p)) {
msg.add("&a" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : true");
} else {
msg.add("&c" + handle.getHelpLineCommand("/vote") + " : " + handle.getPerm() + " : false");
}
}
for (CommandHandler handle : plugin.adminVoteCommand) {
if (handle.hasPerm(p)) {
msg.add("&a" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : true");
} else {
msg.add("&c" + handle.getHelpLineCommand("/av") + " : " + handle.getPerm() + " : false");
}
}
for (Permission perm : plugin.getDescription().getPermissions()) {
if (p.hasPermission(perm)) {
msg.add("&a" + perm.getName() + " : true");
} else {
msg.add("&c" + perm.getName() + " : false");
}
}
msg = ArrayUtils.getInstance().colorize(msg);
int pagesize = Config.getInstance().getFormatPageSize();
int maxPage = msg.size() / pagesize;
if ((msg.size() % pagesize) != 0) {
maxPage++;
}
text.add("&c&lCommand : Permissions (seperated by |) " + page + "/" + maxPage);
for (int i = pagesize * page - pagesize; i < msg.size() && i < pagesize * page; i++) {
text.add(msg.get(i));
}
sender.sendMessage(ArrayUtils.getInstance().convert(ArrayUtils.getInstance().colorize(text)));
} else {
sender.sendMessage(StringUtils.getInstance().colorize("&cPlayer not online: " + player));
}
}
/**
* Player info.
*
@@ -248,7 +320,7 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterAllTimeScoreBoard(Player player, int page) {
public void sendTopVoterAllTimeScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterAllTime.keySet());
@@ -274,8 +346,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -289,7 +360,7 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterDailyScoreBoard(Player player, int page) {
public void sendTopVoterDailyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterDaily.keySet());
@@ -315,8 +386,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -330,7 +400,7 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterMonthlyScoreBoard(Player player, int page) {
public void sendTopVoterMonthlyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterMonthly.keySet());
@@ -356,8 +426,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
}
@@ -371,7 +440,7 @@ public class Commands {
* @param page
* the page
*/
public void sendTopVoterWeeklyScoreBoard(Player player, int page) {
public void sendTopVoterWeeklyScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<User> users = plugin.convertSet(plugin.topVoterWeekly.keySet());
@@ -397,8 +466,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
@@ -413,7 +481,7 @@ public class Commands {
* @param page
* the page
*/
public void sendVoteTodayScoreBoard(Player player, int page) {
public void sendVoteTodayScoreBoard(final Player player, int page) {
if (AdvancedCoreHook.getInstance().isSendScoreboards()) {
int pagesize = Config.getInstance().getFormatPageSize();
@@ -436,8 +504,7 @@ public class Commands {
@Override
public void run() {
SimpleScoreboard clear = new SimpleScoreboard("Empty");
clear.send(player);
player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
}
}, 90);
@@ -467,16 +534,10 @@ public class Commands {
return ArrayUtils.getInstance().convert(ArrayUtils.getInstance().colorize(msg));
}
/**
* Update vote today.
*/
public void updateVoteToday() {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
public void updateVoteToday(ArrayList<User> users) {
plugin.voteToday.clear();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
for (User user : users) {
HashMap<VoteSite, LocalDateTime> times = new HashMap<VoteSite, LocalDateTime>();
for (VoteSite voteSite : plugin.getVoteSites()) {
long time = user.getTime(voteSite);
@@ -529,17 +590,102 @@ public class Commands {
* the vote site
* @return the string
*/
@Deprecated
public String voteCommandLastDate(User user, VoteSite voteSite) {
Date date = new Date(user.getTime(voteSite));
String timeString = new SimpleDateFormat(config.getFormatTimeFormat()).format(date);
return timeString;
long time = user.getTime(voteSite);
if (time > 0) {
Date date = new Date(time);
String timeString = new SimpleDateFormat(config.getFormatTimeFormat()).format(date);
return timeString;
}
return "";
}
public String 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().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsDay), "amount", "" + diffDays);
info += " ";
} else if (diffDays > 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsDays), "amount", "" + diffDays);
info += " ";
}
if (diffHours == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsHour), "amount", "" + diffHours);
info += " ";
} else if (diffHours > 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsHours), "amount", "" + diffHours);
info += " ";
}
if (diffMinutes == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsMinute), "amount", "" + diffMinutes);
info += " ";
} else if (diffMinutes > 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsMinutes), "amount", "" + diffMinutes);
info += " ";
}
if (diffSeconds == 1) {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsSecond), "amount", "" + diffSeconds);
} else {
info += StringUtils.getInstance()
.replacePlaceHolder(StringUtils.getInstance().replacePlaceHolder(
Config.getInstance().formatCommandsVoteLastTimeFormat, "TimeType",
Config.getInstance().formatTimeFormatsSeconds), "amount", "" + diffSeconds);
}
return info;
}
return Config.getInstance().formatCommandsVoteLastNeverVoted;
}
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().formatCommandsVoteLastLine,
placeholders);
}
/**
@@ -587,29 +733,48 @@ public class Commands {
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
int votedelay = voteSite.getVoteDelay();
if (votedelay == 0) {
String errorMsg = config.getFormatCommandsVoteNextInfoError();
info = errorMsg;
} else {
LocalDateTime nextvote = lastVote.plusHours(votedelay);
if (time == 0 || now.isAfter(nextvote)) {
String canVoteMsg = config.getFormatCommandsVoteNextInfoCanVote();
info = canVoteMsg;
if (!voteSite.isVoteDelayDaily()) {
double votedelay = voteSite.getVoteDelay();
if (votedelay == 0) {
String errorMsg = config.getFormatCommandsVoteNextInfoError();
info = errorMsg;
} else {
Duration dur = Duration.between(now, nextvote);
long diffHours = dur.getSeconds() / (60 * 60);
LocalDateTime nextvote = lastVote.plusHours((long) votedelay);
if (time == 0 || now.isAfter(nextvote)) {
info = config.getFormatCommandsVoteNextInfoCanVote();
} else {
Duration dur = Duration.between(now, nextvote);
long diffHours = dur.getSeconds() / (60 * 60);
long diffMinutes = dur.getSeconds() / 60 - diffHours * 60;
String timeMsg = config.getFormatCommandsVoteNextInfoTime();
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Long.toString(diffHours));
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%minutes%",
Long.toString(diffMinutes));
info = timeMsg;
}
}
} else {
if (lastVote.getDayOfYear() == now.getDayOfYear() && lastVote.getYear() == now.getYear()) {
LocalDateTime midnight = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0);
Duration dur = Duration.between(now, midnight);
int diffHours = (int) (dur.getSeconds() / (60 * 60));
long diffMinutes = dur.getSeconds() / 60 - diffHours * 60;
String timeMsg = config.getFormatCommandsVoteNextInfoTime();
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Long.toString(diffHours));
String timeMsg = config.getFormatCommandsVoteNextInfoVoteDelayDaily();
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%hours%", Integer.toString(diffHours));
timeMsg = StringUtils.getInstance().replaceIgnoreCase(timeMsg, "%minutes%", Long.toString(diffMinutes));
info = timeMsg;
} else {
info = config.getFormatCommandsVoteNextInfoCanVote();
}
}
return info;
}
@@ -693,10 +858,10 @@ public class Commands {
boolean requirePerms = config.getFormatCommandsVoteHelpRequirePermission();
for (CommandHandler cmdHandle : plugin.voteCommand) {
if (sender.hasPermission(cmdHandle.getPerm()) && requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/v"), cmdHandle.getHelpLine("/v"));
} else {
unsorted.put(cmdHandle.getHelpLineCommand("/v"), cmdHandle.getHelpLine("/v"));
if (cmdHandle.hasPerm(sender)) {
unsorted.put(cmdHandle.getHelpLineCommand("/vote"), cmdHandle.getHelpLine("/vote"));
} else if (!requirePerms) {
unsorted.put(cmdHandle.getHelpLineCommand("/vote"), cmdHandle.getHelpLine("/vote"));
}
}
@@ -728,25 +893,7 @@ public class Commands {
return ArrayUtils.getInstance().convert(msg);
}
public void voteTop(CommandSender sender, int page) {
String str = Config.getInstance().getVoteTopDefault();
if (str.equalsIgnoreCase("monthly")) {
CommandVote.getInstance().topVoterMonthly(sender, page);
} else if (str.equalsIgnoreCase("weekly")) {
CommandVote.getInstance().topVoterWeekly(sender, page);
} else if (str.equalsIgnoreCase("daily")) {
CommandVote.getInstance().topVoterDaily(sender, page);
} else {
}
}
/**
* Vote UR ls.
*
* @return the string[]
*/
public String[] voteURLs() {
public String[] voteURLs(User user) {
ArrayList<String> sites = new ArrayList<String>();
List<String> title = config.getFormatCommandsVoteText();
@@ -763,10 +910,23 @@ public class Commands {
msg = StringUtils.getInstance().replaceIgnoreCase(msg, "%num%", Integer.toString(counter));
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());
sites = ArrayUtils.getInstance().replacePlaceHolder(sites, phs);
}
sites = ArrayUtils.getInstance().colorize(sites);
return ArrayUtils.getInstance().convert(sites);
}
}
@@ -1,25 +1,14 @@
package com.Ben12345rocks.VotingPlugin.Commands.Executers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
@@ -64,102 +53,6 @@ public class CommandAdminVote implements CommandExecutor {
this.plugin = plugin;
}
/**
* Check update.
*
* @param sender
* the sender
*/
public void checkUpdate(CommandSender sender) {
plugin.updater = new Updater(plugin, 15358, false);
final Updater.UpdateResult result = plugin.updater.getResult();
switch (result) {
case FAIL_SPIGOT: {
sender.sendMessage(StringUtils.getInstance()
.colorize("&cFailed to check for update for &c&l" + plugin.getName() + "&c!"));
break;
}
case NO_UPDATE: {
sender.sendMessage(StringUtils.getInstance().colorize(
"&c&l" + plugin.getName() + " &cis up to date! Version: &c&l" + plugin.updater.getVersion()));
break;
}
case UPDATE_AVAILABLE: {
sender.sendMessage(StringUtils.getInstance()
.colorize("&c&l" + plugin.getName() + " &chas an update available! Your Version: &c&l"
+ plugin.getDescription().getVersion() + " &cNew Version: &c&l"
+ plugin.updater.getVersion()));
break;
}
default: {
break;
}
}
}
/**
* Check vote site.
*
* @param sender
* the sender
* @param siteName
* the site name
*/
public void checkVoteSite(CommandSender sender, String siteName) {
if (!ConfigVoteSites.getInstance().isServiceSiteGood(siteName)) {
sender.sendMessage(
StringUtils.getInstance().colorize("&cServiceSite is invalid, votes may not work properly"));
} else {
sender.sendMessage(StringUtils.getInstance().colorize("&aServiceSite is properly setup"));
}
if (!ConfigVoteSites.getInstance().isVoteURLGood(siteName)) {
sender.sendMessage(StringUtils.getInstance().colorize("&cVoteURL is invalid"));
} else {
sender.sendMessage(StringUtils.getInstance().colorize("&aVoteURL is properly setup"));
}
}
/**
* Creates the vote site.
*
* @param sender
* the sender
* @param voteSite
* the vote site
*/
public void createVoteSite(CommandSender sender, String voteSite) {
sender.sendMessage(StringUtils.getInstance().colorize("&cCreating VoteSite..."));
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
ConfigVoteSites.getInstance().generateVoteSite(voteSite);
sender.sendMessage(StringUtils.getInstance().colorize("&cCreated VoteSite: &c&l" + voteSite));
}
});
}
/**
* Help.
*
* @param sender
* the sender
* @param page
* the page
*/
public void help(CommandSender sender, int page) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendJson(Commands.getInstance().adminHelp(sender, page - 1));
} else {
sender.sendMessage(ArrayUtils.getInstance().convert(
ArrayUtils.getInstance().comptoString(Commands.getInstance().adminHelp(sender, page - 1))));
}
}
/*
* (non-Javadoc)
*
@@ -181,292 +74,4 @@ public class CommandAdminVote implements CommandExecutor {
return true;
}
/**
* Perm list.
*
* @param sender
* the sender
*/
public void permList(CommandSender sender) {
sender.sendMessage(Commands.getInstance().listPerms());
}
/**
* Reload.
*
* @param sender
* the sender
*/
public void reload(CommandSender sender) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
sender.sendMessage(ChatColor.RED + "Reloading " + plugin.getName() + "...");
plugin.reload();
sender.sendMessage(
ChatColor.RED + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
}
});
}
/**
* Reset player totals.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void resetPlayerTotals(CommandSender sender, String playerName) {
sender.sendMessage(StringUtils.getInstance().colorize("&cResseting totals for player &c&l" + playerName));
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.resetDailyTotalVotes();
user.resetMonthlyTotalVotes();
user.resetWeeklyTotalVotes();
sender.sendMessage(StringUtils.getInstance().colorize("&cDone resseting totals for &c&l" + playerName));
plugin.update();
}
});
}
/**
* Reset totals.
*
* @param sender
* the sender
*/
public void resetTotals(CommandSender sender) {
sender.sendMessage(StringUtils.getInstance().colorize("&cResseting totals for all players..."));
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
TopVoterHandler.getInstance().resetDailyTotals();
TopVoterHandler.getInstance().resetMonthlyTotals();
TopVoterHandler.getInstance().resetWeeklyTotals();
sender.sendMessage(StringUtils.getInstance().colorize("&cDone resseting totals"));
plugin.update();
}
});
}
/**
* Sets the config allow unjoined.
*
* @param sender
* the sender
* @param value
* the value
*/
public void setConfigAllowUnjoined(CommandSender sender, boolean value) {
Config.getInstance().setAllowUnJoined(value);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet AllowUnjoined to &c&l" + value));
}
/**
* Sets the config broadcast vote.
*
* @param sender
* the sender
* @param value
* the value
*/
public void setConfigBroadcastVote(CommandSender sender, boolean value) {
Config.getInstance().setDebugEnabled(value);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet BroadcastVote to &c&l" + value));
}
/**
* Sets the config debug.
*
* @param sender
* the sender
* @param value
* the value
*/
public void setConfigDebug(CommandSender sender, boolean value) {
Config.getInstance().setDebugEnabled(value);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet Debug to &c&l" + value));
}
/**
* Sets the config enable top voter awards.
*
* @param sender
* the sender
* @param value
* the value
*/
public void setConfigEnableTopVoterAwards(CommandSender sender, boolean value) {
Config.getInstance().setTopVoterAwardsEnabled(value);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet DisableTopVoterAwards to &c&l" + value));
}
/**
* Sets the total.
*
* @param sender
* the sender
* @param playerName
* the player name
* @param amount
* the amount
*/
public void setTotal(CommandSender sender, String playerName, int amount) {
UserManager.getInstance().getVotingPluginUser(playerName).setMonthTotal(amount);
sender.sendMessage(ChatColor.GREEN + playerName + " total votes has been set to " + amount);
plugin.update();
}
/**
* Sets the vote site enabled.
*
* @param sender
* the sender
* @param voteSite
* the vote site
* @param value
* the value
*/
public void setVoteSiteEnabled(CommandSender sender, String voteSite, boolean value) {
ConfigVoteSites.getInstance().setEnabled(voteSite, value);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet votesite " + voteSite + " enabled to " + value));
}
/**
* Sets the vote site priority.
*
* @param sender
* the sender
* @param voteSite
* the vote site
* @param value
* the value
*/
public void setVoteSitePriority(CommandSender sender, String voteSite, int value) {
ConfigVoteSites.getInstance().setPriority(voteSite, value);
sender.sendMessage(
StringUtils.getInstance().colorize("&cSet priortiy to &c&l" + value + "&c on &c&l" + voteSite));
}
/**
* Sets the vote site service site.
*
* @param sender
* the sender
* @param voteSite
* the vote site
* @param serviceSite
* the service site
*/
public void setVoteSiteServiceSite(CommandSender sender, String voteSite, String serviceSite) {
ConfigVoteSites.getInstance().setServiceSite(voteSite, serviceSite);
sender.sendMessage(StringUtils.getInstance()
.colorize("&cSet ServiceSite to &c&l" + serviceSite + "&c on &c&l" + voteSite));
}
/**
* Sets the vote site vote delay.
*
* @param sender
* the sender
* @param voteSite
* the vote site
* @param delay
* the delay
*/
public void setVoteSiteVoteDelay(CommandSender sender, String voteSite, int delay) {
ConfigVoteSites.getInstance().setVoteDelay(voteSite, delay);
sender.sendMessage(
StringUtils.getInstance().colorize("&cSet VoteDelay to &c&l" + delay + "&c on &c&l" + voteSite));
}
/**
* Sets the vote site vote URL.
*
* @param sender
* the sender
* @param voteSite
* the vote site
* @param url
* the url
*/
public void setVoteSiteVoteURL(CommandSender sender, String voteSite, String url) {
ConfigVoteSites.getInstance().setVoteURL(voteSite, url);
sender.sendMessage(StringUtils.getInstance().colorize("&cSet VoteURL to &c&l" + url + "&c on &c&l" + voteSite));
}
/**
* Uuid.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void uuid(CommandSender sender, String playerName) {
sender.sendMessage(ChatColor.GREEN + "UUID of player " + ChatColor.DARK_GREEN + playerName + ChatColor.GREEN
+ " is: " + PlayerUtils.getInstance().getUUID(playerName));
}
/**
* Version.
*
* @param sender
* the sender
*/
public void version(CommandSender sender) {
if (sender instanceof Player) {
Player player = (Player) sender;
player.performCommand("bukkit:version " + plugin.getName());
} else {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "bukkit:version " + plugin.getName());
}
}
/**
* Vote.
*
* @param sender
* the sender
* @param playerName
* the player name
* @param voteSite
* the vote site
*/
public void Vote(CommandSender sender, String playerName, String voteSite) {
VotiferEvent.playerVote(playerName, voteSite);
}
}
@@ -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;
@@ -23,14 +23,11 @@ public class CommandAliases implements CommandExecutor {
/** The cmd handle. */
private CommandHandler cmdHandle;
/**
* Instantiates a new command aliases.
*
* @param cmdHandle
* the cmd handle
*/
public CommandAliases(CommandHandler cmdHandle) {
private boolean adminCommand;
public CommandAliases(CommandHandler cmdHandle, boolean adminCommand) {
this.cmdHandle = cmdHandle;
this.adminCommand = adminCommand;
}
/*
@@ -51,10 +48,14 @@ public class CommandAliases implements CommandExecutor {
plugin.debug("Attempting cmd...");
plugin.debug("Inputed args: " + ArrayUtils.getInstance().makeStringList(argsNew));
ArrayList<CommandHandler> cmdHandlers = new ArrayList<CommandHandler>();
cmdHandlers.addAll(plugin.voteCommand);
cmdHandlers.addAll(plugin.adminVoteCommand);
for (CommandHandler cmdHandle : cmdHandlers) {
ArrayList<CommandHandler> handles = new ArrayList<CommandHandler>();
if (adminCommand) {
handles.addAll(plugin.adminVoteCommand);
} else {
handles.addAll(plugin.voteCommand);
}
for (CommandHandler cmdHandle : handles) {
if (cmdHandle.getArgs().length > args.length) {
for (String arg : cmdHandle.getArgs()[0].split("&")) {
if (cmd.getName().equalsIgnoreCase("vote" + arg)
@@ -83,14 +84,17 @@ public class CommandAliases implements CommandExecutor {
}
/*
* for (String arg : cmdHandle.getArgs()[0].split("&")) { argsNew.set(0,
* arg); if (cmdHandle.runCommand(sender,
* Utils.getInstance().convertArray(argsNew))) { plugin.debug(
* "cmd found, ran cmd"); return true; } }
* for (String arg : cmdHandle.getArgs()[0].split("&")) { argsNew.set(0, arg);
* if (cmdHandle.runCommand(sender, Utils.getInstance().convertArray(argsNew)))
* { plugin.debug( "cmd found, ran cmd"); return true; } }
*/
// invalid command
sender.sendMessage(ChatColor.RED + "No valid arguments, see /vote help!");
if (adminCommand) {
sender.sendMessage(ChatColor.RED + "No valid arguments, see /adminvote help!");
} else {
sender.sendMessage(ChatColor.RED + "No valid arguments, see /vote help!");
}
return true;
}
}
@@ -1,21 +1,12 @@
package com.Ben12345rocks.VotingPlugin.Commands.Executers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
@@ -54,146 +45,6 @@ public class CommandVote implements CommandExecutor {
CommandVote.plugin = plugin;
}
/**
* Help.
*
* @param sender
* the sender
*/
public void help(CommandSender sender) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendJson(Commands.getInstance().voteHelpText(sender));
} else {
sender.sendMessage(ArrayUtils.getInstance()
.convert(ArrayUtils.getInstance().comptoString(Commands.getInstance().voteHelpText(sender))));
}
}
/**
* Info other.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void infoOther(CommandSender sender, String playerName) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(StringUtils.getInstance().colorize("&cGetting player info..."));
user.sendMessage(Commands.getInstance()
.playerInfo(UserManager.getInstance().getVotingPluginUser(playerName)));
} else {
sender.sendMessage(ArrayUtils.getInstance().colorize(Commands.getInstance()
.playerInfo(UserManager.getInstance().getVotingPluginUser(playerName))));
}
}
});
}
/**
* Info self.
*
* @param sender
* the sender
*/
public void infoSelf(CommandSender sender) {
if (sender instanceof Player) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(StringUtils.getInstance().colorize("&cGetting info..."));
user.sendMessage(Commands.getInstance().playerInfo(user));
}
});
} else {
sender.sendMessage("You must be a player to do this!");
}
}
/**
* Last other.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void lastOther(CommandSender sender, String playerName) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(
Commands.getInstance().voteCommandLast(UserManager.getInstance().getVotingPluginUser(playerName)));
} else {
sender.sendMessage(ArrayUtils.getInstance().colorize(
Commands.getInstance().voteCommandLast(UserManager.getInstance().getVotingPluginUser(playerName))));
}
}
/**
* Last self.
*
* @param sender
* the sender
*/
public void lastSelf(CommandSender sender) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().voteCommandLast(user));
} else {
sender.sendMessage("You must be a player to do this!");
}
}
/**
* Next other.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void nextOther(CommandSender sender, String playerName) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(
Commands.getInstance().voteCommandNext(UserManager.getInstance().getVotingPluginUser(playerName)));
} else {
sender.sendMessage(ArrayUtils.getInstance().colorize(
Commands.getInstance().voteCommandNext(UserManager.getInstance().getVotingPluginUser(playerName))));
}
}
/**
* Next self.
*
* @param sender
* the sender
*/
public void nextSelf(CommandSender sender) {
if (sender instanceof Player) {
String playerName = sender.getName();
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.sendMessage(Commands.getInstance().voteCommandNext(user));
} else {
sender.sendMessage("You must be a player to do this!");
}
}
/*
* (non-Javadoc)
*
@@ -215,235 +66,4 @@ public class CommandVote implements CommandExecutor {
return true;
}
/**
* Points other.
*
* @param sender
* the sender
* @param user
* the user
*/
public void pointsOther(CommandSender sender, User user) {
String msg = Config.getInstance().getFormatCommandVotePoints().replace("%Player%", user.getPlayerName())
.replace("%Points%", "" + user.getPoints());
if (sender instanceof Player) {
UserManager.getInstance().getVotingPluginUser((Player) sender).sendMessage(msg);
} else {
sender.sendMessage(StringUtils.getInstance().colorize(msg));
}
}
/**
* Points self.
*
* @param user
* the user
*/
public void pointsSelf(User user) {
String msg = Config.getInstance().getFormatCommandVotePoints().replace("%Player%", user.getPlayerName())
.replace("%Points%", "" + user.getPoints());
user.sendMessage(msg);
}
/**
* Today.
*
* @param sender
* the sender
* @param page
* the page
*/
public void today(CommandSender sender, int page) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().commandVoteToday(page));
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Commands.getInstance().sendVoteTodayScoreBoard((Player) sender, page);
}
});
} else {
sender.sendMessage(Commands.getInstance().commandVoteToday(page));
}
}
public void topVoterAll(CommandSender sender, int page) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(TopVoterHandler.getInstance().topVoterAllTime(page));
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Commands.getInstance().sendTopVoterAllTimeScoreBoard((Player) sender, page);
}
});
} else {
sender.sendMessage(TopVoterHandler.getInstance().topVoterAllTime(page));
}
}
/**
* Top voter daily.
*
* @param sender
* the sender
* @param page
* the page
*/
public void topVoterDaily(CommandSender sender, int page) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(TopVoterHandler.getInstance().topVoterDaily(page));
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Commands.getInstance().sendTopVoterDailyScoreBoard((Player) sender, page);
}
});
} else {
sender.sendMessage(TopVoterHandler.getInstance().topVoterDaily(page));
}
}
/**
* Top voter monthly.
*
* @param sender
* the sender
* @param page
* the page
*/
public void topVoterMonthly(CommandSender sender, int page) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(TopVoterHandler.getInstance().topVoterMonthly(page));
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Commands.getInstance().sendTopVoterMonthlyScoreBoard((Player) sender, page);
}
});
} else {
sender.sendMessage(TopVoterHandler.getInstance().topVoterMonthly(page));
}
}
/**
* Top voter weekly.
*
* @param sender
* the sender
* @param page
* the page
*/
public void topVoterWeekly(CommandSender sender, int page) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(TopVoterHandler.getInstance().topVoterWeekly(page));
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Commands.getInstance().sendTopVoterWeeklyScoreBoard((Player) sender, page);
}
});
} else {
sender.sendMessage(TopVoterHandler.getInstance().topVoterWeekly(page));
}
}
});
}
/**
* Total all.
*
* @param sender
* the sender
*/
public void totalAll(CommandSender sender) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().voteCommandTotalAll());
} else {
sender.sendMessage(Commands.getInstance().voteCommandTotalAll());
}
}
});
}
/**
* Total other.
*
* @param sender
* the sender
* @param playerName
* the player name
*/
public void totalOther(CommandSender sender, String playerName) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(
Commands.getInstance().voteCommandTotal(UserManager.getInstance().getVotingPluginUser(playerName)));
} else {
sender.sendMessage(ArrayUtils.getInstance().colorize(Commands.getInstance()
.voteCommandTotal(UserManager.getInstance().getVotingPluginUser(playerName))));
}
}
/**
* Total self.
*
* @param sender
* the sender
*/
public void totalSelf(CommandSender sender) {
if (sender instanceof Player) {
String playerName = sender.getName();
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.sendMessage(Commands.getInstance().voteCommandTotal(user));
} else {
sender.sendMessage("You must be a player to do this!");
}
}
/**
* Vote UR ls.
*
* @param sender
* the sender
*/
public void voteURLs(CommandSender sender) {
if (sender instanceof Player) {
User user = UserManager.getInstance().getVotingPluginUser((Player) sender);
user.sendMessage(Commands.getInstance().voteURLs());
} else {
sender.sendMessage(Commands.getInstance().voteURLs());
}
}
}
@@ -2,6 +2,7 @@ package com.Ben12345rocks.VotingPlugin.Commands.GUI;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@@ -11,13 +12,16 @@ 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.Misc.ArrayUtils;
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.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
public class AdminGUI {
@@ -59,7 +63,7 @@ public class AdminGUI {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
if (event.getClick().equals(ClickType.MIDDLE)) {
player.closeInventory();
new ValueRequest().requestString(player, new StringListener() {
@Override
@@ -76,22 +80,9 @@ public class AdminGUI {
}
});
lore = new ArrayList<String>();
buttons.add(new BInventoryButton("&cConfig", ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
openAdminGUIConfig(player);
}
}
});
lore = new ArrayList<String>();
buttons.add(new BInventoryButton("&cReload Plugin", ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE, 1, (short) 3)) {
new ItemStack(Material.STONE, 1)) {
@Override
public void onClick(ClickEvent event) {
@@ -108,39 +99,6 @@ public class AdminGUI {
}
}
/**
* Open admin GUI config.
*
* @param player
* the player
*/
public void openAdminGUIConfig(Player player) {
BInventory inv = new BInventory("Config");
inv.addButton(inv.getNextSlot(),
new BInventoryButton("BroadcastVote",
new String[] { "Currently: " + Config.getInstance().getBroadCastVotesEnabled() },
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
new ValueRequest().requestBoolean(player, "" + Config.getInstance().getBroadCastVotesEnabled(),
new BooleanListener() {
@Override
public void onInput(Player player, boolean value) {
Config.getInstance().setBroadcastVoteEnabled(value);
player.sendMessage("Value set");
}
});
}
});
inv.openInventory(player);
}
/**
* Open admin GUI vote sites.
*
@@ -187,59 +145,78 @@ public class AdminGUI {
public void openAdminGUIVoteSiteSite(Player player, VoteSite voteSite) {
BInventory inv = new BInventory("VoteSite: " + voteSite.getDisplayName());
inv.setMeta(player, "VoteSite", voteSite);
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetPriority", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new BInventoryButton(voteSite.getItem().setName("&cForce vote")) {
@Override
public void onClick(ClickEvent event) {
ArrayList<String> playerNames = new ArrayList<String>();
for (Player p : Bukkit.getOnlinePlayers()) {
playerNames.add(p.getName());
}
new ValueRequestBuilder(new StringListener() {
@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();
}
});
}
});
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetServiceSite", new String[0], new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null,
new StringListener() {
@Override
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 onInput(Player player, String value) {
Object ob = PlayerUtils.getInstance().getPlayerMeta(player, "VoteSite");
if (ob != null) {
VoteSite site = (VoteSite) ob;
VotiferEvent.playerVote(value, site.getServiceSite(), false);
}
}
}, ArrayUtils.getInstance().convert(playerNames)).usingMethod(InputMethod.INVENTORY)
.allowCustomOption(true).request(event.getWhoClicked());
}
});
inv.addButton(new BInventoryButton("SetPriority", new String[0], new ItemStack(Material.STONE)) {
@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();
}
});
}
});
inv.addButton(inv.getNextSlot(), new BInventoryButton("SetName", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new BInventoryButton("SetServiceSite", new String[0], new ItemStack(Material.STONE)) {
@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();
}
});
}
}
});
inv.addButton(new BInventoryButton("SetName", new String[0], new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getServiceSite(), null, new StringListener() {
@Override
@@ -255,54 +232,51 @@ public class AdminGUI {
}
});
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetVoteURL", new String[0], new ItemStack(Material.STONE)) {
inv.addButton(new BInventoryButton("SetVoteURL", new String[0], new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
player.closeInventory();
new ValueRequest().requestString(player, voteSite.getVoteURL(), null, new StringListener() {
@Override
public void onClick(ClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
Player player = event.getWhoClicked();
@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();
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();
}
});
}
});
}
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetVoteDelay", new String[0], new ItemStack(Material.STONE)) {
}
});
inv.addButton(new BInventoryButton("SetVoteDelay", new String[0], new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
new ValueRequest().requestNumber(player, "" + voteSite.getVoteDelay(), null, new NumberListener() {
@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 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();
}
});
}
});
inv.addButton(inv.getNextSlot(),
new BInventoryButton("SetEnabled", new String[0], new ItemStack(Material.STONE)) {
@@ -1,12 +1,15 @@
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.Util.Inventory.BInventory;
@@ -20,11 +23,12 @@ 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();
@@ -47,6 +51,14 @@ public class PlayerGUIs {
private PlayerGUIs() {
}
public ItemBuilder getBackButton() {
ConfigurationSection sec = Config.getInstance().getBackButton();
if (sec != null) {
return new ItemBuilder(sec);
}
return new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
}
public User getSelectedPlayer(Player player) {
User str = (User) PlayerUtils.getInstance().getPlayerMeta(player, "SelectedPlayerGUIs");
return str;
@@ -62,8 +74,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -72,8 +83,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -82,8 +92,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -91,10 +100,16 @@ public class PlayerGUIs {
}
public void openVoteGUI(Player player, User user) {
if (!player.getName().equals(user.getPlayerName())
if (user == null) {
user = UserManager.getInstance().getVotingPluginUser(player);
setSelectedPlayer(player, user);
}
if ((!player.getName().equals(user.getPlayerName())
&& !player.hasPermission("VotingPlugin.Commands.Vote.GUI.Other")
&& !player.hasPermission("VotingPlugin.Mod")) {
player.sendMessage(AdvancedCoreHook.getInstance().getFormatNoPerms());
&& !player.hasPermission("VotingPlugin.Mod"))
|| (!player.hasPermission("VotingPlugin.Commands.Vote.GUI")
&& !player.hasPermission("VotingPlugin.Player"))) {
player.sendMessage(StringUtils.getInstance().colorize(AdvancedCoreHook.getInstance().getFormatNoPerms()));
return;
}
setSelectedPlayer(player, user);
@@ -107,9 +122,10 @@ 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();
lore = Commands.getInstance().voteURLs(user);
} else if (slot.equalsIgnoreCase("next")) {
lore = Commands.getInstance().voteCommandNext(user);
} else if (slot.equalsIgnoreCase("last")) {
@@ -130,13 +146,15 @@ public class PlayerGUIs {
} else if (slot.equalsIgnoreCase("today")) {
lore = Commands.getInstance().voteToday();
} else if (slot.equalsIgnoreCase("help")) {
ArrayList<String> loreSt = new ArrayList<String>();
loreSt = ArrayUtils.getInstance().comptoString(Commands.getInstance().voteHelpText(player));
lore = ArrayUtils.getInstance().convert(loreSt);
lore = new String[] { "Click to view help" };
}
}
builder.setLore(lore);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("points", "" + user.getPoints());
builder.setPlaceholders(placeholders);
builder.setLore(ArrayUtils.getInstance().convert(lore));
inv.addButton(Config.getInstance().getVoteGUISlotSlot(slot), new BInventoryButton(builder) {
@@ -161,7 +179,9 @@ public class PlayerGUIs {
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("v help");
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
VoteShop.getInstance().voteShop(player);
}
}
@@ -169,7 +189,7 @@ public class PlayerGUIs {
});
}
BInventory.openInventory(player, inv);
inv.openInventory(player);
}
public void openVoteLast(Player player, User user) {
@@ -177,17 +197,27 @@ public class PlayerGUIs {
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteLastName(), "player", user.getPlayerName()));
for (VoteSite site : plugin.getVoteSites()) {
inv.addButton(inv.getNextSlot(),
new BInventoryButton(new ItemBuilder(site.getItem()).setName(site.getDisplayName())
.setLore(Commands.getInstance().voteCommandLastLine(user, site)).setAmountNone(1)) {
inv.addButton(inv.getNextSlot(), new BInventoryButton(site.getItem().setName(site.getDisplayName())
.setLore(Commands.getInstance().voteCommandLastLine(user, site)).setAmountNone(1)) {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteLast(player, getSelectedPlayer(player));
}
});
@Override
public void onClick(ClickEvent clickEvent) {
}
});
}
if (Config.getInstance().getGUIVoteLastBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
@@ -196,16 +226,25 @@ public class PlayerGUIs {
BInventory inv = new BInventory(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getGUIVoteNextName(), "player", user.getPlayerName()));
for (VoteSite site : plugin.getVoteSites()) {
inv.addButton(inv.getNextSlot(),
new BInventoryButton(new ItemBuilder(site.getItem()).setName(site.getDisplayName())
.setLore(Commands.getInstance().voteCommandNextInfo(user, site)).setAmountNone(1)) {
inv.addButton(inv.getNextSlot(), new BInventoryButton(site.getItem().setName(site.getDisplayName())
.setLore(Commands.getInstance().voteCommandNextInfo(user, site)).setAmountNone(1)) {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteNext(player, getSelectedPlayer(player));
}
});
@Override
public void onClick(ClickEvent clickEvent) {
}
});
}
if (Config.getInstance().getGUIVoteNextBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
@@ -220,8 +259,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -230,8 +268,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -241,8 +278,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -251,8 +287,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -261,8 +296,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
@@ -272,24 +306,34 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteBest(player, getSelectedPlayer(player));
}
});
if (Config.getInstance().getGUIVoteStreakBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
public void openVoteToday(Player player) {
setSelectedPlayer(player, null);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTodayName());
for (User user : plugin.voteToday.keySet()) {
for (VoteSite voteSite : plugin.voteToday.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 msg = "&6" + voteSite.getDisplayName() + " : " + timeString;
inv.addButton(inv.getNextSlot(), new BInventoryButton(user.getPlayerName(), new String[] { msg },
MiscUtils.getInstance().setSkullOwner(user.getPlayerName())) {
MiscUtils.getInstance().setSkullOwner(user.getOfflinePlayer())) {
@Override
public void onClick(ClickEvent clickEvent) {
@@ -301,6 +345,17 @@ public class PlayerGUIs {
});
}
}
if (Config.getInstance().getGUIVoteTodayBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
@@ -312,24 +367,25 @@ public class PlayerGUIs {
Set<Entry<User, Integer>> users = null;
String topVoter = "";
if (top.equals(TopVoter.Monthly)) {
topVoter = "Monthly";
topVoter = Config.getInstance().getFormatTopVoterMonthly();
users = plugin.topVoterMonthly.entrySet();
} else if (top.equals(TopVoter.Weekly)) {
topVoter = "Weekly";
topVoter = Config.getInstance().getFormatTopVoterWeekly();
users = plugin.topVoterWeekly.entrySet();
} else if (top.equals(TopVoter.Daily)) {
topVoter = "Daily";
topVoter = Config.getInstance().getFormatTopVoterDaily();
users = plugin.topVoterDaily.entrySet();
} else {
topVoter = "AllTime";
topVoter = Config.getInstance().getFormatTopVoterAllTime();
users = plugin.topVoterAllTime.entrySet();
}
inv = new BInventory(StringUtils.getInstance().replacePlaceHolder(Config.getInstance().getGUIVoteTopName(),
"topvoter", topVoter));
int pos = 1;
for (Entry<User, Integer> entry : users) {
inv.addButton(new BInventoryButton(
new ItemBuilder(MiscUtils.getInstance().setSkullOwner(entry.getKey().getPlayerName()))
new ItemBuilder(MiscUtils.getInstance().setSkullOwner(entry.getKey().getOfflinePlayer()))
.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore())
.addPlaceholder("position", "" + pos)
@@ -338,25 +394,43 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
User user = UserManager.getInstance()
.getVotingPluginUser(clickEvent.getClickedItem().getItemMeta().getDisplayName());
// 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);
openVoteGUI(player, user);
}
});
}.addData("player", entry.getKey().getPlayerName()));
pos++;
}
final TopVoter cur = top;
inv.getPageButtons().add(new BInventoryButton(
new ItemBuilder(Config.getInstance().getGUIVoteTopSwitchItem()).addPlaceholder("Top", cur.toString())) {
new ItemBuilder(Config.getInstance().getGUIVoteTopSwitchItem()).addPlaceholder("Top", topVoter)) {
@Override
public void onClick(ClickEvent clickEvent) {
openVoteTop(player, cur.next());
if (!clickEvent.getClick().equals(ClickType.RIGHT)) {
openVoteTop(player, cur.next());
} else {
openVoteTop(player, cur.prev());
}
}
});
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.setPages(true);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
}
public void openVoteTotal(Player player, User user) {
@@ -368,8 +442,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalWeekTotalItem())
@@ -377,8 +450,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalMonthTotalItem())
@@ -386,8 +458,7 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalAllTimeTotalItem())
@@ -395,10 +466,18 @@ public class PlayerGUIs {
@Override
public void onClick(ClickEvent clickEvent) {
Player player = clickEvent.getPlayer();
openVoteTotal(player, getSelectedPlayer(player));
}
});
if (Config.getInstance().getGUIVoteTotalBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
@@ -409,6 +488,7 @@ public class PlayerGUIs {
* the player
*/
public void openVoteURL(Player player) {
setSelectedPlayer(player, null);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteURLName());
User user = UserManager.getInstance().getVotingPluginUser(player);
@@ -421,8 +501,12 @@ public class PlayerGUIs {
builderAll = new ItemBuilder(Config.getInstance().getVoteURLCanVoteAllUrlsButtonItemSection());
}
builderAll.setName("&4All Voting Sites");
builderAll.setLore("&cClick Me");
if (!builderAll.hasCustomDisplayName()) {
builderAll.setName("&4All Voting Sites");
}
if (!builderAll.hasCustomLore()) {
builderAll.setLore("&cClick Me");
}
inv.addButton(count, new BInventoryButton(builderAll) {
@@ -431,7 +515,7 @@ public class PlayerGUIs {
User user = UserManager.getInstance().getVotingPluginUser(event.getPlayer());
Player player = event.getWhoClicked();
player.closeInventory();
user.sendMessage(Commands.getInstance().voteURLs());
user.sendMessage(Commands.getInstance().voteURLs(user));
}
});
@@ -439,9 +523,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 {
@@ -458,9 +541,18 @@ public class PlayerGUIs {
Player player = event.getWhoClicked();
if (player != null) {
player.closeInventory();
User user = UserManager.getInstance().getVotingPluginUser(player);
user.sendMessage(voteSite.getVoteURL());
if (Config.getInstance().commandsVoteRewardFromVoteURL
&& 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()));
}
}
}
@@ -468,7 +560,18 @@ public class PlayerGUIs {
count++;
}
BInventory.openInventory(player, inv);
if (Config.getInstance().getGUIVoteURLBackButton()) {
inv.addButton(new BInventoryButton(getBackButton()) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
}
});
}
inv.openInventory(player);
}
public void openVoteURL(Player player, String voteSite) {
@@ -497,7 +600,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
@@ -506,6 +609,15 @@ 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.openInventory(player);
}
@@ -528,7 +640,7 @@ public class PlayerGUIs {
int count = 0;
for (VoteSite voteSite : plugin.getVoteSites()) {
try {
ItemBuilder builder = new ItemBuilder(voteSite.getItem());
ItemBuilder builder = voteSite.getItem();
final VoteSite site = voteSite;
inv.addButton(count, new BInventoryButton(builder) {
@@ -538,8 +650,13 @@ public class PlayerGUIs {
Player player = event.getWhoClicked();
if (player != null) {
player.closeInventory();
player.performCommand("vote reward " + site.getKey());
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
player.performCommand("vote reward " + site.getKey());
}
});
}
}
@@ -564,10 +681,11 @@ public class PlayerGUIs {
}
}
});
}
}
BInventory.openInventory(player, inv);
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.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -36,9 +36,8 @@ public class AdminVoteTabCompleter implements TabCompleter {
Set<String> cmds = new HashSet<String>();
for (CommandHandler cmdHandle : plugin.adminVoteCommand) {
cmds.addAll(cmdHandle.getTabCompleteOptions(sender, args, args.length - 1));
}
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.adminVoteCommand, sender, args,
args.length - 1));
for (String str : cmds) {
if (StringUtils.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
@@ -5,12 +5,14 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
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.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;
@@ -26,6 +28,8 @@ public class AliasesTabCompleter implements TabCompleter {
/** The cmd handle. */
public CommandHandler cmdHandle;
private boolean adminCommand;
/*
* (non-Javadoc)
*
@@ -48,8 +52,14 @@ public class AliasesTabCompleter implements TabCompleter {
Set<String> cmds = new HashSet<String>();
ArrayList<CommandHandler> cmdHandlers = new ArrayList<CommandHandler>();
cmdHandlers.addAll(plugin.voteCommand);
cmdHandlers.addAll(plugin.adminVoteCommand);
if (adminCommand) {
cmdHandlers.addAll(plugin.adminVoteCommand);
} else {
cmdHandlers.addAll(plugin.voteCommand);
}
ConcurrentHashMap<String, ArrayList<String>> tabCompletes = TabCompleteHandler.getInstance()
.getTabCompleteOptions();
for (CommandHandler cmdHandle : cmdHandlers) {
if (cmdHandle.getArgs().length >= argsIn.length) {
for (String arg : cmdHandle.getArgs()[0].split("&")) {
@@ -69,7 +79,7 @@ public class AliasesTabCompleter implements TabCompleter {
if (argsMatch) {
cmds.addAll(cmdHandle.getTabCompleteOptions(sender, args, argsIn.length));
cmds.addAll(cmdHandle.getTabCompleteOptions(sender, args, argsIn.length, tabCompletes));
}
}
@@ -88,15 +98,9 @@ public class AliasesTabCompleter implements TabCompleter {
return tab;
}
/**
* Sets the CMD handle.
*
* @param cmd
* the cmd
* @return the aliases tab completer
*/
public AliasesTabCompleter setCMDHandle(CommandHandler cmd) {
public AliasesTabCompleter setCMDHandle(CommandHandler cmd, boolean adminCommand) {
cmdHandle = cmd;
this.adminCommand = adminCommand;
return this;
}
@@ -10,7 +10,7 @@ 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.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -33,29 +33,22 @@ public class VoteTabCompleter implements TabCompleter {
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) {
if (cmd.getName().equalsIgnoreCase("vote") || cmd.getName().equalsIgnoreCase("v")) {
ArrayList<String> tab = new ArrayList<String>();
ArrayList<String> tab = new ArrayList<String>();
Set<String> cmds = new HashSet<String>();
Set<String> cmds = new HashSet<String>();
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.voteCommand, sender, args,
args.length - 1));
for (CommandHandler cmdHandle : plugin.voteCommand) {
cmds.addAll(cmdHandle.getTabCompleteOptions(sender, args, args.length - 1));
for (String str : cmds) {
if (StringUtils.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
tab.add(str);
}
for (String str : cmds) {
if (StringUtils.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
tab.add(str);
}
}
Collections.sort(tab, String.CASE_INSENSITIVE_ORDER);
return tab;
}
return null;
Collections.sort(tab, String.CASE_INSENSITIVE_ORDER);
return tab;
}
}
@@ -7,6 +7,9 @@ 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.ConfigDataString;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
import com.Ben12345rocks.VotingPlugin.Main;
@@ -31,6 +34,51 @@ public class Config extends YMLFile {
return instance;
}
@ConfigDataString(path = "Format.Commands.Vote.ToggleBroadcasts.Enabled", defaultValue = "&cYou will now see vote broadcasts")
public String formatCommandsVoteToggleBroadcastEnabled;
@ConfigDataString(path = "Format.Commands.Vote.ToggleBroadcasts.Disabled", defaultValue = "&cYou will no longer see vote broadcasts")
public String formatCommandsVoteToggleBroadcastDisabled;
@ConfigDataBoolean(path = "Commands.VoteRewardFromVoteURL", defaultValue = false)
public boolean commandsVoteRewardFromVoteURL;
@ConfigDataString(path = "Format.Commands.Vote.Last.TimeFormat", defaultValue = "%amount% %TimeType%")
public String formatCommandsVoteLastTimeFormat;
@ConfigDataString(path = "Format.Commands.Vote.Last.Line", defaultValue = "&3%SiteName%: &6%timeSince% ago")
public String formatCommandsVoteLastLine;
@ConfigDataString(path = "Format.Commands.Vote.Last.NeverVoted", defaultValue = "Never voted")
public String formatCommandsVoteLastNeverVoted;
@ConfigDataString(path = "Format.TimeFormats.Days", defaultValue = "Days")
public String formatTimeFormatsDays;
@ConfigDataString(path = "Format.TimeFormats.Day", defaultValue = "Day")
public String formatTimeFormatsDay;
@ConfigDataString(path = "Format.TimeFormats.Hours", defaultValue = "Hours")
public String formatTimeFormatsHours;
@ConfigDataString(path = "Format.TimeFormats.Hour", defaultValue = "Hour")
public String formatTimeFormatsHour;
@ConfigDataString(path = "Format.TimeFormats.Minutes", defaultValue = "Minutes")
public String formatTimeFormatsMinutes;
@ConfigDataString(path = "Format.TimeFormats.Minute", defaultValue = "Minute")
public String formatTimeFormatsMinute;
@ConfigDataString(path = "Format.TimeFormats.Seconds", defaultValue = "Seconds")
public String formatTimeFormatsSeconds;
@ConfigDataString(path = "Format.TimeFormats.Second", defaultValue = "Second")
public String formatTimeFormatsSecond;
@ConfigDataBoolean(path = "Commands.DisableVoteRewardGUIs", defaultValue = false)
public boolean commandsDisableVoteRewardGUIs;
/**
* Instantiates a new config.
*/
@@ -47,6 +95,10 @@ public class Config extends YMLFile {
return getData().getBoolean("AllowUnjoined");
}
public boolean getAddTotals() {
return getData().getBoolean("AddTotals", true);
}
/**
* Gets the all sites reward.
*
@@ -56,6 +108,10 @@ public class Config extends YMLFile {
return "AllSites";
}
public boolean getAlternateUUIDLookup() {
return getData().getBoolean("AlternateUUIDLookup");
}
/**
* Gets the rewards.
*
@@ -79,6 +135,14 @@ public class Config extends YMLFile {
return getData().getBoolean("AutoDownload");
}
public boolean getAutoKillInvs() {
return getData().getBoolean("AutoKillInvs", true);
}
public ConfigurationSection getBackButton() {
return getData().getConfigurationSection("BackButton");
}
/**
* Gets the black list.
*
@@ -98,8 +162,16 @@ public class Config extends YMLFile {
return getData().getBoolean("BroadcastVote", true);
}
public boolean getCheckOnWorldChange() {
return getData().getBoolean("CheckOnWorldChange");
public boolean getCheckNameMojang() {
return getData().getBoolean("CheckNameMojang", true);
}
public boolean getClearCacheOnUpdate() {
return getData().getBoolean("ClearCacheOnUpdate");
}
public boolean getClearCacheOnVote() {
return getData().getBoolean("ClearCacheOnVote");
}
public boolean getCommandsUseGUIBest() {
@@ -134,6 +206,14 @@ public class Config extends YMLFile {
return getData().getBoolean("Commands.UseGUI.Vote", true);
}
public int getConvertDelay() {
return getData().getInt("ConvertDelay", 30000);
}
public boolean getCountFakeVotes() {
return getData().getBoolean("CountFakeVotes", true);
}
/**
* Gets the cumulative reward enabled.
*
@@ -188,15 +268,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";
public String getDailyAwardRewardsPath(String path) {
return "DailyAwards." + path + ".Rewards";
}
/**
@@ -248,6 +321,10 @@ public class Config extends YMLFile {
return getData().getInt("DelayBetweenUpdates", 3);
}
public boolean getDisableCheckOnWorldChange() {
return getData().getBoolean("DisableCheckOnWorldChange");
}
public boolean getDisableNoServiceSiteMessage() {
return getData().getBoolean("DisableNoServiceSiteMessage");
}
@@ -331,15 +408,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.
*
@@ -366,7 +434,6 @@ public class Config extends YMLFile {
*/
public String getFormatCommandsVoteNextInfoError() {
return getData().getString("Format.Commands.Vote.Next.Info.Error", "");
}
/**
@@ -377,7 +444,11 @@ public class Config extends YMLFile {
public String getFormatCommandsVoteNextInfoTime() {
return getData().getString("Format.Commands.Vote.Next.Info.TimeUntilVote",
"&cCould not caculate time until next vote!");
}
public String getFormatCommandsVoteNextInfoVoteDelayDaily() {
return getData().getString("Format.Commands.Vote.Next.Info.VoteDelayDaily",
"%hours% Hours and %minutes% Minutes");
}
/**
@@ -509,6 +580,10 @@ public class Config extends YMLFile {
return getData().getString("Format.HelpLine", "&3&l%Command% - &3%HelpMessage%");
}
public String getFormatNextPage() {
return getData().getString("Format.NextPage", "&aNext Page");
}
/**
* Gets the format no perms.
*
@@ -531,6 +606,10 @@ public class Config extends YMLFile {
return 10;
}
public String getFormatPrevPage() {
return getData().getString("Format.PrevPage", "&aPrevious Page");
}
public String getFormatShopFailedMsg() {
String msg = getData().getString("Format.ShopFailed", "&cYou do not have %Points% points to purhcase this!");
@@ -603,6 +682,18 @@ public class Config extends YMLFile {
}
public String getFormatTopVoterAllTime() {
return getData().getString("Format.TopVoter.AllTime", "AllTime");
}
public String getFormatTopVoterDaily() {
return getData().getString("Format.TopVoter.Daily", "Daily");
}
public String getFormatTopVoterMonthly() {
return getData().getString("Format.TopVoter.Monthly", "Monthly");
}
/**
* Gets the top voter reward msg.
*
@@ -614,6 +705,14 @@ public class Config extends YMLFile {
}
public String getFormatTopVoterWeekly() {
return getData().getString("Format.TopVoter.Weekly", "Weekly");
}
public String getFormatUserNotExist() {
return getData().getString("Format.UserNotExist", "&cUser does not exist: %player%");
}
/**
* Gets the vote help.
*
@@ -624,6 +723,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");
}
@@ -644,10 +747,18 @@ public class Config extends YMLFile {
return getData().getString("GUI.VoteGUIName", "&cVoteGUI: &c&l%player%");
}
public boolean getGUIVoteLastBackButton() {
return getData().getBoolean("GUI.VoteLast.BackButton");
}
public String getGUIVoteLastName() {
return getData().getString("GUI.VoteLast.Name", "VoteLast: %player%");
}
public boolean getGUIVoteNextBackButton() {
return getData().getBoolean("GUI.VoteNext.BackButton");
}
public String getGUIVoteNextName() {
return getData().getString("GUI.VoteNext.Name", "VoteNext: %player%");
}
@@ -656,6 +767,10 @@ public class Config extends YMLFile {
return getData().getString("GUI.VoteRewardName", "VoteReward");
}
public boolean getGUIVoteStreakBackButton() {
return getData().getBoolean("GUI.VoteStreak.BackButton");
}
public ConfigurationSection getGUIVoteStreakCurrentDayStreakItem() {
return getData().getConfigurationSection("GUI.VoteStreak.CurrentDayStreak.Item");
}
@@ -684,10 +799,18 @@ public class Config extends YMLFile {
return getData().getString("GUI.VoteStreak.Name", "VoteStreak");
}
public boolean getGUIVoteTodayBackButton() {
return getData().getBoolean("GUI.VoteToday.BackButton");
}
public String getGUIVoteTodayName() {
return getData().getString("GUI.VoteToday.Name", "VoteToday");
}
public boolean getGUIVoteTopBackButton() {
return getData().getBoolean("GUI.VoteToday.BackButton");
}
public String getGUIVoteTopItemLore() {
return getData().getString("GUI.VoteTop.Item.Lore", "&3&lVotes: &3%votes%");
}
@@ -712,6 +835,10 @@ public class Config extends YMLFile {
return getData().getConfigurationSection("GUI.VoteTotal.AllTimeTotal.Item");
}
public boolean getGUIVoteTotalBackButton() {
return getData().getBoolean("GUI.VoteTotal.BackButton");
}
public ConfigurationSection getGUIVoteTotalDayTotalItem() {
return getData().getConfigurationSection("GUI.VoteTotal.DayTotal.Item");
}
@@ -728,6 +855,10 @@ public class Config extends YMLFile {
return getData().getConfigurationSection("GUI.VoteTotal.WeekTotal.Item");
}
public boolean getGUIVoteURLBackButton() {
return getData().getBoolean("GUI.VoteURL.BackButton");
}
public String getGUIVoteURLName() {
return getData().getString("GUI.VoteURL.Name", "&cVoteURL");
}
@@ -736,6 +867,10 @@ public class Config extends YMLFile {
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");
}
@@ -759,7 +894,11 @@ public class Config extends YMLFile {
}
public Set<String> getIdentifiers() {
return getData().getConfigurationSection("Shop").getKeys(false);
ConfigurationSection shop = getData().getConfigurationSection("Shop");
if (shop != null) {
return shop.getKeys(false);
}
return new HashSet<String>();
}
public ConfigurationSection getIdentifierSection(String identifier) {
@@ -804,10 +943,6 @@ public class Config extends YMLFile {
return getData().getBoolean("LogVotesToFile");
}
public boolean getMilestoneResetMonthly(int milestones) {
return getData().getBoolean("MileStones." + milestones + ".ResetMonthly");
}
/**
* Gets the milestone reward enabled.
*
@@ -847,15 +982,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";
public String getMonthlyAwardRewardsPath(String path) {
return "MonthlyAwards." + path + ".Rewards";
}
/**
@@ -880,32 +1008,20 @@ public class Config extends YMLFile {
}
}
public String getMySqlDatabase() {
return getData().getString("MySQL.Database", "");
public ConfigurationSection getMySql() {
return getData().getConfigurationSection("MySQL");
}
public String getMySqlHost() {
return getData().getString("MySQL.Host", "");
public int getPointsOnVote() {
return getData().getInt("PointsOnVote", 1);
}
public int getMySqlMaxConnections() {
return getData().getInt("MySQL.MaxConnections", 1);
public int getPurgeMin() {
return getData().getInt("PurgeMin", 90);
}
public String getMySqlPassword() {
return getData().getString("MySQL.Password", "");
}
public int getMySqlPort() {
return getData().getInt("MySQL.Port");
}
public boolean getMySqlPreloadTable() {
return getData().getBoolean("MySQL.PreLoadTable");
}
public String getMySqlUsername() {
return getData().getString("MySQL.Username", "");
public boolean getPurgeOldData() {
return getData().getBoolean("PurgeOldData");
}
/**
@@ -927,6 +1043,10 @@ public class Config extends YMLFile {
return (ArrayList<String>) getData().getList("RequestAPI.DisabledMethods", new ArrayList<String>());
}
public boolean getResetMilestonesMonthly() {
return getData().getBoolean("ResetMilestonesMonthly");
}
/**
* Gets the send scoreboards.
*
@@ -963,6 +1083,10 @@ public class Config extends YMLFile {
return getData().getBoolean("StoreTopVoters.Weekly");
}
public boolean getTopVoterAwardsTies() {
return getData().getBoolean("TopVoterAwardsTies", true);
}
public boolean getTopVoterIgnorePermission() {
return getData().getBoolean("TopVoterIgnorePermission");
}
@@ -992,7 +1116,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>());
}
/**
@@ -1023,6 +1147,19 @@ public class Config extends YMLFile {
return getData().getInt("GUI.VoteGUI." + slot + ".Slot");
}
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);
}
/**
* Gets the vote party enabled.
*
@@ -1041,10 +1178,18 @@ public class Config extends YMLFile {
return getData().getBoolean("VoteParty.GiveAllPlayers");
}
public int getVotePartyIncreaseVotesRquired() {
return getData().getInt("VoteParty.IncreaseVotesRquired", 0);
}
public boolean getVotePartyResetEachDay() {
return getData().getBoolean("VoteParty.ResetEachDay");
}
public boolean getVotePartyResetMontly() {
return getData().getBoolean("VoteParty.ResetMonthly");
}
/**
* Gets the vote party rewards.
*
@@ -1108,10 +1253,22 @@ public class Config extends YMLFile {
return "VoteReminding.Rewards";
}
public boolean getVoteShopBackButton() {
return getData().getBoolean("VoteShopBackButton", true);
}
public boolean getVoteShopEnabled() {
return getData().getBoolean("VoteShopEnabled", true);
}
public String getVoteShopName() {
return getData().getString("GUI.VoteShopName", "VoteShop");
}
public String getVoteShopPermission(String ident) {
return getData().getString("Shop." + ident + ".Permission", "");
}
/**
* Gets the vote site items.
*
@@ -1156,12 +1313,12 @@ public class Config extends YMLFile {
return getData().getInt("VotesRequired");
}
public boolean getVoteStreakRewardEnabled(String type, int votestreak) {
return getData().getBoolean("VoteStreak." + type + "." + votestreak + ".Enabled");
public boolean getVoteStreakRewardEnabled(String type, String s) {
return getData().getBoolean("VoteStreak." + type + "." + s + ".Enabled");
}
public String getVoteStreakRewardsPath(String type, int votestreak) {
return "VoteStreak." + type + "." + votestreak + ".Rewards";
public String getVoteStreakRewardsPath(String type, String string) {
return "VoteStreak." + type + "." + string + ".Rewards";
}
public Set<String> getVoteStreakVotes(String type) {
@@ -1241,15 +1398,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";
public String getWeeklyAwardRewardsPath(String path) {
return "WeeklyAwards." + path + ".Rewards";
}
/**
@@ -1274,6 +1424,10 @@ public class Config extends YMLFile {
}
}
public void loadValues() {
new AnnotationHandler().load(getData(), this);
}
@Override
public void onFileCreation() {
plugin.saveResource("Config.yml", true);
@@ -55,42 +55,19 @@ public class ConfigVoteSites extends YMLFile {
String org = siteName;
siteName = siteName.replace(".", "_");
plugin.getLogger().warning("VoteSite " + siteName
+ " doe not exist, creating one, set AutoCreateVoteSites to false to prevent this");
+ " does not exist, creating one, set AutoCreateVoteSites to false to prevent this");
setEnabled(siteName, true);
setServiceSite(siteName, org);
setVoteURL(siteName, "VoteURL");
setVoteDelay(siteName, 24);
set(siteName, "Item.Material", "GRASS");
set(siteName, "Item.Amount", 1);
set(siteName, "Rewards.Messages.Player", "&aThanks for voting on %ServiceSite%!");
plugin.loadVoteSites();
}
}
/**
* Gets the cumulative rewards.
*
* @param siteName
* the site name
* @return the cumulative rewards
*/
@SuppressWarnings("unchecked")
public ArrayList<String> getCumulativeRewards(String siteName) {
return (ArrayList<String>) getData(siteName).getList("Cumulative.Rewards", new ArrayList<String>());
}
/**
* Gets the cumulative reward votes amount.
*
* @param siteName
* the site name
* @return the cumulative reward votes amount
*/
public int getCumulativeRewardVotesAmount(String siteName) {
return getData(siteName).getInt("Cumulative.Votes");
}
/**
* Gets the data.
*
@@ -99,14 +76,17 @@ public class ConfigVoteSites extends YMLFile {
* @return the data
*/
public ConfigurationSection getData(String siteName) {
ConfigurationSection data = getData().getConfigurationSection("VoteSites." + siteName);
return data;
return getData().getConfigurationSection("VoteSites." + siteName);
}
public String getDisplayName(String site) {
return getData(site).getString("Name");
}
public String getEverySiteRewardPath() {
return "EverySiteReward";
}
public ConfigurationSection getItem(String site) {
return getData(site).getConfigurationSection("Item");
}
@@ -188,6 +168,14 @@ public class ConfigVoteSites extends YMLFile {
}
public boolean getVoteSiteGiveOffline(String site) {
return getData(site).getBoolean("ForceOffline", getData(site).getBoolean("GiveOffline"));
}
public boolean getVoteSiteResetVoteDelayDaily(String siteName) {
return getData(siteName).getBoolean("VoteDelayDaily");
}
/**
* Gets the vote sites load.
*
@@ -272,9 +260,7 @@ public class ConfigVoteSites extends YMLFile {
* @return true, if is service site good
*/
public boolean isServiceSiteGood(String siteName) {
if (getServiceSite(siteName) == null) {
return false;
} else if (getServiceSite(siteName).equalsIgnoreCase("")) {
if (getServiceSite(siteName) == null || getServiceSite(siteName).equals("")) {
return false;
}
return true;
@@ -288,9 +274,7 @@ public class ConfigVoteSites extends YMLFile {
* @return true, if is vote URL good
*/
public boolean isVoteURLGood(String siteName) {
if (getVoteURL(siteName) == null) {
return false;
} else if (getVoteURL(siteName).equalsIgnoreCase("")) {
if (getVoteURL(siteName) == null || getVoteURL(siteName).equals("")) {
return false;
}
return true;
@@ -1,5 +1,6 @@
package com.Ben12345rocks.VotingPlugin.Data;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
@@ -7,8 +8,9 @@ import org.bukkit.Bukkit;
import org.bukkit.Location;
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
/**
@@ -47,6 +49,14 @@ public class ServerData {
ServerData.plugin = plugin;
}
public synchronized void addServiceSite(String site) {
ArrayList<String> l = getServiceSites();
if (!getServiceSites().contains(site)) {
l.add(site);
}
setServiceSites(ArrayUtils.getInstance().removeDuplicates(l));
}
/**
* Adds the sign.
*
@@ -88,6 +98,11 @@ public class ServerData {
return data;
}
@SuppressWarnings("unchecked")
public ArrayList<String> getServiceSites() {
return (ArrayList<String>) getData().getList("ServiceSites", new ArrayList<String>());
}
/**
* Gets the sign data.
*
@@ -136,6 +151,10 @@ public class ServerData {
}
}
public int getVotePartyExtraRequired() {
return getData().getInt("VotePartyExtraRequired", 0);
}
/**
* Next sign number.
*
@@ -185,6 +204,11 @@ public class ServerData {
com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().saveData();
}
public void setServiceSites(ArrayList<String> list) {
getData().set("ServiceSites", list);
saveData();
}
/**
* Sets the sign.
*
@@ -218,6 +242,11 @@ public class ServerData {
saveData();
}
public void setVotePartyExtraRequired(int value) {
getData().set("VotePartyExtraRequired", value);
saveData();
}
/**
* Update values.
*/
@@ -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
/**
@@ -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
@@ -7,7 +7,7 @@ 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.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -53,14 +53,18 @@ public class PlayerJoinEvent implements Listener {
if (player != null) {
User user = UserManager.getInstance().getVotingPluginUser(player);
if (UserManager.getInstance().getAllUUIDs().contains(player.getUniqueId().toString())) {
// give offline vote (if they voted
// offline)
user.offVote();
}
// run remind
user.loginMessage();
if (user.getData().hasData()) {
// give offline vote (if they voted
// offline)
user.offVote();
}
}
}
@@ -0,0 +1,80 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerVoteAllSitesEvent 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;
}
private User user;
/** The cancelled. */
private boolean cancelled;
public PlayerVoteAllSitesEvent(User user) {
super();
setUser(user);
}
/*
* (non-Javadoc)
*
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* 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;
}
/**
* @param user
* the user to set
*/
public void setUser(User user) {
this.user = user;
}
}
@@ -3,7 +3,6 @@ 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;
// TODO: Auto-generated Javadoc
@@ -25,7 +24,7 @@ public class PlayerVoteEvent extends Event {
}
/** The player. */
private User player;
private String player;
/** The vote site. */
private VoteSite voteSite;
@@ -33,17 +32,9 @@ public class PlayerVoteEvent extends Event {
/** The cancelled. */
private boolean cancelled;
/**
* Instantiates a new player vote event.
*
* @param voteSite
* the vote site
* @param player
* the player
*/
public PlayerVoteEvent(VoteSite voteSite, User player) {
public PlayerVoteEvent(VoteSite voteSite, String voteUsername) {
super();
setPlayer(player);
setPlayer(voteUsername);
setVoteSite(voteSite);
}
@@ -62,7 +53,7 @@ public class PlayerVoteEvent extends Event {
*
* @return the player
*/
public User getPlayer() {
public String getPlayer() {
return player;
}
@@ -94,14 +85,8 @@ public class PlayerVoteEvent extends Event {
cancelled = bln;
}
/**
* Sets the player.
*
* @param player
* the new player
*/
public void setPlayer(User player) {
this.player = player;
public void setPlayer(String voteUsername) {
this.player = voteUsername;
}
/**
@@ -0,0 +1,60 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class VotePartyEvent 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;
}
/** The cancelled. */
private boolean cancelled;
public VotePartyEvent() {
super();
}
/*
* (non-Javadoc)
*
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
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;
}
}
@@ -7,9 +7,14 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.UserManager.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;
@@ -33,78 +38,94 @@ public class VotiferEvent implements Listener {
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Player vote.
*
* @param playerName
* the player name
* @param voteSiteURL
* the vote site URL
*/
private static Object object = new Object();
public static void playerVote(final String playerName, final String voteSiteURL) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
synchronized (plugin) {
User user = UserManager.getInstance().getVotingPluginUser(playerName);
if (!user.hasJoinedBefore() && !config.allowUnJoined()) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
}
playerVote(playerName, voteSiteURL, true);
}
VoteSite voteSite = plugin.getVoteSite(voteSiteURL);
if (voteSite == null) {
if (!Config.getInstance().getDisableNoServiceSiteMessage()) {
plugin.getLogger().warning("No voting site with the service site: '" + voteSiteURL + "'");
}
return;
}
public static void playerVote(final String playerName, final String voteSiteURL, final boolean realVote) {
// vote party
if (Config.getInstance().getVotePartyEnabled()) {
VoteParty.getInstance().addTotal(user);
VoteParty.getInstance().addVotePlayer(user);
VoteParty.getInstance().check();
}
if (!config.allowUnJoined() && !PlayerUtils.getInstance().isValidUser(playerName)) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
}
// broadcast vote if enabled in config
if (config.getBroadCastVotesEnabled()) {
if (!Config.getInstance().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
}
User user = UserManager.getInstance().getVotingPluginUser(playerName);
// update last vote time
user.setTime(voteSite);
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");
OtherVoteReward.getInstance().checkFirstVote(user);
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;
}
// add to total votes
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();
}
user.addPoints();
}
user.setReminded(false);
OtherVoteReward.getInstance().checkAllSites(user);
OtherVoteReward.getInstance().checkCumualativeVotes(user);
OtherVoteReward.getInstance().checkMilestone(user);
// check if player has voted on all sites in one day
OtherVoteReward.getInstance().checkAllSites(user);
OtherVoteReward.getInstance().checkCumualativeVotes(user);
OtherVoteReward.getInstance().checkMilestone(user);
if (user.isOnline()) {
user.playerVote(voteSite, true, false);
} else {
user.addOfflineVote(voteSite.getKey());
plugin.debug("Offline vote set for " + playerName + " on " + voteSite.getKey());
}
plugin.setUpdate(true);
if (Config.getInstance().getClearCacheOnVote()) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().removePlayer(user.getUUID());
}
}
});
}
plugin.setUpdate(true);
}
@@ -128,8 +149,15 @@ public class VotiferEvent implements Listener {
public void onVotiferEvent(VotifierEvent event) {
Vote vote = event.getVote();
String voteSite = vote.getServiceName();
String voteUsername = vote.getUsername();
final String voteSite = vote.getServiceName();
final String voteUsername = vote.getUsername().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);
@@ -141,19 +169,11 @@ public class VotiferEvent implements Listener {
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
String voteSiteName = plugin.getVoteSiteName(voteSite);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName),
UserManager.getInstance().getVotingPluginUser(voteUsername));
plugin.getServer().getPluginManager().callEvent(voteEvent);
if (voteEvent.isCancelled()) {
return;
}
String voteSiteName = plugin.getVoteSiteName(voteSite);
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
if (sites != null) {
@@ -161,15 +181,21 @@ public class VotiferEvent implements Listener {
plugin.getLogger()
.warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ConfigVoteSites.getInstance().setServiceSite(voteSiteName, voteSite);
}
} else if (Config.getInstance().getAutoCreateVoteSites()) {
plugin.getLogger().warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ConfigVoteSites.getInstance().setServiceSite(voteSiteName, voteSite);
}
playerVote(voteUsername, voteSite);
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);
}
});
@@ -36,7 +36,8 @@ public class VotingPluginUpdateEvent implements Listener {
public void onPluginUpdate(PluginUpdateVersionEvent event) {
if (event.getPlugin().getName().equals(plugin.getDescription().getName())) {
if (!event.getOldVersion().equals("")) {
plugin.getLogger().info("Updated VotingPlugin");
plugin.getLogger().info("VotingPlugin Updated to " + plugin.getDescription().getVersion() + " from "
+ event.getOldVersion());
}
}
}
@@ -8,30 +8,34 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Objects.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Objects.Reward;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.Objects.UserStorage;
import com.Ben12345rocks.AdvancedCore.Thread.Thread;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.AdvancedCore.Util.Javascript.JavascriptPlaceholderRequest;
import com.Ben12345rocks.AdvancedCore.Util.Logger.Logger;
import com.Ben12345rocks.AdvancedCore.Util.Metrics.BStatsMetrics;
import com.Ben12345rocks.AdvancedCore.Util.Metrics.MCStatsMetrics;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.AdvancedCore.mysql.MySQL;
import com.Ben12345rocks.VotingPlugin.Commands.CommandLoader;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Commands.Executers.CommandAdminVote;
@@ -48,10 +52,9 @@ import com.Ben12345rocks.VotingPlugin.Events.PlayerJoinEvent;
import com.Ben12345rocks.VotingPlugin.Events.SignChange;
import com.Ben12345rocks.VotingPlugin.Events.VotiferEvent;
import com.Ben12345rocks.VotingPlugin.Events.VotingPluginUpdateEvent;
import com.Ben12345rocks.VotingPlugin.Objects.SignHandler;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.OtherRewards.OtherVoteReward;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
import com.Ben12345rocks.VotingPlugin.Signs.Signs;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -74,16 +77,16 @@ public class Main extends JavaPlugin {
public static Main plugin;
/** The top voter monthly. */
public HashMap<User, Integer> topVoterAllTime;
public LinkedHashMap<User, Integer> topVoterAllTime;
/** The top voter monthly. */
public HashMap<User, Integer> topVoterMonthly;
public LinkedHashMap<User, Integer> topVoterMonthly;
/** The top voter weekly. */
public HashMap<User, Integer> topVoterWeekly;
public LinkedHashMap<User, Integer> topVoterWeekly;
/** The top voter daily. */
public HashMap<User, Integer> topVoterDaily;
public LinkedHashMap<User, Integer> topVoterDaily;
/** The updater. */
public Updater updater;
@@ -98,7 +101,7 @@ public class Main extends JavaPlugin {
private List<VoteSite> voteSites;
/** The vote today. */
public HashMap<User, HashMap<VoteSite, LocalDateTime>> voteToday;
public LinkedHashMap<User, HashMap<VoteSite, LocalDateTime>> voteToday;
/** The signs. */
public ArrayList<SignHandler> signs;
@@ -108,6 +111,8 @@ public class Main extends JavaPlugin {
private boolean update = true;
private boolean updateStarted = false;
/**
* Check votifier.
*/
@@ -125,70 +130,71 @@ public class Main extends JavaPlugin {
throw new RuntimeException("Invalid Storage Method");
}
UserStorage cur = AdvancedCoreHook.getInstance().getStorageType();
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
try {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
AdvancedCoreHook.getInstance().setStorageType(from);
ArrayList<String> choiceRewards = user.getChoiceRewards();
String inputMethod = user.getInputMethod();
ArrayList<String> offlineRewards = user.getOfflineRewards();
HashMap<Reward, ArrayList<Long>> timed = user.getTimedRewards();
int allTime = user.getAllTimeTotal();
int dailyTotal = user.getDailyTotal();
HashMap<String, Boolean> mileStone = user.getHasGottenMilestone();
HashMap<VoteSite, Long> lastVotes = user.getLastVotes();
int monthTotals = user.getMonthTotal();
ArrayList<String> otherRewards = user.getOfflineOtherRewards();
ArrayList<String> offlineVotes = user.getOfflineVotes();
int points = user.getPoints();
int votePartyVotes = user.getVotePartyVotes();
int weeklyTotal = user.getWeeklyTotal();
int highestDailyTotal = user.getHighestDailyTotal();
int highestWeeklyTotal = user.getHighestWeeklyTotal();
int highestMonthlyTotal = user.getHighestMonthlyTotal();
int voteStreakDay = user.getDayVoteStreak();
int voteStreakWeek = user.getWeekVoteStreak();
int voteStreakMonth = user.getMonthVoteStreak();
int bestVoteStreakDay = user.getBestDayVoteStreak();
int bestVoteStreakWeek = user.getBestWeekVoteStreak();
int bestVoteStreakMonth = user.getBestMonthVoteStreak();
AdvancedCoreHook.getInstance().setStorageType(to);
user.setChoiceRewards(choiceRewards);
user.setInputMethod(inputMethod);
user.setOfflineRewards(offlineRewards);
user.setTimedRewards(timed);
user.setAllTimeTotal(allTime);
user.setDailyTotal(dailyTotal);
user.setHasGottenMilestone(mileStone);
user.setLastVotes(lastVotes);
user.setMonthTotal(monthTotals);
user.setOfflineOtherRewards(otherRewards);
user.setOfflineVotes(offlineVotes);
user.setPoints(points);
user.setVotePartyVotes(votePartyVotes);
user.setWeeklyTotal(weeklyTotal);
user.setHighestDailyTotal(highestDailyTotal);
user.setHighestWeeklyTotal(highestWeeklyTotal);
user.setHighestMonthlyTotal(highestMonthlyTotal);
user.setDayVoteStreak(voteStreakDay);
user.setWeekVoteStreak(voteStreakWeek);
user.setMonthVoteStreak(voteStreakMonth);
user.setBestDayVoteStreak(bestVoteStreakDay);
user.setBestWeekVoteStreak(bestVoteStreakWeek);
user.setBestMonthVoteStreak(bestVoteStreakMonth);
} catch (Exception e) {
AdvancedCoreHook.getInstance().debug(e);
plugin.getLogger().warning("Exception occoured for '" + uuid + "': " + e.getMessage()
+ ", turn debug on to see full stack traces");
}
AdvancedCoreHook.getInstance().setStorageType(from);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
}
ArrayList<String> uuids = new ArrayList<String>(UserManager.getInstance().getAllUUIDs());
while (uuids.size() > 0) {
HashMap<User, HashMap<String, String>> data = new HashMap<User, HashMap<String, String>>();
AdvancedCoreHook.getInstance().setStorageType(from);
// AdvancedCoreHook.getInstance().setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
}
ArrayList<String> converted = new ArrayList<String>();
int i = 0;
while (i < 250 && i < uuids.size()) {
String uuid = uuids.get(i);
try {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
HashMap<String, String> values = new HashMap<String, String>();
for (String key : user.getData().getKeys()) {
String value = user.getData().getValue(key);
if (value != null && !value.isEmpty() && !value.equalsIgnoreCase("null")) {
values.put(key, value);
}
}
i++;
converted.add(uuid);
data.put(user, values);
debug("[Convert] Added " + uuid);
} catch (Exception e) {
AdvancedCoreHook.getInstance().debug(e);
plugin.getLogger().warning("Exception occoured for '" + uuid + "': " + e.getMessage()
+ ", turn debug on to see full stack traces");
}
}
try {
wait(Config.getInstance().getConvertDelay());
} catch (Exception e) {
}
uuids.removeAll(converted);
plugin.getLogger()
.info("Finished getting data from " + from.toString() + " Converting " + data.size() + " users");
AdvancedCoreHook.getInstance().setStorageType(to);
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() != null) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
}
writeConvertData(data);
}
AdvancedCoreHook.getInstance().setStorageType(cur);
AdvancedCoreHook.getInstance().reload();
plugin.getLogger().info("Finished convertting");
}
public ArrayList<User> convertSet(Set<User> set) {
@@ -205,6 +211,34 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().debug(plugin, message);
}
public ArrayList<CommandHandler> getAdminVoteCommand() {
return adminVoteCommand;
}
public ArrayList<SignHandler> getSigns() {
return signs;
}
public LinkedHashMap<User, Integer> getTopVoterAllTime() {
return topVoterAllTime;
}
public LinkedHashMap<User, Integer> getTopVoterDaily() {
return topVoterDaily;
}
public LinkedHashMap<User, Integer> getTopVoterMonthly() {
return topVoterMonthly;
}
public LinkedHashMap<User, Integer> getTopVoterWeekly() {
return topVoterWeekly;
}
public Updater getUpdater() {
return updater;
}
/**
* Gets the user.
*
@@ -220,6 +254,18 @@ public class Main extends JavaPlugin {
return UserManager.getInstance();
}
public ArrayList<CommandHandler> getVoteCommand() {
return voteCommand;
}
public Logger getVoteLog() {
return voteLog;
}
public VoteParty getVoteParty() {
return VoteParty.getInstance();
}
/**
* Gets the vote site.
*
@@ -234,7 +280,7 @@ public class Main extends JavaPlugin {
return voteSite;
}
}
if (config.getAutoCreateVoteSites() && !configVoteSites.getVoteSitesNames().contains(siteName)) {
if (Config.getInstance().getAutoCreateVoteSites() && !configVoteSites.getVoteSitesNames().contains(siteName)) {
configVoteSites.generateVoteSite(siteName);
return new VoteSite(siteName.replace(".", "_"));
}
@@ -258,11 +304,16 @@ public class Main extends JavaPlugin {
for (String siteName : sites) {
String URL = ConfigVoteSites.getInstance().getServiceSite(siteName);
if (URL != null) {
if (URL.equals(url)) {
if (URL.equalsIgnoreCase(url)) {
return siteName;
}
}
}
for (String siteName : sites) {
if (siteName.equalsIgnoreCase(url)) {
return siteName;
}
}
}
return url;
@@ -272,6 +323,10 @@ public class Main extends JavaPlugin {
return voteSites;
}
public LinkedHashMap<User, HashMap<VoteSite, LocalDateTime>> getVoteToday() {
return voteToday;
}
public boolean hasVoteSite(String site) {
String siteName = getVoteSiteName(site);
for (VoteSite voteSite : getVoteSites()) {
@@ -282,14 +337,29 @@ public class Main extends JavaPlugin {
return false;
}
public boolean isUpdate() {
return update;
}
public boolean isUpdateStarted() {
return updateStarted;
}
private void loadTimer() {
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
update();
AdvancedCoreHook.getInstance().getTimer().schedule(new TimerTask() {
@Override
public void run() {
update();
}
}, 1000, 1000 * 60 * Config.getInstance().getDelayBetweenUpdates());
}
}, 1000, 1000 * 60 * Config.getInstance().getDelayBetweenUpdates());
}, 40L);
}
/**
@@ -338,13 +408,7 @@ public class Main extends JavaPlugin {
}
BStatsMetrics metrics = new BStatsMetrics(this);
metrics.addCustomChart(new BStatsMetrics.SimplePie("requestapi_defaultmethod") {
@Override
public String getValue() {
return Config.getInstance().getRequestAPIDefaultMethod();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_firstvote") {
@Override
@@ -357,6 +421,18 @@ public class Main extends JavaPlugin {
}
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_everysite") {
@Override
public String getValue() {
if (RewardHandler.getInstance().hasRewards(ConfigVoteSites.getInstance().getData(),
ConfigVoteSites.getInstance().getEverySiteRewardPath())) {
return "True";
} else {
return "False";
}
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("extrarewards_allsites") {
@Override
@@ -429,14 +505,13 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
for (String s : Config.getInstance().getVoteStreakVotes("Day")) {
if (StringUtils.getInstance().isInt(s)) {
int streak = Integer.parseInt(s);
if (Config.getInstance().getVoteStreakRewardEnabled("Day", streak)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Day", streak))) {
return "True";
}
if (Config.getInstance().getVoteStreakRewardEnabled("Day", s)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Day", s))) {
return "True";
}
}
return "False";
}
@@ -447,15 +522,14 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
for (String s : Config.getInstance().getVoteStreakVotes("Week")) {
if (StringUtils.getInstance().isInt(s)) {
int streak = Integer.parseInt(s);
if (Config.getInstance().getVoteStreakRewardEnabled("Week", streak)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Week", streak))) {
return "True";
}
if (Config.getInstance().getVoteStreakRewardEnabled("Week", s)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Week", s))) {
return "True";
}
}
return "False";
}
});
@@ -465,15 +539,14 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
for (String s : Config.getInstance().getVoteStreakVotes("Month")) {
if (StringUtils.getInstance().isInt(s)) {
int streak = Integer.parseInt(s);
if (Config.getInstance().getVoteStreakRewardEnabled("Month", streak)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Month", streak))) {
return "True";
}
if (Config.getInstance().getVoteStreakRewardEnabled("Month", s)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath("Month", s))) {
return "True";
}
}
return "False";
}
});
@@ -521,14 +594,14 @@ public class Main extends JavaPlugin {
@Override
public String getValue() {
return Config.getInstance().getDataStorage();
return Config.getInstance().getDataStorage().toUpperCase();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("CheckOnWorldChange") {
metrics.addCustomChart(new BStatsMetrics.SimplePie("DisableCheckOnWorldChange") {
@Override
public String getValue() {
return "" + Config.getInstance().getCheckOnWorldChange();
return "" + Config.getInstance().getDisableCheckOnWorldChange();
}
});
metrics.addCustomChart(new BStatsMetrics.SimplePie("votereminding_enabled") {
@@ -631,6 +704,7 @@ public class Main extends JavaPlugin {
Signs.getInstance().storeSigns();
}
}, 0);
HandlerList.unregisterAll(plugin);
plugin = null;
}
@@ -645,6 +719,7 @@ public class Main extends JavaPlugin {
setupFiles();
loadVoteSites();
AdvancedCoreHook.getInstance().setJenkinsSite("ben12345rocks.com");
updateAdvancedCoreHook();
AdvancedCoreHook.getInstance().loadHook(this);
registerCommands();
@@ -665,11 +740,11 @@ public class Main extends JavaPlugin {
}
});
topVoterMonthly = new HashMap<User, Integer>();
topVoterWeekly = new HashMap<User, Integer>();
topVoterDaily = new HashMap<User, Integer>();
voteToday = new HashMap<User, HashMap<VoteSite, LocalDateTime>>();
topVoterAllTime = new HashMap<User, Integer>();
topVoterMonthly = new LinkedHashMap<User, Integer>();
topVoterWeekly = new LinkedHashMap<User, Integer>();
topVoterDaily = new LinkedHashMap<User, Integer>();
voteToday = new LinkedHashMap<User, HashMap<VoteSite, LocalDateTime>>();
topVoterAllTime = new LinkedHashMap<User, Integer>();
voteLog = new Logger(plugin, new File(plugin.getDataFolder() + File.separator + "Log", "votelog.txt"));
@@ -687,15 +762,83 @@ public class Main extends JavaPlugin {
AdvancedCoreHook.getInstance().getJavascriptEngineRequests().add(new JavascriptPlaceholderRequest("User") {
@Override
public Object getObject(Player player) {
public Object getObject(OfflinePlayer player) {
return getUserManager().getVotingPluginUser(player);
}
});
plugin.getLogger().info("Enabled VotingPlgin " + plugin.getDescription().getVersion());
loadTimer();
// set columns
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Reminded", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("PlayerName", "VARCHAR(20)");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("Points", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MileStoneTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
AdvancedCoreHook.getInstance().getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
}
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
boolean hasRewards = RewardHandler.getInstance().hasRewards(ConfigVoteSites.getInstance().getData(),
ConfigVoteSites.getInstance().getEverySiteRewardPath());
boolean noIssues = true;
ArrayList<String> services = ServerData.getInstance().getServiceSites();
for (VoteSite site : getVoteSites()) {
if (!site.hasRewards() && !hasRewards) {
noIssues = false;
plugin.getLogger().warning("No rewards detected for the site: " + site.getKey()
+ ". See https://github.com/Ben12345rocks/AdvancedCore/wiki/Rewards on how to add rewards");
}
boolean contains = false;
for (String service : services) {
if (service.equalsIgnoreCase(site.getServiceSite())) {
contains = true;
}
}
if (!contains) {
noIssues = false;
plugin.getLogger().warning("No vote has been recieved from " + site.getServiceSite()
+ ", may be an invalid service site. Vote on the site and look in console for a service site, if you get nothing then there is an issue with votifier");
}
}
if (!noIssues) {
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getLogger().warning(
"Detected an issue with voting sites, check the plugin startup log for more details");
}
}, 30l);
}
if (NMSManager.getInstance().isVersion("1.7", "1.8", "1.9", "1.10", "1.11", "1.12")) {
plugin.getLogger().warning("Detected running " + NMSManager.getInstance().getVersion()
+ ", this version is not supported on this build");
}
}
/**
@@ -708,8 +851,8 @@ public class Main extends JavaPlugin {
// /vote, /v
getCommand("vote").setExecutor(new CommandVote(this));
getCommand("vote").setTabCompleter(new VoteTabCompleter());
getCommand("v").setExecutor(new CommandVote(this));
getCommand("v").setTabCompleter(new VoteTabCompleter());
// getCommand("v").setExecutor(new CommandVote(this));
// getCommand("v").setTabCompleter(new VoteTabCompleter());
// /adminvote, /av
getCommand("adminvote").setExecutor(new CommandAdminVote(this));
@@ -717,6 +860,15 @@ public class Main extends JavaPlugin {
getCommand("av").setExecutor(new CommandAdminVote(this));
getCommand("av").setTabCompleter(new AdminVoteTabCompleter());
Permission perm = Bukkit.getPluginManager().getPermission("VotingPlugin.Player");
if (perm != null) {
if (Config.getInstance().getGiveDefaultPermission()) {
perm.setDefault(PermissionDefault.TRUE);
} else {
perm.setDefault(PermissionDefault.OP);
}
}
plugin.debug("Loaded Commands");
}
@@ -737,7 +889,6 @@ public class Main extends JavaPlugin {
pm.registerEvents(new PlayerInteract(this), this);
pm.registerEvents(new VotingPluginUpdateEvent(this), this);
pm.registerEvents(OtherVoteReward.getInstance(), this);
plugin.debug("Loaded Events");
@@ -749,24 +900,14 @@ public class Main extends JavaPlugin {
public void reload() {
setUpdate(true);
config.reloadData();
config.loadValues();
configVoteSites.reloadData();
updateAdvancedCoreHook();
plugin.loadVoteSites();
CommandLoader.getInstance().loadTabComplete();
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
AdvancedCoreHook.getInstance().reload();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
// loadTimer();
@Override
public void run() {
for (CommandHandler cmd : voteCommand) {
cmd.reloadTabComplete();
}
for (CommandHandler cmd : adminVoteCommand) {
cmd.reloadTabComplete();
}
}
});
loadTimer();
}
public void setUpdate(boolean update) {
@@ -777,10 +918,37 @@ public class Main extends JavaPlugin {
* Setup files.
*/
public void setupFiles() {
config = Config.getInstance();
configVoteSites = ConfigVoteSites.getInstance();
config.setup();
configVoteSites.setup();
try {
config = Config.getInstance();
config.setup();
config.loadValues();
} catch (Exception e) {
e.printStackTrace();
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getLogger().severe("Failed to load Config.yml");
e.printStackTrace();
}
}, 10);
}
try {
configVoteSites = ConfigVoteSites.getInstance();
configVoteSites.setup();
} catch (Exception e) {
e.printStackTrace();
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
plugin.getLogger().severe("Failed to load VoteSites.yml");
e.printStackTrace();
}
}, 10);
}
plugin.debug("Loaded Files");
}
@@ -788,69 +956,89 @@ public class Main extends JavaPlugin {
/**
* Update.
*/
public synchronized void update() {
if (update && plugin != null) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
public void update() {
if (update && plugin != null && !updateStarted) {
updateStarted = true;
update = false;
@Override
public void run() {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else {
AdvancedCoreHook.getInstance().getMysql().clearCache();
}
}
update = false;
plugin.debug("Starting background task");
try {
TopVoterHandler.getInstance().updateTopVoters();
Commands.getInstance().updateVoteToday();
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
plugin.debug("Background task ran");
} catch (Exception ex) {
ex.printStackTrace();
plugin.getLogger().info("Looks like something went wrong.");
synchronized (plugin) {
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
if (AdvancedCoreHook.getInstance().getMysql() == null) {
plugin.debug("MySQL not loaded yet");
return;
} else if (Config.getInstance().getClearCacheOnUpdate()) {
AdvancedCoreHook.getInstance().getMysql().clearCache();
} else {
AdvancedCoreHook.getInstance().getMysql().clearCacheBasic();
}
}
});
plugin.debug("Starting background task");
long time = System.currentTimeMillis();
try {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
ArrayList<User> users = new ArrayList<User>();
for (String uuid : uuids) {
if (uuid != null && !uuid.isEmpty()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
users.add(user);
// AdvancedCoreHook.getInstance().extraDebug("Loading " + uuid);
// java.lang.Thread.sleep(5000);
}
}
update = false;
long time1 = ((System.currentTimeMillis() - time) / 1000);
plugin.debug("Finished loading player data in " + time1 + " seconds, " + users.size() + " users");
TopVoterHandler.getInstance().updateTopVoters(users);
Commands.getInstance().updateVoteToday(users);
ServerData.getInstance().updateValues();
Signs.getInstance().updateSigns();
for (Player player : Bukkit.getOnlinePlayers()) {
UserManager.getInstance().getVotingPluginUser(player).offVote();
}
time1 = ((System.currentTimeMillis() - time) / 1000);
plugin.debug("Background task finished in " + time1 + " seconds");
} catch (Exception ex) {
ex.printStackTrace();
plugin.getLogger().info("Looks like something went wrong.");
}
}
updateStarted = false;
}
}
public void updateAdvancedCoreHook() {
AdvancedCoreHook.getInstance().setAutoDownload(Config.getInstance().getAutoDownload());
AdvancedCoreHook.getInstance().getJavascriptEngine().put("VotingPlugin", this);
AdvancedCoreHook.getInstance().allowDownloadingFromSpigot(15358);
AdvancedCoreHook.getInstance().setExtraDebug(Config.getInstance().getExtraDebug());
AdvancedCoreHook.getInstance().setStorageType(UserStorage.valueOf(Config.getInstance().getDataStorage()));
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
Thread.getInstance().run(new Runnable() {
AdvancedCoreHook.getInstance().setConfigData(Config.getInstance().getData());
}
@Override
public void run() {
AdvancedCoreHook.getInstance()
.setMysql(new MySQL("VotingPlugin_Users", Config.getInstance().getMySqlHost(),
Config.getInstance().getMySqlPort(), Config.getInstance().getMySqlDatabase(),
Config.getInstance().getMySqlUsername(), Config.getInstance().getMySqlPassword(),
Config.getInstance().getMySqlMaxConnections()));
private void writeConvertData(HashMap<User, HashMap<String, String>> data) {
boolean checkInt = AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL);
for (Entry<User, HashMap<String, String>> entry : data.entrySet()) {
try {
for (Entry<String, String> values : entry.getValue().entrySet()) {
String value = values.getValue();
if (value != null && !value.equalsIgnoreCase("null")) {
if (checkInt) {
if (StringUtils.getInstance().isInt(value)) {
entry.getKey().getData().setInt(values.getKey(), Integer.parseInt(value));
} else {
entry.getKey().getData().setString(values.getKey(), value);
}
} else {
entry.getKey().getData().setString(values.getKey(), value);
}
}
}
});
} catch (Exception e) {
e.printStackTrace();
plugin.getLogger().warning("Exception occoured for '" + entry.getKey().getUUID() + "': "
+ e.getMessage() + ", turn debug on to see full stack traces");
}
}
AdvancedCoreHook.getInstance().setCheckOnWorldChange(Config.getInstance().getCheckOnWorldChange());
AdvancedCoreHook.getInstance().setDebug(Config.getInstance().getDebugEnabled());
AdvancedCoreHook.getInstance().setDebugIngame(Config.getInstance().getDebugInfoIngame());
AdvancedCoreHook.getInstance().setDefaultRequestMethod(Config.getInstance().getRequestAPIDefaultMethod());
AdvancedCoreHook.getInstance().setDisabledRequestMethods(Config.getInstance().getRequestAPIDisabledMethods());
AdvancedCoreHook.getInstance().setFormatNoPerms(Config.getInstance().getFormatNoPerms());
AdvancedCoreHook.getInstance().setFormatNotNumber(Config.getInstance().getFormatNotNumber());
AdvancedCoreHook.getInstance().setHelpLine(Config.getInstance().getFormatHelpLine());
AdvancedCoreHook.getInstance().setLogDebugToFile(Config.getInstance().getLogDebugToFile());
AdvancedCoreHook.getInstance().setSendScoreboards(Config.getInstance().getSendScoreboards());
}
}
@@ -11,13 +11,14 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
@@ -30,7 +31,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;
@@ -113,7 +114,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* Adds the points.
*/
public void addPoints() {
setPoints(getPoints() + 1);
int points = Config.getInstance().getPointsOnVote();
if (points != 0) {
addPoints(points);
}
}
/**
@@ -131,6 +135,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
*
*/
public void addTotal() {
setMilestoneCount(getMilestoneCount() + 1);
addMonthTotal();
addAllTimeTotal();
}
@@ -180,6 +185,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* @return true, if successful
*/
public boolean canVoteSite(VoteSite voteSite) {
String siteName = voteSite.getKey();
long time = getTime(voteSite);
if (time == 0) {
@@ -188,15 +194,23 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
LocalDateTime now = LocalDateTime.now();
LocalDateTime lastVote = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (!voteSite.isVoteDelayDaily()) {
int votedelay = ConfigVoteSites.getInstance().getVoteDelay(siteName);
if (votedelay == 0) {
if (votedelay == 0) {
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
} else {
if (now.getDayOfYear() != lastVote.getDayOfYear() || now.getYear() != lastVote.getYear()) {
return true;
}
return false;
}
LocalDateTime nextvote = lastVote.plusHours(votedelay);
return now.isAfter(nextvote);
}
/**
@@ -237,6 +251,12 @@ 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 void clearTotals() {
setAllTimeTotal(0);
resetDailyTotalVotes();
@@ -244,21 +264,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
setWeeklyTotal(0);
}
/**
* Daily top voter award.
*
* @param place
* the place
*/
public void dailyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveDailyTopVoterAward(place);
} else {
addOfflineOtherReward("DailyTopVoter" + place);
}
}
public int getAllTimeTotal() {
return getUserData().getInt("AllTimeTotal");
}
@@ -283,6 +288,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return getData().getInt("DayVoteStreak");
}
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");
@@ -308,6 +317,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
return getData().getInt("HighestWeeklyTotal");
}
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");
@@ -336,17 +349,21 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* @return the last vote times sorted
*/
public HashMap<VoteSite, Long> getLastVoteTimesSorted() {
HashMap<VoteSite, Long> times = new LinkedHashMap<VoteSite, Long>();
LinkedHashMap<VoteSite, Long> times = new LinkedHashMap<VoteSite, Long>();
for (VoteSite voteSite : plugin.getVoteSites()) {
times.put(voteSite, getTime(voteSite));
}
HashMap<VoteSite, Long> sorted = (HashMap<VoteSite, Long>) times.entrySet().stream()
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));
return sorted;
}
public int getMilestoneCount() {
return getData().getInt("MilestoneCount", getAllTimeTotal());
}
public int getMonthTotal() {
return getData().getInt("MonthTotal");
}
@@ -399,46 +416,25 @@ 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) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getDailyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
public void giveDailyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").send(this);
}
/**
* Give monthly top voter award.
*
* @param place
* the place
*/
public void giveMonthlyTopVoterAward(int place) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getMonthlyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
public void giveMonthlyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").send(this);
}
public void giveOfflineOtherRewards() {
for (String str : getOfflineOtherRewards()) {
ArrayList<String> offlineRewards = getOfflineOtherRewards();
for (String str : offlineRewards) {
if (str.equalsIgnoreCase("FirstVote")) {
OtherVoteReward.getInstance().giveFirstVoteRewards(this, false);
} else if (str.equalsIgnoreCase("AllSites")) {
OtherVoteReward.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)) {
@@ -459,72 +455,30 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
}
} 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);
}
}
}
} else if (str.contains("VoteStreak")) {
String[] args = str.split("_");
if (args.length > 2) {
String type = args[1];
String st = args[2];
if (StringUtils.getInstance().isInt(st)) {
int streakRequired = Integer.parseInt(st);
if (streakRequired != 0) {
if (Config.getInstance().getVoteStreakRewardEnabled(type, streakRequired)) {
OtherVoteReward.getInstance().giveVoteStreakReward(this, false, type, streakRequired);
}
}
if (Config.getInstance().getVoteStreakRewardEnabled(type, st)) {
OtherVoteReward.getInstance().giveVoteStreakReward(this, false, type, "" + st, -1);
}
}
} else {
plugin.debug("Reward handle for " + str + " does not exist!");
}
}
setOfflineOtherRewards(new ArrayList<String>());
if (!offlineRewards.isEmpty()) {
setOfflineOtherRewards(new ArrayList<String>());
}
}
/**
* Give weekly top voter award.
*
* @param place
* the place
*/
public void giveWeeklyTopVoterAward(int place) {
RewardHandler.getInstance().giveReward(this, Config.getInstance().getData(),
Config.getInstance().getWeeklyAwardRewardsPath(place));
Player player = Bukkit.getPlayer(java.util.UUID.fromString(getUUID()));
if (player != null) {
player.sendMessage(StringUtils.getInstance()
.colorize(Config.getInstance().getFormatTopVoterRewardMsg().replace("%place%", "" + place)));
}
public void giveWeeklyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").send(this);
}
/**
@@ -568,38 +522,32 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
/**
* Monthly top voter award.
*
* @param place
* the place
*/
public void monthlyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveMonthlyTopVoterAward(place);
} else {
addOfflineOtherReward("MonthlyTopVoter" + place);
}
}
/**
* Off vote.
*/
public void offVote() {
AdvancedCoreHook.getInstance().extraDebug("Checking offline vote site votes");
Player player = getPlayer();
if (player != null) {
setTopVoterIgnore(player.hasPermission("VotingPlugin.TopVoter.Ignore"));
boolean topVoterIngorePerm = player.hasPermission("VotingPlugin.TopVoter.Ignore");
if (isTopVoterIgnore() != topVoterIngorePerm) {
setTopVoterIgnore(topVoterIngorePerm);
}
ArrayList<String> offlineVotes = getOfflineVotes();
// plugin.debug(ArrayUtils.getInstance().makeStringList(offlineVotes));
if (offlineVotes.size() > 0) {
sendVoteEffects(true);
}
for (int i = 0; i < offlineVotes.size(); i++) {
if (plugin.hasVoteSite(offlineVotes.get(i))) {
plugin.debug("Giving offline site reward: " + offlineVotes.get(i));
playerVote(plugin.getVoteSite(offlineVotes.get(i)), false, true);
} else {
plugin.debug("Site doesn't exist: " + offlineVotes.get(i));
}
}
setOfflineVotes(new ArrayList<String>());
giveOfflineOtherRewards();
@@ -617,7 +565,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
* the broadcast
*/
public void playerVote(VoteSite voteSite, boolean online, boolean broadcast) {
if (Config.getInstance().getBroadCastVotesEnabled() && Config.getInstance().getFormatBroadcastWhenOnline()
if (Config.getInstance().getFormatBroadcastWhenOnline() && Config.getInstance().getBroadCastVotesEnabled()
&& broadcast) {
voteSite.broadcastVote(this);
}
@@ -644,6 +592,7 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
public void resetMonthlyTotalVotes() {
setLastMonthTotal(getMonthTotal());
setMonthTotal(0);
}
@@ -659,7 +608,7 @@ 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));
}
public void setAllTimeTotal(int allTimeTotal) {
@@ -689,6 +638,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
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);
@@ -716,6 +669,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getData().setInt("HighestWeeklyTotal", total);
}
public void setLastMonthTotal(int total) {
getData().setInt("LastMonthTotal", total);
}
public void setLastVotes(HashMap<VoteSite, Long> lastVotes) {
ArrayList<String> data = new ArrayList<String>();
for (Entry<VoteSite, Long> entry : lastVotes.entrySet()) {
@@ -725,6 +682,10 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
getUserData().setStringList("LastVotes", data);
}
public void setMilestoneCount(int value) {
getData().setInt("MilestoneCount", value);
}
public void setMonthTotal(int total) {
getData().setInt("MonthTotal", total);
}
@@ -787,19 +748,14 @@ public class User extends com.Ben12345rocks.AdvancedCore.Objects.User {
}
}
/**
* Weekly top voter award.
*
* @param place
* the place
*/
public void weeklyTopVoterAward(int place) {
if (PlayerUtils.getInstance().isPlayerOnline(getPlayerName())) {
// online
giveWeeklyTopVoterAward(place);
} else {
addOfflineOtherReward("WeeklyTopVoter" + place);
public boolean shouldBeReminded() {
Player player = getPlayer();
if (player != null) {
if (player.hasPermission("VotingPlugin.NoRemind")) {
return false;
}
}
return true;
}
}
@@ -1,15 +1,23 @@
package com.Ben12345rocks.VotingPlugin.Objects;
import org.bukkit.configuration.ConfigurationSection;
import java.util.ArrayList;
import java.util.HashMap;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
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.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.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class VoteSite.
*/
@@ -36,16 +44,20 @@ public class VoteSite {
private String displayName;
/** The vote delay. */
private int voteDelay;
private double voteDelay;
/** The enabled. */
private boolean enabled;
private boolean voteDelayDaily;
/** The priority. */
private int priority;
private ConfigurationSection item;
private boolean giveOffline;
/**
* Instantiates a new vote site.
*
@@ -74,10 +86,24 @@ public class VoteSite {
* the user
*/
public void broadcastVote(User user) {
String playerName = user.getPlayerName();
String bc = StringUtils.getInstance().colorize(config.getFormatBroadCastMsg());
bc = bc.replace("%player%", playerName).replace("%SiteName%", getDisplayName());
MiscUtils.getInstance().broadcast(bc);
if (!user.isVanished()) {
String playerName = user.getPlayerName();
String bc = StringUtils.getInstance().colorize(config.getFormatBroadCastMsg());
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());
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);
}
}
MiscUtils.getInstance().broadcast(bc, players);
}
}
/**
@@ -90,8 +116,14 @@ public class VoteSite {
/**
* @return the item
*/
public ConfigurationSection getItem() {
return item;
public ItemBuilder getItem() {
if (item == null) {
plugin.getLogger().warning("Invalid item section in site: " + key);
return new ItemBuilder(Material.STONE, 1).setName("&cInvalid item for site: " + key)
.setLore("&cInvalid item for site: " + key);
} else {
return new ItemBuilder(item);
}
}
/**
@@ -124,7 +156,7 @@ public class VoteSite {
*
* @return the vote delay
*/
public int getVoteDelay() {
public double getVoteDelay() {
return voteDelay;
}
@@ -149,6 +181,10 @@ public class VoteSite {
new RewardBuilder(configVoteSites.getData(), configVoteSites.getRewardsPath(key)).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL()).send(user);
new RewardBuilder(configVoteSites.getData(), configVoteSites.getEverySiteRewardPath()).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL()).send(user);
}
/**
@@ -163,6 +199,10 @@ public class VoteSite {
giveRewards(user, online);
}
public boolean hasRewards() {
return RewardHandler.getInstance().hasRewards(configVoteSites.getData(), configVoteSites.getRewardsPath(key));
}
/**
* Inits the.
*/
@@ -177,6 +217,8 @@ public class VoteSite {
displayName = key;
}
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
}
/**
@@ -188,6 +230,20 @@ public class VoteSite {
return enabled;
}
/**
* @return the giveOffline
*/
public boolean isGiveOffline() {
return giveOffline;
}
/**
* @return the voteDelayDaily
*/
public boolean isVoteDelayDaily() {
return voteDelayDaily;
}
/**
* @param displayName
* the displayName to set
@@ -206,6 +262,22 @@ public class VoteSite {
this.enabled = enabled;
}
/**
* @param giveOffline
* the giveOffline to set
*/
public void setGiveOffline(boolean giveOffline) {
this.giveOffline = giveOffline;
}
/**
* @param item
* the item to set
*/
public void setItem(ConfigurationSection item) {
this.item = item;
}
/**
* @param key
* the key to set
@@ -240,10 +312,18 @@ public class VoteSite {
* @param voteDelay
* the new vote delay
*/
public void setVoteDelay(int voteDelay) {
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.
*
@@ -2,25 +2,23 @@ package com.Ben12345rocks.VotingPlugin.OtherRewards;
import java.util.Set;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Listeners.MonthChangeEvent;
import com.Ben12345rocks.AdvancedCore.Objects.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
import com.Ben12345rocks.AdvancedCore.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.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class OtherVoteReward.
*/
public class OtherVoteReward implements Listener {
public class OtherVoteReward {
/** The config. */
static Config config = Config.getInstance();
@@ -72,7 +70,6 @@ public class OtherVoteReward implements Listener {
giveAllSitesRewards(user, user.isOnline());
}
return checkAllVotes;
}
/**
@@ -155,7 +152,7 @@ public class OtherVoteReward implements Listener {
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getMilestoneRewardsPath(votesRequired))) {
int userVotesTotal = user.getAllTimeTotal();
int userVotesTotal = user.getMilestoneCount();
if (userVotesTotal >= votesRequired && !user.hasGottenMilestone(votesRequired)) {
giveMilestoneVoteReward(user, user.isOnline(), votesRequired);
user.setHasGotteMilestone(votesRequired, true);
@@ -176,12 +173,18 @@ public class OtherVoteReward implements Listener {
Set<String> streaks = Config.getInstance().getVoteStreakVotes(type);
for (String streak : streaks) {
if (StringUtils.getInstance().isInt(streak)) {
int streakRequired = Integer.parseInt(streak);
String s = streak.replaceAll("-", "");
boolean multiple = false;
if (streak.contains("-")) {
// multiple
multiple = true;
}
if (StringUtils.getInstance().isInt(s)) {
int streakRequired = Integer.parseInt(s);
if (streakRequired != 0) {
if (Config.getInstance().getVoteStreakRewardEnabled(type, streakRequired)
if (Config.getInstance().getVoteStreakRewardEnabled(type, streak)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getVoteStreakRewardsPath(type, streakRequired))) {
Config.getInstance().getVoteStreakRewardsPath(type, "" + streak))) {
int curStreak = 0;
if (type.equalsIgnoreCase("day")) {
curStreak = user.getDayVoteStreak();
@@ -190,12 +193,20 @@ public class OtherVoteReward implements Listener {
} else if (type.equalsIgnoreCase("month")) {
curStreak = user.getMonthVoteStreak();
}
if (curStreak == streakRequired) {
giveVoteStreakReward(user, user.isOnline(), type, streakRequired);
gotReward = true;
}
if (gotReward) {
plugin.debug(user.getPlayerName() + " got VoteStreak " + streakRequired + " for " + type);
if (!multiple) {
if (curStreak == streakRequired) {
giveVoteStreakReward(user, user.isOnline(), type, "" + streakRequired, curStreak);
gotReward = true;
plugin.debug(
user.getPlayerName() + " got VoteStreak " + streakRequired + " for " + type);
}
} else {
if (curStreak != 0 && curStreak % streakRequired == 0) {
giveVoteStreakReward(user, user.isOnline(), type, streakRequired + "-", curStreak);
gotReward = true;
plugin.debug(
user.getPlayerName() + " got VoteStreak " + streakRequired + "* for " + type);
}
}
}
}
@@ -216,8 +227,14 @@ public class OtherVoteReward implements Listener {
* the online
*/
public void giveAllSitesRewards(User user, boolean online) {
PlayerVoteAllSitesEvent event = new PlayerVoteAllSitesEvent(user);
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));
}
/**
@@ -245,7 +262,7 @@ public class OtherVoteReward implements Listener {
*/
public void giveFirstVoteRewards(User user, boolean online) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getFirstVoteRewardsPath(), online);
Config.getInstance().getFirstVoteRewardsPath(), new RewardOptions().setOnline(online));
}
/**
@@ -263,32 +280,9 @@ public class OtherVoteReward implements Listener {
.setOnline(online).withPlaceHolder("Milestone", "" + milestone).send(user);
}
public void giveVoteStreakReward(User user, boolean online, String type, int streak) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVoteStreakRewardsPath(type, streak))
.setOnline(online).withPlaceHolder("Type", type).withPlaceHolder("Streak", "" + streak).send(user);
public void giveVoteStreakReward(User user, boolean online, String type, String string, int votes) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVoteStreakRewardsPath(type, string))
.setOnline(online).withPlaceHolder("Type", type).withPlaceHolder("Streak", "" + votes).send(user);
}
@EventHandler
public void onMonthChange(MonthChangeEvent event) {
Set<String> votes = Config.getInstance().getMilestoneVotes();
for (String vote : votes) {
if (StringUtils.getInstance().isInt(vote)) {
int votesRequired = Integer.parseInt(vote);
plugin.debug("Is int: " + vote);
if (votesRequired != 0) {
plugin.debug("not 0");
if (Config.getInstance().getMilestoneRewardEnabled(votesRequired)
&& RewardHandler.getInstance().hasRewards(Config.getInstance().getData(),
Config.getInstance().getMilestoneRewardsPath(votesRequired))) {
if (Config.getInstance().getMilestoneResetMonthly(votesRequired)) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
user.setHasGotteMilestone(votesRequired, false);
}
}
}
}
}
}
}
}
@@ -1,10 +1,11 @@
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;
@@ -15,6 +16,7 @@ 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;
// TODO: Auto-generated Javadoc
/**
@@ -72,6 +74,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.
*/
@@ -311,14 +324,20 @@ public class SignHandler {
}, 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) {
org.bukkit.material.Sign s = (org.bukkit.material.Sign) state.getData();
Block b = location.getBlock().getRelative(s.getAttachedFace());
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
/**
@@ -1,14 +1,11 @@
package com.Ben12345rocks.VotingPlugin.Objects;
package com.Ben12345rocks.VotingPlugin.TopVoter;
import java.util.ArrayList;
import com.Ben12345rocks.VotingPlugin.Config.Config;
public enum TopVoter {
AllTime,
Monthly,
Weekly,
Daily;
AllTime, Monthly, Weekly, Daily;
public static TopVoter getDefault() {
TopVoter top = getTopVoter(Config.getInstance().getVoteTopDefault());
@@ -24,7 +21,7 @@ public enum TopVoter {
return value;
}
}
return null;
return AllTime;
}
public TopVoter next() {
@@ -52,4 +49,30 @@ public enum TopVoter {
}
return TopVoter.AllTime;
}
public TopVoter prev() {
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;
}
}
@@ -13,14 +13,16 @@ import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Listeners.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.DayChangeEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.MonthChangeEvent;
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;
@@ -75,12 +77,32 @@ public class TopVoterHandler implements Listener {
return ArrayUtils.getInstance().convert(msg);
}
@EventHandler
public void onDateChanged(DateChangedEvent event) {
updateTopVoters();
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
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onDateChanged(DateChangedEvent event) {
plugin.setUpdate(true);
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChange(DayChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
@@ -103,22 +125,30 @@ public class TopVoterHandler implements Listener {
}
if (Config.getInstance().getDailyAwardsEnabled()) {
Set<String> places = Config.getInstance().getDailyPossibleRewardPlaces();
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getDailyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterDaily.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.dailyTopVoterAward(i);
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getDailyTotal() != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveDailyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getDailyTotal();
}
}
resetDailyTotals();
}
@EventHandler
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMonthChange(MonthChangeEvent event) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
@@ -140,22 +170,45 @@ public class TopVoterHandler implements Listener {
}
if (Config.getInstance().getMonthlyAwardsEnabled()) {
Set<String> places = Config.getInstance().getMonthlyPossibleRewardPlaces();
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getMonthlyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterMonthly.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.monthlyTopVoterAward(i);
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getMonthTotal() != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveMonthlyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getMonthTotal();
}
}
resetMonthlyTotals();
if (Config.getInstance().getResetMilestonesMonthly()) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
user.setMilestoneCount(0);
user.setHasGottenMilestone(new HashMap<String, Boolean>());
}
}
}
@EventHandler
@EventHandler(priority = EventPriority.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));
@@ -177,15 +230,23 @@ public class TopVoterHandler implements Listener {
}
if (Config.getInstance().getWeeklyAwardsEnabled()) {
Set<String> places = Config.getInstance().getWeeklyPossibleRewardPlaces();
HashMap<Integer, String> places = handlePlaces(Config.getInstance().getWeeklyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
for (User user : plugin.topVoterWeekly.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
i++;
if (places.contains(Integer.toString(i))) {
user.weeklyTopVoterAward(i);
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getWeeklyTotal() != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveWeeklyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getWeeklyTotal();
}
}
resetWeeklyTotals();
@@ -223,18 +284,10 @@ public class TopVoterHandler implements Listener {
}
}
/**
* Sort by values.
*
* @param unsortMap
* the unsort map
* @param order
* the order, false for high to low
* @return the hash map
*/
public HashMap<User, Integer> sortByValues(HashMap<User, Integer> unsortMap, final boolean order) {
public LinkedHashMap<User, Integer> sortByValues(LinkedHashMap<User, Integer> topVoterAllTime,
final boolean order) {
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(unsortMap.entrySet());
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(topVoterAllTime.entrySet());
// Sorting the list based on values
Collections.sort(list, new Comparator<Entry<User, Integer>>() {
@@ -250,7 +303,7 @@ public class TopVoterHandler implements Listener {
});
// Maintaining insertion order with the help of LinkedList
HashMap<User, Integer> sortedMap = new LinkedHashMap<User, Integer>();
LinkedHashMap<User, Integer> sortedMap = new LinkedHashMap<User, Integer>();
for (Entry<User, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
@@ -259,9 +312,10 @@ public class TopVoterHandler implements Listener {
}
public void storeDailyTopVoters() {
String month = LocalDateTime.now().getMonth().toString();
int year = LocalDateTime.now().getYear();
int day = LocalDateTime.now().getDayOfMonth();
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();
@@ -276,10 +330,11 @@ public class TopVoterHandler implements Listener {
}
public void storeMonthlyTopVoters() {
String month = LocalDateTime.now().getMonth().toString();
int year = LocalDateTime.now().getYear();
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 + year + "_" + month + ".yml"));
"TopVoter" + File.separator + "Monthly" + File.separator + month + "_" + year + ".yml"));
file.setup();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
@@ -292,9 +347,10 @@ public class TopVoterHandler implements Listener {
}
public void storeWeeklyTopVoters() {
String month = LocalDateTime.now().getMonth().toString();
int year = LocalDateTime.now().getYear();
int week = LocalDateTime.now().getDayOfMonth();
LocalDateTime time = LocalDateTime.now().minusHours(10);
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"));
file.setup();
@@ -547,14 +603,13 @@ public class TopVoterHandler implements Listener {
return ArrayUtils.getInstance().convert(msg);
}
public synchronized void updateTopVoters() {
ArrayList<String> uuids = UserManager.getInstance().getAllUUIDs();
public synchronized void updateTopVoters(ArrayList<User> users1) {
ArrayList<User> users = new ArrayList<User>();
ArrayList<String> blackList = getTopVoterBlackList();
for (String uuid : uuids) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
for (User user : users1) {
if (!blackList.contains(user.getPlayerName())) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if ((!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore())
&& !user.isBanned()) {
users.add(user);
}
}
@@ -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,10 @@ public class UserManager {
return com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getAllUUIDs();
}
public User getVotingPluginUser(java.util.UUID uuid) {
return getVotingPluginUser(new UUID(uuid.toString()));
}
public User getVotingPluginUser(OfflinePlayer player) {
return getVotingPluginUser(player.getName());
}
@@ -42,7 +46,7 @@ public class UserManager {
@SuppressWarnings("deprecation")
public User getVotingPluginUser(String playerName) {
return new User(playerName);
return new User(com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getProperName(playerName));
}
@SuppressWarnings("deprecation")
@@ -2,12 +2,12 @@ package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import java.util.Map.Entry;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
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.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
@@ -51,9 +51,19 @@ 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);
// %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(VoteParty.getInstance().getVotesRequired());
}
User user = UserManager.getInstance().getVotingPluginUser(p);
// %VotingPlugin_total% - Total votes of all vote sites
@@ -61,6 +71,8 @@ public class PlaceHolders {
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("_");
@@ -101,16 +113,6 @@ public class PlaceHolders {
return Integer.toString(user.getPoints());
}
// %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")) {
@@ -228,13 +230,18 @@ public class PlaceHolders {
return identifier;
}
public String getPlaceHolder(Player p, String identifier) {
identifier = StringUtils.getInstance().replaceJavascript(p, identifier);
return getPlaceHolder((OfflinePlayer) p, identifier);
}
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);
return Commands.getInstance().voteCommandLastDuration(user, voteSite);
}
public String playerNextVote(User user, String siteName) {
@@ -1,5 +1,8 @@
package com.Ben12345rocks.VotingPlugin.Util.Updater;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
@@ -58,8 +61,27 @@ public class CheckUpdate {
break;
}
case UPDATE_AVAILABLE: {
plugin.getLogger().info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion());
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
public void checkUpdateBasic() {
plugin.updater = new Updater(plugin, 15358, false);
final Updater.UpdateResult result = plugin.updater.getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: " + plugin.updater.getVersion()
+ " Use /av download to get the latest update!");
break;
}
default: {
@@ -77,6 +99,14 @@ public class CheckUpdate {
@Override
public void run() {
checkUpdate();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
checkUpdateBasic();
}
}, 1000 * 60 * 1200, 1000 * 60 * 1200);
}
}, 10l);
}
@@ -1,19 +1,25 @@
package com.Ben12345rocks.VotingPlugin.VoteParty;
import java.util.ArrayList;
import java.util.HashMap;
import org.bukkit.Bukkit;
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.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;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Events.VotePartyEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
@@ -81,9 +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());
if (Config.getInstance().getVotePartyIncreaseVotesRquired() > 0) {
ServerData.getInstance().setVotePartyExtraRequired(ServerData.getInstance().getVotePartyExtraRequired()
+ Config.getInstance().getVotePartyIncreaseVotesRquired());
}
}
}
@@ -95,16 +113,20 @@ public class VoteParty implements Listener {
* the sender
*/
public void commandVoteParty(CommandSender sender) {
ArrayList<String> msg = Config.getInstance().getFormatCommandsVoteParty();
int votesRequired = Config.getInstance().getVotePartyVotesRequired();
int votes = getTotalVotes();
int neededVotes = votesRequired - votes;
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("votesrequired", "" + votesRequired);
placeholders.put("neededvotes", "" + neededVotes);
placeholders.put("votes", "" + votes);
msg = ArrayUtils.getInstance().colorize(ArrayUtils.getInstance().replacePlaceHolder(msg, placeholders));
sender.sendMessage(ArrayUtils.getInstance().convert(msg));
if (Config.getInstance().getVotePartyEnabled()) {
ArrayList<String> msg = Config.getInstance().getFormatCommandsVoteParty();
int votesRequired = getVotesRequired();
int votes = getTotalVotes();
int neededVotes = votesRequired - votes;
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("votesrequired", "" + votesRequired);
placeholders.put("neededvotes", "" + neededVotes);
placeholders.put("votes", "" + votes);
msg = ArrayUtils.getInstance().colorize(ArrayUtils.getInstance().replacePlaceHolder(msg, placeholders));
sender.sendMessage(ArrayUtils.getInstance().convert(msg));
} else {
sender.sendMessage(StringUtils.getInstance().colorize("&cVoteParty not enabled"));
}
}
/**
@@ -113,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;
@@ -142,24 +164,31 @@ public class VoteParty implements Listener {
return new ArrayList<String>();
}
public int getVotesRequired() {
int required = Config.getInstance().getVotePartyVotesRequired();
int extra = ServerData.getInstance().getVotePartyExtraRequired();
if (extra > 0) {
return required + extra;
}
return required;
}
/**
* Give reward.
*
* @param user
* the user
*/
public void giveReward(User user) {
public void giveReward(User user, boolean online) {
/*
* if (PlayerUtils.getInstance().isPlayerOnline(user.getPlayerName())) {
* if (user.getVotePartyVotes() >=
* Config.getInstance().getUserVotesRequired()) {
* RewardHandler.getInstance().giveReward(user,
* Config.getInstance().getData(),
* if (PlayerUtils.getInstance().isPlayerOnline(user.getPlayerName())) { if
* (user.getVotePartyVotes() >= Config.getInstance().getUserVotesRequired()) {
* RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
* Config.getInstance().getVotePartyRewardsPath()); } } else {
* user.addOfflineOtherReward("VoteParty"); }
*/
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVotePartyRewardsPath())
.setOnline(user.isOnline())
.setOnline(online)
.withPlaceHolder("VotesRequired", "" + Config.getInstance().getVotePartyVotesRequired()).send(user);
}
@@ -167,15 +196,26 @@ public class VoteParty implements Listener {
* Give rewards.
*/
public void giveRewards() {
for (final String cmd : Config.getInstance().getVotePartyCommands()) {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
}
if (Config.getInstance().getVotePartyGiveAllPlayers()) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
giveReward(user, true);
}
} else {
for (String uuid : getVotedUsers()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
giveReward(user, true);
}
}
reset();
@@ -184,8 +224,14 @@ public class VoteParty implements Listener {
@EventHandler
public void onDayChange(DayChangeEvent event) {
if (Config.getInstance().getVotePartyResetEachDay()) {
setTotalVotes(0);
setVotedUsers(new ArrayList<String>());
reset();
}
}
@EventHandler
public void onMonthChange(MonthChangeEvent event) {
if (Config.getInstance().getVotePartyResetMontly()) {
reset();
}
}
@@ -195,12 +241,14 @@ 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) {
user.setVotePartyVotes(0);
}
}
}
/**
@@ -225,4 +273,14 @@ public class VoteParty implements Listener {
ServerData.getInstance().saveData();
}
public synchronized void vote(User user, boolean realVote) {
if (Config.getInstance().getVotePartyEnabled()) {
if (Config.getInstance().getVotePartyCountFakeVotes() || realVote) {
addTotal(user);
addVotePlayer(user);
check();
}
}
}
}
@@ -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;
@@ -103,7 +103,7 @@ public class VoteReminding {
* the user
*/
public void runRemind(User user) {
if (Config.getInstance().getVoteRemindingEnabled() && user.canVoteAll()) {
if (Config.getInstance().getVoteRemindingEnabled() && user.canVoteAll() && user.shouldBeReminded()) {
user.setReminded(true);
giveReward(user);
@@ -114,11 +114,14 @@ public class VoteReminding {
public void runRemindLogin(User user) {
if (Config.getInstance().getVoteRemindingEnabled()
&& (!UserManager.getInstance().getAllUUIDs().contains(user.getUUID()) || user.canVoteAll())) {
&& (!UserManager.getInstance().getAllUUIDs().contains(user.getUUID()) || user.canVoteAll())
&& user.shouldBeReminded()) {
giveReward(user);
if (user.getData().hasData()) {
user.setReminded(true);
}
plugin.debug(user.getPlayerName() + " was reminded!");
}
}
}
@@ -2,12 +2,15 @@ package com.Ben12345rocks.VotingPlugin.VoteShop;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Objects.RewardHandler;
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;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
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;
@@ -29,38 +32,63 @@ public class VoteShop {
}
public void voteShop(Player player) {
if (!Config.getInstance().getVoteShopEnabled()) {
player.sendMessage(StringUtils.getInstance().colorize("&cVote shop disabled"));
return;
}
BInventory inv = new BInventory(Config.getInstance().getVoteShopName());
for (String identifier : Config.getInstance().getIdentifiers()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
String perm = Config.getInstance().getVoteShopPermission(identifier);
boolean hasPerm = false;
if (perm.isEmpty()) {
hasPerm = true;
} else {
hasPerm = player.hasPermission(perm);
}
inv.addButton(Config.getInstance().getIdentifierSlot(identifier),
new BInventoryButton(builder.toItemStack()) {
if (hasPerm) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
inv.addButton(Config.getInstance().getIdentifierSlot(identifier), new BInventoryButton(builder) {
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));
}
@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), new RewardOptions());
user.sendMessage(Config.getInstance().getFormatShopPurchaseMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
} else {
user.sendMessage(Config.getInstance().getFormatShopFailedMsg()
.replace("%Identifier%", identifier).replace("%Points%", "" + points));
}
}
}
});
});
}
}
BInventory.openInventory(player, inv);
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);
}
}