Compare commits

..
218 Commits
Author SHA1 Message Date
BenCodez 79c4a9e458 Deploying to gh-pages from @ BenCodez/VotingPlugin@050bfb3055 🚀 2024-05-26 20:38:43 +00:00
BenCodez 689d7b1ed9 Deploying to gh-pages from @ BenCodez/VotingPlugin@a0fbdaa2a0 🚀 2024-05-07 23:07:48 +00:00
BenCodez 05f670dc91 Deploying to gh-pages from @ BenCodez/VotingPlugin@fe277d8bfd 🚀 2024-05-05 17:43:22 +00:00
BenCodez ed5ebd5fe5 Deploying to gh-pages from @ BenCodez/VotingPlugin@1c5c33be6a 🚀 2024-02-18 01:46:48 +00:00
BenCodez 23326afbba Deploying to gh-pages from @ BenCodez/VotingPlugin@37c767dc74 🚀 2023-12-26 15:34:32 +00:00
BenCodez 3f55a39e68 Deploying to gh-pages from @ BenCodez/VotingPlugin@a2bf7c3dfc 🚀 2023-11-20 00:10:18 +00:00
BenCodez 9b913cd999 Deploying to gh-pages from @ BenCodez/VotingPlugin@37e29b8643 🚀 2023-09-24 00:50:42 +00:00
BenCodez 9c4663da08 Deploying to gh-pages from @ BenCodez/VotingPlugin@a78624eafb 🚀 2023-08-27 18:54:14 +00:00
BenCodez af5aab4cf9 Deploying to gh-pages from @ BenCodez/VotingPlugin@9a122fb46d 🚀 2023-06-18 19:37:46 +00:00
BenCodez f478ded219 Deploying to gh-pages from @ BenCodez/VotingPlugin@17fc78a15f 🚀 2023-06-18 19:31:00 +00:00
Ben b60026b205 Maven javadoc for 6.13.1 2023-06-18 01:54:40 +00:00
Ben 8883ceadda Maven javadoc for 6.13 2023-05-14 17:51:31 +00:00
Ben 19f4383b4c Maven javadoc for 6.12.2 2023-04-30 23:31:03 +00:00
Ben 648321e41c Maven javadoc for 6.12.1 2023-04-17 21:25:31 +00:00
Ben 33bd24dce4 Maven javadoc for 6.12 2023-04-16 00:34:40 +00:00
Ben 589b5583d1 Maven javadoc for 6.11.3 2023-03-18 23:40:29 +00:00
Ben 8aad0d6cf8 Maven javadoc for 6.11.2 2023-02-19 00:36:35 +00:00
Ben 6ab86569e8 Maven javadoc for 6.11.1 2023-01-22 02:06:17 +00:00
Ben 7e8b3da5ae Maven javadoc for 6.11 2023-01-15 19:17:15 +00:00
Ben 50371d292a Maven javadoc for 6.10.0 2022-12-11 01:16:50 +00:00
Ben 69012648c1 Maven javadoc for 6.9.5 2022-09-25 19:37:51 +00:00
Ben 559855ceb4 Maven javadoc for 6.9.4 2022-08-27 23:56:36 +00:00
Ben 6c1991a243 Maven javadoc for 6.9.3 2022-07-23 20:52:55 +00:00
Ben f94233462d Maven javadoc for 6.9.2 2022-06-07 20:24:43 +00:00
Ben d43f56a55c Maven javadoc for 6.9.1 2022-05-15 20:25:48 +00:00
Ben dad206b72f Maven javadoc for 6.9 2022-04-24 19:38:03 +00:00
Ben 8630b94419 Maven javadoc for 6.8.4 2022-03-27 01:39:28 +00:00
Ben 258f188f36 Maven javadoc for 6.8.3 2022-02-20 19:14:25 +00:00
Ben 5cb575a519 Maven javadoc for 6.8.2 2022-02-13 21:25:08 +00:00
Ben 11019d3009 Maven javadoc for 6.8.1 2022-01-30 22:02:39 +00:00
Ben 2716a838f3 Maven javadoc for 6.8.1 2022-01-16 02:04:09 +00:00
Ben b754cffe63 Maven javadoc for 6.8 2022-01-03 16:05:23 +00:00
Ben 04ebbc432f Maven javadoc for 6.7.1 2021-11-29 00:35:30 +00:00
Ben 30fcc786e7 Maven javadoc for 6.7 2021-10-10 18:36:58 +00:00
Ben fcfd4c9c68 Maven javadoc for 6.6.3 2021-09-05 16:54:10 +00:00
Ben 750ce0d205 Maven javadoc for 6.6.2 2021-08-29 17:47:35 +00:00
Ben 074b322ab1 Maven javadoc for 6.6.1 2021-08-16 22:47:58 +00:00
Ben d666b428dd Maven javadoc for 6.6 2021-08-15 17:46:53 +00:00
Ben 557e4f9290 Maven javadoc for 6.5.2 2021-07-18 22:58:14 +00:00
Ben 0d70413e94 Maven javadoc for 6.5.1 2021-07-18 18:26:33 +00:00
Ben 55f54afd8f Maven javadoc for 6.5 2021-07-18 00:31:44 +00:00
Ben 5d8c3fd505 Maven javadoc for 6.4.1 2021-07-03 23:55:37 +00:00
Ben ffb598d52d Maven javadoc for 6.4.1 2021-06-29 17:35:14 +00:00
Ben 25579f9517 Maven javadoc for 6.4 2021-06-13 18:05:27 +00:00
Ben 92b948a6d7 Maven javadoc for 6.3.2 2021-05-30 16:53:44 +00:00
Ben a20653b786 Maven javadoc for 6.3 2021-04-25 18:33:53 +00:00
Ben 4d9e164121 Maven javadoc for 6.2.1 2021-04-07 21:17:56 +00:00
Ben f7fb5301d0 Maven javadoc for 6.2 2021-04-04 18:54:52 +00:00
Ben 93f3beab81 Maven javadoc for 6.1.7 2021-03-27 23:15:50 +00:00
Ben 7fcd6737ff Maven javadoc for 6.1.6 2021-03-14 17:10:12 +00:00
Ben 5cfa6cc94c Maven javadoc for 6.1.5 2021-03-07 01:21:51 +00:00
Ben b4293e03ae Maven javadoc for 6.1.4 2021-02-21 19:46:47 +00:00
Ben 6d89ef0fe9 Maven javadoc for 6.1.3 2021-02-07 19:06:30 +00:00
Ben 99ddc4f062 Maven javadoc for 6.1.2 2021-02-01 22:27:33 +00:00
Ben 6e7a1b9d5e Maven javadoc for 6.1.1 2021-01-31 01:27:42 +00:00
Ben 27a4d0c37a Maven javadoc for 6.1 2021-01-23 23:18:21 +00:00
Ben 975dfb77d6 Maven javadoc for 6.0.4 2020-12-22 22:15:51 +00:00
Ben 0b05f42008 Maven javadoc for 6.0.3 2020-12-19 23:07:07 +00:00
Ben 2fcd32f5a7 Maven javadoc for 6.0.2 2020-12-19 22:21:25 +00:00
Ben ba8499af1a Maven javadoc for 6.0.1 2020-11-28 02:05:32 +00:00
Ben 8abd61e718 Maven javadoc for 6.0 2020-11-22 20:16:33 +00:00
Ben 0baff556d7 Maven javadoc for 5.24.1 2020-10-05 21:14:44 +00:00
Ben 5acb7ab7a1 Maven javadoc for 5.24 2020-10-04 01:06:50 +00:00
Ben 01cb217eab Maven javadoc for 5.23.3 2020-09-07 00:23:28 +00:00
Ben 6c67d35394 Maven javadoc for 5.23.2 2020-08-30 01:14:17 +00:00
Ben faf78a4350 Maven javadoc for 5.23.1 2020-08-23 18:01:26 +00:00
Ben 28e0c2d70e Maven javadoc for 5.23 2020-08-15 23:45:18 +00:00
Ben 12b2b14856 Maven javadoc for 5.22 2020-06-27 23:42:09 +00:00
Ben b07f596f50 Maven javadoc for 5.21.3 2020-05-12 23:31:57 +00:00
Ben f41941863e Maven javadoc for 5.21.1 2020-04-12 16:51:55 +00:00
Ben be32fae627 Maven javadoc for 5.21 2020-03-29 16:40:55 +00:00
Ben 2a0508e294 Maven javadoc for 5.20.8 2020-03-15 18:13:31 +00:00
Ben 207ef16375 Maven javadoc for 5.20.7 2020-02-23 17:37:15 +00:00
Ben 854078e9c2 Maven javadoc for 5.20.6 2020-01-21 22:17:30 +00:00
Ben 711e00b35d Maven javadoc for 5.20.5 2019-12-08 00:23:37 +00:00
Ben 55fc4e3d10 Maven javadoc for 5.20.4 2019-11-03 01:24:47 +00:00
Ben 3cf4486dae Maven javadoc for 5.20.3 2019-10-20 00:33:32 +00:00
Ben 0597f3b673 Maven javadoc for 5.20.2 2019-10-01 23:35:08 +00:00
Ben 7aaaa7f59b Maven javadoc for 5.20.1 2019-09-20 20:56:19 +00:00
Ben d71afa7acf Maven javadoc for 5.20.0 2019-09-15 18:57:47 +00:00
Ben 174e9e58c2 Maven javadoc for 5.19.4 2019-08-15 23:32:58 +00:00
Ben de08b2f32f Maven javadoc for 5.19.3 2019-08-11 17:34:54 +00:00
Ben 438bc4522f Maven javadoc for 5.19.2 2019-08-04 17:48:31 +00:00
Ben 0251c5f1ad Maven javadoc for 5.19.1 2019-07-04 13:33:19 +00:00
Ben 1738e0fbc9 Maven javadoc for 5.19 2019-06-09 00:20:22 +00:00
Ben 8727149ae9 Maven javadoc for 5.18.3 2019-04-26 21:22:34 +00:00
Ben 74320203cf Maven javadoc for 5.18.2 2019-03-18 23:30:34 +00:00
Ben 7f8f6ed6eb Maven javadoc for 5.18.1 2019-03-10 02:08:13 +00:00
Ben 131e1ffafe Maven javadoc for 5.18 2019-02-17 00:06:45 +00:00
Ben 874c26baee Maven javadoc for 5.17.4 2019-01-20 00:40:42 +00:00
Ben 75ce6bd9d4 Maven javadoc for 5.17.3 2018-12-30 23:48:04 +00:00
Ben 6f9507b000 Maven javadoc for 5.17.2 2018-12-30 20:39:25 +00:00
Ben e197818451 Maven javadoc for 5.17.1 2018-12-15 14:29:13 +00:00
Ben 3146ce77f2 Maven javadoc for 5.17 2018-12-09 00:44:05 +00:00
Ben a9bc7f99b6 Maven javadoc for 5.16.3 2018-11-22 23:42:53 +00:00
Ben db4ee25b2f Maven javadoc for 5.16.2 2018-11-18 18:26:25 +00:00
Ben 2b33013962 Maven javadoc for 5.16.1 2018-10-28 17:53:17 +00:00
Ben 9bd60cb6f1 Maven javadoc for 5.16 2018-10-20 21:31:11 +00:00
Ben d0c3d57414 Maven javadoc for 5.15.1 2018-09-30 17:56:12 +00:00
Ben dcce6b4eef Maven javadoc for 5.15.1 2018-09-30 17:41:36 +00:00
Ben ce40bcf279 Maven javadoc for 5.14.2 2018-08-11 15:38:32 +00:00
Ben cc2aa8a5f3 Maven javadoc for 5.14.1 2018-08-11 15:13:53 +00:00
Ben 27ebcb9f42 Maven javadoc for 5.14 2018-07-25 23:27:41 +00:00
Ben 29087677cc Maven javadoc for 5.13.6 2018-07-18 21:12:31 +00:00
Ben 52acd791b8 Maven javadoc for 5.13.5 2018-07-16 21:07:31 +00:00
Ben d1be259c95 Maven javadoc for 5.13.4 2018-07-15 18:50:40 +00:00
Ben 031cb599ab Maven javadoc for 5.13.3 2018-07-08 00:04:54 +00:00
Ben b1d0953c9d Maven javadoc for 5.13.2 2018-07-06 13:00:19 +00:00
Ben 8cce203244 Maven javadoc for 5.13.1 2018-05-08 00:22:59 +00:00
Ben 8d33fdc6d2 Maven javadoc for 5.13 2018-05-06 17:04:08 +00:00
Ben 1cde77e9f8 Maven javadoc for 5.12.9 2018-04-22 01:02:48 +00:00
Ben 43094c09b9 Maven javadoc for 5.12.8 2018-03-30 13:17:21 +00:00
Ben eb46e1a987 Maven javadoc for 5.12.7 2018-03-11 17:25:30 +00:00
Ben 26c8d4c74f Maven javadoc for 5.12.6 2018-02-18 02:05:21 +00:00
Ben ad90b6ad4c Maven javadoc for 5.12.5 2018-02-11 19:49:02 +00:00
Ben d1a6c73257 Maven javadoc for 5.12.4 2018-02-04 18:08:20 +00:00
Ben 3d752092e7 Maven javadoc for 5.12.3 2018-01-28 20:57:11 +00:00
Ben f8efcbf154 Maven javadoc for 5.12.2 2018-01-28 19:52:27 +00:00
Ben 50f425eea1 Maven javadoc for 5.12.1 2018-01-15 01:38:22 +00:00
Ben 11c8b53b05 Maven javadoc for 5.12 2017-12-22 00:57:06 +00:00
Ben 8d96a7b77b Maven javadoc for 5.11 2017-11-19 21:13:48 +00:00
Ben d0679d6032 Maven javadoc for 5.11 2017-11-19 20:47:20 +00:00
Ben 75482d0d46 Maven javadoc for 5.10.6 2017-10-29 16:54:00 +00:00
Ben 5bf5c69aab Maven javadoc for 5.10.5 2017-10-22 19:59:12 +00:00
Ben 3fdff5801c Maven javadoc for 5.10.4 2017-10-14 12:28:20 +00:00
Ben 0e126a6c5c Maven javadoc for 5.10.3 2017-10-14 00:55:09 +00:00
Ben 4fd11f21fa Maven javadoc for 5.10.2 2017-09-26 18:28:38 +00:00
Ben 5aeced6023 Maven javadoc for 5.10.1 2017-09-22 14:25:45 +00:00
Ben 103b351f6f Maven javadoc for 5.10.0 2017-09-03 19:43:12 +00:00
Ben 6cd8b6608d Maven javadoc for 5.9.7 2017-08-27 17:21:39 +00:00
Ben 9b0ebda9d7 Maven javadoc for 5.9.6 2017-08-12 01:01:54 +00:00
Ben e98550a8ff Maven javadoc for 5.9.5 2017-08-08 14:49:34 +00:00
Ben 77a25ed1f8 Maven javadoc for 5.9.4 2017-07-23 21:18:18 +00:00
Ben 88d04b9196 Maven javadoc for 5.9.3 2017-07-16 21:26:59 +00:00
Ben 0e3f1113df Maven javadoc for 5.9.2 2017-07-12 13:40:42 +00:00
Ben 9c2348149f Maven javadoc for 5.9.1 2017-07-09 19:48:30 +00:00
Ben 01334fe135 Maven javadoc for 5.9 2017-06-28 12:32:54 +00:00
Ben 61a96aea7f Maven javadoc for 5.8.7 2017-06-19 00:39:00 +00:00
Ben cdf1b4ecc7 Maven javadoc for 5.8.6 2017-06-14 20:01:00 +00:00
Ben 24302b1116 Maven javadoc for 5.8.5 2017-06-11 21:13:36 +00:00
Ben 8ccff7d29a Maven javadoc for 5.8.4 2017-06-03 23:41:25 +00:00
Ben fe55f49f6c Maven javadoc for 5.8.3 2017-05-15 20:08:31 +00:00
Ben 17220620c7 Maven javadoc for 5.8.2 2017-05-05 00:07:10 +00:00
Ben 95fa01fecb Maven javadoc for 5.8.1 2017-04-26 21:02:07 +00:00
Ben 7f9eb235b1 Maven javadoc for 5.8 2017-04-17 15:32:57 +00:00
Ben 5e3dc4890d Maven javadoc for 5.7.4 2017-04-10 00:09:24 +00:00
Ben f8f630ab24 Maven javadoc for 5.7.3 2017-04-09 17:19:28 +00:00
Ben ecee161f9b Maven javadoc for 5.7.2 2017-04-08 23:57:32 +00:00
Ben 6bf5879c4f Maven javadoc for 5.7.1 2017-04-05 01:55:53 +00:00
Ben b86dc423ea Maven javadoc for 5.7.1 2017-04-05 01:20:08 +00:00
Ben fb1462564d Maven javadoc for 5.7 2017-04-02 21:05:14 +00:00
Ben 24570d9a53 Maven javadoc for 5.6.6 2017-03-25 12:32:20 +00:00
Ben be7fb62c11 Maven javadoc for 5.6.5 2017-03-21 19:51:20 +00:00
Ben dded55aff9 Maven javadoc for 5.6.4 2017-03-21 01:24:10 +00:00
Ben 64f3d20caa Maven javadoc for 5.6.3 2017-03-17 19:38:50 +00:00
Ben d090c081d8 Maven javadoc for 5.6.2 2017-03-17 19:09:34 +00:00
Ben 1a2c516523 Maven javadoc for 5.6.1 2017-03-17 15:18:42 +00:00
Ben 06b07d2026 Maven javadoc for 5.6.1 2017-03-17 15:04:23 +00:00
Ben 39357fc143 Maven javadoc for 5.6 2017-03-17 14:06:21 +00:00
Ben efeb69ae0b Maven javadoc for 5.5.5 2017-03-13 13:42:14 +00:00
Ben 282aa76887 Maven javadoc for 5.5.4 2017-03-08 02:52:36 +00:00
Ben 2770f8e679 Maven javadoc for 5.5.3 2017-03-06 21:21:50 +00:00
Ben 068263d5d7 Maven javadoc for 5.5.2 2017-03-06 01:38:41 +00:00
Ben debca7df24 Maven javadoc for 5.5.1 2017-02-26 19:07:49 +00:00
Ben 0dc7635839 Maven javadoc for 5.5 2017-02-19 22:15:46 +00:00
Ben d92a7da900 Maven javadoc for 5.4.6 2017-02-11 21:56:03 +00:00
Ben b6af73fa17 Maven javadoc for 5.4.5 2017-02-10 01:28:13 +00:00
Ben 6ea6880da1 Maven javadoc for 5.4.4 2017-02-04 03:02:16 +00:00
Ben c64a6ac4ba Maven javadoc for 5.4.3 2017-02-02 14:00:15 +00:00
Ben c2d57e453e Maven javadoc for 5.4.2 2017-02-01 14:29:20 +00:00
Ben 2f7be9e1c5 Maven javadoc for 5.4.1 2017-02-01 01:48:12 +00:00
Ben 72b7cd75b3 Maven javadoc for 5.4 2017-01-31 14:56:21 +00:00
Ben 19ad085378 Maven javadoc for 5.3.3 2017-01-25 02:06:49 +00:00
Ben 09bd126e31 Maven javadoc for 5.3.2 2017-01-10 02:06:21 +00:00
Ben 7ddcdbe365 Maven javadoc for 5.3.1 2017-01-09 20:45:11 +00:00
Ben c756de7abe Maven javadoc for 5.3 2017-01-08 18:49:48 +00:00
Ben c8ff3fa4d0 Maven javadoc for 5.2.6 2017-01-06 13:44:09 +00:00
Ben 8f26fadef4 Maven javadoc for 5.2.5 2017-01-06 00:32:31 +00:00
Ben 7147517b2b Maven javadoc for 5.2.4 2017-01-04 14:50:33 +00:00
Ben 53da438f56 Maven javadoc for 5.2.3 2017-01-04 13:40:01 +00:00
Ben 672bee3f9b Maven javadoc for 5.2.2 2017-01-02 13:50:07 +00:00
Ben ff3c97d047 Maven javadoc for 5.2.1 2016-12-29 16:12:17 +00:00
Ben 8318400461 Maven javadoc for 5.2 2016-12-29 14:05:02 +00:00
Ben f219eac3a2 Maven javadoc for 5.1.5 2016-12-23 00:46:12 +00:00
Ben fd1fe596ab Maven javadoc for 5.1.4 2016-12-21 21:08:55 +00:00
Ben 1b367774ab Maven javadoc for 5.1.3 2016-12-18 00:15:29 +00:00
Ben 2fa9274a1c Maven javadoc for 5.1.2 2016-12-14 20:53:47 +00:00
Ben beeab60add Maven javadoc for 5.1.1 2016-12-13 20:44:11 +00:00
Ben 404754286d Maven javadoc for 5.1 2016-12-12 00:27:13 +00:00
Ben 855b220b09 Maven javadoc for 5.0.3 2016-12-08 20:40:13 +00:00
Ben 85ee06f50f Maven javadoc for 5.0.3 2016-12-07 21:30:54 +00:00
Ben ca9ded8434 Maven javadoc for 5.0.2 2016-12-05 20:57:50 +00:00
Ben 19b141b9f5 Maven javadoc for 5.0.1 2016-12-05 01:37:41 +00:00
Ben 00f185f5f4 Maven javadoc for 5.0 2016-12-04 19:53:14 +00:00
Ben a27fdaaea0 Maven javadoc for 4.7.1 2016-11-24 01:51:52 +00:00
Ben 159a04b18f Maven javadoc for 4.7.1 2016-11-24 01:32:13 +00:00
Ben 065a44dfd3 Maven javadoc for 4.7.1 2016-11-23 01:53:55 +00:00
Ben 7fb999e483 Maven javadoc for 4.7.1 2016-11-23 01:41:01 +00:00
Ben12345rocks 02cc6a4747 Update javadoc 2016-10-30 16:04:23 -04:00
Ben12345rocks 58b56535aa Update javadoc 2016-10-23 14:03:31 -04:00
Ben12345rocks 98b8c35ebf Update JavaDoc 2016-09-11 14:11:34 -04:00
Ben12345rocks a2253ffc2d Update JavaDoc 2016-09-04 17:07:14 -04:00
Ben12345rocks f2e5bf32c1 Update JavaDoc 2016-08-29 15:32:11 -04:00
Ben12345rocks 2e32ae845a Update JavaDoc 2016-08-28 12:56:45 -04:00
Ben12345rocks 36021cc2e0 Update JavaDoc for 4.3 2016-08-24 08:49:28 -04:00
Ben12345rocks 5d31d04822 Update javadoc 2016-08-22 15:03:48 -04:00
Ben12345rocks 7ee0c82c98 Update javadoc 2016-08-22 14:56:51 -04:00
Ben12345rocks 16536afdba 4.2 2016-07-26 10:46:25 -04:00
Ben12345rocks 4cf7ff6787 4.2 2016-07-26 10:43:21 -04:00
Ben12345rocks 62a781a050 4.2 2016-07-26 10:22:42 -04:00
Ben12345rocks c59f2363b5 4.1.4 2016-07-20 10:21:48 -04:00
Ben12345rocks d3fb57e5e1 4.1.4 2016-07-20 10:18:07 -04:00
Ben12345rocks 242507da7e Update 2016-07-20 10:10:29 -04:00
Ben12345rocks b06c2e95c4 Update 2016-07-20 10:08:11 -04:00
Ben12345rocks 14cd13e059 Added_stuff 2016-07-20 10:04:21 -04:00
Ben12345rocks e1e90b4a45 Merge branch 'gh-pages' of https://github.com/Ben12345rocks/VotingPlugin into gh-pages 2016-07-19 17:02:55 -04:00
Ben 7f669ace50 Upload javadoc 2016-07-19 16:30:58 -04:00
Ben 8aa07be98b Create gh-pages branch via GitHub 2016-07-19 15:28:40 -04:00
443 changed files with 63743 additions and 18116 deletions

No files matched your search

-30
View File
@@ -1,30 +0,0 @@
---
name: Bug report
about: Bug report for VotingPlugin
title: ''
labels: Possible Bug
assignees: ''
---
**Versions**
Plugin version and spigot version.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots/Configs**
If applicable, add screenshots to help explain your problem and/or configs relating to the issue.
**Additional context**
Add any other context about the problem here.
-20
View File
@@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea
title: ''
labels: Possible Feature
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
@@ -1,17 +0,0 @@
---
name: Question/Concerns
about: Ask about a question or a concern about the plugin
title: ''
labels: Question/Concern
assignees: ''
---
**Versions**
Plugin version and spigot version
**Relevant information**
Configs that relate to the issue in a pastebin.
**Context**
Context about the question/concern
-16
View File
@@ -1,16 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 20
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 5
# Issues with these labels will never be considered stale
exemptLabels:
- Priority
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
View File
Whitespace-only changes.
-31
View File
@@ -1,31 +0,0 @@
# VotingPlugin
Plugin on SpigotMC
https://www.spigotmc.org/resources/votingplugin.15358/
![img](http://badge.henrya.org/spigot/downloads?id=15358&color=green)
![img2](http://badge.henrya.org/spigot/version?id=15358&color=red)
## License
### Creative Commons Arttribution 3.0 Unported
https://github.com/Ben12345rocks/VotingPlugin/blob/master/VotingPlugin/Resources/LICENSE.txt
### Maven:
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>LATEST</version>
<scope>provided</scope>
</dependency>
Versions:
LATEST - latest stable release
BRANCH-SNAPHSOT - unstable builds
-25
View File
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="Resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
-3
View File
@@ -1,3 +0,0 @@
/bin/
/target/
/doc/
-23
View File
@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>VotingPlugin</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -1,7 +0,0 @@
add_todo=false
eclipse.preferences.version=1
include_subpackages=true
mode=mode_replace
project_specific_settings=true
replacements=<?xml version\="1.0" standalone\="yes"?>\n\n<replacements>\n<replacement key\="get" scope\="1" mode\="0">Gets the</replacement>\n<replacement key\="set" scope\="1" mode\="0">Sets the</replacement>\n<replacement key\="add" scope\="1" mode\="0">Adds the</replacement>\n<replacement key\="edit" scope\="1" mode\="0">Edits the</replacement>\n<replacement key\="remove" scope\="1" mode\="0">Removes the</replacement>\n<replacement key\="init" scope\="1" mode\="0">Inits the</replacement>\n<replacement key\="parse" scope\="1" mode\="0">Parses the</replacement>\n<replacement key\="create" scope\="1" mode\="0">Creates the</replacement>\n<replacement key\="build" scope\="1" mode\="0">Builds the</replacement>\n<replacement key\="is" scope\="1" mode\="0">Checks if is</replacement>\n<replacement key\="print" scope\="1" mode\="0">Prints the</replacement>\n<replacement key\="has" scope\="1" mode\="0">Checks for</replacement>\n</replacements>\n\n
use_internal_formatter=true
@@ -1,4 +0,0 @@
eclipse.preferences.version=1
encoding/<project>=Cp1252
encoding/Resources=Cp1252
encoding/src=Cp1252
@@ -1,30 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=disabled
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
@@ -1,4 +0,0 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
@@ -1,3 +0,0 @@
eclipse.preferences.version=1
project.repository.kind=github
project.repository.url=http\://github.com/Ben12345rocks/VotingPlugin
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
org.jboss.ide.eclipse.as.core.singledeployable.deployableList=\n
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-47
View File
@@ -1,47 +0,0 @@
# --------------------------
# Bungee Setup
# Only if using votingplugin bungee to send votes
# REQUIRES RESTART FOR CHANGES TO TAKE EFFECT
# --------------------------
# Plugin using bungee, requires plugin on bungee server
UseBungeecord: false
# For pluginmessaging method only
# Whether to broadcast on cached votes
BungeeBroadcastAlways: false
# What type of bungee setup
# Requires restart and set on all servers
# https://github.com/Ben12345rocks/VotingPlugin/wiki/Bungeecoord-Setups
# Available:
# SOCKETS
# PLUGINMESSAGING
# MYSQL
BungeeMethod: PLUGINMESSAGING
# Enables more debug messages for communication between servers
# Use /votingpluginbungee status for testing communication
BungeeDebug: false
# Get the plugin to broadcast to all servers
# If false you need to enable
BungeeBroadcast: false
# What server this is in bungee (must match)
# Also can be applied to rewards
Server: PleaseSet
# -----------------------------
# For socket setup below only
# -----------------------------
# Bungee communication, add bungee host/port here
BungeeServer:
Host: '127.0.0.1'
Port: 1297
# Bungee communication, add this to bungee server
SpigotServer:
Host: '127.0.0.1'
Port: 1298
-889
View File
@@ -1,889 +0,0 @@
# VotingPlugin by Ben12345rocks
# Main Config
# See wiki for help:
# https://github.com/Ben12345rocks/VotingPlugin/wiki
# Config is sorted in sections
# Use Control + F to search with Notepad++
#
# Valid Options:
# - SQLITE
# - FLAT
# - MYSQL
DataStorage: SQLITE
# Information for mysql
# See the end of the config for cache options
MySQL:
Host: ''
# Default port is 3306
Port: 3306
Database: ''
Username: ''
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)
AllowUnjoined: false
# Use server lookup for when allowunjoined is set to false
# Recommend leaving enabled unless you face issues
AllowUnJoinedCheckServer: true
# ------------------------------------------------
# VoteReminding
# ------------------------------------------------
# Configuration for VoteReminding
# By default this should be all setup to work
# as long as vote delays are done properly
VoteReminding:
# Enable vote reminding
# This will remind player when he can vote on all sites
# Requires VoteDelays to be setup properly
# Use /vote next to see when you can be reminded
# Players require the perm "VotingPlugin.Login.RemindVotes" or "VotingPlugin.Player"
Enabled: true
# Whether or not to remind only once when the player can vote
# Does not apply to login reminds.
RemindOnlyOnce: true
# Will remind player on login if he can vote
# Ignores value above
RemindOnLogin: true
# Delay to remind votes in minutes
# Only works if above is false
RemindDelay: 30
# Run reward files on remind
# By default, the reward file will be created for you
# and have the default message
# Edit the message at AdvancedCore/Rewards/Remind.yml (or any other reward listed)
# Can add titles and more in the reward file
Rewards:
Messages:
Player: '&aRemember to vote!'
Title:
Enabled: false
Title: '&cRemember to vote!'
SubTitle: '&aType /vote'
FadeIn: 10
ShowTime: 50
FadeOut: 10
ActionBar:
Message: '&cRemember to vote'
Delay: 30
# ------------------------------------------------
# Format
# ------------------------------------------------
# Common PlacesHolders:
# Please Note: Not all are usable in all sections
# Special PlaceHolders will be commented where available
# %player% = player name
# %SiteName% = vote site name
#
# Set Message to '' (2 ') to disable message
Commands:
# Whether or not the following commands will open GUIs rather than display text
UseGUI:
Today: true
TopVoter: true
Last: true
Next: true
Total: true
Vote: true
Best: true
Streak: true
# If true, you can right click a votesite from /vote (gui version) and open the vote reward gui for that site
# Can be used to display rewards for that site
VoteRewardFromVoteURL: false
# disable /vote reward commands
# Effective after restart
DisableVoteRewardGUIs: false
# Enable to use book GUI instead of normal GUI
VoteBookGUI: false
Format:
# CommandHandler help message
HelpLine: '&3&l%Command% - &3%HelpMessage%'
# Broadcast vote message
# Set to an empty message to disable
BroadcastMsg: '&6[&4Broadcast&6] &2Thanks &c%player% &2for voting on %SiteName%'
# Broadcast only when player is online
BroadcastWhenOnline: false
Commands:
# Format for /vote
# %num% = the number of the site, for a numbered list
# %url% = site URL
Vote:
Text:
- '&6&lVote for our server!'
# If you want to want to use the feature below where the plugin will
# automaticly list the sites then set the message in the text above
AutoInputSites: true
# For each VoteSite
# make sure to set VoteURL in your VoteSites
# Requires above to be true
# Text will be sent before this
Sites: '&6%num%: &e&l%SiteName% - &e%url%'
# If true, links will always be forced as urls
ForceLinks: true
# Format for /vote next
Next:
# First line
Title: '&3&l%player% Next Votes:'
# How each line is setup for each vote site
# %info% = Info - See Below
# %SiteName% = site name from vote
Layout: '&3%SiteName%: &6%info%'
Info:
# Message when player can vote
CanVote: 'Go Vote!'
# Time until vote msg
# %hours% = hours until next vote
# %minutes% = minutes until next vote
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:
# First line
Title: '&3&l%player% Last Vote Times:'
# Lines for each vote site
# %time% = time, using timeformat below
# %timesince% = time since vote
Line: '&3%SiteName%: &6%timeSince%'
# Spelling of TimeType can be changed under Format.Commands.TimeFormats
TimeFormat: '%amount% %TimeType%'
LastVoted: '%times% ago'
NeverVoted: 'Never voted'
# Format for /vote total
Total:
- '&3&l%player% Total Votes:'
- '&3&lDaily Total: &6&l%DailyTotal%'
- '&3&lWeekly Total: &6&l%WeeklyTotal%'
- '&3&lMonthly Total: &6&l%MonthlyTotal%'
- '&3&lAllTime Total: &6&l%AllTimeTotal%'
# Format for /vote total all
TotalAll:
- '&3&lServer Total Votes:'
- '&3&lDaily Total: &6&l%DailyTotal%'
- '&3&lWeekly Total: &6&l%WeeklyTotal%'
- '&3&lMonthly Total: &6&l%MonthlyTotal%'
- '&3&lAllTime Total: &6&l%AllTimeTotal%'
# Format for /vote top
Top:
# First line
# %page% = current page
# %maxpages% = max number of pages
# %Top% = Monthly/Weekly/Daily (depending on command)
Title: '&3Top %Top% Voters %page%/%maxpages%'
# Line for each player in that page
Line: '&c%num%: &6%player%, %votes%'
# Format for /vote help
Help:
# Title of /vote help
Title: '&3&lVoting Player Help'
# Format for help message in /v help
Line: '&3&l%Command% - &3%HelpMessage%'
# Require permission to see command in /v help or /av help
RequirePermission: true
Best:
Title: '&3&l%player% Best Votes'
Lines:
- '&3Highest Daily Total: &3&l%HighestDailyTotal%'
- '&3Highest Week Total: &3&l%HighestWeeklyTotal%'
- '&3Highest Month Total: &3&l%HighestMonthlyTotal%'
Streak:
Title: '&3&l%player% Vote Streak'
Lines:
- '&3Current Daily Streak: &3&l%DailyStreak%'
- '&3Current Week Streak: &3&l%WeeklyStreak%'
- '&3Current Month Streak: &3&l%MonthlyStreak%'
- '&3&lHighest Streaks:'
- '&3Highest Daily Streak: &3&l%BestDailyStreak%'
- '&3Highest Week Streak: &3&l%BestWeeklyStreak%'
- '&3Highest Month Streak: &3&l%BestMonthlyStreak%'
Today:
Line: '&6%player% : %VoteSite% : %Time%'
# PlaceHolders:
# %VotesRequired% = VotesRequired
# %NeededVotes% = Number of votes needed to reach VotesRequired
# %Votes% = Number of votes
Party:
- '&cCurrently at &6%Votes%&c, &6%NeededVotes% &cmore votes to go to reach &6%VotesRequired%'
# %Points% = player points
Points: '&a%Player% currently has &a&l%Points%&a Points!'
ToggleBroadcasts:
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
TopVoterAwardMsg: '&aYou came in %place% in top voters of the month! Here is an award!'
# Time Format
# See https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
TimeFormat: 'EEE, d MMM yyyy HH:mm'
TimeFormats:
Day: 'Day'
Days: 'Days'
Hour: 'Hour'
Hours: 'Hours'
Minute: 'Minute'
Minutes: 'Minutes'
Second: 'Second'
Seconds: 'Seconds'
# Format for signs
# SiteName may be all, depending on sign
# %position% = position of player, set by sign
# %votes% = Number of votes
Signs:
TopVoterSign:
Line1: 'TopVoter: %SiteName%'
Line2: '#%position%'
Line3: '%player%'
Line4: '%votes% Votes'
# Message when right clicking sign, uses same placeholders as above
RightClickMessage: '&c&l%player% &cis &c&l%position% &cwith &c&l%votes% &cvotes in &c&l%SiteName%'
# 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!'
# Shop messages when using the /vote shop
ShopPurchase: '&aYou bought the %Identifier% for %Points% Points!'
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%'
# Prev/Next page tems in GUIs
PrevItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aPrevious Page'
NextItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aNext Page'
InvFull: '&cInventory full, dropping items on ground'
# Display text
# Used in /vote top (GUI)
TopVoter:
Daily: 'Daily'
Weekly: 'Weekly'
Monthly: 'Monthly'
AllTime: 'AllTime'
# ------------------------------------------------
# GUI Options
# ------------------------------------------------
# Enable command for last month gui
# Requires restart to take effect
LastMonthGUI: false
# Configure GUI's here
# Note: Slots start at 0 instead of 1, max slot is 53 (don't go over) (E.g: last slot in first row of inventory is 8)
# Item Material's can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
GUI:
# GUI for /vote gui, /vgui, votegui
VoteGUI:
# Items will be orders as it is below
URL:
# Standard item format, lore is automaticly applied
Item:
Material: 'BOW'
Data: 0
Amount: 1
Name: '&4URL'
Lore:
- '&aClick me for links'
# You can set skulls of the player using the following
# Remove the # to enable
#Skull: '%Player%'
Next:
Item:
Material: 'COMPASS'
Data: 0
Amount: 1
Name: '&4Next'
Last:
Item:
Material: 'CLOCK'
Data: 0
Amount: 1
Name: '&4Last'
Total:
Item:
Material: 'CHEST'
Data: 0
Amount: 1
Name: '&4Total'
Top:
Item:
Material: 'OAK_SIGN'
Data: 0
Amount: 1
Name: '&4Top'
Today:
Item:
Material: 'BOOK'
Data: 0
Amount: 1
Name: '&4Today'
Shop:
Item:
Material: 'DIAMOND'
Data: 0
Amount: 1
Name: '&4Vote Shop'
Lore:
- '&aYou currently have %points% points'
# GUI for /vote url
# And /vote if enabled in Config.yml
VoteURL:
# GUI Name
Name: '&cVoteURL'
BackButton: true
SiteName: '&c%Name%'
SeeURL: '&cClick to see URL'
NextVote: '&cCan Vote In: %Info%'
ViewAllUrlsButtonEnabled: true
AllUrlsButton:
RequireAllSitesVoted: true
AlreadyVotedItem:
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
Amount: 1
CanVoteItem:
Material: 'EMERALD_BLOCK'
Data: 0
Amount: 1
URLText: '%VoteUrl%'
VoteURLBookGUI:
Title: '&cVoteURL'
SiteName: '&c%name%'
CanVoteText: 'Click me'
CanVoteColor: 'GREEN'
AlreadyVotedText: 'Click me'
AlreadyVotedColor: 'RED'
Layout:
- '&c%Sitename%'
- '[UrlText]'
VoteRewardBackButton: false
# Customize /vote reward
# Show players what you get when you vote on each site
VoteReward:
# Name of votesite
ExampleVoteSite:
# items in /vote reward sitename
Items:
# Item
# This is not the item display name
# Do not have 2 of the same items
Diamond:
# Item ID
Material: 'DIAMOND'
# Item Data (Eg 1:4, data is 4)
Data: 0
# Amount of items
# Should be greater than 0
Amount: 1
# Item name
# Remove this line for no name
Name: '&4Example'
# Lore
# Remove this line for no lore
Lore:
- '&4Line 1'
VoteLast:
Name: 'VoteLast: %player%'
BackButton: true
VoteNext:
Name: 'VoteNext: %player%'
BackButton: true
VoteToday:
Name: 'VoteToday'
Line: '&6%VoteSite% : %Time%'
IconTitle: '%player%'
BackButton: true
UseSkull: true
# If UseSkull is false, use this item
PlayerItem:
Material: 'PAPER'
Amount: 1
VoteTop:
Name: 'VoteTop %topvoter%'
BackButton: false
Item:
Name: '&3&l%position%: &3%player%'
Lore: '&3&lVotes: &3%votes%'
SwitchItem:
Name: '&3Switch TopVoter'
Lore: '&bCurrently: %Top%'
Material: 'OAK_SIGN'
Amount: 1
# 8 Slots over from the bottom left
Slot: 7
# Number of topvoters to display on page +9
# 9 Slots on the botton are used for page buttons
Size: 27
# If true, /vote top will show player heads
UseSkull: true
# Item for player in GUI if use skull is false
PlayerItem:
Material: 'PAPER'
VoteTotal:
Name: 'VoteTotal: %player%'
BackButton: true
DayTotal:
Item:
Material: 'CLOCK'
Name: '&cDaily Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
WeekTotal:
Item:
Material: 'CLOCK'
Name: '&cWeekly Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
MonthTotal:
Item:
Material: 'CLOCK'
Name: '&cMonthly Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
AllTimeTotal:
Item:
Material: 'CLOCK'
Name: '&cAllTime Total'
Lore: '&c&lTotal: &c%Total%'
Amount: 1
VoteBest:
Name: 'VoteBest: %player%'
DayBest:
Item:
Material: 'CLOCK'
Name: '&cDaily Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
WeekBest:
Item:
Material: 'CLOCK'
Name: '&cWeekly Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
MonthBest:
Item:
Material: 'CLOCK'
Name: '&cMonthly Best'
Lore: '&c&lBest: &c%Best%'
Amount: 1
VoteStreak:
Name: 'VoteStreak: %player%'
BackButton: false
CurrentDayStreak:
Item:
Material: 'CLOCK'
Name: '&cCurrent Daily Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
CurrentWeekStreak:
Item:
Material: 'CLOCK'
Name: '&cCurrent Weekly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
CurrentMonthStreak:
Item:
Material: 'CLOCK'
Name: '&cCurrent Monthly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestDayStreak:
Item:
Material: 'CLOCK'
Name: '&cHighest Daily Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestWeekStreak:
Item:
Material: 'CLOCK'
Name: '&cHighest Weekly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
HighestMonthStreak:
Item:
Material: 'CLOCK'
Name: '&cHighest Monthly Streak'
Lore: '&c&lStreak: &c%Streak%'
Amount: 1
VoteURLSite:
Name: 'VoteSite: %site%'
VoteGUIName: '&cVoteGUI: &c&l%player%'
VoteRewardName: 'VoteReward'
VoteShopName: 'VoteShop'
BackButton:
Material: 'BARRIER'
Data: 0
Amount: 1
Name: '&8Back to VoteGUI'
VoteShopBackButton: true
VoteShopEnabled: true
# Hide items in vote shop which user can not buy
VoteShopHideLimitedReached: true
# Requires above to be false
VoteShopLimitReached: '&aYou reached your limit'
VoteShopRequireConfirmation: false
VoteShopDisabled: '&cVote shop disabled'
Shop:
# Identifier
# Used in placeholders for formats
# Do not have spaces in the identifier
Diamond:
Identifier_Name: 'Diamond'
# Item
Material: 'DIAMOND'
Data: 0
Amount: 1
Name: '&4Buy A Diamond'
# You can set skulls of the player using the following
# Remove the # to enable
#Skull: '%Player%'
Lore:
- '&c&lCost: &c3 Voting Points'
# Number of voting points this cost
Cost: 3
# Permission required, leave blank for no permission
Permission: ''
# Limit how many times you can buy this
#Limit: 3
# Reset limit daily/weekly/monthly
#Reset:
#Daily: false
#Weekly: false
#Monthly: false
# If true, item is not buyable
#NotBuyable: false
# Rewards to run if player buys successfully
Rewards:
Items:
Diamond:
Material: 'DIAMOND'
Amount: 1
# ------------------------------------------------
# Extra Rewards
# ------------------------------------------------
# Moved to SpecialRewards.yml
# Rewards here will be copied upon updating
# ------------------------------------------------
# Top Voter
# ------------------------------------------------
# Top voter blacklist
# Hide these names from top voter lists
BlackList:
- 'Notch'
# If true players with the permission 'VotingPlugin.TopVoter.Ignore' will act
# as if there name was added on the the blacklist above
# This also applies for players with op
TopVoterIgnorePermission: false
# /vote top default data displayed
# Valid Options: AllTime, Monthly, Weekly, Daily
VoteTopDefault: Monthly
# Whether or not to have ties on top voter rewards
TopVoterAwardsTies: true
# These are required to be enabled in order for top voter awards to work
LoadTopVoter:
AllTime: true
Monthly: true
Weekly: false
Daily: false
# Maxium number of players to show on top voter
# Set to -1 for no limit
MaxiumNumberOfTopVotersToLoad: -1
# When top voter awards are given (even if there are none listed) it will store top voters
# Files will created in TopVoters folder.
StoreTopVoters:
Monthly: true
Weekly: false
Daily: false
# ------------------------------------------------
# Advanced
# Most of these values can be left untouched for most setups
# ------------------------------------------------
# Number of points to give on vote
# Set to 0 to give no points
PointsOnVote: 1
# Set this to false to disable the plugin adding totals
# Not really recommended
AddTotals: true
# Click sound when using gui
# Set to none for no sound
ClickSound:
Sound: 'UI_BUTTON_CLICK'
Volume: 1.0
Pitch: 1.0
# Playernames to not be broadcasted when voting
# case sensitive
VotingBroadcastBlacklist: []
# Set to false to prevent javascript
# parsing on placeholderapi placeholders
UseJavascriptPlaceholders: true
# Limit monthly votes to number of days of a month multipled by the number of sites
LimitMonthlyVotes: false
# This is an extra safe guard to prevent milestones
# from being executed more than once
# Shoudn't be needed, but enable if you have trouble with milestones
PreventRepeatMilestones: false
######################
# Debug
######################
# Debug levels:
# NONE
# INFO
# EXTRA
DebugLevel: NONE
# Debug info ingame
# Players with permission "VotingPlugin.Debug"
# will see debug info if debug is true
DebugInGame: false
# Will log debug messages to VotingPlugin/Log/log.txt
# Only needed for extreme cases
#LogDebugToFile: false
# Whether or not to log every vote to a file
# Use this if you wanna track player votes
# Not recommended though
LogVotesToFile: false
# Only update in the background when needed when set to false
AlwaysUpdate: false
# Update in the background only if players are online
UpdateWithPlayersOnlineOnly: false
# Delay between background updates like signs and more
# Default: 3 Minutes
# Longer times result in longer wait in stuff updating after a vote, like topvoter
DelayBetweenUpdates: 3
# 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
# 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
# Permissions given by VotingPlugin.Player by default
# Permissions listed here will no be accessible with the default permission
DisabledDefaultPermissions: []
# 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 create daily backups. (Only the most recent ones get kept)
CreateBackups: true
# If true, plugin will send scoreboards on some commands
SendScoreboards: true
# If true, plugin will automaticly generate votesites
# Disable this if you experience issues with sites being created randomly
# Most cases this will work all the time
AutoCreateVoteSites: true
# Automaticly download the latest version
# Will require a restart to actually update
# Note: It takes 30-40 minutes before being able to download the latest build
# You can also use /av download
AutoDownload: false
# Whether or not to disable update checks
DisableUpdateChecking: false
# Allow transfer of vote points between players
AllowVotePointTransfers: false
# Disable this on a hub server for example
# Still processes rewards for offline rewards (just won't give any)
ProcessRewards: true
# Disable checking permissions on tab complete
DisableAdvancedTab: false
# Load command aliases, such as /avgui
# Requires restart to take effect
LoadCommandAliases: true
# Wait until user is logged in with AuthMe
# Requires AuthMe
WaitUntilLoggedIn: true
# Preload skulls to improve performance
# If false, skulls will be cached as they are used
PreloadSkulls: false
# Setting to false disables saving skulls in a cache to improve speeds
# Will reduce ram usage if disabled
LoadSkulls: true
# Use vault for permission checks
# May not work on some plugins
UseVaultPermissions: false
# List of disabled commands from /vote
# List the specific permission
# E.g:
# - PERMISSION
DisabledCommands: []
# Enable to true for extra player checks
ExtraBackgroundUpdate: false
# This will prevent spam clicking GUI's to prevent exploits
# Number is time in between clicking in milliseconds
SpamClickTime: 350
# Message to send when inventory forced closed when spam clicking
# Uncomment to use
#SpamClickMessage: '&cDetected spam clicking GUI, closing to prevent exploits'
# ---------------------------------------------------------
# Mysql cache options
# Clearing cache forces the plugin to pull from database
# Not needed unless you are using multiple servers
# ---------------------------------------------------------
# Clear cache on update, setting to true reduces update speed
# Also may require AlwaysUpdate set to true
ClearCacheOnUpdate: false
# Clear cache on player join always
ClearCacheOnJoin: false
# Clears cache for the player who voted only
# Only effects if using mysql
# Would recommend for some bungee setups
ClearCacheOnVote: false
# Clear cache when player leaves
ClearCacheOnLeave: false
ClearCacheOnVoteShopPurchase: true
# ###############################################################
# Deprecated options, don't recommend using any of these
# Will force GUI's to close on every click
AlwaysCloseInventory: false
# Options for request api
# Current methods:
# ANVIL
# BOOK
# CHAT
# This is mainly used for admin gui's to type in values
RequestAPI:
DefaultMethod: 'Anvil'
DisabledMethods: []
# Shouldn't need to change this
#AutoKillInvs: true
# Disable checking on world change
# May improve performance
#DisableCheckOnWorldChange: false
-319
View File
@@ -1,319 +0,0 @@
Creative Commons Legal Code
Attribution 3.0 Unported
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.
1. Definitions
a. "Adaptation" means a work based upon the Work, or upon the Work and
other pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other alterations of a
literary or artistic work, or phonogram or performance and includes
cinematographic adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form recognizably
derived from the original, except that a work that constitutes a
Collection will not be considered an Adaptation for the purpose of
this License. For the avoidance of doubt, where the Work is a musical
work, performance or phonogram, the synchronization of the Work in
timed-relation with a moving image ("synching") will be considered an
Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or
broadcasts, or other works or subject matter other than works listed
in Section 1(f) below, which, by reason of the selection and
arrangement of their contents, constitute intellectual creations, in
which the Work is included in its entirety in unmodified form along
with one or more other contributions, each constituting separate and
independent works in themselves, which together are assembled into a
collective whole. A work that constitutes a Collection will not be
considered an Adaptation (as defined above) for the purposes of this
License.
c. "Distribute" means to make available to the public the original and
copies of the Work or Adaptation, as appropriate, through sale or
other transfer of ownership.
d. "Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
e. "Original Author" means, in the case of a literary or artistic work,
the individual, individuals, entity or entities who created the Work
or if no individual or entity can be identified, the publisher; and in
addition (i) in the case of a performance the actors, singers,
musicians, dancers, and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or artistic works or
expressions of folklore; (ii) in the case of a phonogram the producer
being the person or legal entity who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the
organization that transmits the broadcast.
f. "Work" means the literary and/or artistic work offered under the terms
of this License including without limitation any production in the
literary, scientific and artistic domain, whatever may be the mode or
form of its expression including digital form, such as a book,
pamphlet and other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical work; a
choreographic work or entertainment in dumb show; a musical
composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture, engraving or
lithography; a photographic work to which are assimilated works
expressed by a process analogous to photography; a work of applied
art; an illustration, map, plan, sketch or three-dimensional work
relative to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilation of data to the
extent it is protected as a copyrightable work; or a work performed by
a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
g. "You" means an individual or entity exercising rights under this
License who has not previously violated the terms of this License with
respect to the Work, or who has received express permission from the
Licensor to exercise rights under this License despite a previous
violation.
h. "Publicly Perform" means to perform public recitations of the Work and
to communicate to the public those public recitations, by any means or
process, including by wire or wireless means or public digital
performances; to make available to the public Works in such a way that
members of the public may access these Works from a place and at a
place individually chosen by them; to perform the Work to the public
by any means or process and the communication to the public of the
performances of the Work, including by public digital performance; to
broadcast and rebroadcast the Work by any means including signs,
sounds or images.
i. "Reproduce" means to make copies of the Work by any means including
without limitation by sound or visual recordings and the right of
fixation and reproducing fixations of the Work, including storage of a
protected performance or phonogram in digital form or other electronic
medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:
a. to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the
Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to
clearly label, demarcate or otherwise identify that changes were made
to the original Work. For example, a translation could be marked "The
original work was translated from English to Spanish," or a
modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated
in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
e. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalties for any
exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme can be waived, the Licensor waives the
exclusive right to collect such royalties for any exercise by You
of the rights granted under this License; and,
iii. Voluntary License Schemes. The Licensor waives the right to
collect royalties, whether individually or, in the event that the
Licensor is a member of a collecting society that administers
voluntary licensing schemes, via that society, from any exercise
by You of the rights granted under this License.
The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved.
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
a. You may Distribute or Publicly Perform the Work only under the terms
of this License. You must include a copy of, or the Uniform Resource
Identifier (URI) for, this License with every copy of the Work You
Distribute or Publicly Perform. You may not offer or impose any terms
on the Work that restrict the terms of this License or the ability of
the recipient of the Work to exercise the rights granted to that
recipient under the terms of the License. You may not sublicense the
Work. You must keep intact all notices that refer to this License and
to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly
Perform the Work, You may not impose any effective technological
measures on the Work that restrict the ability of a recipient of the
Work from You to exercise the rights granted to that recipient under
the terms of the License. This Section 4(a) applies to the Work as
incorporated in a Collection, but this does not require the Collection
apart from the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit
as required by Section 4(b), as requested. If You create an
Adaptation, upon notice from any Licensor You must, to the extent
practicable, remove from the Adaptation any credit as required by
Section 4(b), as requested.
b. If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to
Section 4(a), keep intact all copyright notices for the Work and
provide, reasonable to the medium or means You are utilizing: (i) the
name of the Original Author (or pseudonym, if applicable) if supplied,
and/or if the Original Author and/or Licensor designate another party
or parties (e.g., a sponsor institute, publishing entity, journal) for
attribution ("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name of such party
or parties; (ii) the title of the Work if supplied; (iii) to the
extent reasonably practicable, the URI, if any, that Licensor
specifies to be associated with the Work, unless such URI does not
refer to the copyright notice or licensing information for the Work;
and (iv) , consistent with Section 3(b), in the case of an Adaptation,
a credit identifying the use of the Work in the Adaptation (e.g.,
"French translation of the Work by Original Author," or "Screenplay
based on original Work by Original Author"). The credit required by
this Section 4 (b) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or Collection, at
a minimum such credit will appear, if a credit for all contributing
authors of the Adaptation or Collection appears, then as part of these
credits and in a manner at least as prominent as the credits for the
other contributing authors. For the avoidance of doubt, You may only
use the credit required by this Section for the purpose of attribution
in the manner set out above and, by exercising Your rights under this
License, You may not implicitly or explicitly assert or imply any
connection with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate, of You or Your
use of the Work, without the separate, express prior written
permission of the Original Author, Licensor and/or Attribution
Parties.
c. Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or
Publicly Perform the Work either by itself or as part of any
Adaptations or Collections, You must not distort, mutilate, modify or
take other derogatory action in relation to the Work which would be
prejudicial to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in which any exercise
of the right granted in Section 3(b) of this License (the right to
make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive or not assert,
as appropriate, this Section, to the fullest extent permitted by the
applicable national law, to enable You to reasonably exercise Your
right under Section 3(b) of this License (right to make Adaptations)
but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination
a. This License and the rights granted hereunder will terminate
automatically upon any breach by You of the terms of this License.
Individuals or entities who have received Adaptations or Collections
from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the
Work under different license terms or to stop distributing the Work at
any time; provided, however that any such election will not serve to
withdraw this License (or any other license that has been, or is
required to be, granted under the terms of this License), and this
License will continue in full force and effect unless terminated as
stated above.
8. Miscellaneous
a. Each time You Distribute or Publicly Perform the Work or a Collection,
the Licensor offers to the recipient a license to the Work on the same
terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
offers to the recipient a license to the original Work on the same
terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this License, and without further action
by the parties to this agreement, such provision shall be reformed to
the minimum extent necessary to make such provision valid and
enforceable.
d. No term or provision of this License shall be deemed waived and no
breach consented to unless such waiver or consent shall be in writing
and signed by the party to be charged with such waiver or consent.
e. This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings,
agreements or representations with respect to the Work not specified
here. Licensor shall not be bound by any additional provisions that
may appear in any communication from You. This License may not be
modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention
for the Protection of Literary and Artistic Works (as amended on
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
and the Universal Copyright Convention (as revised on July 24, 1971).
These rights and subject matter take effect in the relevant
jurisdiction in which the License terms are sought to be enforced
according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the
standard suite of rights granted under applicable copyright law
includes additional rights not granted under this License, such
additional rights are deemed to be included in the License; this
License is not intended to restrict the license of any rights under
applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be
liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special,
incidental or consequential damages arising in connection to this
license. Notwithstanding the foregoing two (2) sentences, if Creative
Commons has expressly identified itself as the Licensor hereunder, it
shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the
Work is licensed under the CCPL, Creative Commons does not authorize
the use by either party of the trademark "Creative Commons" or any
related trademark or logo of Creative Commons without the prior
written consent of Creative Commons. Any permitted use will be in
compliance with Creative Commons' then-current trademark usage
guidelines, as may be published on its website or otherwise made
available upon request from time to time. For the avoidance of doubt,
this trademark restriction does not form part of this License.
Creative Commons may be contacted at https://creativecommons.org/.
-176
View File
@@ -1,176 +0,0 @@
# To disable reward set value to []
# or remove entirely
# Eg:
# FirstVote: [] (All in one line)
# Rewards will be given if there is a reward to give
# First vote rewards
FirstVote:
Messages:
Player: '&aYou voted for your first time!'
# All vote rewards
# Reward for voting on all sites in one day
AllSites:
Messages:
Player: '&aYou voted on all sites in 1 day!'
Cumulative:
# Number of votes required
# Allows multiple cumulative rewards
# Number be be around ' (E.g. '1')
# Can have multiple listed here
'20':
Enabled: false
# Wether or not votes must be made in same day/week
# Useful if you want to require a certain number of voting sites to be voted on
# for a daily/weekly reward instead of all of them
VotesInSameDay: false
VotesInSameWeek: false
VotesInSameMonth: false
Rewards:
Messages:
Player: '&aYou got %cumulative% cumulative votes!'
# Vote party configuration
VoteParty:
# Wether or not vote party is enabled
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
# Reset extra votes
ResetExtraVotesMonthly: 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: []
# Rewards to give per player
Rewards:
Commands:
- say %player%
Items:
DIAMOND:
Material: 'DIAMOND'
Amount: 1
# Reset milestones at end of the month
ResetMilestonesMonthly: false
MileStones:
# Number of votes required
# Allows multiple milestones
# Number be around ' (E.g. '1')
# Can have multiple listed here
'20':
Enabled: false
Rewards:
Messages:
Player: '&aYou got %milestone% milestone votes!'
VoteStreak:
# Valid options: Day, Week, Month
Day:
# Number of days in a row
# Each day requires one vote
# Add a - to give a reward for every multiple (e.g. 2- = 2,4,6,8, and so on)
'2':
# Enabled or not
Enabled: false
# Rewards to give
Rewards:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Week:
# Number of weeks in a row
# Requires atleast one vote per week
'2':
# Enabled or not
Enabled: false
# Rewards to give
Rewards:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Month:
# Number of months in a row
# Requires atleast 1 vote per month
'2':
# Enabled or not
Enabled: false
# Rewards to give
Rewards:
Messages:
Player: "&aYou voted for %Streak% %Type%'s in a row!"
Requirement:
# Require certain percentage of votes
UsePercentage: false
# Percentage requirements of votes
# 50 = %50
Day: 50
Week: 50
Month: 50
# Reward given when vote cooldown ended
VoteCoolDownEndedReward: []
# ONLY USE THIS FOR TITLES/SOUNDS AND OTHER EFFECTS
# IT WILL ONLY RUN ONE TIME FOR ANY NUMBER OF OFFLINE VOTES (3 offline votes = 1 AnySiteReward)
# Any reward files listed here are ran on vote of any site
# It is recommended to add rewards to each site instead of here
# Using forceoffline won't work here
# Use EverySiteReward in VoteSites.yml for a global reward for each site
AnySiteRewards: []
EnableMonthlyAwards: true
# Rewards to give
MonthlyAwards:
# Position. 1 is first in top voter, 2 is second, etc...
# Using 1-10 will reward players in first to tenth place with the same reward
1:
Rewards:
Messages:
Player: '&aYou came in first place in %TopVoter%!'
2:
Rewards:
Messages:
Player: '&aYou came in second place in %TopVoter%!'
EnableWeeklyAwards: false
# Rewards to give on weekly top voter
WeeklyAwards:
# Position. 1 is first in top voter, 2 is second, etc...
1:
Rewards:
Messages:
Player: '&aYou came in first place in %TopVoter%!'
2:
Rewards:
Messages:
Player: '&aYou came in second place in %TopVoter%!'
EnableDailyRewards: false
# Rewards to give on daily top voter
DailyAwards:
# Position. 1 is first in top voter, 2 is second, etc...
1:
# Reward files to give
Rewards:
Messages:
Player: '&aYou came in first place in %TopVoter%!'
2:
Rewards:
Messages:
Player: '&aYou came in second place in %TopVoter%!'
-111
View File
@@ -1,111 +0,0 @@
VoteSites:
# VoteSite key
# Used for saving data for votesites
# Use a short name if you can
ExampleVoteSite:
# Enable voteSite
# If false, votesite will not be loaded by plugin
# Default: false
Enabled: false
# Display name of voting site
Name: 'ExampleVoteSite'
# Priority of this site
# Used for sorted list
# High prority, higher on the list
Priority: 5
# The serviceName from the vote, has to be correct to work correctly
# Gotten from voting on the site (will be in console/log)
# Usually is the main part of the url(e.g. PlanetMinecraft.com), but not always
# See console when you vote (it will notify you if the plugin didn't find a votingsite matching the service site
ServiceSite: 'PlanetMinecraft.com'
# vote url for /vote
# Format for this can be set in Format.yml
# Do not include colors here
# If you need to force a url set the url as this:
# VoteURL: '[Text="ANY TEXT TO CLICK ON HERE",url="URLHERE"]'
VoteURL: 'link to vote URL here, used in /vote'
# Time between votes in hours (used for /vote next)
# Most sites are 24 hours
VoteDelay: 24
# Use to have a minute votedelay
#VoteDelayMin: 30
# Require waiting until votedelay time has pasted in order to accept vote
# Recommend: false
WaitUntilVoteDelay: false
# Reset vote delay each day (for certain sites that do this)
# Recommend: false
VoteDelayDaily: false
# If true, rewards can be executed offline (requires ForceOffline to be true in the reward)
# Setting this to true will execute the reward offline while the player is offline
# This basiclly disables offline voting if set to true, don't misinterpret this option
ForceOffline: false
# VoteSite Material for some GUI's
# Removing this may result in an error, required on each site
DisplayItem:
Material: 'DIAMOND'
Amount: 1
# Rewards to give
# https://github.com/Ben12345rocks/AdvancedCore/wiki/Rewards
Rewards:
# Execute console commands
Commands:
- 'say hello'
# Send player a message
Messages:
Player: 'You voted'
# Site 2 example
Site2:
Enabled: false
Name: 'Site2'
ServiceSite: 'PlanetMinecraft.com'
VoteURL: 'link to vote URL here, used in /vote'
VoteDelay: 24
DisplayItem:
Material: 'DIAMOND'
Amount: 1
Rewards:
Commands:
- 'say hello'
# Advanced example
# 50% chance for reward1, if reward1 not given then 20% chance to get reward2, if reward2 not given then fallback
AdvancedPriority:
# Similar to priority, but no need to have to use reward files
# Add requirements under each reward
# Will go in order from list here and try to run each of the following rewards...
# This name can be anything, but they need to be different
Reward1:
Chance: 50
# Any other requirement here
# If any requirement fails, the next reward will be attempted
# Use permission requirement for rank based rewards
#RequirePermission: true
#Permission: 'permhere'
Messages:
Player: 'You got first reward'
Reward2:
Chance: 20
Messages:
Player: 'You got second reward'
# Fallback, 100% chance, after other rewards fail chances
Fallback:
Messages:
Player: 'You got unlucky'
Messages:
Player: 'You voted'
# Reward for any site
# Similar to AnySiteReward
# This requires the site to be configured in order to get the reward.
EverySiteReward: []
-4
View File
@@ -1,4 +0,0 @@
name: ${project.name}
version: ${project.version}
main: com.Ben12345rocks.VotingPlugin.bungee.Bungee
author: Ben12345rocks
-60
View File
@@ -1,60 +0,0 @@
# Set bungeecoord to true on servers on the network (In VotingPlugin)
# Set server name in each server related to what it is on bungee
#
# MYSQL Required on all setups
# MYSQL INFO --------------------------
Host: ''
# Default port is 3306
Port: 3306
Database: ''
Username: ''
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
Debug: false
# Have a reward on each server
# If false, will send to online server only
SendVotesToAllServers: true
# List of servers the plugin won't send the vote to
# Uses names from bungeecoord config if not using SOCKETS method
BlockedServers:
- hub
# What type of bungee setup
# Requires restart and set on all servers
# https://github.com/Ben12345rocks/VotingPlugin/wiki/Bungeecoord-Setups
# Available:
# SOCKETS
# PLUGINMESSAGING
# MYSQL
BungeeMethod: PLUGINMESSAGING
# ----------------------------
# SOCKET METHOD Only, ignore otherwise
# ----------------------------
FallBackServer: factions
# Tell servers to broadcast
Broadcast: true
# Bungee communication, Add this to each spigot server
BungeeServer:
Host: '127.0.0.1'
Port: 1297
# Bungee communication, add each spigot server here
SpigotServers:
lobby:
Host: '127.0.0.1'
Port: 1298
factions:
Host: '127.0.0.1'
Port: 1999
-240
View File
@@ -1,240 +0,0 @@
name: ${project.name}
version: ${project.version}
main: com.Ben12345rocks.VotingPlugin.Main
description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: BenCodez
softdepend: [MVdWPlaceholders, Votifier, VotifierPlus, NuVotifier, CMI, Vault, PlaceholderAPI, ProtocolLib, MVdWPlaceholderAPI, AuthMe]
api-version: 1.13
commands:
vote:
description: Vote command
adminvote:
description: Admin commands for VotingPlugin
av:
description: Admin commands for VotingPlugin
votehelp:
description: See access to a list of commands, Formated in Format.yml
aliases: vhelp
votetotal:
description: See totals of votes
aliases: vtotal
votelast:
description: See the last time you voted
aliases: vlast
votenext:
description: See when you can vote next
aliases: vnext
votetop:
description: See top voters
aliases: vtop
votetoday:
description: See who voted today
aliases: vtoday
votegui:
description: Open VoteGUI
aliases: vgui
voteurl:
description: Open VoteURL
aliases: vurl
votereward:
description: Open VoteReward GUI
aliases: vreward
vote?:
description: View Help
aliases: v?
voteparty:
description: A command
aliases: vparty
voteshop:
description: A command
aliases: vshop
votebest:
description: A command
aliases: vbest
votestreak:
description: A command
aliases: vstreak
votetogglebroadcast:
description: A command
aliases: vtogglebroadcast
votepoints:
description: A command
aliases: vpoints
votelist:
description: A command
aliases: vlist
voteall:
description: A command
aliases: vall
votechoices:
description: A command
alaises: vchoices
votegivepoints:
description: A command
alaises: vgivepoints
adminvotehelp:
description: Open adminvote help
aliases: avhelp
adminvote?:
description: Open adminvote help
aliases: av?
adminvotereport:
description: Command Alias
aliases: avreport
adminvoteperms:
description: Command Alias
aliases: avperms
adminvoteDownload:
description: Command Alias
aliases: avdownload
adminvotereload:
description: Command Alias
aliases: avreload
adminvotetestreward:
description: Command Alias
aliases: avtestreward
adminvoteversion:
description: Command Alias
aliases: avversion
adminvotesites:
description: Command Alias
aliases: avsites
adminvoterewards:
description: Command Alias
aliases: avrewards
adminvoteuuid:
description: Command Alias
aliases: avuuid
adminvotevotesite:
description: Command Alias
aliases: avvotesite
adminvoteconfig:
description: Command Alias
aliases: avconfig
adminvotesettotal:
description: Command Alias
aliases: avsettotal
adminvoteupdatecheck:
description: Command Alias
aliases: avupdatecheck
adminvotevote:
description: Command Alias
aliases: [avvote, fakevote]
adminvotegui:
description: Command Alias
aliases: avgui
adminvotegivereward:
description: Command Alias
aliases: avgivereward
adminvoteusers:
description: Command Alias
aliases: avusers
adminvoteConvertFromData:
description: Command Alias
aliases: avConvertFromData
adminvoteClearTotal:
description: Command Alias
adminvoteBackgroundUpdate:
description: Command Alias
aliases: avBackgroundUpdate
adminvoteClearCache:
description: Command Alias
aliases: avClearCache
adminvoteConvertFrom:
description: Command Alias
aliases: avConvertFrom
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
adminvoteStatus:
description: Command Alias
aliases: avStatus
adminvoteTest:
description: Command Alias
aliases: avTest
adminvotePlaceholders:
description: Command Alias
aliases: avPlaceholders
adminvoteDownloadJenkins:
description: Command Alias
aliases: avDownloadJenkins
adminvoteForceVoteParty:
description: Command Alias
aliases: avForceVoteParty
adminvoteSetRequestMethod:
description: Command Alias
aliases: avSetRequestMethod
adminvoteUser:
description: Command Alias
aliases: avUser
adminvoteCurrentPluginTime:
description: Command Alias
aliases: avCurrentPluginTime
adminvoteResetPoints:
description: Command Alias
aliases: avResetPoints
adminvoteVotePartyExtraRequired:
description: Command Alias
aliases: avVotePartyExtraRequired
adminvoteRunCMD:
description: Command Alias
aliases: avRunCMD
permissions:
VotingPlugin.Player:
description: Allows basic access player commands
VotingPlugin.Mod:
description: Allows mod access player commands
VotingPlugin.Admin:
description: Allows admin access player commands
VotingPlugin.Login.RemindVotes:
description: Allows players to get remined on login if they can vote
default: true
VotingPlugin.Admin.Debug:
description: Permission to view debug info ingame
VotingPlugin.Signs.Create:
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
VotingPlugin.Sign.Create:
description: Permission to create sign
VotingPlugin.Admin.GenerateServiceSite:
description: Permission for generating votesite message
-329
View File
@@ -1,329 +0,0 @@
<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.24</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<github.global.server>github</github.global.server>
<project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>
</properties>
<distributionManagement>
<repository>
<id>internal.repo</id>
<name>Temporary Staging Repository</name>
<url>file://${project.build.directory}/mvn-repo</url>
</repository>
</distributionManagement>
<build>
<resources>
<resource>
<directory>Resources</directory>
<filtering>true</filtering>
<includes>
<include>plugin.yml</include>
<include>bungee.yml</include>
</includes>
</resource>
<resource>
<directory>Resources</directory>
<filtering>false</filtering>
</resource>
</resources>
<sourceDirectory>src</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<versionRange>[1,)</versionRange>
<goals>
<goal>delombok</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<finalName>${project.name}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.12.0</version>
<executions>
<execution>
<id>delombok</id>
<phase>deploy</phase>
<goals>
<goal>delombok</goal>
</goals>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<outputDirectory>${project.basedir}/target/delombok</outputDirectory>
<sourceDirectory>${project.basedir}/src</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<relocations>
<!-- Lets relocate the shaded API so we dont cause any conflicts with
other plugins -->
<relocation>
<pattern>com.Ben12345rocks.AdvancedCore</pattern>
<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>${project.groupId}.${project.artifactId}</shadedPattern>
</relocation>
<relocation>
<pattern>me.mrten.mysqlapi</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.mysqlapi</shadedPattern>
</relocation>
<relocation>
<pattern>com.zaxxer.HikariCP</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.HikariCP</shadedPattern>
</relocation>
<relocation>
<pattern>com.zaxxer.hikari</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.hikari</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j.slf4j-simple</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.slf4j-simple</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<!-- Lets exclude google code, because the server already has this
code in it (guava, etc) -->
<excludes>
<exclude>com.google.*:*</exclude>
</excludes>
</artifactSet>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<phase>deploy</phase>
<configuration>
<sourcepath>${project.basedir}/target/delombok</sourcepath>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.github</groupId>
<artifactId>site-maven-plugin</artifactId>
<version>0.12</version>
<executions>
<execution>
<id>javadoc</id>
<goals>
<goal>site</goal>
</goals>
<phase>deploy</phase>
<configuration>
<message>Maven javadoc for ${project.version}</message>
<noJekyll>true</noJekyll>
<outputDirectory>${project.build.directory}/apidocs
</outputDirectory>
<branch>refs/heads/gh-pages</branch>
<includes>
<include>**/*</include>
</includes>
<repositoryName>VotingPlugin</repositoryName>
<repositoryOwner>Ben12345rocks</repositoryOwner>
<server>github</server>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${user.home}/Documents/Test Server/plugins</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<includes>
<include>${project.artifactId}.jar</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-central</id>
<url>https://oss.sonatype.org/content/groups/public</url>
</repository>
<repository>
<id>bungeecord-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<repository>
<id>bintray-repo</id>
<url>https://dl.bintray.com/nuvotifier/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.Ben12345rocks</groupId>
<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.16.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.vexsoftware</groupId>
<artifactId>votifier</artifactId>
<version>1.9</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/Votifier.jar</systemPath>
</dependency>
<dependency>
<groupId>com.swifteh</groupId>
<artifactId>GAL</artifactId>
<version>1.3.2</version>
<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>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.mimimum.minecraft</groupId>
<artifactId>SuperbVote</artifactId>
<version>0.5.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/SuperbVote-0.5.3.jar</systemPath>
</dependency>
<dependency>
<groupId>be.maximvdw</groupId>
<artifactId>MVdWPlaceholderAPI</artifactId>
<version>LATEST</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/MVdWPlaceholderAPI.jar</systemPath>
</dependency>
<dependency>
<groupId>net.md-5</groupId>
<artifactId>bungeecord-api</artifactId>
<version>LATEST</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.vexsoftware</groupId>
<artifactId>nuvotifier-universal</artifactId>
<version>2.3.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.tchristofferson</groupId>
<artifactId>ConfigUpdater</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>xyz.upperlevel.spigot.book</groupId>
<artifactId>spigot-book-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</project>
@@ -1,247 +0,0 @@
package com.Ben12345rocks.VotingPlugin;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import com.Ben12345rocks.AdvancedCore.Util.Encryption.EncryptionHandler;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessage;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessageHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
import com.Ben12345rocks.VotingPlugin.Config.BungeeSettings;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.bungee.BungeeMethod;
import lombok.Getter;
public class BungeeHandler {
private static BungeeHandler instance = new BungeeHandler();
public static BungeeHandler getInstance() {
return instance;
}
@Getter
private SocketHandler socketHandler;
@Getter
private ClientHandler clientHandler;
private EncryptionHandler encryptionHandler;
@Getter
private BungeeMethod method;
public void close() {
socketHandler.closeConnection();
clientHandler.stopConnection();
}
public void load() {
Main.plugin.debug("Loading bungee handler");
method = BungeeMethod.getByName(BungeeSettings.getInstance().getBungeeMethod());
Main.plugin.getLogger().info("Using BungeeMethod: " + method.toString());
if (method.equals(BungeeMethod.PLUGINMESSAGING)) {
Main.plugin.registerBungeeChannels();
PluginMessage.getInstance().add(new PluginMessageHandler("Vote") {
@Override
public void onRecieve(String subChannel, ArrayList<String> args) {
String player = args.get(0);
String uuid = args.get(1);
String service = args.get(2);
long time = Long.parseLong(args.get(3));
Main.plugin.debug("pluginmessaging vote received from " + player + " on " + service);
User user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
user.clearCache();
user.bungeeVotePluginMessaging(service, time);
if (!BungeeSettings.getInstance().isBungeeBroadcast()) {
if (Boolean.valueOf(args.get(4)) || BungeeSettings.getInstance().isBungeeBroadcastAlways()) {
VoteSite site = Main.plugin.getVoteSite(service);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + service);
}
}
}
if (args.size() > 4 && Boolean.valueOf(args.get(5))) {
ServerData.getInstance().addServiceSite(service);
}
}
});
PluginMessage.getInstance().add(new PluginMessageHandler("VoteOnline") {
@Override
public void onRecieve(String subChannel, ArrayList<String> args) {
String player = args.get(0);
String uuid = args.get(1);
String service = args.get(2);
long time = Long.parseLong(args.get(3));
Main.plugin.debug("pluginmessaging voteonline received from " + player + " on " + service);
User user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
user.clearCache();
user.bungeeVotePluginMessaging(service, time);
if (!BungeeSettings.getInstance().isBungeeBroadcast()) {
if (Boolean.valueOf(args.get(4)) || BungeeSettings.getInstance().isBungeeBroadcastAlways()) {
VoteSite site = Main.plugin.getVoteSite(service);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + service);
}
}
}
if (args.size() > 4 && Boolean.valueOf(args.get(5))) {
ServerData.getInstance().addServiceSite(service);
}
}
});
PluginMessage.getInstance().add(new PluginMessageHandler("VoteUpdate") {
@Override
public void onRecieve(String subChannel, ArrayList<String> args) {
String player = args.get(0);
Main.plugin.debug("pluginmessaging voteupdate received for " + player);
User user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(player));
user.clearCache();
user.offVote();
Main.plugin.setUpdate(true);
}
});
PluginMessage.getInstance().add(new PluginMessageHandler("VoteBroadcast") {
@Override
public void onRecieve(String subChannel, ArrayList<String> args) {
String uuid = args.get(0);
String service = args.get(1);
User user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
VoteSite site = Main.plugin.getVoteSite(service);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + service);
}
}
});
} else if (method.equals(BungeeMethod.SOCKETS)) {
encryptionHandler = new EncryptionHandler(new File(Main.plugin.getDataFolder(), "secretkey.key"));
clientHandler = new ClientHandler(BungeeSettings.getInstance().getBungeeServerHost(),
BungeeSettings.getInstance().getBungeeServerPort(), encryptionHandler,
BungeeSettings.getInstance().isBungeeDebug());
socketHandler = new SocketHandler(Main.plugin.getVersion(),
BungeeSettings.getInstance().getSpigotServerHost(),
BungeeSettings.getInstance().getSpigotServerPort(), encryptionHandler,
BungeeSettings.getInstance().isBungeeDebug());
socketHandler.add(new SocketReceiver("bungeevote") {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
Main.plugin.extraDebug("BungeeVote from " + data[2] + ", processing");
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVote(data[3]);
}
}
});
socketHandler.add(new SocketReceiver("bungeevoteonline") {
@Override
public void onReceive(String[] data) {
if (data.length > 3) {
Main.plugin.extraDebug("BungeeVoteOnline from " + data[2] + ", processing");
String uuid = data[1];
User user = null;
if (!uuid.isEmpty()) {
user = UserManager.getInstance().getVotingPluginUser(UUID.fromString(uuid));
} else {
user = UserManager.getInstance().getVotingPluginUser(data[2]);
}
user.clearCache();
user.bungeeVoteOnline(data[3]);
}
}
});
socketHandler.add(new SocketReceiver("BungeeBroadcast") {
@Override
public void onReceive(String[] data) {
if (data.length > 2) {
VoteSite site = Main.plugin.getVoteSite(data[1]);
String p = data[3];
User user = UserManager.getInstance().getVotingPluginUser(p);
if (site != null) {
site.broadcastVote(user, false);
} else {
Main.plugin.getLogger().warning("No votesite for " + data[1]);
}
}
}
});
socketHandler.add(new SocketReceiver("Status") {
@Override
public void onReceive(String[] data) {
if (data.length > 0) {
Main.plugin.getLogger().info("Received status command, sending status back");
sendData("StatusOkay", Main.plugin.getOptions().getServer());
}
}
});
socketHandler.add(new SocketReceiver("BungeeUpdate") {
@Override
public void onReceive(String[] data) {
Main.plugin.setUpdate(true);
}
});
if (Main.plugin.getOptions().getServer().equalsIgnoreCase("pleaseset")) {
Main.plugin.getLogger().warning("Server name for bungee voting is not set, please set it");
}
}
}
public void sendData(String... strings) {
clientHandler.sendMessage(strings);
}
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,76 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.Executers;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
// TODO: Auto-generated Javadoc
/**
* The Class CommandAdminVote.
*/
public class CommandAdminVote implements CommandExecutor {
/** The instance. */
private static CommandAdminVote instance = new CommandAdminVote();
/**
* Gets the single instance of CommandAdminVote.
*
* @return single instance of CommandAdminVote
*/
public static CommandAdminVote getInstance() {
return instance;
}
/** The config. */
Config config = Config.getInstance();
/** The plugin. */
private Main plugin = Main.plugin;
/** The vote sites. */
ConfigVoteSites voteSites = ConfigVoteSites.getInstance();
/**
* Instantiates a new command admin vote.
*/
private CommandAdminVote() {
}
/**
* Instantiates a new command admin vote.
*
* @param plugin
* the plugin
*/
public CommandAdminVote(Main plugin) {
this.plugin = plugin;
}
/*
* (non-Javadoc)
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
for (CommandHandler commandHandler : plugin.getAdminVoteCommand()) {
if (commandHandler.runCommand(sender, args)) {
return true;
}
}
// invalid command
sender.sendMessage(ChatColor.RED + "No valid arguments, see /adminvote help!");
return true;
}
}
@@ -1,99 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.Executers;
import java.util.ArrayList;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
// TODO: Auto-generated Javadoc
/**
* The Class CommandAliases.
*/
public class CommandAliases implements CommandExecutor {
/** The plugin. */
private Main plugin = Main.plugin;
/** The cmd handle. */
private CommandHandler cmdHandle;
private boolean adminCommand;
public CommandAliases(CommandHandler cmdHandle, boolean adminCommand) {
this.cmdHandle = cmdHandle;
this.adminCommand = adminCommand;
}
/*
* (non-Javadoc)
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
ArrayList<String> argsNew = new ArrayList<String>();
argsNew.add(cmdHandle.getArgs()[0]);
for (String arg : args) {
argsNew.add(arg);
}
plugin.debug("Attempting cmd...");
plugin.debug("Inputed args: " + ArrayUtils.getInstance().makeStringList(argsNew));
ArrayList<CommandHandler> handles = new ArrayList<CommandHandler>();
if (adminCommand) {
handles.addAll(plugin.getAdminVoteCommand());
} else {
handles.addAll(plugin.getVoteCommand());
}
for (CommandHandler cmdHandle : handles) {
if (cmdHandle.getArgs().length > args.length) {
for (String arg : cmdHandle.getArgs()[0].split("&")) {
if (cmd.getName().equalsIgnoreCase("vote" + arg)
|| cmd.getName().equalsIgnoreCase("adminvote" + arg)) {
argsNew.set(0, arg);
boolean argsMatch = true;
for (int i = 0; i < argsNew.size(); i++) {
if (i < cmdHandle.getArgs().length) {
if (!cmdHandle.argsMatch(argsNew.get(i), i)) {
argsMatch = false;
}
}
}
if (argsMatch) {
if (cmdHandle.runCommand(sender, ArrayUtils.getInstance().convert(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
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,68 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.Executers;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
import com.Ben12345rocks.VotingPlugin.Main;
// TODO: Auto-generated Javadoc
/**
* The Class CommandVote.
*/
public class CommandVote implements CommandExecutor {
/** The instance. */
private static CommandVote instance = new CommandVote();
/** The plugin. */
private static Main plugin;
/**
* Gets the single instance of CommandVote.
*
* @return single instance of CommandVote
*/
public static CommandVote getInstance() {
return instance;
}
/**
* Instantiates a new command vote.
*/
private CommandVote() {
}
/**
* Instantiates a new command vote.
*
* @param plugin
* the plugin
*/
public CommandVote(Main plugin) {
CommandVote.plugin = plugin;
}
/*
* (non-Javadoc)
* @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.
* CommandSender , org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
for (CommandHandler commandHandler : plugin.getVoteCommand()) {
if (commandHandler.runCommand(sender, args)) {
return true;
}
}
// invalid command
sender.sendMessage(ChatColor.RED + "No valid arguments, see /vote help!");
return true;
}
}
@@ -1,270 +0,0 @@
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;
import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUI;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.EditGUIButton;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueBoolean;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueList;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueNumber;
import com.Ben12345rocks.AdvancedCore.Util.EditGUI.ValueTypes.EditGUIValueString;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventory.ClickEvent;
import com.Ben12345rocks.AdvancedCore.Util.Inventory.BInventoryButton;
import com.Ben12345rocks.AdvancedCore.Util.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.StringListener;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
public class AdminGUI {
static AdminGUI instance = new AdminGUI();
/**
* Gets the single instance of Commands.
*
* @return single instance of Commands
*/
public static AdminGUI getInstance() {
return instance;
}
/** The plugin. */
Main plugin = Main.plugin;
/**
* Instantiates a new commands.
*/
private AdminGUI() {
}
/**
* Open admin GUI.
*
* @return ArrayList of buttons
*/
public ArrayList<BInventoryButton> adminGUIButtons() {
ArrayList<BInventoryButton> buttons = new ArrayList<BInventoryButton>();
buttons.add(new BInventoryButton("&cVoteSites",
new String[] { "&cOnly enabled sites are listed in this section", "&cMiddle Click to create" },
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getPlayer();
if (event.getClick().equals(ClickType.MIDDLE)) {
new ValueRequest().requestString(player, new StringListener() {
@Override
public void onInput(Player player, String value) {
ConfigVoteSites.getInstance().generateVoteSite(value);
player.sendMessage("Generated site");
plugin.reload();
}
});
} else {
openAdminGUIVoteSites(player);
}
}
});
buttons.add(new BInventoryButton("&cReload Plugin", new String[] {}, new ItemStack(Material.STONE, 1)) {
@Override
public void onClick(ClickEvent event) {
plugin.reload();
}
});
return buttons;
}
public void loadHook() {
for (BInventoryButton b : adminGUIButtons()) {
com.Ben12345rocks.AdvancedCore.Commands.GUI.AdminGUI.getInstance().addButton(b);
}
}
/**
* Open admin GUI vote sites.
*
* @param player
* the player
*/
public void openAdminGUIVoteSites(Player player) {
BInventory inv = new BInventory("VoteSites");
int count = 0;
for (VoteSite voteSite : plugin.getVoteSites()) {
ArrayList<String> lore = new ArrayList<String>();
lore.add("Priority: " + voteSite.getPriority());
lore.add("Name: " + voteSite.getDisplayName());
lore.add("ServiceSite: " + voteSite.getServiceSite());
lore.add("VoteURL: " + voteSite.getVoteURL());
lore.add("VoteDelay: " + voteSite.getVoteDelay());
inv.addButton(count, new BInventoryButton(voteSite.getKey(), ArrayUtils.getInstance().convert(lore),
new ItemStack(Material.STONE)) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
openAdminGUIVoteSiteSite(player, voteSite);
}
});
count++;
}
inv.openInventory(player);
}
/**
* Open admin GUI vote site site.
*
* @param player
* the player
* @param voteSite
* the vote site
*/
public void openAdminGUIVoteSiteSite(Player player, VoteSite voteSite) {
EditGUI inv = new EditGUI("VoteSite: " + voteSite.getDisplayName());
inv.setMeta(player, "VoteSite", voteSite);
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 onInput(Player player, String value) {
Object ob = PlayerUtils.getInstance().getPlayerMeta(player, "VoteSite");
if (ob != null) {
VoteSite site = (VoteSite) ob;
PlayerVoteEvent voteEvent = new PlayerVoteEvent(site, value, site.getServiceSite(), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
}
}
}, ArrayUtils.getInstance().convert(playerNames)).usingMethod(InputMethod.INVENTORY)
.allowCustomOption(true).request(event.getWhoClicked());
}
});
inv.addButton(new EditGUIButton(new EditGUIValueNumber("Priority", voteSite.getPriority()) {
@Override
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setPriority(voteSite.getKey(), num.intValue());
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueString("ServiceSite", voteSite.getServiceSite()) {
@Override
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setServiceSite(siteName, value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueString("Name", voteSite.getDisplayName()) {
@Override
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().setDisplayName(voteSite.getKey(), value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueString("VoteURL", voteSite.getVoteURL()) {
@Override
public void setValue(Player player, String value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteURL(siteName, value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueNumber("VoteDelay", voteSite.getVoteDelay()) {
@Override
public void setValue(Player player, Number num) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelay(siteName, num.intValue());
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("Enabled", voteSite.isEnabled()) {
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setEnabled(siteName, value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("ForceOffline", voteSite.isGiveOffline()) {
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setForceOffline(siteName, value);
plugin.reload();
}
}));
inv.addButton(new EditGUIButton(new EditGUIValueBoolean("VoteDelayDaily", voteSite.isVoteDelayDaily()) {
@Override
public void setValue(Player player, boolean value) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
String siteName = voteSite.getKey();
ConfigVoteSites.getInstance().setVoteDelayDaily(siteName, value);
plugin.reload();
}
}));
if (voteSite.getSiteData().isList("Rewards")) {
inv.addButton(
new EditGUIButton(new EditGUIValueList("Rewards", voteSite.getSiteData().getStringList("Rewards")) {
@Override
public void setValue(Player p, ArrayList<String> rewards) {
VoteSite voteSite = (VoteSite) getInv().getMeta(player, "VoteSite");
ConfigVoteSites.getInstance().set(voteSite.getKey(), "Rewards", rewards);
plugin.reload();
}
}));
}
inv.openInventory(player);
}
}
@@ -1,962 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.GUI;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
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.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.BungeeSettings;
import com.Ben12345rocks.VotingPlugin.Config.Config;
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 net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import xyz.upperlevel.spigot.book.BookUtil;
public class PlayerGUIs {
static PlayerGUIs instance = new PlayerGUIs();
/**
* Gets the single instance of Commands.
*
* @return single instance of Commands
*/
public static PlayerGUIs getInstance() {
return instance;
}
/** The plugin. */
Main plugin = Main.plugin;
/**
* Instantiates a new commands.
*/
private PlayerGUIs() {
}
public BInventoryButton getBackButton() {
ConfigurationSection sec = Config.getInstance().getBackButton();
ItemBuilder item;
if (sec != null) {
item = new ItemBuilder(sec);
} else {
item = new ItemBuilder(Material.BARRIER, 1).setName("&8Back to VoteGUI");
}
BInventoryButton b = new BInventoryButton(item) {
@Override
public void onClick(ClickEvent event) {
openVoteGUI(event.getWhoClicked(), getSelectedPlayer(event.getWhoClicked()));
}
};
if (!Config.getInstance().isAlwaysCloseInventory()) {
b.dontClose();
}
return b;
}
public User getSelectedPlayer(Player player) {
User str = (User) PlayerUtils.getInstance().getPlayerMeta(player, "SelectedPlayerGUIs");
return str;
}
public void openVoteBest(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteBestName());
inv.addPlaceholder("player", user.getPlayerName());
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteBestDayBestItem())
.addPlaceholder("Best", "" + user.getBestDayVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteBestWeekBestItem())
.addPlaceholder("Best", "" + user.getBestWeekVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteBestMonthBestItem())
.addPlaceholder("Best", "" + user.getBestMonthVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.openInventory(player);
}
public void openVoteGUI(Player player, User user) {
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.hasPermission("VotingPlugin.Commands.Vote.GUI")
&& !player.hasPermission("VotingPlugin.Player"))) {
player.sendMessage(StringParser.getInstance().colorize(Main.plugin.getOptions().getFormatNoPerms()));
return;
}
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteGUIName());
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
inv.addPlaceholder("points", "" + user.getPoints());
inv.addPlaceholder("player", user.getPlayerName());
inv.addPlaceholder("top", Config.getInstance().getVoteTopDefault());
for (String slot : Config.getInstance().getVoteGUISlots()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteGUISlotSection(slot));
String[] lore = new String[1];
lore = ArrayUtils.getInstance().convert(Config.getInstance().getVoteGUISlotLore(slot));
String str = Config.getInstance().getVoteTopDefault();
if (lore.length == 0) {
if (slot.equalsIgnoreCase("url")) {
lore = new String[] { "&aClick me" };
} else if (slot.equalsIgnoreCase("next")) {
lore = Commands.getInstance().voteCommandNext(user);
} else if (slot.equalsIgnoreCase("last")) {
lore = Commands.getInstance().voteCommandLast(user);
} else if (slot.equalsIgnoreCase("total")) {
lore = Commands.getInstance().voteCommandTotal(user);
} else if (slot.equalsIgnoreCase("top")) {
if (str.equalsIgnoreCase("monthly")) {
lore = TopVoterHandler.getInstance().topVoterMonthly(1);
} else if (str.equalsIgnoreCase("weekly")) {
lore = TopVoterHandler.getInstance().topVoterWeekly(1);
} else if (str.equalsIgnoreCase("daily")) {
lore = TopVoterHandler.getInstance().topVoterDaily(1);
} else {
lore = TopVoterHandler.getInstance().topVoterAllTime(1);
}
} else if (slot.equalsIgnoreCase("today")) {
lore = Commands.getInstance().voteToday();
} else if (slot.equalsIgnoreCase("help")) {
lore = new String[] { "Click to view help" };
}
}
builder.setLore(ArrayUtils.getInstance().convert(lore));
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
String cmd = Config.getInstance().getVoteGUISlotCommand(slot);
User user = getSelectedPlayer(player);
if (cmd.equalsIgnoreCase("none")) {
return;
} else if (!cmd.equals("")) {
event.runSync(new Runnable() {
@Override
public void run() {
player.performCommand(cmd);
}
});
} else {
if (slot.equalsIgnoreCase("url")) {
user.sendMessage(Commands.getInstance().voteURLs(user, true));
event.closeInventory();
} else if (slot.equalsIgnoreCase("next")) {
openVoteNext(player, user);
} else if (slot.equalsIgnoreCase("last")) {
openVoteLast(player, user);
} else if (slot.equalsIgnoreCase("total")) {
openVoteTotal(player, user);
} else if (slot.equalsIgnoreCase("top")) {
openVoteTop(player, null);
} else if (slot.equalsIgnoreCase("today")) {
openVoteToday(player);
} else if (slot.equalsIgnoreCase("help")) {
player.performCommand("vote help");
} else if (slot.equalsIgnoreCase("shop")) {
openVoteShop(player);
} else if (slot.equalsIgnoreCase("lastmonth")) {
openVoteTopLastMonth(player);
}
}
}
});
}
inv.openInventory(player);
}
public void openVoteLast(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteLastName());
inv.addPlaceholder("player", user.getPlayerName());
for (VoteSite site : plugin.getVoteSites()) {
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) {
}
});
}
if (Config.getInstance().getGUIVoteLastBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteNext(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteNextName());
inv.addPlaceholder("player", user.getPlayerName());
for (VoteSite site : plugin.getVoteSites()) {
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) {
}
});
}
if (Config.getInstance().getGUIVoteNextBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteShop(Player player) {
if (!Config.getInstance().getVoteShopEnabled()) {
player.sendMessage(StringParser.getInstance().colorize(Config.getInstance().getVoteShopDisabled()));
return;
}
BInventory inv = new BInventory(Config.getInstance().getVoteShopName());
for (final String identifier : Config.getInstance().getIdentifiers()) {
String perm = Config.getInstance().getVoteShopPermission(identifier);
boolean hasPerm = false;
if (perm.isEmpty()) {
hasPerm = true;
} else {
hasPerm = player.hasPermission(perm);
}
int limit = Config.getInstance().getIdentifierLimit(identifier);
boolean limitPass = true;
if (limit > 0) {
User user = UserManager.getInstance().getVotingPluginUser(player);
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
}
}
if (!Config.getInstance().getVoteShopNotBuyable(identifier)) {
if (hasPerm && (limitPass || !Config.getInstance().isVoteShopHideLimitedReached())) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
event.getButton().getInv().closeInv(player, null);
User user = UserManager.getInstance().getVotingPluginUser(player);
if (Config.getInstance().isClearCacheOnVoteShopPurchase()
|| BungeeSettings.getInstance().isUseBungeecoord()) {
user.clearCache();
}
String identifier = (String) getData("identifier");
int limit = (int) getData("Limit");
int points = Config.getInstance().getIdentifierCost(identifier);
if (identifier != null) {
// limit fail-safe, should never be needed, except in rare cases
boolean limitPass = true;
if (limit > 0) {
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
limitPass = false;
}
}
if (limitPass) {
if (!Config.getInstance().isVoteShopRequireConfirmation()) {
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier",
Config.getInstance().getIdentifierIdentifierName(identifier));
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier),
new RewardOptions().setPlaceholders(placeholders));
user.sendMessage(StringParser.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
if (limit > 0) {
user.setVoteShopIdentifierLimit(identifier,
user.getVoteShopIdentifierLimit(identifier) + 1);
}
} else {
user.sendMessage(StringParser.getInstance().replacePlaceHolder(
Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
} else {
openVoteShopConfirmation(player, identifier);
}
} else {
user.sendMessage(Config.getInstance().getVoteShopLimitReached());
}
}
}
}.addData("identifier", identifier).addData("Limit", limit));
}
} else {
if (hasPerm) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
}
}.dontClose().addData("identifier", identifier).addData("Limit", limit));
}
}
}
if (Config.getInstance().getVoteShopBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteShopConfirmation(Player player, String identifier) {
PlayerUtils.getInstance().setPlayerMeta(player, "ident", identifier);
BInventory inv = new BInventory("Confirm Purchase?");
inv.addButton(new BInventoryButton(new ItemBuilder(Material.EMERALD_BLOCK).setName("&aYes")) {
@Override
public void onClick(ClickEvent event) {
String ident = (String) PlayerUtils.getInstance().getPlayerMeta(event.getPlayer(), "ident");
User user = UserManager.getInstance().getVotingPluginUser(event.getPlayer());
int points = Config.getInstance().getIdentifierCost(ident);
int limit = Config.getInstance().getIdentifierLimit(identifier);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("identifier", identifier);
placeholders.put("points", "" + points);
placeholders.put("limit", "" + limit);
if (user.removePoints(points)) {
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
Config.getInstance().getIdentifierRewardsPath(identifier),
new RewardOptions().setPlaceholders(placeholders));
user.sendMessage(StringParser.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
if (limit > 0) {
user.setVoteShopIdentifierLimit(identifier, user.getVoteShopIdentifierLimit(identifier) + 1);
}
} else {
user.sendMessage(StringParser.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatShopFailedMsg(), placeholders));
}
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
event.getPlayer().closeInventory();
}
});
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.BARRIER).setName("&cNo")) {
@Override
public void onClick(ClickEvent event) {
event.getPlayer().closeInventory();
}
});
inv.openInventory(player);
}
public void openVoteStreak(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteStreakName());
inv.addPlaceholder("player", user.getPlayerName());
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakCurrentDayStreakItem())
.addPlaceholder("Streak", "" + user.getDayVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakCurrentWeekStreakItem())
.addPlaceholder("Streak", "" + user.getWeekVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(
new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakCurrentMonthStreakItem())
.addPlaceholder("Streak", "" + user.getMonthVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakHighestDayStreakItem())
.addPlaceholder("Streak", "" + user.getBestDayVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakHighestWeekStreakItem())
.addPlaceholder("Streak", "" + user.getBestWeekVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
inv.addButton(
new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteStreakHighestMonthStreakItem())
.addPlaceholder("Streak", "" + user.getBestMonthVoteStreak())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
if (Config.getInstance().getGUIVoteStreakBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteToday(Player player) {
setSelectedPlayer(player, null);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTodayName());
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
for (User user : plugin.getVoteToday().keySet()) {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getInstance().getFormatTimeFormat());
String timeString = plugin.getVoteToday().get(user).get(voteSite).format(formatter);
String msg = Config.getInstance().getGUIVoteTodayLine();
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("VoteSite", voteSite.getDisplayName());
placeholders.put("Time", timeString);
msg = StringParser.getInstance().replacePlaceHolder(msg, placeholders);
ItemBuilder item = null;
if (Config.getInstance().isGUIVoteTodayUseSkull() && !NMSManager.getInstance().isVersion("1.12")) {
item = new ItemBuilder(new ItemStack(Material.PLAYER_HEAD, 1)).setSkullOwner(player);
} else {
item = new ItemBuilder(Config.getInstance().getGUIVoteTodayPlayerItem());
}
item.setName(StringParser.getInstance().replacePlaceHolder(
Config.getInstance().getGUIVoteTodayIconTitle(), "player", user.getPlayerName()));
item.setLore(msg);
inv.addButton(inv.getNextSlot(), new BInventoryButton(item) {
@Override
public void onClick(ClickEvent clickEvent) {
User user = UserManager.getInstance()
.getVotingPluginUser(clickEvent.getClickedItem().getItemMeta().getDisplayName());
openVoteGUI(player, user);
}
});
}
}
if (Config.getInstance().getGUIVoteTodayBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void openVoteTop(Player player, TopVoter top) {
try {
if (top == null) {
top = TopVoter.getDefault();
}
Set<Entry<User, Integer>> users = null;
String topVoter = top.getName();
@SuppressWarnings("unchecked")
LinkedHashMap<User, Integer> topVotes = (LinkedHashMap<User, Integer>) plugin.getTopVoter(top).clone();
users = topVotes.entrySet();
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTopName());
inv.addPlaceholder("topvoter", topVoter);
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
int pos = 1;
for (Entry<User, Integer> entry : users) {
ItemBuilder playerItem;
if (Config.getInstance().isGuiVoteTopUseSkull()) {
playerItem = new ItemBuilder(entry.getKey().getPlayerHead());
} else {
playerItem = new ItemBuilder(
Material.valueOf(Config.getInstance().getGuiVoteTopPlayerItemMaterial()));
}
playerItem.setLore(new ArrayList<String>());
inv.addButton(new BInventoryButton(playerItem.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore()).addPlaceholder("position", "" + pos)
.addPlaceholder("player", entry.getKey().getPlayerName())
.addPlaceholder("votes", "" + entry.getValue())) {
@Override
public void onClick(ClickEvent clickEvent) {
User user = (User) getData("User");
openVoteGUI(player, user);
}
}.addData("player", entry.getKey().getPlayerName()).addData("User", entry.getKey()));
pos++;
}
final TopVoter cur = top;
inv.getPageButtons().add(new BInventoryButton(
new ItemBuilder(Config.getInstance().getGUIVoteTopSwitchItem()).addPlaceholder("Top", topVoter)) {
@Override
public void onClick(ClickEvent clickEvent) {
if (!clickEvent.getClick().equals(ClickType.RIGHT)) {
openVoteTop(player, cur.next());
} else {
openVoteTop(player, cur.prev());
}
}
});
if (Config.getInstance().getGUIVoteTopBackButton()) {
inv.getPageButtons().add(getBackButton().setSlot(1));
}
inv.setPages(true);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
} catch (Exception e) {
e.printStackTrace();
}
}
public void openVoteTopLastMonth(Player player) {
Set<Entry<User, Integer>> users = null;
users = plugin.getLastMonthTopVoter().entrySet();
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTopName());
inv.addPlaceholder("topvoter", "Last Month");
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
int pos = 1;
for (Entry<User, Integer> entry : users) {
ItemBuilder playerItem;
if (Config.getInstance().isGuiVoteTopUseSkull()) {
playerItem = new ItemBuilder(entry.getKey().getPlayerHead());
} else {
playerItem = new ItemBuilder(Material.valueOf(Config.getInstance().getGuiVoteTopPlayerItemMaterial()));
}
playerItem.setLore(new ArrayList<String>());
inv.addButton(new BInventoryButton(playerItem.setName(Config.getInstance().getGUIVoteTopItemName())
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore()).addPlaceholder("position", "" + pos)
.addPlaceholder("player", entry.getKey().getPlayerName())
.addPlaceholder("votes", "" + entry.getValue())) {
@Override
public void onClick(ClickEvent clickEvent) {
User user = (User) getData("User");
openVoteGUI(player, user);
}
}.addData("player", entry.getKey().getPlayerName()).addData("User", entry.getKey()));
pos++;
}
if (Config.getInstance().getGUIVoteTopBackButton()) {
inv.getPageButtons().add(getBackButton().setSlot(1));
}
inv.setPages(true);
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
inv.openInventory(player);
}
public void openVoteTotal(Player player, User user) {
setSelectedPlayer(player, user);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTotalName());
inv.addPlaceholder("player", user.getPlayerName());
for (TopVoter top : TopVoter.values()) {
inv.addButton(new BInventoryButton(new ItemBuilder(Config.getInstance().getGUIVoteTotalItem(top))
.addPlaceholder("Total", "" + user.getTotal(top)).addPlaceholder("topvoter", top.getName())) {
@Override
public void onClick(ClickEvent clickEvent) {
}
});
}
if (Config.getInstance().getGUIVoteTotalBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
/**
* Vote URL.
*
* @param player
* the player
*/
public void openVoteURL(Player player) {
setSelectedPlayer(player, null);
User user = UserManager.getInstance().getVotingPluginUser(player);
if (!Config.getInstance().isCommandsVoteBookGUI()) {
// normal GUI
BInventory inv = new BInventory(Config.getInstance().getGUIVoteURLName());
int count = 0;
if (Config.getInstance().getVoteURLViewAllUrlsButtonEnabled()) {
ItemBuilder builderAll = new ItemBuilder(
Config.getInstance().getVoteURLAlreadyVotedAllUrlsButtonItemSection());
if (Config.getInstance().isGuiVoteURLAllUrlsButtonrequireAllSitesVoted()) {
if (user.canVoteAny()) {
builderAll = new ItemBuilder(Config.getInstance().getVoteURLCanVoteAllUrlsButtonItemSection());
}
} else {
if (user.canVoteAll()) {
builderAll = new ItemBuilder(Config.getInstance().getVoteURLCanVoteAllUrlsButtonItemSection());
}
}
if (!builderAll.hasCustomDisplayName()) {
builderAll.setName("&4All Voting Sites");
}
if (!builderAll.hasCustomLore()) {
builderAll.setLore("&cClick Me");
}
inv.addButton(count, new BInventoryButton(builderAll) {
@Override
public void onClick(ClickEvent event) {
User user = UserManager.getInstance().getVotingPluginUser(event.getPlayer());
user.sendMessage(Commands.getInstance().voteURLs(user, true));
}
});
count++;
}
for (final VoteSite voteSite : plugin.getVoteSites()) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteURLAlreadyVotedItemSection());
if (user.canVoteSite(voteSite)) {
builder = new ItemBuilder(Config.getInstance().getVoteURLCanVoteItemSection());
} else {
builder.addLoreLine(Config.getInstance().getVoteURLNextVote().replace("%Info%",
Commands.getInstance().voteCommandNextInfo(user, voteSite)));
}
builder.setName(Config.getInstance().getVoteURLSiteName().replace("%Name%", voteSite.getDisplayName()));
inv.addButton(count, new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getPlayer();
if (player != null) {
if (Config.getInstance().isCommandsVoteRewardFromVoteURL()
&& event.getClick().equals(ClickType.RIGHT)) {
voteReward(player, voteSite.getKey());
} else {
User user = UserManager.getInstance().getVotingPluginUser(player);
user.sendMessage(
StringParser.getInstance()
.replacePlaceHolder(
StringParser.getInstance()
.replacePlaceHolder(
StringParser.getInstance().replacePlaceHolder(
Config.getInstance()
.getGUIVoteURLURLText(),
"voteurl", voteSite.getVoteURL()),
"sitename", voteSite.getDisplayName()),
"player", player.getName()));
}
}
}
});
count++;
}
if (Config.getInstance().getGUIVoteURLBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
} else {
// book gui
ArrayList<BaseComponent[]> builder = new ArrayList<BaseComponent[]>();
BookUtil.PageBuilder currentPage = new BookUtil.PageBuilder();
int lines = 0;
for (final VoteSite site : plugin.getVoteSites()) {
try {
ArrayList<String> layout = Config.getInstance().getGUIVoteURLBookGUILayout();
lines += layout.size();
if (lines > 14) {
builder.add(currentPage.build());
currentPage = new BookUtil.PageBuilder();
lines = layout.size();
plugin.debug("New page");
}
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("Sitename", site.getDisplayName());
ChatColor color = ChatColor.valueOf(Config.getInstance().getGUIVoteURLBookGUIAlreadyVotedColor());
String text = Config.getInstance().getGUIVoteURLBookGUIAlreadyVotedText();
if (user.canVoteSite(site)) {
color = ChatColor.valueOf(Config.getInstance().getGUIVoteURLBookGUICanVoteColor());
text = Config.getInstance().getGUIVoteURLBookGUICanVoteText();
}
String url = ChatColor.stripColor(StringParser.getInstance()
.colorize(StringParser.getInstance().parseJson(site.getVoteURL(false)).toPlainText()));
if (!url.startsWith("http")) {
if (!url.startsWith("www.")) {
url = "https://www." + url;
} else {
url = "https://" + url;
}
}
for (String str : layout) {
str = StringParser.getInstance().replacePlaceHolder(str, placeholders);
if (StringParser.getInstance().containsIgnorecase(str, "[UrlText]")) {
String[] split = str.split("[UrlText]");
String s = split[0].substring(0, split[0].length() - 1);
BaseComponent comp = new TextComponent(StringParser.getInstance().colorize(s));
comp.addExtra(BookUtil.TextBuilder.of(text).color(color)
.onClick(BookUtil.ClickAction.openUrl(url))
.onHover(BookUtil.HoverAction.showText(url)).build());
comp.addExtra(StringParser.getInstance().colorize(str.substring(s.length() + 9)));
currentPage.add(comp);
} else {
currentPage.add(StringParser.getInstance().colorize(str));
}
currentPage.newLine();
}
} catch (Exception e) {
e.printStackTrace();
}
}
builder.add(currentPage.build());
ItemStack book = BookUtil.writtenBook().author(player.getName())
.title(StringParser.getInstance().colorize(Config.getInstance().getGUIVoteURLBookGUITitle()))
.pages(builder).build();
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
BookUtil.openPlayer(player, book);
}
});
}
}
public void openVoteURL(Player player, String voteSite) {
if (!plugin.isVoteSite(voteSite)) {
player.sendMessage("Not a valid votesite");
return;
}
User user = UserManager.getInstance().getVotingPluginUser(player);
VoteSite site = plugin.getVoteSite(voteSite);
BInventory inv = new BInventory(Config.getInstance().getGUIVoteURLSiteName());
inv.addPlaceholder("site", site.getDisplayName());
inv.setMeta(player, "VoteSite", site);
if (!Config.getInstance().isAlwaysCloseInventory()) {
inv.dontClose();
}
inv.addButton(
new BInventoryButton(new ItemBuilder(Material.BOW).setName("&4URL").addLoreLine("Click to see URL")) {
@Override
public void onClick(ClickEvent clickEvent) {
VoteSite site = (VoteSite) clickEvent.getMeta("VoteSite");
clickEvent.getWhoClicked().sendMessage(site.getVoteURL());
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.COMPASS).setName("&4Next Vote")
.addLoreLine(Commands.getInstance().voteCommandNextInfo(user, site))) {
@Override
public void onClick(ClickEvent clickEvent) {
openVoteURL(clickEvent.getPlayer());
}
});
inv.addButton(new BInventoryButton(new ItemBuilder(Material.CLOCK).setName("&4Last Vote")
.addLoreLine(Commands.getInstance().voteCommandLastLine(user, site))) {
@Override
public void onClick(ClickEvent clickEvent) {
openVoteURL(clickEvent.getPlayer());
}
});
if (Config.getInstance().getGUIVoteURLBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
public void setSelectedPlayer(Player player, User user) {
PlayerUtils.getInstance().setPlayerMeta(player, "SelectedPlayerGUIs", user);
}
/**
* Vote reward.
*
* @param player
* the player
* @param siteName
* the site name
*/
public void voteReward(Player player, String siteName) {
BInventory inv = new BInventory(Config.getInstance().getGUIVoteRewardName());
if ((siteName == null) || (siteName == "")) {
for (VoteSite voteSite : plugin.getVoteSites()) {
try {
ItemBuilder builder = voteSite.getItem();
inv.addButton(new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getWhoClicked();
voteReward(player, (String) getData("site"));
}
}.addData("site", voteSite.getKey()));
} catch (Exception ex) {
}
}
} else {
for (String itemName : Config.getInstance().getVoteSiteItems(siteName)) {
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteSiteItemsSection(siteName, itemName));
inv.addButton(Config.getInstance().getVoteSiteItemsSlot(siteName, itemName),
new BInventoryButton(builder) {
@Override
public void onClick(ClickEvent event) {
}
});
}
}
if (Config.getInstance().isVoteRewardBackButton()) {
inv.addButton(getBackButton());
}
inv.openInventory(player);
}
}
@@ -1,52 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.TabCompleter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.VotingPlugin.Main;
/**
* The Class AdminVoteTabCompleter.
*/
public class AdminVoteTabCompleter implements TabCompleter {
/** The plugin. */
Main plugin = Main.plugin;
/*
* (non-Javadoc)
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) {
List<String> tab = new ArrayList<String>();
Set<String> cmds = new HashSet<String>();
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.getAdminVoteCommand(), sender, args,
args.length - 1));
for (String str : cmds) {
if (StringParser.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
tab.add(str);
}
}
Collections.sort(tab, String.CASE_INSENSITIVE_ORDER);
return tab;
}
}
@@ -1,106 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.TabCompleter;
import java.util.ArrayList;
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.CommandAPI.CommandHandler;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
/**
* The Class AliasesTabCompleter.
*/
public class AliasesTabCompleter implements TabCompleter {
/** The plugin. */
Main plugin = Main.plugin;
/** The cmd handle. */
public CommandHandler cmdHandle;
private boolean adminCommand;
/*
* (non-Javadoc)
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] argsIn) {
ArrayList<String> msgArray = new ArrayList<String>();
msgArray.add("");
for (String arg : argsIn) {
msgArray.add(arg);
}
String[] args = ArrayUtils.getInstance().convert(msgArray);
ArrayList<String> tab = new ArrayList<String>();
Set<String> cmds = new HashSet<String>();
ArrayList<CommandHandler> cmdHandlers = new ArrayList<CommandHandler>();
if (adminCommand) {
cmdHandlers.addAll(plugin.getAdminVoteCommand());
} else {
cmdHandlers.addAll(plugin.getVoteCommand());
}
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("&")) {
if (cmd.getName().equalsIgnoreCase("vote" + arg)
|| cmd.getName().equalsIgnoreCase("adminvote" + arg)) {
// plugin.debug("Found cmd... attempting to get tab
// complete");
args[0] = arg;
boolean argsMatch = true;
for (int i = 0; i < argsIn.length; i++) {
if (args.length >= i) {
if (!cmdHandle.argsMatch(args[i], i)) {
argsMatch = false;
}
}
}
if (argsMatch) {
cmds.addAll(cmdHandle.getTabCompleteOptions(sender, args, argsIn.length, tabCompletes));
}
}
}
}
}
for (String str : cmds) {
if (StringParser.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
tab.add(str);
}
}
Collections.sort(tab, String.CASE_INSENSITIVE_ORDER);
return tab;
}
public AliasesTabCompleter setCMDHandle(CommandHandler cmd, boolean adminCommand) {
cmdHandle = cmd;
this.adminCommand = adminCommand;
return this;
}
}
@@ -1,53 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Commands.TabCompleter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import com.Ben12345rocks.AdvancedCore.CommandAPI.TabCompleteHandler;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.VotingPlugin.Main;
// TODO: Auto-generated Javadoc
/**
* The Class VoteTabCompleter.
*/
public class VoteTabCompleter implements TabCompleter {
/** The plugin. */
Main plugin = Main.plugin;
/*
* (non-Javadoc)
* @see org.bukkit.command.TabCompleter#onTabComplete(org.bukkit.command.
* CommandSender, org.bukkit.command.Command, java.lang.String,
* java.lang.String[])
*/
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) {
ArrayList<String> tab = new ArrayList<String>();
Set<String> cmds = new HashSet<String>();
cmds.addAll(TabCompleteHandler.getInstance().getTabCompleteOptions(plugin.getVoteCommand(), sender, args,
args.length - 1));
for (String str : cmds) {
if (StringParser.getInstance().startsWithIgnoreCase(str, args[args.length - 1])) {
tab.add(str);
}
}
Collections.sort(tab, String.CASE_INSENSITIVE_ORDER);
return tab;
}
}
@@ -1,82 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Config;
import java.io.File;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.AnnotationHandler;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataBoolean;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataInt;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataString;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
import com.Ben12345rocks.VotingPlugin.Main;
import lombok.Getter;
public class BungeeSettings extends YMLFile {
/** The instance. */
static BungeeSettings instance = new BungeeSettings();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of Config.
*
* @return single instance of Config
*/
public static BungeeSettings getInstance() {
return instance;
}
@ConfigDataBoolean(path = "UseBungeecord", secondPath = "UseBungeecoord")
@Getter
private boolean useBungeecoord = false;
@ConfigDataBoolean(path = "BungeeBroadcast")
@Getter
private boolean bungeeBroadcast = false;
@ConfigDataBoolean(path = "BungeeBroadcastAlways")
@Getter
private boolean bungeeBroadcastAlways = false;
@ConfigDataBoolean(path = "BungeeDebug")
@Getter
private boolean bungeeDebug = false;
@ConfigDataString(path = "BungeeMethod")
@Getter
private String bungeeMethod = "SOCKETS";
@ConfigDataString(path = "BungeeServer.Host")
@Getter
private String bungeeServerHost = "";
@ConfigDataString(path = "Server")
@Getter
private String server = "PleaseSet";
@ConfigDataString(path = "SpigotServer.Host")
@Getter
private String spigotServerHost = "";
@ConfigDataInt(path = "BungeeServer.Port")
@Getter
private int bungeeServerPort = 1297;
@ConfigDataInt(path = "SpigotServer.Port")
@Getter
private int spigotServerPort = 1298;
public BungeeSettings() {
super(new File(Main.plugin.getDataFolder(), "BungeeSettings.yml"));
}
public void loadValues() {
new AnnotationHandler().load(getData(), this);
}
@Override
public void onFileCreation() {
plugin.saveResource("BungeeSettings.yml", true);
}
}
File diff suppressed because it is too large. Load diff
@@ -1,469 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Config;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
// TODO: Auto-generated Javadoc
/**
* The Class ConfigVoteSites.
*/
public class ConfigVoteSites extends YMLFile {
/** The instance. */
static ConfigVoteSites instance = new ConfigVoteSites();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of ConfigVoteSites.
*
* @return single instance of ConfigVoteSites
*/
public static ConfigVoteSites getInstance() {
return instance;
}
/**
* Instantiates a new config vote sites.
*/
public ConfigVoteSites() {
super(new File(Main.plugin.getDataFolder(), "VoteSites.yml"));
}
/**
* Generate vote site.
*
* @param siteName
* the site name
*/
public void generateVoteSite(String siteName) {
if (Config.getInstance().isAutoCreateVoteSites()) {
String org = siteName;
siteName = siteName.replace(".", "_");
plugin.getLogger().warning("VoteSite " + siteName
+ " 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, "DisplayItem.Material", "GRASS");
set(siteName, "DisplayItem.Amount", 1);
set(siteName, "Rewards.Messages.Player", "&aThanks for voting on %ServiceSite%!");
plugin.loadVoteSites();
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("VotingPlugin.Admin.GenerateServiceSite") || p.isOp()) {
p.sendMessage(StringParser.getInstance().colorize("&cGenerating votesite for service site "
+ siteName + ", please check console for details"));
}
}
}
}
/**
* Gets the data.
*
* @param siteName
* the site name
* @return the data
*/
public ConfigurationSection getData(String siteName) {
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) {
if (getData(site).isConfigurationSection("DisplayItem")) {
return getData(site).getConfigurationSection("DisplayItem");
}
return getData(site).getConfigurationSection("Item");
}
/**
* Gets the priority.
*
* @param siteName
* the site name
* @return the priority
*/
public int getPriority(String siteName) {
return getData(siteName).getInt("Priority");
}
/**
* Gets the rewards.
*
* @param siteName
* the site name
* @return the rewards
*/
public String getRewardsPath(String siteName) {
return "VoteSites." + siteName + ".Rewards";
}
/**
* Gets the service site.
*
* @param siteName
* the site name
* @return the service site
*/
public String getServiceSite(String siteName) {
return getData(siteName).getString("ServiceSite");
}
public int getTimeOffSet(String siteName) {
return getData(siteName).getInt("TimeOffSet", 0);
}
/**
* Gets the vote delay.
*
* @param siteName
* the site name
* @return the vote delay
*/
public int getVoteDelay(String siteName) {
return getData(siteName).getInt("VoteDelay");
}
public int getVoteDelayMin(String siteName) {
return getData(siteName).getInt("VoteDelayMin", 0);
}
/**
* Gets the vote site enabled.
*
* @param siteName
* the site name
* @return the vote site enabled
*/
public boolean getVoteSiteEnabled(String siteName) {
return getData(siteName).getBoolean("Enabled");
}
/**
* Gets the vote site file.
*
* @param siteName
* the site name
* @return the vote site file
*/
public File getVoteSiteFile(String siteName) {
File dFile = new File(plugin.getDataFolder() + File.separator + "VoteSites", siteName + ".yml");
FileConfiguration data = YamlConfiguration.loadConfiguration(dFile);
if (!dFile.exists()) {
try {
data.save(dFile);
} catch (IOException e) {
plugin.getLogger().severe(ChatColor.RED + "Could not create VoteSites/" + siteName + ".yml!");
}
}
return dFile;
}
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.
*
* @return the vote sites load
*/
public ArrayList<VoteSite> getVoteSitesLoad() {
ArrayList<VoteSite> voteSites = new ArrayList<VoteSite>();
ArrayList<String> voteSiteNames = getVoteSitesNames();
if (voteSiteNames != null) {
for (String site : voteSiteNames) {
if (getVoteSiteEnabled(site) && !site.equalsIgnoreCase("null")) {
if (!siteCheck(site)) {
plugin.getLogger().warning("Failed to load site " + site + ", see above");
} else {
voteSites.add(new VoteSite(site));
}
}
}
}
Collections.sort(voteSites, new Comparator<VoteSite>() {
@Override
public int compare(VoteSite v1, VoteSite v2) {
int v1P = v1.getPriority();
int v2P = v2.getPriority();
if (v1P < v2P) {
return 1;
}
if (v1P > v2P) {
return -1;
}
return 0;
}
});
return voteSites;
}
/**
* Gets the vote sites names.
*
* @return the vote sites names
*/
public ArrayList<String> getVoteSitesNames() {
ArrayList<String> siteNames = new ArrayList<String>();
if (getData().isConfigurationSection("VoteSites")) {
siteNames = ArrayUtils.getInstance().convert(getData().getConfigurationSection("VoteSites").getKeys(false));
}
for (int i = siteNames.size() - 1; i >= 0; i--) {
// plugin.getLogger().info(siteNames.get(i));
if (!getVoteSiteEnabled(siteNames.get(i)) || siteNames.get(i).equalsIgnoreCase("null")
|| !siteCheck(siteNames.get(i))) {
// plugin.getLogger().info("Removed: " + siteNames.get(i));
siteNames.remove(i);
}
}
return siteNames;
}
/**
* Gets the vote URL.
*
* @param siteName
* the site name
* @return the vote URL
*/
public String getVoteURL(String siteName) {
return getData(siteName).getString("VoteURL");
}
public boolean getWaitUntilVoteDelay(String siteName) {
return getData(siteName).getBoolean("WaitUntilVoteDelay", false);
}
/**
* Checks if is service site good.
*
* @param siteName
* the site name
* @return true, if is service site good
*/
public boolean isServiceSiteGood(String siteName) {
if (getServiceSite(siteName) == null || getServiceSite(siteName).equals("")) {
return false;
}
return true;
}
/**
* Checks if is vote URL good.
*
* @param siteName
* the site name
* @return true, if is vote URL good
*/
public boolean isVoteURLGood(String siteName) {
if (getVoteURL(siteName) == null || getVoteURL(siteName).equals("")) {
return false;
}
return true;
}
@Override
public void onFileCreation() {
plugin.saveResource("VoteSites.yml", true);
}
/**
* Rename vote site.
*
* @param siteName
* the site name
* @param newName
* the new name
* @return true, if successful
*/
public boolean renameVoteSite(String siteName, String newName) {
return getVoteSiteFile(siteName)
.renameTo(new File(plugin.getDataFolder() + File.separator + "VoteSites", newName + ".yml"));
}
/**
* Sets the.
*
* @param siteName
* the site name
* @param path
* the path
* @param value
* the value
*/
public void set(String siteName, String path, Object value) {
// String playerName = user.getPlayerName();
ConfigurationSection data = getData(siteName);
if (data == null) {
getData().createSection("VoteSites." + siteName);
data = getData(siteName);
}
data.set(path, value);
saveData();
}
/**
* Sets the cumulative rewards.
*
* @param siteName
* the site name
* @param value
* the value
*/
public void setCumulativeRewards(String siteName, ArrayList<String> value) {
set(siteName, "Cumulative.Rewards", value);
}
public void setCumulativeVotes(String siteName, int value) {
set(siteName, "Cumulative.Votes", value);
}
public void setDisplayName(String siteName, String value) {
set(siteName, "Name", value);
}
/**
* Sets the enabled.
*
* @param siteName
* the site name
* @param disabled
* the disabled
*/
public void setEnabled(String siteName, boolean disabled) {
set(siteName, "Enabled", disabled);
}
public void setForceOffline(String siteName, boolean value) {
set(siteName, "ForceOffline", value);
}
/**
* Sets the priority.
*
* @param siteName
* the site name
* @param value
* the value
*/
public void setPriority(String siteName, int value) {
set(siteName, "Priority", value);
}
/**
* Sets the rewards.
*
* @param siteName
* the site name
* @param value
* the value
*/
public void setRewards(String siteName, ArrayList<String> value) {
set(siteName, "Rewards", value);
}
/**
* Sets the service site.
*
* @param siteName
* the site name
* @param serviceSite
* the service site
*/
public void setServiceSite(String siteName, String serviceSite) {
set(siteName, "ServiceSite", serviceSite);
}
/**
* Sets the vote delay.
*
* @param siteName
* the site name
* @param voteDelay
* the vote delay
*/
public void setVoteDelay(String siteName, int voteDelay) {
set(siteName, "VoteDelay", voteDelay);
}
public void setVoteDelayDaily(String siteName, boolean value) {
set(siteName, "VoteDelayDaily", value);
}
/**
* Sets the vote URL.
*
* @param siteName
* the site name
* @param url
* the url
*/
public void setVoteURL(String siteName, String url) {
set(siteName, "VoteURL", url);
}
/**
* Site check.
*
* @param siteName
* the site name
* @return true, if successful
*/
public boolean siteCheck(String siteName) {
boolean pass = true;
if (!isServiceSiteGood(siteName)) {
plugin.getLogger().warning("Issue with ServiceSite in site " + siteName + ", votes may not work properly");
pass = false;
}
if (!isVoteURLGood(siteName)) {
plugin.getLogger().warning("Issue with VoteURL in site " + siteName);
}
return pass;
}
}
@@ -1,303 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Config;
import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.AnnotationHandler;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataBoolean;
import com.Ben12345rocks.AdvancedCore.Util.Annotation.ConfigDataDouble;
import com.Ben12345rocks.AdvancedCore.YML.YMLFile;
import com.Ben12345rocks.VotingPlugin.Main;
import lombok.Getter;
public class SpecialRewardsConfig extends YMLFile {
/** The instance. */
static SpecialRewardsConfig instance = new SpecialRewardsConfig();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of Config.
*
* @return single instance of Config
*/
public static SpecialRewardsConfig getInstance() {
return instance;
}
@ConfigDataBoolean(path = "EnableWeeklyAwards")
@Getter
private boolean enableWeeklyAwards = false;
@ConfigDataBoolean(path = "EnableDailyRewards")
@Getter
private boolean enableDailyRewards = false;
@ConfigDataBoolean(path = "EnableMonthlyAwards")
@Getter
private boolean enableMonthlyAwards = false;
@Getter
private String anySiteRewardsPath = "AnySiteRewards";
@ConfigDataDouble(path = "VoteStreak.Requirement.Day")
@Getter
private double voteStreakRequirementDay = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Week")
@Getter
private double voteStreakRequirementWeek = 50;
@ConfigDataDouble(path = "VoteStreak.Requirement.Month")
@Getter
private double voteStreakRequirementMonth = 50;
@ConfigDataBoolean(path = "VoteStreak.Requirement.UsePercentage")
@Getter
private boolean voteStreakRequirementUsePercentage = false;
@ConfigDataBoolean(path = "VoteParty.ResetExtraVotesMonthly")
@Getter
private boolean votePartyResetExtraVotesMonthly = false;
@Getter
private String allSitesRewardPath = "AllSites";
@Getter
private String votePartyRewardsPath = "VoteParty.Rewards";
@Getter
private String firstVoteRewardsPath = "FirstVote";
public SpecialRewardsConfig() {
super(new File(Main.plugin.getDataFolder(), "SpecialRewards.yml"));
}
public boolean getCumulativeRewardEnabled(int cumulative) {
return getData().getBoolean("Cumulative." + cumulative + ".Enabled");
}
public String getCumulativeRewardsPath(int cumulative) {
return "Cumulative." + cumulative + ".Rewards";
}
/**
* Gets the cumulative votes.
*
* @return the cumulative votes
*/
public Set<String> getCumulativeVotes() {
try {
Set<String> set = getData().getConfigurationSection("Cumulative").getKeys(false);
if (set != null) {
return set;
}
return new HashSet<String>();
} catch (Exception ex) {
return new HashSet<String>();
}
}
/**
* Gets the cumulative votes in same day.
*
* @param cumulative
* the cumulative
* @return the cumulative votes in same day
*/
public boolean getCumulativeVotesInSameDay(int cumulative) {
return getData().getBoolean("Cumulative." + cumulative + ".VotesInSameDay");
}
public boolean getCumulativeVotesInSameMonth(int cumulative) {
return getData().getBoolean("Cumulative." + cumulative + ".VotesInSameMonth");
}
public boolean getCumulativeVotesInSameWeek(int cumulative) {
return getData().getBoolean("Cumulative." + cumulative + ".VotesInSameWeek");
}
public String getDailyAwardRewardsPath(String path) {
return "DailyAwards." + path + ".Rewards";
}
/**
* Gets the daily possible reward places.
*
* @return the daily possible reward places
*/
public Set<String> getDailyPossibleRewardPlaces() {
try {
return getData().getConfigurationSection("DailyAwards").getKeys(false);
} catch (Exception ex) {
return new HashSet<String>();
}
}
/**
* Gets the milestone reward enabled.
*
* @param milestones
* the milestones
* @return the milestone reward enabled
*/
public boolean getMilestoneRewardEnabled(int milestones) {
return getData().getBoolean("MileStones." + milestones + ".Enabled");
}
/**
* Gets the milestone rewards.
*
* @param milestones
* the milestones
* @return the milestone rewards
*/
public String getMilestoneRewardsPath(int milestones) {
return "MileStones." + milestones + ".Rewards";
}
/**
* Gets the milestone votes.
*
* @return the milestone votes
*/
public Set<String> getMilestoneVotes() {
try {
Set<String> set = getData().getConfigurationSection("MileStones").getKeys(false);
if (set != null) {
return set;
}
return new HashSet<String>();
} catch (Exception ex) {
return new HashSet<String>();
}
}
public String getMonthlyAwardRewardsPath(String path) {
return "MonthlyAwards." + path + ".Rewards";
}
/**
* Gets the monthly possible reward places.
*
* @return the monthly possible reward places
*/
public Set<String> getMonthlyPossibleRewardPlaces() {
try {
return getData().getConfigurationSection("MonthlyAwards").getKeys(false);
} catch (Exception ex) {
return new HashSet<String>();
}
}
public boolean getResetMilestonesMonthly() {
return getData().getBoolean("ResetMilestonesMonthly");
}
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.
*
* @return the vote party enabled
*/
public boolean getVotePartyEnabled() {
return getData().getBoolean("VoteParty.Enabled");
}
/**
* Gets the vote party give all players.
*
* @return the vote party give all players
*/
public boolean getVotePartyGiveAllPlayers() {
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");
}
public int getVotePartyUserVotesRequired() {
return getData().getInt("VoteParty.UserVotesRequired");
}
/**
* Gets the vote party votes required.
*
* @return the vote party votes required
*/
public int getVotePartyVotesRequired() {
return getData().getInt("VoteParty.VotesRequired");
}
public boolean getVoteStreakRewardEnabled(String type, String s) {
return getData().getBoolean("VoteStreak." + type + "." + s + ".Enabled");
}
public String getVoteStreakRewardsPath(String type, String string) {
return "VoteStreak." + type + "." + string + ".Rewards";
}
public Set<String> getVoteStreakVotes(String type) {
try {
Set<String> set = getData().getConfigurationSection("VoteStreak." + type).getKeys(false);
if (set != null) {
return set;
}
return new HashSet<String>();
} catch (Exception ex) {
return new HashSet<String>();
}
}
public String getWeeklyAwardRewardsPath(String path) {
return "WeeklyAwards." + path + ".Rewards";
}
/**
* Gets the weekly possible reward places.
*
* @return the weekly possible reward places
*/
public Set<String> getWeeklyPossibleRewardPlaces() {
try {
return getData().getConfigurationSection("WeeklyAwards").getKeys(false);
} catch (Exception ex) {
return new HashSet<String>();
}
}
public void loadValues() {
new AnnotationHandler().load(getData(), this);
}
@Override
public void onFileCreation() {
plugin.saveResource("SpecialRewards.yml", true);
}
}
@@ -1,91 +0,0 @@
package com.Ben12345rocks.VotingPlugin.CoolDown;
import java.util.TimerTask;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.TimeChecker.Events.DateChangedEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.SpecialRewardsConfig;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteCoolDownEndEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class VoteReminding.
*/
public class CoolDownCheck implements Listener {
/** The instance. */
static CoolDownCheck instance = new CoolDownCheck();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of VoteReminding.
*
* @return single instance of VoteReminding
*/
public static CoolDownCheck getInstance() {
return instance;
}
/**
* Instantiates a new vote reminding.
*/
private CoolDownCheck() {
}
/**
* Instantiates a new vote reminding.
*
* @param plugin
* the plugin
*/
public CoolDownCheck(Main plugin) {
CoolDownCheck.plugin = plugin;
}
public void checkAll() {
Main.plugin.getTimer().schedule(new TimerTask() {
@Override
public void run() {
if (Main.plugin != null) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
if (Main.plugin != null) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getUserData().hasData() && user.hasLoggedOnBefore()) {
user.checkCoolDownEvents();
}
} else {
cancel();
}
}
} else {
cancel();
}
}
}, 1000 * 60 * 3);
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onCoolDownEnd(PlayerVoteCoolDownEndEvent event) {
RewardHandler.getInstance().giveReward(event.getPlayer(), SpecialRewardsConfig.getInstance().getData(),
"VoteCoolDownEndedReward",
new RewardOptions().addPlaceholder("Votesite", event.getVoteSite().getDisplayName()));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChangeEnd(DateChangedEvent event) {
checkAll();
}
}
@@ -1,277 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Data;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
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.Signs.SignHandler;
// TODO: Auto-generated Javadoc
/**
* The Class ServerData.
*/
public class ServerData {
/** The instance. */
static ServerData instance = new ServerData();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of ServerData.
*
* @return single instance of ServerData
*/
public static ServerData getInstance() {
return instance;
}
/**
* Instantiates a new server data.
*/
private ServerData() {
}
/**
* Instantiates a new server data.
*
* @param plugin
* the plugin
*/
public ServerData(Main plugin) {
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.
*
* @param location
* the location
* @param data
* the data
* @param position
* the position
*/
public void addSign(Location location, String data, int position) {
int count = nextSignNumber();
getData().set("Signs." + count + ".World", location.getWorld().getName());
getData().set("Signs." + count + ".X", location.getBlockX());
getData().set("Signs." + count + ".Y", location.getBlockY());
getData().set("Signs." + count + ".Z", location.getBlockZ());
getData().set("Signs." + count + ".Data", data);
getData().set("Signs." + count + ".Position", position);
saveData();
plugin.getSigns().add(new SignHandler("" + count, getSignLocation("" + count), getSignSkullLocation("" + count),
getSignData("" + count), getSignPosition("" + count)));
}
/**
* Gets the data.
*
* @return the data
*/
public ConfigurationSection getData() {
ConfigurationSection data = com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().getData()
.getConfigurationSection("VotingPlugin");
if (data == null) {
com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().getData().createSection("VotingPlugin");
data = com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().getData()
.getConfigurationSection("VotingPlugin");
}
return data;
}
@SuppressWarnings("unchecked")
public ArrayList<String> getServiceSites() {
return (ArrayList<String>) getData().getList("ServiceSites", new ArrayList<String>());
}
/**
* Gets the sign data.
*
* @param sign
* the sign
* @return the sign data
*/
public String getSignData(String sign) {
return getData().getString("Signs." + sign + ".Data");
}
/**
* Gets the sign location.
*
* @param sign
* the sign
* @return the sign location
*/
public Location getSignLocation(String sign) {
return new Location(Bukkit.getWorld(getData().getString("Signs." + sign + ".World")),
getData().getDouble("Signs." + sign + ".X"), getData().getDouble("Signs." + sign + ".Y"),
getData().getDouble("Signs." + sign + ".Z"));
}
/**
* Gets the sign position.
*
* @param sign
* the sign
* @return the sign position
*/
public int getSignPosition(String sign) {
return getData().getInt("Signs." + sign + ".Position");
}
/**
* Gets the signs.
*
* @return the signs
*/
public Set<String> getSigns() {
try {
return getData().getConfigurationSection("Signs").getKeys(false);
} catch (Exception ex) {
return new HashSet<String>();
}
}
/**
* Gets the sign location.
*
* @param sign
* the sign
* @return the sign location
*/
public Location getSignSkullLocation(String sign) {
if (getData().getString("Signs." + sign + ".Skull.World", "").isEmpty()) {
return null;
}
return new Location(Bukkit.getWorld(getData().getString("Signs." + sign + ".Skull.World")),
getData().getDouble("Signs." + sign + ".Skull.X"), getData().getDouble("Signs." + sign + ".Skull.Y"),
getData().getDouble("Signs." + sign + ".Skull.Z"));
}
public int getVotePartyExtraRequired() {
return getData().getInt("VotePartyExtraRequired", 0);
}
/**
* Next sign number.
*
* @return the int
*/
public int nextSignNumber() {
Set<String> signs = getSigns();
if (signs != null) {
for (int i = 0; i < 100000; i++) {
if (!signs.contains(Integer.toString(i))) {
return i;
}
}
}
return 0;
}
/**
* Reload data.
*/
public void reloadData() {
com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().reloadData();
}
/**
* Removes the sign.
*
* @param sign
* the sign
*/
public void removeSign(String sign) {
getData().set("Signs." + sign + ".World", null);
getData().set("Signs." + sign + ".X", null);
getData().set("Signs." + sign + ".Y", null);
getData().set("Signs." + sign + ".Z", null);
getData().set("Signs." + sign + ".Data", null);
getData().set("Signs." + sign + ".Position", null);
getData().set("Signs." + sign, null);
getData().set("Signs." + sign + ".Skull.World", null);
getData().set("Signs." + sign + ".Skull.X", null);
getData().set("Signs." + sign + ".Skull.Y", null);
getData().set("Signs." + sign + ".Skull.Z", null);
saveData();
}
/**
* Save data.
*/
public synchronized void saveData() {
com.Ben12345rocks.AdvancedCore.Data.ServerData.getInstance().saveData();
}
public void setServiceSites(ArrayList<String> list) {
getData().set("ServiceSites", list);
saveData();
}
public void setSign(String count, Location location, Location skullLocation, String data, int position) {
getData().set("Signs." + count + ".World", location.getWorld().getName());
getData().set("Signs." + count + ".X", (int) location.getX());
getData().set("Signs." + count + ".Y", (int) location.getY());
getData().set("Signs." + count + ".Z", (int) location.getZ());
getData().set("Signs." + count + ".Data", data);
getData().set("Signs." + count + ".Position", position);
if (skullLocation != null) {
getData().set("Signs." + count + ".Skull.World", skullLocation.getWorld().getName());
getData().set("Signs." + count + ".Skull.X", (int) skullLocation.getX());
getData().set("Signs." + count + ".Skull.Y", (int) skullLocation.getY());
getData().set("Signs." + count + ".Skull.Z", (int) skullLocation.getZ());
}
saveData();
}
public void setSkullLocation(String count, Location skullLocation) {
if (skullLocation != null) {
getData().set("Signs." + count + ".Skull.World", skullLocation.getWorld().getName());
getData().set("Signs." + count + ".Skull.X", (int) skullLocation.getX());
getData().set("Signs." + count + ".Skull.Y", (int) skullLocation.getY());
getData().set("Signs." + count + ".Skull.Z", (int) skullLocation.getZ());
}
}
/**
* Sets the version.
*/
public void setVersion() {
getData().set("Version", Bukkit.getVersion());
saveData();
}
public void setVotePartyExtraRequired(int value) {
getData().set("VotePartyExtraRequired", value);
saveData();
}
/**
* Update values.
*/
public void updateValues() {
setVersion();
}
}
@@ -1,60 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerReceivePointsEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User player;
@Getter
@Setter
private int points;
@Getter
@Setter
private boolean cancelled;
@Getter
@Setter
private String serviceSite = "";
public PlayerReceivePointsEvent(User user, int points) {
super(true);
this.player = user;
this.points = points;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -1,56 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerSpecialRewardEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User user;
@Getter
@Setter
private SpecialRewardType type;
@Getter
@Setter
private boolean cancelled;
public PlayerSpecialRewardEvent(User user, SpecialRewardType type) {
super(true);
this.type = type;
this.user = user;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -1,57 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerVoteCoolDownEndEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User player;
@Getter
@Setter
private VoteSite voteSite;
@Getter
@Setter
private boolean cancelled;
public PlayerVoteCoolDownEndEvent(User user, VoteSite site) {
super(true);
player = user;
voteSite = site;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -1,82 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerVoteEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private String player;
@Getter
@Setter
private VoteSite voteSite;
@Getter
@Setter
private boolean cancelled;
@Getter
@Setter
private boolean realVote = true;
@Getter
@Setter
private boolean addTotals = true;
@Getter
@Setter
private String serviceSite = "";
@Getter
@Setter
private long time;
@Getter
@Setter
private boolean bungee = false;
@Getter
@Setter
private boolean forceBungee = false;
public PlayerVoteEvent(VoteSite voteSite, String voteUsername, String serviceSite, boolean realVote) {
super(true);
this.player = voteUsername;
this.voteSite = voteSite;
this.realVote = realVote;
this.serviceSite = serviceSite;
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -1,24 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import lombok.Getter;
public enum SpecialRewardType {
ALLSITE, CUMMULATIVE, MILESTONE, VOTESTREAK, FIRSTVOTE;
@Getter
private int amount = -1;
@Getter
private String type = "";
public SpecialRewardType setAmount(int num) {
amount = num;
return this;
}
public SpecialRewardType setType(String type) {
this.type = type;
return this;
}
}
@@ -1,44 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
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;
}
@Getter
@Setter
private boolean cancelled;
public VotePartyEvent() {
super(true);
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -1,60 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Sign;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
// TODO: Auto-generated Javadoc
/**
* The Class BlockBreak.
*/
public class BlockBreak implements Listener {
/** The plugin. */
private static Main plugin;
/**
* Instantiates a new block break.
*
* @param plugin
* the plugin
*/
public BlockBreak(Main plugin) {
BlockBreak.plugin = plugin;
}
/**
* On block break.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent event) {
if (event.getBlock().getState() instanceof Sign) {
Sign s = (Sign) event.getBlock().getState();
final Location loc = s.getLocation();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for (SignHandler sign : plugin.getSigns()) {
if (sign.getLocation().equals(loc)) {
sign.removeSign();
sign.setValid(false);
}
}
}
});
}
}
}
@@ -1,54 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.util.ArrayList;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandSendEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.CommandLoader;
import com.Ben12345rocks.VotingPlugin.Config.Config;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerJoinEvent.
*/
public class PlayerCommandSendListener implements Listener {
@SuppressWarnings("unused")
private static Main plugin;
public PlayerCommandSendListener(Main plugin) {
PlayerCommandSendListener.plugin = plugin;
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onTab(PlayerCommandSendEvent event) {
if (Config.getInstance().isDisableAdvancedTab()) {
return;
}
ArrayList<String> removeCmds = new ArrayList<String>();
if (!Main.plugin.getAdvancedTab().containsKey(event.getPlayer().getUniqueId())) {
ArrayList<String> whiteListed = new ArrayList<String>();
for (String cmd : event.getCommands()) {
if (CommandLoader.getInstance().isVotingPluginCommand(event.getPlayer(), cmd)) {
if (!CommandLoader.getInstance().hasPermission(event.getPlayer(), cmd)
&& !whiteListed.contains(cmd)) {
removeCmds.add(cmd);
// plugin.debug("removed " + cmd);
} else {
removeCmds.remove(cmd);
whiteListed.add(cmd);
// plugin.debug("has " + cmd);
}
}
}
Main.plugin.getAdvancedTab().put(event.getPlayer().getUniqueId(), removeCmds);
} else {
removeCmds = Main.plugin.getAdvancedTab().get(event.getPlayer().getUniqueId());
}
event.getCommands().removeAll(removeCmds);
}
}
@@ -1,84 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.block.Sign;
import org.bukkit.block.Skull;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Signs.SignHandler;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerInteract.
*/
public class PlayerInteract implements Listener {
/** The plugin. */
private static Main plugin;
/**
* Instantiates a new player interact.
*
* @param plugin
* the plugin
*/
public PlayerInteract(Main plugin) {
PlayerInteract.plugin = plugin;
}
/**
* On player interact.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
// plugin.debug("Checking for sign click");
if (event.getClickedBlock().getState() instanceof Sign) {
// plugin.debug(player.getName() + " right clicked a sign");
for (SignHandler sign : plugin.getSigns()) {
if (sign.isLocationSame(event.getClickedBlock().getLocation())) {
// plugin.debug(player.getName() +
// " right clicked a top voter sign, sending message");
UserManager.getInstance().getVotingPluginUser(player).sendMessage(sign.getRightClickMessage());
if (!sign.isSkullSet()) {
if (PlayerUtils.getInstance().hasServerPermission(event.getPlayer().getName(),
"VotingPlugin.Sign.Create")
|| PlayerUtils.getInstance().hasServerPermission(event.getPlayer().getName(),
"VotingPlugin.Admin")) {
player.sendMessage("Skull not set, click to set skull");
PlayerUtils.getInstance().setPlayerMeta(player, "skullset", sign.getSign());
}
}
}
}
} else if (event.getClickedBlock().getState() instanceof Skull) {
Object ob = PlayerUtils.getInstance().getPlayerMeta(player, "skullset");
if (ob != null) {
String sign1 = (String) ob;
for (SignHandler sign : plugin.getSigns()) {
if (sign.getSign().equals(sign1)) {
sign.setSkullLocation(event.getClickedBlock().getLocation());
sign.storeSign();
sign.checkSkulls();
player.sendMessage("Skull set");
}
}
PlayerUtils.getInstance().setPlayerMeta(player, "skullset", null);
}
}
}
}
}
@@ -1,82 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerJoinEvent.
*/
public class PlayerJoinEvent implements Listener {
/** The plugin. */
@SuppressWarnings("unused")
private static Main plugin;
/**
* Instantiates a new player join event.
*
* @param plugin
* the plugin
*/
public PlayerJoinEvent(Main plugin) {
PlayerJoinEvent.plugin = plugin;
}
/**
* On player login.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(AdvancedCoreLoginEvent event) {
if (event.getPlayer() == null
|| (Main.plugin.getStorageType().equals(UserStorage.MYSQL) && Main.plugin.getMysql() == null)) {
return;
}
Player player = event.getPlayer();
User user = UserManager.getInstance().getVotingPluginUser(player);
if (player.isOp() && plugin.isYmlError()) {
user.sendMessage("&cVotingPlugin: Detected yml error, please check console for details");
}
boolean data = user.getData().hasData();
// run remind
user.loginMessage();
if (data) {
// give offline vote (if they voted offline)
user.offVote();
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerQuit(PlayerQuitEvent event) {
if (Config.getInstance().isDisableAdvancedTab()) {
return;
}
final java.util.UUID uuid = event.getPlayer().getUniqueId();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
Main.plugin.getAdvancedTab().remove(uuid);
}
});
}
}
@@ -1,190 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessage;
import com.Ben12345rocks.VotingPlugin.BungeeHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.BungeeSettings;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.Ben12345rocks.VotingPlugin.bungee.BungeeMethod;
// TODO: Auto-generated Javadoc
/**
* The Class VotiferEvent.
*/
public class PlayerVoteListener implements Listener {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
private static Object object = new Object();
/**
* Instantiates a new votifer event.
*
* @param plugin
* the plugin
*/
public PlayerVoteListener(Main plugin) {
PlayerVoteListener.plugin = plugin;
}
/**
* On votifer event.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onplayerVote(PlayerVoteEvent event) {
String playerName = event.getPlayer();
if (!PlayerUtils.getInstance().isValidUser(playerName, Config.getInstance().isAllowUnJoinedCheckServer())) {
if (!config.isAllowUnjoined()) {
plugin.getLogger().warning("Player " + playerName
+ " has not joined before, disregarding vote, set AllowUnjoined to true to prevent this");
return;
}
}
VoteSite voteSite = event.getVoteSite();
// check valid service sites
if (voteSite == null) {
if (!Config.getInstance().isDisableNoServiceSiteMessage()) {
plugin.getLogger().warning("No voting site with the service site: '" + event.getServiceSite() + "'");
plugin.getLogger().warning(
"Please read here on how to fix it: https://github.com/Ben12345rocks/VotingPlugin/wiki/Common-Problems");
ArrayList<String> services = new ArrayList<String>();
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.warning("Current known service sites: " + ArrayUtils.getInstance().makeStringList(services));
}
return;
}
User user = UserManager.getInstance().getVotingPluginUser(playerName);
user.updateName();
if (Config.getInstance().isClearCacheOnVote() || BungeeSettings.getInstance().isUseBungeecoord()) {
user.clearCache();
}
if (voteSite.isWaitUntilVoteDelay() && !user.canVoteSite(voteSite)) {
plugin.getLogger().info(user.getPlayerName() + " must wait until votedelay is over, ignoring vote");
return;
}
synchronized (object) {
// vote party
VoteParty.getInstance().vote(user, event.isRealVote());
// broadcast vote if enabled in config
if (config.isBroadcastVotesEnabled()
&& (BungeeSettings.getInstance().isBungeeBroadcast() || !event.isBungee())) {
if (!Config.getInstance().getFormatBroadcastWhenOnline() || user.isOnline()) {
voteSite.broadcastVote(user);
}
}
// update last vote time
if (event.getTime() != 0) {
user.setTime(voteSite, event.getTime());
} else {
user.setTime(voteSite);
}
user.setLastVoteCoolDownCheck(false, voteSite);
// try logging to file
if (Config.getInstance().isLogVotesToFile()) {
try {
Main.plugin.logVote(LocalDateTime.now().atZone(ZoneId.systemDefault()).toLocalDateTime(),
playerName, voteSite.getKey());
} catch (Exception e) {
e.printStackTrace();
}
}
// check first vote rewards
SpecialRewards.getInstance().checkFirstVote(user);
if (user.isReminded()) {
user.setReminded(false);
}
// check if player has voted on all sites in one day
if (((user.isOnline() || voteSite.isGiveOffline()) && Main.plugin.getOptions().isProcessRewards())
|| event.isBungee()) {
user.playerVote(voteSite, true, false, event.isForceBungee());
user.closeInv();
} else {
user.addOfflineVote(voteSite.getKey());
plugin.debug(
"Offline vote set for " + playerName + " (" + user.getUUID() + ") on " + voteSite.getKey());
}
// add to total votes
if ((Config.getInstance().isCountFakeVotes() || event.isRealVote()) && event.isAddTotals()) {
if (Config.getInstance().isAddTotals()) {
user.addTotal();
user.addTotalDaily();
user.addTotalWeekly();
}
user.addPoints();
}
user.checkDayVoteStreak();
// other rewards
SpecialRewards.getInstance().checkAllSites(user);
SpecialRewards.getInstance().checkCumualativeVotes(user);
SpecialRewards.getInstance().checkMilestone(user);
if (BungeeSettings.getInstance().isUseBungeecoord()) {
if (BungeeHandler.getInstance().getMethod().equals(BungeeMethod.MYSQL)) {
final String uuid = user.getUUID();
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (Bukkit.getOnlinePlayers().size() > 0) {
PluginMessage.getInstance().sendPluginMessage(
PlayerUtils.getInstance().getRandomOnlinePlayer(), "VoteUpdate", uuid);
}
}
}, 40);
}
}
}
plugin.setUpdate(true);
}
}
@@ -1,74 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Signs.Signs;
// TODO: Auto-generated Javadoc
/**
* The Class SignChange.
*/
public class SignChange implements Listener {
/** The plugin. */
private static Main plugin;
/**
* Instantiates a new sign change.
*
* @param plugin
* the plugin
*/
public SignChange(Main plugin) {
SignChange.plugin = plugin;
}
/**
* On sign change.
*
* @param event
* the event
*/
@EventHandler(ignoreCancelled = true)
public void onSignChange(SignChangeEvent event) {
if (event.getLine(0).equalsIgnoreCase("[VotingPlugin]")) {
if (PlayerUtils.getInstance().hasServerPermission(event.getPlayer().getName(), "VotingPlugin.Sign.Create")
|| PlayerUtils.getInstance().hasServerPermission(event.getPlayer().getName(),
"VotingPlugin.Admin")) {
String data = event.getLine(2);
if (!data.equalsIgnoreCase("all") && !data.equalsIgnoreCase("monthly")
&& !data.equalsIgnoreCase("weekly") && !data.equalsIgnoreCase("daily")) {
return;
}
try {
ServerData.getInstance().addSign(event.getBlock().getLocation(), event.getLine(2),
Integer.parseInt(event.getLine(1)));
event.getPlayer().sendMessage(StringParser.getInstance().colorize("&aAdded sign!"));
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
Signs.getInstance().updateSigns();
}
});
} catch (Exception ex) {
event.getPlayer().sendMessage(StringParser.getInstance().colorize("&cError on sign creation!"));
ex.printStackTrace();
}
} else {
event.getPlayer()
.sendMessage(StringParser.getInstance().colorize(Config.getInstance().getFormatNoPerms()));
}
}
}
}
@@ -1,121 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.vexsoftware.votifier.model.Vote;
import com.vexsoftware.votifier.model.VotifierEvent;
// TODO: Auto-generated Javadoc
/**
* The Class VotiferEvent.
*/
public class VotiferEvent implements Listener {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Instantiates a new votifer event.
*
* @param plugin
* the plugin
*/
public VotiferEvent(Main plugin) {
VotiferEvent.plugin = plugin;
}
/**
* On votifer event.
*
* @param event
* the event
*/
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onVotiferEvent(VotifierEvent event) {
Vote vote = event.getVote();
final String voteSite = vote.getServiceName();
final String IP = vote.getAddress();
final String voteUsername = vote.getUsername().trim();
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
ServerData.getInstance().addServiceSite(voteSite);
}
});
if (voteUsername.length() == 0) {
plugin.getLogger().warning("No name from vote on " + voteSite);
return;
}
plugin.getLogger()
.info("Received a vote from service site '" + voteSite + "' by player '" + voteUsername + "'!");
plugin.debug("PlayerUsername: " + voteUsername);
plugin.debug("VoteSite: " + voteSite);
plugin.debug("IP: " + IP);
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
String voteSiteName = plugin.getVoteSiteName(voteSite);
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
boolean createSite = false;
if (sites != null) {
if (!sites.contains(voteSiteName)) {
createSite = true;
}
} else {
createSite = true;
}
if (Config.getInstance().isAutoCreateVoteSites() && createSite) {
plugin.getLogger().warning("VoteSite with service site '" + voteSiteName
+ "' does not exist, attempting to generaterate...");
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
ArrayList<String> services = new ArrayList<String>();
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.info("Current known service sites: " + ArrayUtils.getInstance().makeStringList(services));
}
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName), voteUsername,
voteSite, true);
plugin.getServer().getPluginManager().callEvent(voteEvent);
if (voteEvent.isCancelled()) {
plugin.debug("Vote cancelled");
return;
}
}
});
}
}
@@ -1,95 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import com.Ben12345rocks.AdvancedCore.Listeners.PluginUpdateVersionEvent;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.BungeeSettings;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.SpecialRewardsConfig;
// TODO: Auto-generated Javadoc
/**
* The Class AdvancedCoreUpdateEvent.
*/
public class VotingPluginUpdateEvent implements Listener {
/** The plugin. */
private static Main plugin;
/**
* Instantiates a new advanced core update event.
*
* @param plugin
* the plugin
*/
public VotingPluginUpdateEvent(Main plugin) {
VotingPluginUpdateEvent.plugin = plugin;
}
/**
* On plugin update.
*
* @param event
* the event
*/
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPluginUpdate(PluginUpdateVersionEvent event) {
if (event.getPlugin().getName().equals(plugin.getDescription().getName())) {
if (!event.getOldVersion().equals("")) {
plugin.getLogger().info("VotingPlugin Updated to " + plugin.getDescription().getVersion() + " from "
+ event.getOldVersion());
if (SpecialRewardsConfig.getInstance().isJustCreated()) {
// copy old data over
plugin.getLogger().info("Coping data from Config.yml into SpecialRewards.yml");
String[] copies = new String[] { "VoteCoolDownEndedReward", "AnySiteRewards", "VoteStreak",
"MileStones", "VoteParty", "Cumulative", "AllSites", "FirstVote", "DailyAwards",
"WeeklyAwards", "MonthlyAwards" };
for (String str : copies) {
SpecialRewardsConfig.getInstance().getData().set(str,
Config.getInstance().getData().getConfigurationSection(str));
}
String[] copies1 = new String[] { "ResetMilestonesMonthly", "EnableMonthlyAwards",
"EnableWeeklyAwards", "EnableDailyRewards" };
for (String str : copies1) {
SpecialRewardsConfig.getInstance().getData().set(str,
Config.getInstance().getData().getBoolean(str));
}
SpecialRewardsConfig.getInstance().saveData();
}
if (BungeeSettings.getInstance().isJustCreated()) {
// copy old data over
plugin.getLogger().info("Coping data from Config.yml into BungeeSettings.yml");
String[] copies = new String[] { "BungeeServer", "SpigotServer" };
for (String str : copies) {
BungeeSettings.getInstance().getData().set(str,
Config.getInstance().getData().getConfigurationSection(str));
}
BungeeSettings.getInstance().getData().set("UseBungeecord",
Config.getInstance().isUseBungeecoord());
String[] copies1 = new String[] { "BungeeBroadcastAlways", "BungeeDebug", "BungeeBroadcast" };
for (String str : copies1) {
BungeeSettings.getInstance().getData().set(str, Config.getInstance().getData().getBoolean(str));
}
String[] copies2 = new String[] { "BungeeMethod", "Server" };
for (String str : copies2) {
BungeeSettings.getInstance().getData().set(str, Config.getInstance().getData().getString(str));
}
BungeeSettings.getInstance().saveData();
}
}
}
}
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,248 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Objects;
import java.util.ArrayList;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Util.Item.ItemBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.AdvancedCore.Util.PluginMessage.PluginMessage;
import com.Ben12345rocks.VotingPlugin.BungeeHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.BungeeSettings;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.bungee.BungeeMethod;
import lombok.Getter;
import lombok.Setter;
/**
* The Class VoteSite.
*/
public class VoteSite {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The plugin. */
static Main plugin = Main.plugin;
@Setter
private String voteURL;
@Getter
@Setter
private String serviceSite;
@Getter
@Setter
private String key;
@Getter
@Setter
private String displayName;
@Getter
@Setter
private double voteDelay;
@Getter
@Setter
private double voteDelayMin;
@Getter
@Setter
private double timeOffSet;
@Getter
@Setter
private boolean enabled;
@Getter
@Setter
private boolean voteDelayDaily;
@Getter
@Setter
private int priority;
@Setter
private ConfigurationSection item;
@Getter
@Setter
private boolean giveOffline;
@Getter
@Setter
private boolean waitUntilVoteDelay;
/**
* Instantiates a new vote site.
*
* @param plugin
* the plugin
*/
public VoteSite(Main plugin) {
VoteSite.plugin = plugin;
}
/**
* Instantiates a new vote site.
*
* @param siteName
* the site name
*/
public VoteSite(String siteName) {
key = siteName.replace(".", "_");
init();
}
public void broadcastVote(User user) {
broadcastVote(user, true);
}
/**
* Broadcast vote.
*
* @param user
* the user
* @param checkBungee
* check bungee broadcast
*/
public void broadcastVote(User user, boolean checkBungee) {
if (!user.isVanished()) {
if (checkBungee && BungeeSettings.getInstance().isBungeeBroadcast()
&& BungeeSettings.getInstance().isUseBungeecoord()) {
if (BungeeHandler.getInstance().getMethod().equals(BungeeMethod.SOCKETS)) {
BungeeHandler.getInstance().sendData("Broadcast", getServiceSite(), user.getPlayerName());
} else if (BungeeHandler.getInstance().getMethod().equals(BungeeMethod.MYSQL)
|| BungeeHandler.getInstance().getMethod().equals(BungeeMethod.PLUGINMESSAGING)) {
String uuid = user.getUUID();
String service = getServiceSite();
if (Bukkit.getOnlinePlayers().size() > 0) {
PluginMessage.getInstance().sendPluginMessage(PlayerUtils.getInstance().getRandomOnlinePlayer(),
"VoteBroadcast", uuid, service);
}
}
} else {
String playerName = user.getPlayerName();
if (config.getVotingBroadcastBlacklist().contains(playerName)) {
plugin.getLogger().info("Not broadcasting for " + playerName + ", in blacklist");
return;
}
String bc = StringParser.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());
placeholders.put("servicesite", getServiceSite());
bc = StringParser.getInstance().replacePlaceHolder(bc, placeholders);
bc = StringParser.getInstance().replacePlaceHolders(user.getOfflinePlayer(), bc);
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);
}
} else {
plugin.debug(user.getPlayerName() + " is vanished, not broadcasting");
}
}
/**
* @return the 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);
}
}
public ConfigurationSection getSiteData() {
return configVoteSites.getData(key);
}
public String getVoteURL() {
return getVoteURL(true);
}
public String getVoteURL(boolean json) {
if (!Config.getInstance().isFormatCommandsVoteForceLinks() || !json) {
return voteURL;
} else {
if (!voteURL.startsWith("http")) {
return "[Text=\"" + voteURL + "\",url=\"http://" + voteURL + "\"]";
}
return "[Text=\"" + voteURL + "\",url=\"" + voteURL + "\"]";
}
}
public void giveRewards(User user, boolean online, boolean bungee) {
new RewardBuilder(configVoteSites.getData(), configVoteSites.getRewardsPath(key)).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL())
.setServer(bungee).send(user);
new RewardBuilder(configVoteSites.getData(), configVoteSites.getEverySiteRewardPath()).setOnline(online)
.withPlaceHolder("ServiceSite", getServiceSite()).withPlaceHolder("SiteName", getDisplayName())
.withPlaceHolder("VoteDelay", "" + getVoteDelay()).withPlaceHolder("VoteURL", getVoteURL())
.setServer(bungee).send(user);
}
public boolean hasRewards() {
return RewardHandler.getInstance().hasRewards(configVoteSites.getData(), configVoteSites.getRewardsPath(key));
}
/**
* Inits the.
*/
public void init() {
setVoteURL(configVoteSites.getVoteURL(key));
setServiceSite(configVoteSites.getServiceSite(key));
setVoteDelay(configVoteSites.getVoteDelay(key));
setVoteDelayMin(configVoteSites.getVoteDelayMin(key));
setEnabled(configVoteSites.getVoteSiteEnabled(key));
setPriority(configVoteSites.getPriority(key));
displayName = configVoteSites.getDisplayName(key);
if (displayName == null || displayName.equals("")) {
displayName = key;
}
item = configVoteSites.getItem(key);
voteDelayDaily = configVoteSites.getVoteSiteResetVoteDelayDaily(key);
giveOffline = configVoteSites.getVoteSiteGiveOffline(key);
waitUntilVoteDelay = configVoteSites.getWaitUntilVoteDelay(key);
timeOffSet = configVoteSites.getTimeOffSet(key);
}
public boolean isVaidServiceSite() {
return ArrayUtils.getInstance().containsIgnoreCase(ServerData.getInstance().getServiceSites(),
getServiceSite());
}
}
@@ -1,280 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Signs;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.block.Skull;
import org.bukkit.block.data.Directional;
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class SignHandler.
*/
public class SignHandler {
@Getter
@Setter
private String sign;
@Getter
@Setter
private Location location;
@Getter
@Setter
private Location skullLocation;
@Getter
@Setter
private String data;
/** The lines. */
private ArrayList<String> lines;
/** The position. */
private int position;
/** The plugin. */
public Main plugin = Main.plugin;
/** The player name. */
private String playerName;
/** The votes. */
private int votes;
@Getter
@Setter
private boolean valid;
public SignHandler(String sign, Location location, Location skullLocation, String data, int position) {
setSign(sign);
setLocation(location);
setSkullLocation(skullLocation);
setData(data);
this.position = position;
setValid(true);
lines = new ArrayList<String>();
checkValidSign();
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.
*/
public void checkSkulls() {
if (playerName.equalsIgnoreCase("No Player") || playerName.equals("")) {
return;
}
if (skullLocation != null) {
checkSkull(skullLocation.getBlock());
return;
}
Location loc = location;
Location loc1 = new Location(loc.getWorld(), loc.getBlockX() - 1, loc.getBlockY() - 1, loc.getBlockZ() - 1);
Location loc2 = new Location(loc.getWorld(), loc.getBlockX() + 1, loc.getBlockY() + 1, loc.getBlockZ() + 1);
updateSkulls(loc1, loc2);
}
/**
* Check valid sign.
*/
public void checkValidSign() {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
try {
setValid(getLocation().getBlock().getState() instanceof Sign);
} catch (Exception ex) {
setValid(false);
}
}
});
}
/**
* Gets the right click message.
*
* @return the right click message
*/
public String getRightClickMessage() {
String msg = Config.getInstance().getFormatSignTopVoterSignRightClickMessage();
msg = msg.replace("%player%", playerName);
msg = msg.replace("%position%", "" + position);
msg = msg.replace("%votes%", "" + votes);
msg = msg.replace("%SiteName%", data);
return msg;
}
/**
* Checks if is location same.
*
* @param loc
* the loc
* @return true, if is location same
*/
public boolean isLocationSame(Location loc) {
return loc.equals(getLocation());
}
public boolean isSkullSet() {
return skullLocation != null;
}
/**
* Removes the sign.
*/
public void removeSign() {
ServerData.getInstance().removeSign(sign);
}
/**
* Store sign.
*/
public void storeSign() {
ServerData.getInstance().setSign(sign, location, skullLocation, data, position);
}
/**
* Update lines.
*/
public void updateLines() {
lines = new ArrayList<String>();
checkValidSign();
if (position != 0) {
String line1 = Config.getInstance().getFormatSignTopVoterSignLine1();
String line2 = Config.getInstance().getFormatSignTopVoterSignLine2();
String line3 = Config.getInstance().getFormatSignTopVoterSignLine3();
String line4 = Config.getInstance().getFormatSignTopVoterSignLine4();
lines.add(line1);
lines.add(line2);
lines.add(line3);
lines.add(line4);
ArrayList<User> users = null;
if (data.equalsIgnoreCase("all")) {
users = plugin.convertSet(plugin.getTopVoter(TopVoter.AllTime).keySet());
} else if (data.equalsIgnoreCase("monthly")) {
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Monthly).keySet());
} else if (data.equalsIgnoreCase("weekly")) {
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
} else if (data.equalsIgnoreCase("daily")) {
users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
}
if (users != null && users.size() >= position) {
User user = users.get(position - 1);
playerName = user.getPlayerName();
votes = 0;
if (data.equalsIgnoreCase("all")) {
votes = plugin.getTopVoter(TopVoter.AllTime).get(user);
} else if (data.equalsIgnoreCase("monthly")) {
votes = plugin.getTopVoter(TopVoter.Monthly).get(user);
} else if (data.equalsIgnoreCase("weekly")) {
votes = plugin.getTopVoter(TopVoter.Weekly).get(user);
} else if (data.equalsIgnoreCase("daily")) {
votes = plugin.getTopVoter(TopVoter.Daily).get(user);
}
for (int j = 0; j < lines.size(); j++) {
lines.set(j, lines.get(j).replace("%votes%", "" + votes).replace("%player%", playerName));
}
} else {
playerName = "No Player";
votes = 0;
for (int j = 0; j < lines.size(); j++) {
lines.set(j, lines.get(j).replace("%votes%", "" + votes).replace("%player%", playerName));
}
}
for (int j = 0; j < lines.size(); j++) {
lines.set(j, lines.get(j).replace("%SiteName%", data).replace("%position%", "" + position));
}
lines = ArrayUtils.getInstance().colorize(lines);
}
}
/**
* Update sign.
*
* @param delay
* the delay
*/
public void updateSign(int delay) {
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
@Override
public void run() {
try {
BlockState state = getLocation().getBlock().getState();
if (state instanceof Sign) {
Sign s = (Sign) state;
for (int j = 0; j < lines.size() && j < 4; j++) {
s.setLine(j, lines.get(j));
}
s.update();
checkSkulls();
}
} catch (Exception ex) {
Main.plugin.debug(ex);
}
}
}, delay);
}
public void updateSkulls(Location loc1, Location loc2) {
if (!NMSManager.getInstance().isVersion("1.12")) {
BlockState state = getLocation().getBlock().getState();
if (state instanceof Sign && state.getBlockData() instanceof Directional) {
Directional s = (Directional) state.getBlockData();
Block b = location.getBlock().getRelative(s.getFacing());
Block above = b.getRelative(BlockFace.UP);
if (checkSkull(above)) {
return;
}
}
for (Block block : MiscUtils.getInstance().getRegionBlocks(location.getWorld(), loc1, loc2)) {
checkSkull(block);
}
}
}
}
@@ -1,107 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Signs;
import java.util.ArrayList;
import org.bukkit.Location;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
// TODO: Auto-generated Javadoc
/**
* The Class Signs.
*/
public class Signs {
/** The instance. */
static Signs instance = new Signs();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of Signs.
*
* @return single instance of Signs
*/
public static Signs getInstance() {
return instance;
}
/**
* Instantiates a new signs.
*/
private Signs() {
}
/**
* Instantiates a new signs.
*
* @param plugin
* the plugin
*/
public Signs(Main plugin) {
Signs.plugin = plugin;
}
/**
* Gets the sign from location.
*
* @param loc
* the loc
* @return the sign from location
*/
public String getSignFromLocation(Location loc) {
for (String sign : ServerData.getInstance().getSigns()) {
if (ServerData.getInstance().getSignLocation(sign).equals(loc)) {
return sign;
}
}
return null;
}
/**
* Load signs.
*/
public void loadSigns() {
plugin.setSigns(new ArrayList<SignHandler>());
for (String sign : ServerData.getInstance().getSigns()) {
// plugin.getLogger().info("Loading sign " + sign);
plugin.getSigns().add(new SignHandler(sign, ServerData.getInstance().getSignLocation(sign),
ServerData.getInstance().getSignSkullLocation(sign), ServerData.getInstance().getSignData(sign),
ServerData.getInstance().getSignPosition(sign)));
}
}
/**
* Store signs.
*/
public void storeSigns() {
for (SignHandler sign : plugin.getSigns()) {
sign.storeSign();
}
}
/**
* Update signs.
*/
public void updateSigns() {
int time = 0;
for (int i = plugin.getSigns().size() - 1; i >= 0; i--) {
if (!plugin.getSigns().get(i).isValid()) {
plugin.debug("Sign " + i + " invalid, removing from data: "
+ plugin.getSigns().get(i).getLocation().toString());
plugin.getSigns().get(i).removeSign();
plugin.getSigns().remove(i);
} else {
plugin.getSigns().get(i).updateLines();
plugin.getSigns().get(i).updateSign(time);
time += 5;
}
}
plugin.debug("Signs updated");
}
}
@@ -1,350 +0,0 @@
package com.Ben12345rocks.VotingPlugin.SpecialRewards;
import java.util.ArrayList;
import java.util.Set;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Config.SpecialRewardsConfig;
import com.Ben12345rocks.VotingPlugin.Events.PlayerSpecialRewardEvent;
import com.Ben12345rocks.VotingPlugin.Events.SpecialRewardType;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
// TODO: Auto-generated Javadoc
/**
* The Class OtherVoteReward.
*/
public class SpecialRewards {
/** The config. */
static Config config = Config.getInstance();
/** The config vote sites. */
static ConfigVoteSites configVoteSites = ConfigVoteSites.getInstance();
/** The instance. */
static SpecialRewards instance = new SpecialRewards();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of OtherVoteReward.
*
* @return single instance of OtherVoteReward
*/
public static SpecialRewards getInstance() {
return instance;
}
/**
* Instantiates a new other vote reward.
*/
private SpecialRewards() {
}
/**
* Instantiates a new other vote reward.
*
* @param plugin
* the plugin
*/
public SpecialRewards(Main plugin) {
SpecialRewards.plugin = plugin;
}
/**
* Check all sites.
*
* @param user
* the user
* @return true, if successful
*/
public boolean checkAllSites(User user) {
boolean checkAllVotes = user.checkAllVotes();
if (checkAllVotes) {
giveAllSitesRewards(user, user.isOnline());
}
return checkAllVotes;
}
/**
* Check cumualative votes.
*
* @param user
* the user
* @return true, if successful
*/
public boolean checkCumualativeVotes(User user) {
boolean gotCumulative = false;
Set<String> votes = SpecialRewardsConfig.getInstance().getCumulativeVotes();
for (String vote : votes) {
if (StringParser.getInstance().isInt(vote)) {
int votesRequired = Integer.parseInt(vote);
if (votesRequired != 0) {
if (SpecialRewardsConfig.getInstance().getCumulativeRewardEnabled(votesRequired)
&& RewardHandler.getInstance().hasRewards(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getCumulativeRewardsPath(votesRequired))) {
int total = 0;
if (SpecialRewardsConfig.getInstance().getCumulativeVotesInSameDay(votesRequired)) {
total = user.getTotal(TopVoter.Daily);
} else if (SpecialRewardsConfig.getInstance().getCumulativeVotesInSameWeek(votesRequired)) {
total = user.getTotal(TopVoter.Weekly);
} else if (SpecialRewardsConfig.getInstance().getCumulativeVotesInSameMonth(votesRequired)) {
total = user.getTotal(TopVoter.Monthly);
} else {
total = user.getTotal(TopVoter.AllTime);
}
if ((total % votesRequired) == 0 && total != 0) {
giveCumulativeVoteReward(user, user.isOnline(), votesRequired);
gotCumulative = true;
}
if (gotCumulative) {
plugin.debug(user.getPlayerName() + " got cumulative " + votesRequired);
}
}
}
} else {
plugin.debug("Invalid cumulative number: " + vote);
}
}
return gotCumulative;
}
/**
* Check first vote.
*
* @param user
* the user
* @return true, if successful
*/
public boolean checkFirstVote(User user) {
if (RewardHandler.getInstance().hasRewards(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getFirstVoteRewardsPath())) {
if (!user.hasGottenFirstVote()) {
giveFirstVoteRewards(user, user.isOnline());
return true;
}
}
return false;
}
/**
* Check milestone.
*
* @param user
* the user
* @return true, if successful
*/
public boolean checkMilestone(User user) {
if (Config.getInstance().isPreventRepeatMilestones()) {
ArrayList<Integer> nums = new ArrayList<Integer>();
for (String str : SpecialRewardsConfig.getInstance().getMilestoneVotes()) {
try {
nums.add(Integer.parseInt(str));
} catch (Exception e) {
plugin.getLogger().warning("Failed to get number from " + str);
}
}
int milestoneCount = user.getMilestoneCount();
for (int num : nums) {
if (milestoneCount >= num) {
if (!user.hasGottenMilestone(num)) {
plugin.getLogger().info("Milestone " + num + " for " + user.getPlayerName()
+ " not already given when it should be, Current AllTimeTotal: "
+ user.getTotal(TopVoter.AllTime) + ", Current MileStoneCount: "
+ user.getMilestoneCount());
user.setHasGotteMilestone(num, true);
}
}
}
}
boolean gotMilestone = false;
Set<String> votes = SpecialRewardsConfig.getInstance().getMilestoneVotes();
for (String vote : votes) {
if (StringParser.getInstance().isInt(vote)) {
int votesRequired = Integer.parseInt(vote);
if (votesRequired != 0) {
if (SpecialRewardsConfig.getInstance().getMilestoneRewardEnabled(votesRequired)
&& RewardHandler.getInstance().hasRewards(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getMilestoneRewardsPath(votesRequired))) {
int userVotesTotal = user.getMilestoneCount();
if (userVotesTotal >= votesRequired && !user.hasGottenMilestone(votesRequired)) {
giveMilestoneVoteReward(user, user.isOnline(), votesRequired);
user.setHasGotteMilestone(votesRequired, true);
plugin.debug(user.getPlayerName() + " got milestone " + votesRequired);
}
}
}
} else {
plugin.debug("Invalid milestone number: " + vote);
}
}
return gotMilestone;
}
public boolean checkVoteStreak(User user, String type) {
boolean gotReward = false;
Set<String> streaks = SpecialRewardsConfig.getInstance().getVoteStreakVotes(type);
for (String streak : streaks) {
String s = streak.replaceAll("-", "");
boolean multiple = false;
if (streak.contains("-")) {
// multiple
multiple = true;
}
if (StringParser.getInstance().isInt(s)) {
int streakRequired = Integer.parseInt(s);
if (streakRequired != 0) {
if (SpecialRewardsConfig.getInstance().getVoteStreakRewardEnabled(type, streak)
&& RewardHandler.getInstance().hasRewards(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getVoteStreakRewardsPath(type, "" + streak))) {
int curStreak = 0;
if (type.equalsIgnoreCase("day")) {
curStreak = user.getDayVoteStreak();
} else if (type.equalsIgnoreCase("week")) {
curStreak = user.getWeekVoteStreak();
} else if (type.equalsIgnoreCase("month")) {
curStreak = user.getMonthVoteStreak();
}
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);
}
}
}
}
}
}
return gotReward;
}
/**
* Give all sites rewards.
*
* @param user
* the user
* @param online
* the online
*/
public void giveAllSitesRewards(User user, boolean online) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user, SpecialRewardType.ALLSITE);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
RewardHandler.getInstance().giveReward(user, SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getAllSitesRewardPath(), new RewardOptions().setOnline(online));
}
/**
* Give cumulative vote reward.
*
* @param user
* the user
* @param online
* the online
* @param cumulative
* the cumulative
*/
public void giveCumulativeVoteReward(User user, boolean online, int cumulative) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.CUMMULATIVE.setAmount(cumulative));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getCumulativeRewardsPath(cumulative)).setOnline(online)
.withPlaceHolder("Cumulative", "" + cumulative).send(user);
}
/**
* Give first vote rewards.
*
* @param user
* the user
* @param online
* the online
*/
public void giveFirstVoteRewards(User user, boolean online) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user, SpecialRewardType.FIRSTVOTE);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
RewardHandler.getInstance().giveReward(user, SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getFirstVoteRewardsPath(), new RewardOptions().setOnline(online));
}
/**
* Give milestone vote reward.
*
* @param user
* the user
* @param online
* the online
* @param milestone
* the milestone
*/
public void giveMilestoneVoteReward(User user, boolean online, int milestone) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.MILESTONE.setAmount(milestone));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getMilestoneRewardsPath(milestone)).setOnline(online)
.withPlaceHolder("Milestone", "" + milestone).send(user);
}
public void giveVoteStreakReward(User user, boolean online, String type, String string, int votes) {
PlayerSpecialRewardEvent event = new PlayerSpecialRewardEvent(user,
SpecialRewardType.VOTESTREAK.setType(type).setAmount(votes));
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
new RewardBuilder(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getVoteStreakRewardsPath(type, string)).setOnline(online)
.withPlaceHolder("Type", type).withPlaceHolder("Streak", "" + votes).send(user);
}
}
@@ -1,74 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Test;
import java.util.ArrayList;
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardOptions;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VoteTester {
private static VoteTester instance = new VoteTester();
public static VoteTester getInstance() {
return instance;
}
private Main plugin = Main.plugin;
public void testRewards(int amount, String name, String rewardName) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerReward = new ArrayList<Long>();
User user = UserManager.getInstance().getVotingPluginUser(name);
Reward reward = RewardHandler.getInstance().getReward(rewardName);
int rewardsGiven = 0;
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
if (reward.canGiveReward(user, new RewardOptions())) {
rewardsGiven++;
RewardHandler.getInstance().giveReward(user, reward, new RewardOptions().setIgnoreRequirements(true));
}
long start2 = System.currentTimeMillis();
timesPerReward.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerReward) {
timeTotal += t.longValue();
}
long timePerRewardAvg = timeTotal / timesPerReward.size();
Main.plugin.getLogger().info("Time to process rewards (" + amount + "): " + time + " ms, average per reward "
+ timePerRewardAvg + " ms. " + Main.plugin.getStorageType() + ", "
+ UserManager.getInstance().getAllUUIDs().size() + " users. " + rewardsGiven + " rewards given");
}
public void testVotes(int amount, String name, String site) {
long time1 = System.currentTimeMillis();
ArrayList<Long> timesPerVote = new ArrayList<Long>();
for (int i = 0; i < amount; i++) {
long start1 = System.currentTimeMillis();
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(site), name,
plugin.getVoteSiteServiceSite(site), false);
plugin.getServer().getPluginManager().callEvent(voteEvent);
long start2 = System.currentTimeMillis();
timesPerVote.add(start2 - start1);
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
long timeTotal = 0;
for (Long t : timesPerVote) {
timeTotal += t.longValue();
}
long timePerVoteAvg = timeTotal / timesPerVote.size();
Main.plugin.getLogger()
.info("Time to process votes (" + amount + "): " + time + " ms, average per vote " + timePerVoteAvg
+ " ms. " + Main.plugin.getStorageType() + ", " + UserManager.getInstance().getAllUUIDs().size()
+ " users. " + Main.plugin.getVoteSites().size() + " votesites");
}
}
@@ -1,94 +0,0 @@
package com.Ben12345rocks.VotingPlugin.TopVoter;
import java.util.ArrayList;
import com.Ben12345rocks.VotingPlugin.Config.Config;
public enum TopVoter {
AllTime, Monthly, Weekly, Daily;
public static TopVoter getDefault() {
TopVoter top = getTopVoter(Config.getInstance().getVoteTopDefault());
if (top != null) {
return top;
}
return AllTime;
}
public static TopVoter[] valuesMinusAllTime() {
return new TopVoter[] { TopVoter.Daily, TopVoter.Weekly, TopVoter.Monthly };
}
public static TopVoter getTopVoter(String str) {
for (TopVoter value : values()) {
if (value.toString().equalsIgnoreCase(str)) {
return value;
}
}
return AllTime;
}
public String getName() {
if (this.equals(TopVoter.Monthly)) {
return Config.getInstance().getFormatTopVoterMonthly();
} else if (this.equals(TopVoter.Weekly)) {
return Config.getInstance().getFormatTopVoterWeekly();
} else if (this.equals(TopVoter.Daily)) {
return Config.getInstance().getFormatTopVoterDaily();
} else {
return Config.getInstance().getFormatTopVoterAllTime();
}
}
public TopVoter next() {
ArrayList<TopVoter> list = new ArrayList<TopVoter>();
if (Config.getInstance().getLoadTopVoterAllTime()) {
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 = 0; i < list.size(); i++) {
if (list.get(i).equals(this)) {
int next = i + 1;
if (next > list.size() - 1) {
next = 0;
}
return TopVoter.values()[next];
}
}
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;
}
}
@@ -1,688 +0,0 @@
package com.Ben12345rocks.VotingPlugin.TopVoter;
import java.io.File;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
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.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.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.YML.YMLFileHandler;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.SpecialRewardsConfig;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class TopVoterHandler implements Listener {
/** The instance. */
static TopVoterHandler instance = new TopVoterHandler();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of TopVoter.
*
* @return single instance of TopVoter
*/
public static TopVoterHandler getInstance() {
return instance;
}
/**
* Instantiates a new top voter.
*/
private TopVoterHandler() {
}
public ArrayList<String> getTopVoterBlackList() {
return Config.getInstance().getBlackList();
}
/**
* Top voters weekly.
*
* @return the string[]
*/
public String[] getTopVotersWeekly() {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Weekly).keySet());
for (int i = 0; i < users.size(); i++) {
String line = Config.getInstance().getFormatCommandVoteTopLine().replace("%num%", "" + (i + 1))
.replace("%player%", users.get(i).getPlayerName())
.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Weekly).get(users.get(i)));
msg.add(line);
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
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;
}
public void loadLastMonth() {
if (Config.getInstance().isLastMonthGUI()) {
plugin.getLastMonthTopVoter().clear();
LinkedHashMap<User, Integer> totals = new LinkedHashMap<User, Integer>();
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
int total = user.getLastMonthTotal();
if (total > 0) {
totals.put(user, total);
}
}
plugin.getLastMonthTopVoter().putAll(sortByValues(totals, false));
plugin.debug("Loaded last month top voters");
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onDateChanged(DateChangedEvent event) {
plugin.setUpdate(true);
plugin.update();
loadLastMonth();
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDayChange(DayChangeEvent event) {
synchronized (Main.plugin) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (!user.voteStreakUpdatedToday(LocalDateTime.now().minusDays(1))) {
if (user.getDayVoteStreak() != 0) {
user.setDayVoteStreak(0);
}
}
if (user.getHighestDailyTotal() < user.getTotal(TopVoter.Daily)) {
user.setHighestDailyTotal(user.getTotal(TopVoter.Daily));
}
for (String shopIdent : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getVoteShopResetDaily(shopIdent)) {
user.setVoteShopIdentifierLimit(shopIdent, 0);
}
}
}
if (Config.getInstance().getStoreTopVotersDaily()) {
plugin.getLogger().info("Saving TopVoters Daily");
storeTopVoters(TopVoter.Daily);
}
try {
if (SpecialRewardsConfig.getInstance().isEnableDailyRewards()) {
HashMap<Integer, String> places = handlePlaces(
SpecialRewardsConfig.getInstance().getDailyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
@SuppressWarnings("unchecked")
LinkedHashMap<User, Integer> clone = (LinkedHashMap<User, Integer>) plugin
.getTopVoter(TopVoter.Daily).clone();
for (User user : clone.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Daily) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveDailyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getTotal(TopVoter.Daily);
}
}
} catch (Exception e) {
e.printStackTrace();
}
resetTotals(TopVoter.Daily);
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMonthChange(MonthChangeEvent event) {
synchronized (Main.plugin) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getTotal(TopVoter.Monthly) == 0 && user.getMonthVoteStreak() != 0) {
user.setMonthVoteStreak(0);
} else {
if (!SpecialRewardsConfig.getInstance().isVoteStreakRequirementUsePercentage()
|| user.hasPercentageTotal(TopVoter.Monthly,
SpecialRewardsConfig.getInstance().getVoteStreakRequirementMonth(),
LocalDateTime.now().minusDays(1))) {
user.addMonthVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Month");
}
}
for (String shopIdent : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getVoteShopResetMonthly(shopIdent)) {
user.setVoteShopIdentifierLimit(shopIdent, 0);
}
}
user.setLastMonthTotal(user.getTotal(TopVoter.Monthly));
if (user.getHighestMonthlyTotal() < user.getTotal(TopVoter.Monthly)) {
user.setHighestMonthlyTotal(user.getTotal(TopVoter.Monthly));
}
}
if (Config.getInstance().getStoreTopVotersMonthly()) {
plugin.getLogger().info("Saving TopVoters Monthly");
storeTopVoters(TopVoter.Monthly);
}
try {
if (SpecialRewardsConfig.getInstance().isEnableMonthlyAwards()) {
HashMap<Integer, String> places = handlePlaces(
SpecialRewardsConfig.getInstance().getMonthlyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
@SuppressWarnings("unchecked")
LinkedHashMap<User, Integer> clone = (LinkedHashMap<User, Integer>) plugin
.getTopVoter(TopVoter.Monthly).clone();
for (User user : clone.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Monthly) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveMonthlyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getTotal(TopVoter.Monthly);
}
}
} catch (Exception e) {
e.printStackTrace();
}
resetTotals(TopVoter.Monthly);
if (SpecialRewardsConfig.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(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) {
synchronized (Main.plugin) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getTotal(TopVoter.Weekly) == 0 && user.getWeekVoteStreak() != 0) {
user.setWeekVoteStreak(0);
} else {
if (!SpecialRewardsConfig.getInstance().isVoteStreakRequirementUsePercentage()
|| user.hasPercentageTotal(TopVoter.Weekly,
SpecialRewardsConfig.getInstance().getVoteStreakRequirementWeek(), null)) {
user.addWeekVoteStreak();
SpecialRewards.getInstance().checkVoteStreak(user, "Week");
}
}
for (String shopIdent : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getVoteShopResetWeekly(shopIdent)) {
user.setVoteShopIdentifierLimit(shopIdent, 0);
}
}
if (user.getHighestWeeklyTotal() < user.getTotal(TopVoter.Weekly)) {
user.setHighestWeeklyTotal(user.getTotal(TopVoter.Weekly));
}
}
if (Config.getInstance().getStoreTopVotersWeekly()) {
plugin.getLogger().info("Saving TopVoters Weekly");
storeTopVoters(TopVoter.Weekly);
}
try {
if (SpecialRewardsConfig.getInstance().isEnableWeeklyAwards()) {
HashMap<Integer, String> places = handlePlaces(
SpecialRewardsConfig.getInstance().getWeeklyPossibleRewardPlaces());
int i = 0;
int lastTotal = -1;
@SuppressWarnings("unchecked")
LinkedHashMap<User, Integer> clone = (LinkedHashMap<User, Integer>) plugin
.getTopVoter(TopVoter.Weekly).clone();
for (User user : clone.keySet()) {
if (!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore()) {
if (Config.getInstance().getTopVoterAwardsTies()) {
if (user.getTotal(TopVoter.Weekly) != lastTotal) {
i++;
}
} else {
i++;
}
if (places.containsKey(i)) {
user.giveWeeklyTopVoterAward(i, places.get(i));
}
}
lastTotal = user.getTotal(TopVoter.Weekly);
}
}
} catch (Exception e) {
e.printStackTrace();
}
resetTotals(TopVoter.Weekly);
}
}
public void register() {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
public void resetTotals(TopVoter topVoter) {
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
if (user.getTotal(topVoter) != 0) {
user.resetTotals(topVoter);
}
}
}
public LinkedHashMap<User, Integer> sortByValues(LinkedHashMap<User, Integer> topVoterAllTime,
final boolean order) {
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>>() {
@Override
public int compare(Entry<User, Integer> o1, Entry<User, Integer> o2) {
if (order) {
return o1.getValue().compareTo(o2.getValue());
} else {
return o2.getValue().compareTo(o1.getValue());
}
}
});
// Maintaining insertion order with the help of LinkedList
LinkedHashMap<User, Integer> sortedMap = new LinkedHashMap<User, Integer>();
for (Entry<User, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
public void storeTopVoters(TopVoter top) {
LocalDateTime time = LocalDateTime.now().minusDays(1);
String month = time.getMonth().toString();
int year = time.getYear();
int week = time.getDayOfYear();
int day = time.getDayOfMonth();
String fileName = "TopVoter" + File.separator + top.toString() + File.separator + year + "_" + month;
if (top.equals(TopVoter.Daily)) {
fileName += "_" + day;
} else if (top.equals(TopVoter.Weekly)) {
fileName += "_" + week;
}
fileName += ".yml";
YMLFileHandler file = new YMLFileHandler(new File(plugin.getDataFolder(), fileName));
file.setup();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(top).entrySet()) {
topVoters.add(count + ": " + entry.getKey().getPlayerName() + ": " + entry.getValue());
count++;
}
file.getData().set(top.toString(), topVoters);
file.saveData();
}
/**
* Top voter all time
*
* @param page
* the page
* @return the string[]
*/
public String[] topVoterAllTime(int page) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
line = line.replace("%votes%", "" + entry.getValue());
topVoters.add(line);
count++;
}
int pageSize = (topVoters.size() / pagesize);
if ((topVoters.size() % pagesize) != 0) {
pageSize++;
}
String title = Config.getInstance().getFormatCommandVoteTopTitle();
title = title.replace("%page%", "" + page);
title = title.replace("%maxpages%", "" + pageSize);
title = title.replace("%Top%", "All Time");
msg.add(StringParser.getInstance().colorize(title));
for (int i = (page - 1) * pagesize; (i < topVoters.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
msg.add(topVoters.get(i));
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voter weekly.
*
* @param page
* the page
* @return the string[]
*/
public String[] topVoterDaily(int page) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
line = line.replace("%votes%", "" + entry.getValue());
topVoters.add(line);
count++;
}
int pageSize = (topVoters.size() / pagesize);
if ((topVoters.size() % pagesize) != 0) {
pageSize++;
}
String title = Config.getInstance().getFormatCommandVoteTopTitle();
title = title.replace("%page%", "" + page);
title = title.replace("%maxpages%", "" + pageSize);
title = title.replace("%Top%", "Daily");
msg.add(StringParser.getInstance().colorize(title));
for (int i = (page - 1) * pagesize; (i < topVoters.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
msg.add(topVoters.get(i));
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voter monthly
*
* @param page
* the page
* @return the string[]
*/
public String[] topVoterMonthly(int page) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
line = line.replace("%votes%", "" + entry.getValue());
topVoters.add(line);
count++;
}
int pageSize = (topVoters.size() / pagesize);
if ((topVoters.size() % pagesize) != 0) {
pageSize++;
}
String title = Config.getInstance().getFormatCommandVoteTopTitle();
title = title.replace("%page%", "" + page);
title = title.replace("%maxpages%", "" + pageSize);
title = title.replace("%Top%", "Monthly");
msg.add(StringParser.getInstance().colorize(title));
for (int i = (page - 1) * pagesize; (i < topVoters.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
msg.add(topVoters.get(i));
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voters all time
*
* @return the string[]
*/
public String[] topVotersAllTime() {
ArrayList<String> msg = new ArrayList<String>();
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(
plugin.getTopVoter(TopVoter.AllTime).entrySet());
int i = 0;
for (Entry<User, Integer> entry : list) {
String line = "%num%: %player%, %votes%";
line = line.replace("%num%", "" + (i + 1));
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
msg.add(line);
i++;
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voters daily.
*
* @return the string[]
*/
public String[] topVotersDaily() {
ArrayList<String> msg = new ArrayList<String>();
ArrayList<User> users = plugin.convertSet(plugin.getTopVoter(TopVoter.Daily).keySet());
for (int i = 0; i < users.size(); i++) {
String line = "%num%: %player%, %votes%";
line = line.replace("%num%", "" + (i + 1));
try {
line = line.replace("%player%", users.get(i).getPlayerName());
} catch (Exception ex) {
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + plugin.getTopVoter(TopVoter.Monthly).get(users.get(i)));
msg.add(line);
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voters.
*
* @return the string[]
*/
public String[] topVotersMonthly() {
ArrayList<String> msg = new ArrayList<String>();
List<Entry<User, Integer>> list = new LinkedList<Entry<User, Integer>>(
plugin.getTopVoter(TopVoter.Monthly).entrySet());
int i = 0;
for (Entry<User, Integer> entry : list) {
String line = "%num%: %player%, %votes%";
line = line.replace("%num%", "" + (i + 1));
try {
line = line.replace("%player%", entry.getKey().getPlayerName());
} catch (Exception ex) {
Main.plugin.debug(ex);
}
line = line.replace("%votes%", "" + entry.getValue());
msg.add(line);
i++;
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
/**
* Top voter weekly.
*
* @param page
* the page
* @return the string[]
*/
public String[] topVoterWeekly(int page) {
int pagesize = Config.getInstance().getFormatPageSize();
ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> topVoters = new ArrayList<String>();
int count = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
String line = Config.getInstance().getFormatCommandVoteTopLine();
line = line.replace("%num%", "" + count);
line = line.replace("%player%", entry.getKey().getPlayerName());
line = line.replace("%votes%", "" + entry.getValue());
topVoters.add(line);
count++;
}
int pageSize = (topVoters.size() / pagesize);
if ((topVoters.size() % pagesize) != 0) {
pageSize++;
}
String title = Config.getInstance().getFormatCommandVoteTopTitle();
title = title.replace("%page%", "" + page);
title = title.replace("%maxpages%", "" + pageSize);
title = title.replace("%Top%", "Weekly");
msg.add(StringParser.getInstance().colorize(title));
for (int i = (page - 1) * pagesize; (i < topVoters.size()) && (i < (((page - 1) * pagesize) + 10)); i++) {
msg.add(topVoters.get(i));
}
msg = ArrayUtils.getInstance().colorize(msg);
return ArrayUtils.getInstance().convert(msg);
}
public synchronized void updateTopVoters(ArrayList<User> users1) {
ArrayList<User> users = new ArrayList<User>();
ArrayList<String> blackList = getTopVoterBlackList();
for (User user : users1) {
if (!blackList.contains(user.getPlayerName())) {
if ((!Config.getInstance().getTopVoterIgnorePermission() || !user.isTopVoterIgnore())
&& !user.isBanned()) {
users.add(user);
}
}
}
plugin.debug("Number of users to check top voter: " + users.size());
for (TopVoter top : TopVoter.values()) {
if (Config.getInstance().getLoadTopVoter(top)) {
LinkedHashMap<User, Integer> map = new LinkedHashMap<User, Integer>();
for (User user : users) {
int total = user.getTotal(top);
if (total > 0) {
map.put(user, total);
}
}
map = sortByValues(map, false);
int limitSize = Config.getInstance().getMaxiumNumberOfTopVotersToLoad();
if (limitSize > 0) {
ArrayList<User> listKeys = new ArrayList<User>(map.keySet());
if (listKeys.size() > limitSize) {
for (int i = listKeys.size() - 1; i >= 0 && i >= limitSize; i--) {
map.remove(listKeys.get(i));
}
}
}
plugin.getTopVoter(top).clear();
plugin.getTopVoter().put(top, map);
plugin.debug(top.toString() + " TopVoter loaded");
}
}
plugin.debug("Updated TopVoter");
}
}
@@ -1,125 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Updater;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Updater.Updater;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
// TODO: Auto-generated Javadoc
/**
* The Class CheckUpdate.
*/
public class CheckUpdate {
/** The instance. */
static CheckUpdate instance = new CheckUpdate();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of CheckUpdate.
*
* @return single instance of CheckUpdate
*/
public static CheckUpdate getInstance() {
return instance;
}
/**
* Instantiates a new check update.
*/
private CheckUpdate() {
}
/**
* Instantiates a new check update.
*
* @param plugin
* the plugin
*/
public CheckUpdate(Main plugin) {
CheckUpdate.plugin = plugin;
}
/**
* Check update.
*/
public void checkUpdate() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
plugin.setUpdater(new Updater(plugin, 15358, false));
final Updater.UpdateResult result = plugin.getUpdater().getResult();
switch (result) {
case FAIL_SPIGOT: {
plugin.getLogger().info("Failed to check for update for " + plugin.getName() + "!");
break;
}
case NO_UPDATE: {
plugin.getLogger()
.info(plugin.getName() + " is up to date! Version: " + plugin.getUpdater().getVersion());
break;
}
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: "
+ plugin.getUpdater().getVersion() + " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
public void checkUpdateBasic() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
plugin.setUpdater(new Updater(plugin, 15358, false));
final Updater.UpdateResult result = plugin.getUpdater().getResult();
switch (result) {
case UPDATE_AVAILABLE: {
plugin.getLogger()
.info(plugin.getName() + " has an update available! Your Version: "
+ plugin.getDescription().getVersion() + " New Version: "
+ plugin.getUpdater().getVersion() + " Use /av download to get the latest update!");
break;
}
default: {
break;
}
}
}
/**
* Start up.
*/
public void startUp() {
if (Config.getInstance().isDisableUpdateChecking()) {
return;
}
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
checkUpdate();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
checkUpdateBasic();
}
}, 1000 * 60 * 1200, 1000 * 60 * 1200);
}
}, 10l);
}
}
@@ -1,60 +0,0 @@
package com.Ben12345rocks.VotingPlugin.UserManager;
import java.util.ArrayList;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.UserManager.UUID;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
public class UserManager {
/** The instance. */
static UserManager instance = new UserManager();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of UserManager.
*
* @return single instance of UserManager
*/
public static UserManager getInstance() {
return instance;
}
public UserManager() {
super();
}
public ArrayList<String> getAllUUIDs() {
return com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getAllUUIDs();
}
public User getVotingPluginUser(com.Ben12345rocks.AdvancedCore.UserManager.User user) {
return getVotingPluginUser(java.util.UUID.fromString(user.getUUID()));
}
public User getVotingPluginUser(java.util.UUID uuid) {
return getVotingPluginUser(new UUID(uuid.toString()));
}
public User getVotingPluginUser(OfflinePlayer player) {
return getVotingPluginUser(player.getName());
}
public User getVotingPluginUser(Player player) {
return getVotingPluginUser(player.getName());
}
@SuppressWarnings("deprecation")
public User getVotingPluginUser(String playerName) {
return new User(com.Ben12345rocks.AdvancedCore.UserManager.UserManager.getInstance().getProperName(playerName));
}
@SuppressWarnings("deprecation")
public User getVotingPluginUser(UUID uuid) {
return new User(uuid);
}
}
@@ -1,88 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.Bukkit;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import be.maximvdw.placeholderapi.PlaceholderAPI;
import be.maximvdw.placeholderapi.PlaceholderReplaceEvent;
import be.maximvdw.placeholderapi.PlaceholderReplacer;
// TODO: Auto-generated Javadoc
/**
* The Class PlaceHolders.
*/
public class MVdWPlaceholders {
/** The instance. */
static MVdWPlaceholders instance = new MVdWPlaceholders();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of PlaceHolders.
*
* @return single instance of PlaceHolders
*/
public static MVdWPlaceholders getInstance() {
return instance;
}
/**
* Instantiates a new place holders.
*/
private MVdWPlaceholders() {
}
/**
* Instantiates a new place holders.
*
* @param plugin
* the plugin
*/
public MVdWPlaceholders(Main plugin) {
MVdWPlaceholders.plugin = plugin;
}
public void loadMVdWPlaceholders() {
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
// The plugin is enabled
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(),
UserManager.getInstance().getVotingPluginUser(event.getOfflinePlayer()),
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
for (final PlaceHolder<User> place : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(), null,
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
}
}
}
@@ -1,578 +0,0 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map.Entry;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Util.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Placeholder.PlaceHolder;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Commands.Commands;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import lombok.Getter;
// TODO: Auto-generated Javadoc
/**
* The Class PlaceHolders.
*/
public class PlaceHolders {
/** The instance. */
static PlaceHolders instance = new PlaceHolders();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of PlaceHolders.
*
* @return single instance of PlaceHolders
*/
public static PlaceHolders getInstance() {
return instance;
}
@Getter
private ArrayList<PlaceHolder<User>> placeholders = new ArrayList<PlaceHolder<User>>();
@Getter
private ArrayList<PlaceHolder<User>> nonPlayerPlaceholders = new ArrayList<PlaceHolder<User>>();
/**
* Instantiates a new place holders.
*/
private PlaceHolders() {
}
/**
* Instantiates a new place holders.
*
* @param plugin
* the plugin
*/
public PlaceHolders(Main plugin) {
PlaceHolders.plugin = plugin;
}
public String getPlaceHolder(OfflinePlayer p, String identifier) {
if (Config.getInstance().isUseJavascriptPlaceholders()) {
identifier = StringParser.getInstance().replaceJavascript(p, identifier);
}
for (PlaceHolder<User> placeholder : nonPlayerPlaceholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, null, identifier);
}
}
User user = UserManager.getInstance().getVotingPluginUser(p);
for (PlaceHolder<User> placeholder : placeholders) {
if (placeholder.matches(identifier)) {
return placeholder.placeholderRequest(p, user, identifier);
}
}
return "Not a valid placeholder";
}
public String getPlaceHolder(Player p, String identifier) {
if (Config.getInstance().isUseJavascriptPlaceholders()) {
identifier = StringParser.getInstance().replaceJavascript(p, identifier);
}
return getPlaceHolder((OfflinePlayer) p, identifier);
}
public void load() {
placeholders.clear();
nonPlayerPlaceholders.clear();
// older placeholders, might be removed in the future
placeholders.add(new PlaceHolder<User>("total") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(TopVoter.Monthly));
}
}.withDescription("Month total"));
placeholders.add(new PlaceHolder<User>("alltimetotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(TopVoter.AllTime));
}
}.withDescription("Alltime total"));
placeholders.add(new PlaceHolder<User>("lastmonthtotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getLastMonthTotal());
}
}.withDescription("Last month total"));
// end of older placeholders
placeholders.add(new PlaceHolder<User>("DisableBroadcast") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.getDisableBroadcast();
}
}.withDescription("Returns true/false if user has broadcast disabled"));
placeholders.add(new PlaceHolder<User>("MilestoneCount") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.getMilestoneCount();
}
}.withDescription("User milestonecount"));
for (final String identifier : Config.getInstance().getIdentifiers()) {
if (Config.getInstance().getIdentifierLimit(identifier) > 0) {
placeholders.add(new PlaceHolder<User>("VoteShopLimit_" + identifier) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String ident) {
return "" + user.getVoteShopIdentifierLimit(identifier);
}
}.withDescription("User voteshop limit for " + identifier));
}
}
for (final TopVoter top : TopVoter.values()) {
placeholders.add(new PlaceHolder<User>("Total_" + top.toString()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getTotal(top));
}
}.withDescription("User total for " + top.getName()));
}
placeholders.add(new PlaceHolder<User>("BestDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestDailyTotal());
}
}.withDescription("Best daily total"));
placeholders.add(new PlaceHolder<User>("BestWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestWeeklyTotal());
}
}.withDescription("Best weekly total"));
placeholders.add(new PlaceHolder<User>("BestMonthlyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getHighestMonthlyTotal());
}
}.withDescription("Best monthly total"));
placeholders.add(new PlaceHolder<User>("DailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getDayVoteStreak());
}
}.withDescription("Current daily votestreak"));
placeholders.add(new PlaceHolder<User>("WeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getWeekVoteStreak());
}
}.withDescription("Current weekly votestreak"));
placeholders.add(new PlaceHolder<User>("MonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getMonthVoteStreak());
}
}.withDescription("Current month votestreak"));
placeholders.add(new PlaceHolder<User>("BestDailyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestDayVoteStreak());
}
}.withDescription("Best daily votestreak"));
placeholders.add(new PlaceHolder<User>("BestWeeklyVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestWeekVoteStreak());
}
}.withDescription("Best weekly votestreak"));
placeholders.add(new PlaceHolder<User>("BestMonthVoteStreak") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getBestMonthVoteStreak());
}
}.withDescription("Best month votestreak"));
placeholders.add(new PlaceHolder<User>("Points") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(user.getPoints());
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder<User>("Points_Format") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
return numberFormat.format(user.getPoints());
}
}.withDescription("User points"));
placeholders.add(new PlaceHolder<User>("CanVote") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Boolean.toString(user.canVoteAll());
}
}.withDescription("Return true/false if player can vote on all sites"));
placeholders.add(new PlaceHolder<User>("Next_AnySite") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
if (user.canVoteAny()) {
return Config.getInstance().getFormatCommandsVoteNextInfoCanVote();
}
long smallest = -1;
HashMap<Long, VoteSite> times = new HashMap<Long, VoteSite>();
for (VoteSite site : plugin.getVoteSites()) {
long t = Commands.getInstance().voteNextDurationTime(user, site);
if (smallest == -1) {
smallest = t;
}
if (t < smallest) {
smallest = t;
}
times.put(t, site);
}
for (Entry<Long, VoteSite> entry : times.entrySet()) {
if (entry.getKey().longValue() == smallest) {
return Commands.getInstance().voteCommandNextInfo(user, entry.getValue());
}
}
return "Error";
}
}.withDescription("How long until user can vote on anysite"));
for (final VoteSite voteSite : plugin.getVoteSites()) {
placeholders.add(new PlaceHolder<User>("Next_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandNextInfo(user, voteSite);
}
}.withDescription("How long until user can vote on " + voteSite.getKey()));
placeholders.add(new PlaceHolder<User>("Last_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Commands.getInstance().voteCommandLastDuration(user, voteSite);
}
}.withDescription("How long ago user voted on " + voteSite.getKey()));
placeholders.add(new PlaceHolder<User>("CanVote_" + voteSite.getKey()) {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return "" + user.canVoteSite(voteSite);
}
}.withDescription("Whether or not player can vote on " + voteSite.getKey()));
}
placeholders.add(new PlaceHolder<User>("Top_All_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_AllVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.AllTime);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_All_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.AllTime).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Month_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Month_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_MonthVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Monthly).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Monthly);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Week_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Week_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_WeekVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Weekly).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Weekly);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
placeholders.add(new PlaceHolder<User>("Top_Daily_Position") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (entry.getKey().getUUID().equals(p.getUniqueId().toString())) {
return "" + num;
}
num++;
}
return "";
}
}.withDescription("Get user top voter position"));
placeholders.add(new PlaceHolder<User>("Top_Daily_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (num == number) {
return entry.getKey().getPlayerName();
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user at postion in top voter"));
placeholders.add(new PlaceHolder<User>("Top_DailyVotes_") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int num = 1;
int number = Integer.parseInt(identifier.split("_")[2]);
for (Entry<User, Integer> entry : plugin.getTopVoter(TopVoter.Daily).entrySet()) {
if (num == number) {
return "" + entry.getKey().getTotal(TopVoter.Daily);
}
num++;
}
return "";
}
}.useStartsWith().withDescription("Get user votes at position in top voter"));
// non players
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesCurrent") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getTotalVotes());
}
}.withDescription("Current amount of voteparty votes"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesNeeded") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getNeededVotes());
}
}.withDescription("Voteparty votes needed"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("VotePartyVotesRequired") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
return Integer.toString(VoteParty.getInstance().getVotesRequired());
}
}.withDescription("Amount of votes needed for voteparty"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalMonthTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Monthly).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global month total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalAllTimeTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.AllTime).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global alltime total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalWeeklyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Weekly).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global weekly total"));
nonPlayerPlaceholders.add(new PlaceHolder<User>("GlobalDailyTotal") {
@Override
public String placeholderRequest(OfflinePlayer p, User user, String identifier) {
int total = 0;
for (int num : Main.plugin.getTopVoter(TopVoter.Daily).values()) {
total += num;
}
return Integer.toString(total);
}
}.withDescription("Global daily total"));
}
}
@@ -1,292 +0,0 @@
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.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.Messages.StringParser;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Misc.MiscUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.SpecialRewardsConfig;
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
import com.Ben12345rocks.VotingPlugin.Events.VotePartyEvent;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class VoteParty.
*/
public class VoteParty implements Listener {
/** The instance. */
static VoteParty instance = new VoteParty();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of VoteParty.
*
* @return single instance of VoteParty
*/
public static VoteParty getInstance() {
return instance;
}
/**
* Instantiates a new vote party.
*/
private VoteParty() {
}
/**
* Instantiates a new vote party.
*
* @param plugin
* the plugin
*/
public VoteParty(Main plugin) {
VoteParty.plugin = plugin;
}
public void addTotal(User user) {
setTotalVotes(getTotalVotes() + 1);
user.setVotePartyVotes(user.getVotePartyVotes() + 1);
}
/**
* Adds the vote player.
*
* @param user
* the user
*/
public void addVotePlayer(User user) {
String uuid = user.getUUID();
ArrayList<String> voted = getVotedUsers();
if (voted == null) {
voted = new ArrayList<String>();
}
if (!voted.contains(uuid)) {
voted.add(uuid);
setVotedUsers(voted);
}
}
/**
* Check.
*/
public void check() {
if (getTotalVotes() >= getVotesRequired()) {
setTotalVotes(getTotalVotes() - getVotesRequired());
VotePartyEvent event = new VotePartyEvent();
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
MiscUtils.getInstance().broadcast(SpecialRewardsConfig.getInstance().getVotePartyBroadcast());
giveRewards();
if (SpecialRewardsConfig.getInstance().getVotePartyIncreaseVotesRquired() > 0) {
ServerData.getInstance().setVotePartyExtraRequired(ServerData.getInstance().getVotePartyExtraRequired()
+ SpecialRewardsConfig.getInstance().getVotePartyIncreaseVotesRquired());
}
}
}
/**
* Command vote party.
*
* @param sender
* the sender
*/
public void commandVoteParty(CommandSender sender) {
if (SpecialRewardsConfig.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(StringParser.getInstance().colorize("&cVoteParty not enabled"));
}
}
/**
* Gets the needed votes.
*
* @return the needed votes
*/
public int getNeededVotes() {
int votesRequired = getVotesRequired();
int votes = getTotalVotes();
int neededVotes = votesRequired - votes;
return neededVotes;
}
/**
* Gets the total votes.
*
* @return the total votes
*/
public int getTotalVotes() {
return ServerData.getInstance().getData().getInt("VoteParty.Total");
}
/**
* Gets the voted users.
*
* @return the voted users
*/
@SuppressWarnings("unchecked")
public ArrayList<String> getVotedUsers() {
ArrayList<String> list = (ArrayList<String>) ServerData.getInstance().getData().getList("VoteParty.Voted");
if (list != null) {
return list;
}
return new ArrayList<String>();
}
public int getVotesRequired() {
int required = SpecialRewardsConfig.getInstance().getVotePartyVotesRequired();
int extra = ServerData.getInstance().getVotePartyExtraRequired();
if (extra > 0) {
return required + extra;
}
return required;
}
public void giveReward(User user) {
if (SpecialRewardsConfig.getInstance().getVotePartyUserVotesRequired() > 0) {
if (user.getVotePartyVotes() < SpecialRewardsConfig.getInstance().getVotePartyUserVotesRequired()) {
return;
}
}
giveReward(user, user.isOnline());
}
public void giveReward(User user, boolean online) {
new RewardBuilder(SpecialRewardsConfig.getInstance().getData(),
SpecialRewardsConfig.getInstance().getVotePartyRewardsPath()).setOnline(online)
.withPlaceHolder("VotesRequired",
"" + SpecialRewardsConfig.getInstance().getVotePartyVotesRequired())
.send(user);
}
/**
* Give rewards.
*/
public void giveRewards() {
for (final String cmd : SpecialRewardsConfig.getInstance().getVotePartyCommands()) {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
}
if (SpecialRewardsConfig.getInstance().getVotePartyGiveAllPlayers()) {
plugin.debug("Trying to give all players vote party");
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
}
} else {
plugin.debug("Trying to give all online players vote party");
plugin.debug(ArrayUtils.getInstance().makeStringList(getVotedUsers()));
for (String uuid : getVotedUsers()) {
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
giveReward(user);
}
}
reset();
}
@EventHandler
public void onDayChange(DayChangeEvent event) {
if (SpecialRewardsConfig.getInstance().getVotePartyResetEachDay()) {
reset();
}
}
@EventHandler
public void onMonthChange(MonthChangeEvent event) {
if (SpecialRewardsConfig.getInstance().getVotePartyResetMontly()) {
reset();
}
if (SpecialRewardsConfig.getInstance().isVotePartyResetExtraVotesMonthly()) {
ServerData.getInstance().setVotePartyExtraRequired(0);
}
}
public void register() {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
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);
}
}
}
/**
* Sets the total votes.
*
* @param value
* the new total votes
*/
public void setTotalVotes(int value) {
ServerData.getInstance().getData().set("VoteParty.Total", value);
ServerData.getInstance().saveData();
}
/**
* Sets the voted users.
*
* @param value
* the new voted users
*/
public void setVotedUsers(ArrayList<String> value) {
ServerData.getInstance().getData().set("VoteParty.Voted", value);
ServerData.getInstance().saveData();
}
public synchronized void vote(User user, boolean realVote) {
if (SpecialRewardsConfig.getInstance().getVotePartyEnabled()) {
if (SpecialRewardsConfig.getInstance().getVotePartyCountFakeVotes() || realVote) {
addTotal(user);
addVotePlayer(user);
check();
}
}
}
}
@@ -1,127 +0,0 @@
package com.Ben12345rocks.VotingPlugin.VoteReminding;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardBuilder;
import com.Ben12345rocks.AdvancedCore.Util.Misc.PlayerUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
// TODO: Auto-generated Javadoc
/**
* The Class VoteReminding.
*/
public class VoteReminding {
/** The instance. */
static VoteReminding instance = new VoteReminding();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of VoteReminding.
*
* @return single instance of VoteReminding
*/
public static VoteReminding getInstance() {
return instance;
}
/**
* Instantiates a new vote reminding.
*/
private VoteReminding() {
}
/**
* Instantiates a new vote reminding.
*
* @param plugin
* the plugin
*/
public VoteReminding(Main plugin) {
VoteReminding.plugin = plugin;
}
/**
* Check remind.
*
* @param user
* the user
*/
public void checkRemind(User user) {
String playerName = user.getPlayerName();
if (PlayerUtils.getInstance().hasServerPermission(playerName, "VotingPlugin.Login.RemindVotes")
|| PlayerUtils.getInstance().hasServerPermission(playerName, "VotingPlugin.Player")) {
if (user.canVoteAll() || (user.canVoteAny() && user.hasPermission("VotingPlugin.Login.RemindVotes.Any"))) {
Player player = Bukkit.getPlayer(playerName);
if (player != null) {
if (!Config.getInstance().getVoteRemindingRemindOnlyOnce()) {
runRemind(user);
user.setReminded(true);
} else if (!user.isReminded()) {
runRemind(user);
user.setReminded(true);
}
}
}
}
}
private void giveReward(User user) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getVoteRemindingRewardsPath())
.setGiveOffline(false).send(user);
}
/**
* Load remind checking.
*/
public void loadRemindChecking() {
Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
User user = UserManager.getInstance().getVotingPluginUser(player);
checkRemind(user);
}
}
}, 10, Config.getInstance().getVoteRemindingRemindDelay() * 20 * 60);
}
/**
* Run remind.
*
* @param user
* the user
*/
public void runRemind(User user) {
if (Config.getInstance().getVoteRemindingEnabled() && user.canVoteAll() && user.shouldBeReminded()) {
user.setReminded(true);
giveReward(user);
plugin.debug(user.getPlayerName() + " was reminded!");
}
}
public void runRemindLogin(User user) {
if (Config.getInstance().getVoteRemindingEnabled()
&& (!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!");
}
}
}
@@ -1,31 +0,0 @@
package com.Ben12345rocks.VotingPlugin;
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInject;
import com.Ben12345rocks.AdvancedCore.Rewards.InjectedRequirement.RequirementInject;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VotingPluginHooks {
private static VotingPluginHooks instance = new VotingPluginHooks();
public static VotingPluginHooks getInstance() {
return instance;
}
public void addCustomRequirement(RequirementInject inject) {
RewardHandler.getInstance().addInjectedRequirements(inject);
}
public void addCustomReward(RewardInject inject) {
RewardHandler.getInstance().addInjectedReward(inject);
}
public Main getMainClass() {
return Main.plugin;
}
public UserManager getUserManager() {
return UserManager.getInstance();
}
}
@@ -1,553 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import com.Ben12345rocks.AdvancedCore.UserStorage.sql.Column;
import com.Ben12345rocks.AdvancedCore.UserStorage.sql.DataType;
import com.Ben12345rocks.AdvancedCore.Util.Encryption.EncryptionHandler;
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.ClientHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketHandler;
import com.Ben12345rocks.AdvancedCore.Util.Sockets.SocketReceiver;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.vexsoftware.votifier.bungee.events.VotifierEvent;
import com.vexsoftware.votifier.model.Vote;
import lombok.Getter;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.api.event.ServerConnectedEvent;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.event.EventHandler;
public class Bungee extends Plugin implements net.md_5.bungee.api.plugin.Listener {
@Getter
private Config config;
@Getter
private BungeeMySQL mysql;
private SocketHandler socketHandler;
private HashMap<String, ClientHandler> clientHandles;
private EncryptionHandler encryptionHandler;
@Getter
private BungeeMethod method;
private HashMap<String, ArrayList<OfflineBungeeVote>> cachedVotes = new HashMap<String, ArrayList<OfflineBungeeVote>>();
private HashMap<String, ArrayList<OfflineBungeeVote>> cachedOnlineVotes = new HashMap<String, ArrayList<OfflineBungeeVote>>();
private VoteCache voteCacheFile;
public void checkCachedVotes(String server) {
if (getProxy().getServerInfo(server) != null) {
if (!getProxy().getServerInfo(server).getPlayers().isEmpty()) {
if (cachedVotes.containsKey(server)) {
ArrayList<OfflineBungeeVote> c = cachedVotes.get(server);
if (!c.isEmpty()) {
for (OfflineBungeeVote cache : c) {
sendPluginMessageServer(server, "Vote", cache.getPlayerName(), cache.getUuid(),
cache.getService(), "" + cache.getTime(), Boolean.FALSE.toString(),
"" + cache.isRealVote());
}
cachedVotes.put(server, new ArrayList<OfflineBungeeVote>());
}
}
}
}
}
public void checkOnlineVotes(ProxiedPlayer player, String uuid) {
if (player != null && player.isConnected() && cachedOnlineVotes.containsKey(uuid)) {
ArrayList<OfflineBungeeVote> c = cachedOnlineVotes.get(uuid);
if (!c.isEmpty()) {
for (OfflineBungeeVote cache : c) {
sendPluginMessageServer(getProxy().getPlayer(UUID.fromString(uuid)).getServer().getInfo().getName(),
"VoteOnline", cache.getPlayerName(), cache.getUuid(), cache.getService(),
"" + cache.getTime(), Boolean.FALSE.toString(), "" + cache.isRealVote());
}
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
}
}
}
public void debug(String msg) {
if (config.getDebug()) {
getLogger().info("Debug: " + msg);
}
}
public UUID fetchUUID(String playerName) throws Exception {
// Get response from Mojang API
URL url = new URL("https://api.mojang.com/users/profiles/minecraft/" + playerName);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
if (connection.getResponseCode() == 400) {
getProxy().getLogger().info("There is no player with the name \"" + playerName + "\"!");
return null;
}
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
// Parse JSON response and get UUID
JsonElement element = new JsonParser().parse(bufferedReader);
JsonObject object = element.getAsJsonObject();
String uuidAsString = object.get("id").getAsString();
// Return UUID
return parseUUIDFromString(uuidAsString);
}
public String getProperName(String uuid, String currentName) {
ProxiedPlayer p = getProxy().getPlayer(UUID.fromString(uuid));
if (p != null && p.isConnected()) {
return p.getName();
}
return currentName;
}
public String getUUID(String playerName) {
ProxiedPlayer p = getProxy().getPlayer(playerName);
if (p != null && p.isConnected()) {
return p.getUniqueId().toString();
}
String str = mysql.getUUID(playerName);
if (str != null) {
return str;
}
return "";
}
@Override
public void onDisable() {
if (method.equals(BungeeMethod.PLUGINMESSAGING)) {
for (Entry<String, ArrayList<OfflineBungeeVote>> entry : cachedVotes.entrySet()) {
String server = entry.getKey();
int num = 0;
for (OfflineBungeeVote voteData : entry.getValue()) {
voteCacheFile.addVote(server, num, voteData);
num++;
}
}
for (Entry<String, ArrayList<OfflineBungeeVote>> entry : cachedOnlineVotes.entrySet()) {
String name = entry.getKey();
int num = 0;
for (OfflineBungeeVote voteData : entry.getValue()) {
voteCacheFile.addVoteOnline(name, num, voteData);
num++;
}
}
}
}
@Override
public void onEnable() {
getProxy().getPluginManager().registerListener(this, this);
config = new Config(this);
config.load();
mysql = new BungeeMySQL("VotingPlugin_Users", config.getData());
// column types
getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
getMysql().alterColumnType("CheckWorld", "VARCHAR(5)");
getMysql().alterColumnType("Reminded", "VARCHAR(5)");
getMysql().alterColumnType("DisableBroadcast", "VARCHAR(5)");
getMysql().alterColumnType("LastOnline", "VARCHAR(20)");
getMysql().alterColumnType("PlayerName", "VARCHAR(30)");
getMysql().alterColumnType("DailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("WeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("DayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestDayVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("WeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("BestWeekVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("VotePartyVotes", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthVoteStreak", "INT DEFAULT '0'");
getMysql().alterColumnType("Points", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestDailyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("AllTimeTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestMonthlyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("MilestoneCount", "INT DEFAULT '0'");
getMysql().alterColumnType("MonthTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("HighestWeeklyTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
getMysql().alterColumnType("OfflineRewards", "MEDIUMTEXT");
getProxy().getPluginManager().registerCommand(this, new VotingPluginBungeeCommand(this));
method = BungeeMethod.getByName(config.getBungeeMethod());
if (method.equals(BungeeMethod.MYSQL)) {
this.getProxy().registerChannel("VotingPlugin:VotingPlugin".toLowerCase());
} else if (method.equals(BungeeMethod.PLUGINMESSAGING)) {
voteCacheFile = new VoteCache(this);
voteCacheFile.load();
try {
for (String server : voteCacheFile.getServers()) {
ArrayList<OfflineBungeeVote> vote = new ArrayList<OfflineBungeeVote>();
for (String num : voteCacheFile.getServerVotes(server)) {
Configuration data = voteCacheFile.getServerVotes(server, num);
vote.add(new OfflineBungeeVote(data.getString("Name"), data.getString("UUID"),
data.getString("Service"), data.getLong("Time"), data.getBoolean("Real")));
}
cachedVotes.put(server, vote);
}
} catch (Exception e) {
e.printStackTrace();
}
try {
for (String player : voteCacheFile.getPlayers()) {
ArrayList<OfflineBungeeVote> vote = new ArrayList<OfflineBungeeVote>();
for (String num : voteCacheFile.getServerVotes(player)) {
Configuration data = voteCacheFile.getOnlineVotes(player, num);
vote.add(new OfflineBungeeVote(data.getString("Name"), data.getString("UUID"),
data.getString("Service"), data.getLong("Time"), data.getBoolean("Real")));
}
cachedOnlineVotes.put(player, vote);
}
} catch (Exception e) {
e.printStackTrace();
}
voteCacheFile.clearData();
getProxy().getScheduler().schedule(this, new Runnable() {
@Override
public void run() {
for (String server : cachedVotes.keySet()) {
checkCachedVotes(server);
}
for (String player : cachedOnlineVotes.keySet()) {
checkOnlineVotes(getProxy().getPlayer(UUID.fromString(player)), player);
}
}
}, 15l, TimeUnit.SECONDS);
this.getProxy().registerChannel("VotingPlugin:VotingPlugin".toLowerCase());
} else if (method.equals(BungeeMethod.SOCKETS)) {
encryptionHandler = new EncryptionHandler(new File(getDataFolder(), "secretkey.key"));
socketHandler = new SocketHandler(getDescription().getVersion(), config.getBungeeHost(),
config.getBungeePort(), encryptionHandler, config.getDebug());
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 1) {
if (data.length > 2) {
if (data[0].equalsIgnoreCase("Broadcast")) {
sendServerMessage(data);
}
}
}
}
});
socketHandler.add(new SocketReceiver() {
@Override
public void onReceive(String[] data) {
if (data.length > 1) {
if (data[0].equalsIgnoreCase("StatusOkay")) {
String server = data[1];
getLogger().info("Voting communicaton okay with " + server);
}
}
}
});
clientHandles = new HashMap<String, ClientHandler>();
List<String> l = config.getBlockedServers();
for (String s : config.getSpigotServers()) {
if (!l.contains(s)) {
Configuration d = config.getSpigotServerConfiguration(s);
clientHandles.put(s, new ClientHandler(d.getString("Host", ""), d.getInt("Port", 1298),
encryptionHandler, config.getDebug()));
}
}
}
getLogger().info("VotingPlugin loaded, using method: " + method.toString());
}
@EventHandler
public void onPluginMessage(PluginMessageEvent ev) {
if (!ev.getTag().equals("VotingPlugin:VotingPlugin".toLowerCase())) {
return;
}
ByteArrayInputStream instream = new ByteArrayInputStream(ev.getData());
DataInputStream in = new DataInputStream(instream);
try {
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(outstream);
String subchannel = in.readUTF();
int size = in.readInt();
out.writeUTF(subchannel);
out.writeInt(size);
for (int i = 0; i < size; i++) {
out.writeUTF(in.readUTF());
}
for (String send : getProxy().getServers().keySet()) {
if (getProxy().getServers().get(send).getPlayers().size() > 0) {
getProxy().getServers().get(send).sendData("VotingPlugin:VotingPlugin".toLowerCase(),
outstream.toByteArray());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@EventHandler
public void onServerConnected(ServerConnectedEvent event) {
final String server = event.getServer().getInfo().getName();
final String uuid = event.getPlayer().getUniqueId().toString();
getProxy().getScheduler().schedule(this, new Runnable() {
@Override
public void run() {
checkCachedVotes(server);
checkOnlineVotes(event.getPlayer(), uuid);
}
}, 2, TimeUnit.SECONDS);
}
@EventHandler
public void onVote(VotifierEvent event) {
Vote vote = event.getVote();
getLogger().info("Vote received " + vote.getUsername() + " from service site " + vote.getServiceName());
vote(vote.getUsername(), vote.getServiceName(), true);
}
private UUID parseUUIDFromString(String uuidAsString) {
String[] parts = { "0x" + uuidAsString.substring(0, 8), "0x" + uuidAsString.substring(8, 12),
"0x" + uuidAsString.substring(12, 16), "0x" + uuidAsString.substring(16, 20),
"0x" + uuidAsString.substring(20, 32) };
long mostSigBits = Long.decode(parts[0]).longValue();
mostSigBits <<= 16;
mostSigBits |= Long.decode(parts[1]).longValue();
mostSigBits <<= 16;
mostSigBits |= Long.decode(parts[2]).longValue();
long leastSigBits = Long.decode(parts[3]).longValue();
leastSigBits <<= 48;
leastSigBits |= Long.decode(parts[4]).longValue();
return new UUID(mostSigBits, leastSigBits);
}
public void reload() {
config.load();
}
public void sendPluginMessageServer(String server, String channel, String... messageData) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF(channel);
out.writeInt(messageData.length);
for (String message : messageData) {
out.writeUTF(message);
}
if (getProxy().getServers().get(server).getPlayers().size() > 0) {
getProxy().getServers().get(server).sendData("VotingPlugin:VotingPlugin".toLowerCase(),
byteOutStream.toByteArray(), false);
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
debug("Sending plugin message " + server + " " + channel + " "
+ ArrayUtils.getInstance().makeStringList(ArrayUtils.getInstance().convert(messageData)));
}
public void sendServerMessage(String... messageData) {
for (ClientHandler h : clientHandles.values()) {
h.sendMessage(messageData);
}
}
public void sendServerMessageServer(String server, String... messageData) {
if (clientHandles.containsKey(server)) {
clientHandles.get(server).sendMessage(messageData);
}
}
public void sendSocketVote(String name, String service) {
String uuid = getUUID(name);
if (config.getSendVotesToAllServers()) {
sendServerMessage("bungeevote", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
} else {
// online server only
ProxiedPlayer p = getProxy().getPlayer(name);
String server = "";
if (p != null && p.isConnected()) {
server = p.getServer().getInfo().getName();
} else {
server = config.getFallBack();
}
if (config.getBlockedServers().contains(server)) {
server = config.getFallBack();
}
sendServerMessageServer(server, "bungeevoteonline", uuid, name, service);
if (config.getBroadcast()) {
sendServerMessage("BungeeBroadcast", service, uuid, name);
}
sendServerMessage("BungeeUpdate");
}
}
public void status(CommandSender sender) {
sendServerMessage("status");
}
public void vote(String player, String service, boolean realVote) {
if (player == null || player.isEmpty()) {
getLogger().info("No name from vote on " + service);
return;
}
if (method.equals(BungeeMethod.SOCKETS)) {
sendSocketVote(player, service);
} else if (method.equals(BungeeMethod.PLUGINMESSAGING)) {
String uuid = getUUID(player);
if (uuid.isEmpty()) {
UUID u = null;
try {
u = fetchUUID(player);
} catch (Exception e) {
e.printStackTrace();
}
if (u == null) {
debug("Failed to get uuid for " + player);
return;
}
uuid = u.toString();
}
player = getProperName(uuid, player);
if (!mysql.getUuids().contains(uuid)) {
mysql.update(uuid, "PlayerName", player, DataType.STRING);
}
// add totals here
ArrayList<Column> data = mysql.getExactQuery(new Column("uuid", uuid, DataType.STRING));
for (Column d : data) {
if (d.getName().equalsIgnoreCase("alltimetotal") || d.getName().equalsIgnoreCase("monthtotal")
|| d.getName().equalsIgnoreCase("weeklytotal") || d.getName().equalsIgnoreCase("dailytotal")
|| d.getName().equalsIgnoreCase("Points") || d.getName().equalsIgnoreCase("MilestoneCount")) {
Object value = d.getValue();
int num = 0;
if (value instanceof Integer) {
try {
num = (int) value;
} catch (ClassCastException | NullPointerException ex) {
}
} else if (value instanceof String) {
try {
num = Integer.parseInt((String) value);
} catch (Exception e) {
}
}
mysql.update(uuid, d.getName(), num + 1, DataType.STRING);
debug("Setting " + d.getName() + " to " + (num + 1));
}
}
long time = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
if (config.getSendVotesToAllServers()) {
for (String s : getProxy().getServers().keySet()) {
if (!config.getBlockedServers().contains(s)) {
ServerInfo info = getProxy().getServerInfo(s);
if (info.getPlayers().isEmpty()) {
// cache
if (!cachedVotes.containsKey(s)) {
cachedVotes.put(s, new ArrayList<OfflineBungeeVote>());
}
ArrayList<OfflineBungeeVote> list = cachedVotes.get(s);
list.add(new OfflineBungeeVote(player, uuid, service, time, realVote));
cachedVotes.put(s, list);
debug("Caching vote for " + player + " on " + service + " for " + s);
} else {
// send
sendPluginMessageServer(s, "Vote", player, uuid, service, "" + time,
Boolean.TRUE.toString(), "" + realVote);
}
}
}
} else {
ProxiedPlayer p = getProxy().getPlayer(UUID.fromString(uuid));
if (p != null && p.isConnected()) {
sendPluginMessageServer(p.getServer().getInfo().getName(), "VoteOnline", player, uuid, service,
"" + time, Boolean.TRUE.toString(), "" + realVote);
} else {
if (!cachedOnlineVotes.containsKey(uuid)) {
cachedOnlineVotes.put(uuid, new ArrayList<OfflineBungeeVote>());
}
ArrayList<OfflineBungeeVote> list = cachedOnlineVotes.get(uuid);
if (list == null) {
list = new ArrayList<OfflineBungeeVote>();
}
list.add(new OfflineBungeeVote(player, uuid, service, time, realVote));
cachedOnlineVotes.put(uuid, list);
debug("Caching online vote for " + player + " on " + service);
}
}
}
}
}
@@ -1,14 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
public enum BungeeMethod {
SOCKETS, PLUGINMESSAGING, MYSQL;
public static BungeeMethod getByName(String str) {
for (BungeeMethod method : values()) {
if (method.toString().equalsIgnoreCase(str)) {
return method;
}
}
return SOCKETS;
}
}
@@ -1,468 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.Ben12345rocks.AdvancedCore.UserStorage.mysql.api.queries.Query;
import com.Ben12345rocks.AdvancedCore.UserStorage.sql.Column;
import com.Ben12345rocks.AdvancedCore.UserStorage.sql.DataType;
import net.md_5.bungee.config.Configuration;
public class BungeeMySQL {
private com.Ben12345rocks.AdvancedCore.UserStorage.mysql.api.MySQL mysql;
private List<String> columns = Collections.synchronizedList(new ArrayList<String>());
// private HashMap<String, ArrayList<Column>> table;
// ConcurrentMap<String, ArrayList<Column>> table = new
// ConcurrentHashMap<String, ArrayList<Column>>();
private String name;
private Set<String> uuids = Collections.synchronizedSet(new HashSet<String>());
private Object object2 = new Object();
private Object object3 = new Object();
private Object object4 = new Object();
private List<String> intColumns = new ArrayList<String>();
public BungeeMySQL(String tableName, Configuration section) {
String tablePrefix = section.getString("Prefix");
String hostName = section.getString("Host");
int port = section.getInt("Port");
String user = section.getString("Username");
String pass = section.getString("Password");
String database = section.getString("Database");
long lifeTime = section.getLong("MaxLifeTime", -1);
int maxThreads = section.getInt("MaxConnections", 1);
String str = section.getString("Line", "");
if (maxThreads < 1) {
maxThreads = 1;
}
boolean useSSL = section.getBoolean("UseSSL", false);
if (!section.getString("Name", "").isEmpty()) {
tableName = section.getString("Name", "");
}
name = tableName;
if (tablePrefix != null) {
name = tablePrefix + tableName;
}
mysql = new com.Ben12345rocks.AdvancedCore.UserStorage.mysql.api.MySQL(maxThreads);
if (!mysql.connect(hostName, "" + port, user, pass, database, useSSL, lifeTime, str)) {
}
try {
Query q = new Query(mysql, "USE " + database + ";");
q.executeUpdateAsync();
} catch (SQLException e) {
e.printStackTrace();
}
String sql = "CREATE TABLE IF NOT EXISTS " + getName() + " (";
sql += "uuid VARCHAR(37),";
sql += "PRIMARY KEY ( uuid )";
sql += ");";
Query query;
try {
query = new Query(mysql, sql);
query.executeUpdateAsync();
} catch (SQLException e) {
e.printStackTrace();
}
loadData();
// tempoary to improve performance from old tables
// addToQue("ALTER TABLE " + getName() + " MODIFY uuid VARCHAR(37);");
alterColumnType("uuid", "VARCHAR(37)");
}
public void addColumn(String column, DataType dataType) {
synchronized (object3) {
String sql = "ALTER TABLE " + getName() + " ADD COLUMN " + column + " text" + ";";
try {
Query query = new Query(mysql, sql);
query.executeUpdate();
getColumns().add(column);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void alterColumnType(String column, String newType) {
checkColumn(column, DataType.STRING);
if (newType.contains("INT")) {
try {
new Query(mysql, "UPDATE " + getName() + " SET " + column + " = '0' where trim(coalesce(" + column
+ ", '')) = '';").executeUpdateAsync();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
;
if (!intColumns.contains(column)) {
intColumns.add(column);
}
}
try {
new Query(mysql, "ALTER TABLE " + getName() + " MODIFY " + column + " " + newType + ";")
.executeUpdateAsync();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void checkColumn(String column, DataType dataType) {
synchronized (object4) {
if (!getColumns().contains(column)) {
if (!getColumnsQueury().contains(column)) {
addColumn(column, dataType);
}
}
}
}
public void clearCache() {
clearCacheBasic();
}
public void clearCacheBasic() {
columns.clear();
columns.addAll(getColumnsQueury());
uuids.clear();
uuids.addAll(getUuidsQuery());
}
public void close() {
mysql.disconnect();
}
public boolean containsKeyQuery(String index) {
String sqlStr = "SELECT uuid FROM " + getName() + ";";
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement(sqlStr);
rs = sql.executeQuery();
/*
* Query query = new Query(mysql, sql);
* ResultSet rs = query.executeQuery();
*/
while (rs.next()) {
if (rs.getString("uuid").equals(index)) {
sql.close();
conn.close();
return true;
}
}
sql.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return false;
}
public List<String> getColumns() {
if (columns == null || columns.size() == 0) {
loadData();
}
return columns;
}
public ArrayList<String> getColumnsQueury() {
ArrayList<String> columns = new ArrayList<String>();
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement("SELECT * FROM " + getName() + ";");
rs = sql.executeQuery();
/*
* Query query = new Query(mysql, "SELECT * FROM " + getName() + ";");
* ResultSet rs = query.executeQuery();
*/
ResultSetMetaData metadata = rs.getMetaData();
int columnCount = 0;
if (metadata != null) {
columnCount = metadata.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
String columnName = metadata.getColumnName(i);
columns.add(columnName);
}
sql.close();
conn.close();
return columns;
}
sql.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return columns;
}
public ArrayList<Column> getExactQuery(Column column) {
ArrayList<Column> result = new ArrayList<>();
String query = "SELECT * FROM " + getName() + " WHERE `" + column.getName() + "`='"
+ column.getValue().toString() + "';";
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement(query);
rs = sql.executeQuery();
/*
* Query sql = new Query(mysql, query);
* sql.setParameter(1, column.getValue().toString());
* ResultSet rs = sql.executeQuery();
*/
if (rs.next()) {
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
String columnName = rs.getMetaData().getColumnLabel(i);
Column rCol = null;
if (intColumns.contains(columnName)) {
rCol = new Column(columnName, DataType.INTEGER);
} else {
rCol = new Column(columnName, DataType.STRING);
}
// System.out.println(i + " " +
// rs.getMetaData().getColumnLabel(i));
rCol.setValue(rs.getString(i));
// System.out.println(rCol.getValue());
result.add(rCol);
}
}
sql.close();
conn.close();
return result;
} catch (SQLException e) {
e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e) {
}
for (String col : getColumns()) {
result.add(new Column(col, DataType.STRING));
}
return result;
}
public String getName() {
return name;
}
public ArrayList<String> getNamesQuery() {
ArrayList<String> uuids = new ArrayList<String>();
checkColumn("PlayerName", DataType.STRING);
ArrayList<Column> rows = getRowsNameQuery();
if (rows != null) {
for (Column c : rows) {
uuids.add((String) c.getValue());
}
}
return uuids;
}
public ArrayList<Column> getRowsNameQuery() {
ArrayList<Column> result = new ArrayList<Column>();
String sqlStr = "SELECT PlayerName FROM " + getName() + ";";
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement(sqlStr);
rs = sql.executeQuery();
/*
* Query query = new Query(mysql, sql);
* ResultSet rs = query.executeQuery();
*/
while (rs.next()) {
Column rCol = new Column("PlayerName", rs.getString("PlayerName"), DataType.STRING);
result.add(rCol);
}
sql.close();
conn.close();
} catch (SQLException e) {
}
return result;
}
public ArrayList<Column> getRowsQuery() {
ArrayList<Column> result = new ArrayList<Column>();
String sqlStr = "SELECT uuid FROM " + getName() + ";";
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement(sqlStr);
rs = sql.executeQuery();
/*
* Query query = new Query(mysql, sql);
* ResultSet rs = query.executeQuery();
*/
while (rs.next()) {
Column rCol = new Column("uuid", rs.getString("uuid"), DataType.STRING);
result.add(rCol);
}
sql.close();
conn.close();
} catch (SQLException e) {
return null;
}
return result;
}
public String getUUID(String playerName) {
String query = "SELECT uuid FROM " + getName() + " WHERE " + "PlayerName" + "='" + playerName + "';";
try {
ResultSet rs = null;
Connection conn = mysql.getConnectionManager().getConnection();
PreparedStatement sql = conn.prepareStatement(query);
rs = sql.executeQuery();
/*
* Query sql = new Query(mysql, query);
* ResultSet rs = sql.executeQuery();
*/
if (rs.next()) {
String uuid = rs.getString("uuid");
if (uuid != null && !uuid.isEmpty()) {
sql.close();
conn.close();
return uuid;
}
}
sql.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e) {
}
return null;
}
public Set<String> getUuids() {
if (uuids == null || uuids.size() == 0) {
uuids.clear();
uuids.addAll(getUuidsQuery());
return uuids;
}
return uuids;
}
public ArrayList<String> getUuidsQuery() {
ArrayList<String> uuids = new ArrayList<String>();
ArrayList<Column> rows = getRowsQuery();
for (Column c : rows) {
uuids.add((String) c.getValue());
}
return uuids;
}
public void insert(String index, String column, Object value, DataType dataType) {
insertQuery(index, column, value, dataType);
}
public void insertQuery(String index, String column, Object value, DataType dataType) {
synchronized (object2) {
String query = "INSERT " + getName() + " ";
query += "set uuid='" + index + "', ";
query += column + "='" + value.toString() + "';";
// AdvancedCorePlugin.getInstance().extraDebug(query);
try {
uuids.add(index);
new Query(mysql, query).executeUpdateAsync();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public boolean isIntColumn(String key) {
return intColumns.contains(key);
}
public void loadData() {
columns = getColumnsQueury();
try {
Connection con = mysql.getConnectionManager().getConnection();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void update(String index, String column, Object value, DataType dataType) {
checkColumn(column, dataType);
if (getUuids().contains(index)) {
synchronized (object2) {
String query = "UPDATE " + getName() + " SET ";
if (dataType == DataType.STRING) {
query += column + "='" + value.toString() + "'";
} else {
query += column + "=" + value;
}
query += " WHERE `uuid`=";
query += "'" + index + "';";
try {
Query q = new Query(mysql, query);
q.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
} else {
insert(index, column, value, dataType);
}
}
}
@@ -1,99 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Collection;
import java.util.List;
import lombok.Getter;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
public class Config {
private Bungee bungee;
@Getter
private Configuration data;
public Config(Bungee bungee) {
this.bungee = bungee;
}
public List<String> getBlockedServers() {
return getData().getStringList("BlockedServers");
}
public boolean getBroadcast() {
return getData().getBoolean("Broadcast", false);
}
public String getBungeeHost() {
return getData().getString("BungeeServer.Host", "");
}
public String getBungeeMethod() {
return getData().getString("BungeeMethod", "SOCKETS");
}
public int getBungeePort() {
return getData().getInt("BungeeServer.Port", 1297);
}
public boolean getDebug() {
return getData().getBoolean("Debug", false);
}
public String getFallBack() {
return getData().getString("FallBackServer", "");
}
public boolean getSendToOnlineServer() {
return getData().getBoolean("SendToOnlineServer");
}
public boolean getSendVotesToAllServers() {
return getData().getBoolean("SendVotesToAllServers");
}
public Configuration getSpigotServerConfiguration(String s) {
return getData().getSection("SpigotServers." + s);
}
public Collection<String> getSpigotServers() {
return getData().getSection("SpigotServers").getKeys();
}
public void load() {
if (!bungee.getDataFolder().exists()) {
bungee.getDataFolder().mkdir();
}
File file = new File(bungee.getDataFolder(), "bungeeconfig.yml");
if (!file.exists()) {
try (InputStream in = bungee.getResourceAsStream("bungeeconfig.yml")) {
Files.copy(in, file.toPath());
} catch (IOException e) {
e.printStackTrace();
}
}
try {
data = ConfigurationProvider.getProvider(YamlConfiguration.class)
.load(new File(bungee.getDataFolder(), "bungeeconfig.yml"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void save() {
try {
ConfigurationProvider.getProvider(YamlConfiguration.class).save(data,
new File(bungee.getDataFolder(), "bungeeconfig.yml"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
@@ -1,26 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import lombok.Getter;
public class OfflineBungeeVote {
@Getter
private String playerName;
@Getter
private String uuid;
@Getter
private String service;
@Getter
private long time;
@Getter
private boolean realVote;
public OfflineBungeeVote(String playerName, String uuid, String service, long time, boolean realVote) {
this.playerName = playerName;
this.uuid = uuid;
this.service = service;
this.time = time;
this.realVote = realVote;
}
}
@@ -1,102 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import lombok.Getter;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
public class VoteCache {
private Bungee bungee;
@Getter
private Configuration data;
public VoteCache(Bungee bungee) {
this.bungee = bungee;
}
public void addVote(String server, int num, OfflineBungeeVote voteData) {
Configuration section = getData().getSection("VoteCache." + server + "." + num);
section.set("Name", voteData.getPlayerName());
section.set("Service", voteData.getService());
section.set("UUID", voteData.getUuid());
section.set("Time", voteData.getTime());
section.set("Real", voteData.isRealVote());
save();
}
public void addVoteOnline(String player, int num, OfflineBungeeVote voteData) {
Configuration section = getData().getSection("OnlineCache." + player + "." + num);
section.set("Name", voteData.getPlayerName());
section.set("Service", voteData.getService());
section.set("UUID", voteData.getUuid());
section.set("Time", voteData.getTime());
section.set("Real", voteData.isRealVote());
save();
}
public void clearData() {
getData().set("VoteCache", null);
getData().set("OnlineCache", null);
save();
}
public Collection<String> getOnlineVotes(String name) {
return getData().getSection("OnlineCache." + name).getKeys();
}
public Configuration getOnlineVotes(String name, String num) {
return getData().getSection("OnlineCache." + name + "." + num);
}
public Collection<String> getPlayers() {
return getData().getSection("OnlineCache").getKeys();
}
public Collection<String> getServers() {
return getData().getSection("VoteCache").getKeys();
}
public Collection<String> getServerVotes(String server) {
return getData().getSection("VoteCache." + server).getKeys();
}
public Configuration getServerVotes(String server, String num) {
return getData().getSection("VoteCache." + server + "." + num);
}
public void load() {
if (!bungee.getDataFolder().exists()) {
bungee.getDataFolder().mkdir();
}
File file = new File(bungee.getDataFolder(), "votecache.yml");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
data = ConfigurationProvider.getProvider(YamlConfiguration.class)
.load(new File(bungee.getDataFolder(), "votecache.yml"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void save() {
try {
ConfigurationProvider.getProvider(YamlConfiguration.class).save(data,
new File(bungee.getDataFolder(), "votecache.yml"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
@@ -1,52 +0,0 @@
package com.Ben12345rocks.VotingPlugin.bungee;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.plugin.Command;
public class VotingPluginBungeeCommand extends Command {
private Bungee bungee;
public VotingPluginBungeeCommand(Bungee bungee) {
super("votingpluginbungee", "votingplugin.admin");
this.bungee = bungee;
}
@Override
public void execute(CommandSender sender, String[] args) {
if (sender.hasPermission("votingplugin.admin")) {
if (args.length > 0) {
if (args[0].equalsIgnoreCase("reload")) {
bungee.reload();
sender.sendMessage(new TextComponent("Reloading VotingPluginBungee"));
}
if (args[0].equalsIgnoreCase("vote")) {
if (args.length >= 2) {
String user = args[1];
String site = args[2];
bungee.vote(user, site, false);
sender.sendMessage(new TextComponent("Sending vote"));
}
}
if (args[0].equalsIgnoreCase("status")) {
if (bungee.getMethod().equals(BungeeMethod.SOCKETS)) {
sender.sendMessage(new TextComponent(
"Checking status, waiting for response, check console, only for socket method"));
bungee.status(sender);
} else {
sender.sendMessage(new TextComponent("Not using socket method, command unavailable"));
}
}
if (args[0].equalsIgnoreCase("help")) {
TextComponent[] msg = new TextComponent[3];
msg[0] = new TextComponent("&avotingpluginbungee reload - Reload plugin");
msg[1] = new TextComponent("&avotingpluginbungee vote (player) (servicesite) - Send bungee vote");
msg[2] = new TextComponent("&avotingplugin status - Check socket connection status");
sender.sendMessage(msg);
}
}
} else {
sender.sendMessage(new TextComponent("You do not have permission to do this!"));
}
}
}
+398
View File
@@ -0,0 +1,398 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>All Classes and Interfaces (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-classes-index-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html#all-classes">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1>
</div>
<div id="all-classes-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab1', 2)" class="table-tab">Interfaces</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Classes</button><button id="all-classes-table-tab3" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab3', 2)" class="table-tab">Enums</button></div>
<div id="all-classes-table.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/AdminGUI.html" title="class in com.bencodez.votingplugin.commands.gui">AdminGUI</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVoteConfirmation.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVoteConfirmation</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/cumulative/AdminVoteCumulative.html" title="class in com.bencodez.votingplugin.commands.gui.admin.cumulative">AdminVoteCumulative</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/cumulative/AdminVoteCumulativeRemove.html" title="class in com.bencodez.votingplugin.commands.gui.admin.cumulative">AdminVoteCumulativeRemove</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVoteHelp.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVoteHelp</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/milestones/AdminVoteMilestoneRemove.html" title="class in com.bencodez.votingplugin.commands.gui.admin.milestones">AdminVoteMilestoneRemove</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/milestones/AdminVoteMilestones.html" title="class in com.bencodez.votingplugin.commands.gui.admin.milestones">AdminVoteMilestones</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVotePerms.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVotePerms</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVotePlaceholders.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVotePlaceholders</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVotePlaceholdersPlayer.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVotePlaceholdersPlayer</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/tabcompleter/AdminVoteTabCompleter.html" title="class in com.bencodez.votingplugin.commands.tabcompleter">AdminVoteTabCompleter</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class AdminVoteTabCompleter.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVoteVoteParty.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVoteVoteParty</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/AdminVoteVotePlayer.html" title="class in com.bencodez.votingplugin.commands.gui.admin">AdminVoteVotePlayer</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/voteshop/AdminVoteVoteShop.html" title="class in com.bencodez.votingplugin.commands.gui.admin.voteshop">AdminVoteVoteShop</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/voteshop/AdminVoteVoteShopItem.html" title="class in com.bencodez.votingplugin.commands.gui.admin.voteshop">AdminVoteVoteShopItem</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/voteshop/AdminVoteVoteShopItemRemove.html" title="class in com.bencodez.votingplugin.commands.gui.admin.voteshop">AdminVoteVoteShopItemRemove</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/admin/voteshop/AdminVoteVoteShopItems.html" title="class in com.bencodez.votingplugin.commands.gui.admin.voteshop">AdminVoteVoteShopItems</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/tabcompleter/AliasesTabCompleter.html" title="class in com.bencodez.votingplugin.commands.tabcompleter">AliasesTabCompleter</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class AliasesTabCompleter.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/BlockBreak.html" title="class in com.bencodez.votingplugin.listeners">BlockBreak</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class BlockBreak.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/broadcast/BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">bStats collects some data for plugin authors.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.AdvancedBarChart.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.AdvancedBarChart</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom advanced bar chart.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.AdvancedPie.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.AdvancedPie</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom advanced pie.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.CustomChart.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.CustomChart</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom chart.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.DrilldownPie.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.DrilldownPie</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom drilldown pie.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.MultiLineChart.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.MultiLineChart</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom multi line chart.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.SimpleBarChart.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.SimpleBarChart</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom simple bar chart.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.SimplePie.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.SimplePie</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom simple pie.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BStatsMetricsBungee.SingleLineChart.html" title="class in com.bencodez.votingplugin.bungee">BStatsMetricsBungee.SingleLineChart</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Represents a custom single line chart.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/BungeeHandler.html" title="class in com.bencodez.votingplugin">BungeeHandler</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BungeeMessageData.html" title="class in com.bencodez.votingplugin.bungee">BungeeMessageData</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/bencodez/votingplugin/bungee/BungeeMethod.html" title="enum in com.bencodez.votingplugin.bungee">BungeeMethod</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/config/BungeeSettings.html" title="class in com.bencodez.votingplugin.config">BungeeSettings</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/BungeeVersion.html" title="class in com.bencodez.votingplugin.bungee">BungeeVersion</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/BungeeVotifierEvent.html" title="class in com.bencodez.votingplugin.listeners">BungeeVotifierEvent</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/updater/CheckUpdate.html" title="class in com.bencodez.votingplugin.updater">CheckUpdate</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CheckUpdate.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/executers/CommandAdminVote.html" title="class in com.bencodez.votingplugin.commands.executers">CommandAdminVote</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CommandAdminVote.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/executers/CommandAliases.html" title="class in com.bencodez.votingplugin.commands.executers">CommandAliases</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CommandAliases.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/CommandLoader.html" title="class in com.bencodez.votingplugin.commands">CommandLoader</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CommandLoader.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/executers/CommandVote.html" title="class in com.bencodez.votingplugin.commands.executers">CommandVote</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CommandVote.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/Config.html" title="class in com.bencodez.votingplugin.bungee">Config</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/Config.html" title="class in com.bencodez.votingplugin.bungee.velocity">Config</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/config/Config.html" title="class in com.bencodez.votingplugin.config">Config</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class Config.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/config/ConfigVoteSites.html" title="class in com.bencodez.votingplugin.config">ConfigVoteSites</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class ConfigVoteSites.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/cooldown/CoolDownCheck.html" title="class in com.bencodez.votingplugin.cooldown">CoolDownCheck</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/config/GUI.html" title="class in com.bencodez.votingplugin.config">GUI</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/MultiProxyHandler.html" title="class in com.bencodez.votingplugin.bungee.global.multiproxy">MultiProxyHandler</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/MultiProxyMethod.html" title="enum in com.bencodez.votingplugin.bungee.global.multiproxy">MultiProxyMethod</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/MultiProxyServerSocketConfiguration.html" title="interface in com.bencodez.votingplugin.bungee.global.multiproxy">MultiProxyServerSocketConfiguration</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab1">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/MultiProxyServerSocketConfigurationBungee.html" title="class in com.bencodez.votingplugin.bungee.global.multiproxy">MultiProxyServerSocketConfigurationBungee</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/MultiProxyServerSocketConfigurationVelocity.html" title="class in com.bencodez.votingplugin.bungee.global.multiproxy">MultiProxyServerSocketConfigurationVelocity</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/placeholders/MVdWPlaceholders.html" title="class in com.bencodez.votingplugin.placeholders">MVdWPlaceholders</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlaceHolders.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/NonVotedPlayersCache.html" title="class in com.bencodez.votingplugin.bungee">NonVotedPlayersCache</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/NonVotedPlayersCache.html" title="class in com.bencodez.votingplugin.bungee.velocity">NonVotedPlayersCache</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/OfflineBungeeVote.html" title="class in com.bencodez.votingplugin.bungee">OfflineBungeeVote</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/bencodez/votingplugin/placeholders/PlaceholderCacheLevel.html" title="enum in com.bencodez.votingplugin.placeholders">PlaceholderCacheLevel</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/placeholders/PlaceHolders.html" title="class in com.bencodez.votingplugin.placeholders">PlaceHolders</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlaceHolders.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/PlayerInteract.html" title="class in com.bencodez.votingplugin.listeners">PlayerInteract</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerInteract.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/PlayerJoinEvent.html" title="class in com.bencodez.votingplugin.listeners">PlayerJoinEvent</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerJoinEvent.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerPostVoteEvent.html" title="class in com.bencodez.votingplugin.events">PlayerPostVoteEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerReceivePointsEvent.html" title="class in com.bencodez.votingplugin.events">PlayerReceivePointsEvent</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerSpecialRewardEvent.html" title="class in com.bencodez.votingplugin.events">PlayerSpecialRewardEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerVoteCoolDownEndEvent.html" title="class in com.bencodez.votingplugin.events">PlayerVoteCoolDownEndEvent</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerVoteEvent.html" title="class in com.bencodez.votingplugin.events">PlayerVoteEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/PlayerVoteListener.html" title="class in com.bencodez.votingplugin.listeners">PlayerVoteListener</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VotiferEvent.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/PlayerVoteSiteCoolDownEndEvent.html" title="class in com.bencodez.votingplugin.events">PlayerVoteSiteCoolDownEndEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/data/ServerData.html" title="class in com.bencodez.votingplugin.data">ServerData</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class ServerData.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/servicesites/ServiceSiteHandler.html" title="class in com.bencodez.votingplugin.servicesites">ServiceSiteHandler</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/SignChange.html" title="class in com.bencodez.votingplugin.listeners">SignChange</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class SignChange.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/signs/SignHandler.html" title="class in com.bencodez.votingplugin.signs">SignHandler</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class SignHandler.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/signs/Signs.html" title="class in com.bencodez.votingplugin.signs">Signs</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class Signs.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/specialrewards/SpecialRewards.html" title="class in com.bencodez.votingplugin.specialrewards">SpecialRewards</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class OtherVoteReward.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/config/SpecialRewardsConfig.html" title="class in com.bencodez.votingplugin.config">SpecialRewardsConfig</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/bencodez/votingplugin/events/SpecialRewardType.html" title="enum in com.bencodez.votingplugin.events">SpecialRewardType</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/timequeue/TimeQueueHandler.html" title="class in com.bencodez.votingplugin.timequeue">TimeQueueHandler</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/bencodez/votingplugin/topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/topvoter/TopVoterHandler.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterHandler</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/Ben12345rocks/VotingPlugin/Objects/User.html" title="class in com.Ben12345rocks.VotingPlugin.Objects">User</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">Deprecated.</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/user/UserManager.html" title="class in com.bencodez.votingplugin.user">UserManager</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteBest.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteBest</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/VoteCache.html" title="class in com.bencodez.votingplugin.bungee.velocity">VoteCache</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/VoteCache.html" title="class in com.bencodez.votingplugin.bungee">VoteCache</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/VoteEventBungee.html" title="class in com.bencodez.votingplugin.bungee">VoteEventBungee</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/VoteEventVelocity.html" title="class in com.bencodez.votingplugin.bungee.velocity">VoteEventVelocity</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteGUI.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteGUI</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteHelp.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteHelp</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteLast.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteLast</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteNext.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteNext</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/voteparty/VoteParty.html" title="class in com.bencodez.votingplugin.voteparty">VoteParty</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VoteParty.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/events/VotePartyEvent.html" title="class in com.bencodez.votingplugin.events">VotePartyEvent</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class PlayerVoteEvent.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/votereminding/VoteReminding.html" title="class in com.bencodez.votingplugin.votereminding">VoteReminding</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VoteReminding.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteShop.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteShop</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteShopConfirm.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteShopConfirm</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VoteSite.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteStreak.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteStreak</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/tabcompleter/VoteTabCompleter.html" title="class in com.bencodez.votingplugin.commands.tabcompleter">VoteTabCompleter</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VoteTabCompleter.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/test/VoteTester.html" title="class in com.bencodez.votingplugin.test">VoteTester</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/timequeue/VoteTimeQueue.html" title="class in com.bencodez.votingplugin.timequeue">VoteTimeQueue</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteToday.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteToday</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteTopVoter.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteTopVoter</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteTopVoterLastMonth.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteTopVoterLastMonth</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteTotal.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteTotal</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteURL.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteURL</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/commands/gui/player/VoteURLVoteSite.html" title="class in com.bencodez.votingplugin.commands.gui.player">VoteURLVoteSite</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/VotiferEvent.html" title="class in com.bencodez.votingplugin.listeners">VotiferEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class VotiferEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/VotingPluginBungee.html" title="class in com.bencodez.votingplugin.bungee">VotingPluginBungee</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/VotingPluginBungeeCommand.html" title="class in com.bencodez.votingplugin.bungee">VotingPluginBungeeCommand</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/VotingPluginChannelIdentifier.html" title="class in com.bencodez.votingplugin.bungee.velocity">VotingPluginChannelIdentifier</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/placeholders/VotingPluginExpansion.html" title="class in com.bencodez.votingplugin.placeholders">VotingPluginExpansion</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/VotingPluginHooks.html" title="class in com.bencodez.votingplugin">VotingPluginHooks</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class Main.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/VotingPluginMetrics.html" title="class in com.bencodez.votingplugin">VotingPluginMetrics</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/listeners/VotingPluginUpdateEvent.html" title="class in com.bencodez.votingplugin.listeners">VotingPluginUpdateEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class AdvancedCoreUpdateEvent.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/user/VotingPluginUser.html" title="class in com.bencodez.votingplugin.user">VotingPluginUser</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class User.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/VotingPluginVelocity.html" title="class in com.bencodez.votingplugin.bungee.velocity">VotingPluginVelocity</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/bencodez/votingplugin/bungee/velocity/VotingPluginVelocityCommand.html" title="class in com.bencodez.votingplugin.bungee.velocity">VotingPluginVelocityCommand</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
</div>
</div>
</div>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
+132
View File
@@ -0,0 +1,132 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>All Packages (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-packages-index-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html#all-packages">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</div>
<div class="caption"><span>Package Summary</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="com/Ben12345rocks/VotingPlugin/Objects/package-summary.html">com.Ben12345rocks.VotingPlugin.Objects</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/package-summary.html">com.bencodez.votingplugin</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/broadcast/package-summary.html">com.bencodez.votingplugin.broadcast</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/bungee/package-summary.html">com.bencodez.votingplugin.bungee</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/bungee/global/multiproxy/package-summary.html">com.bencodez.votingplugin.bungee.global.multiproxy</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/bungee/velocity/package-summary.html">com.bencodez.votingplugin.bungee.velocity</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/commands/package-summary.html">com.bencodez.votingplugin.commands</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/commands/executers/package-summary.html">com.bencodez.votingplugin.commands.executers</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/commands/gui/package-summary.html">com.bencodez.votingplugin.commands.gui</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/commands/gui/admin/package-summary.html">com.bencodez.votingplugin.commands.gui.admin</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/commands/gui/admin/cumulative/package-summary.html">com.bencodez.votingplugin.commands.gui.admin.cumulative</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/commands/gui/admin/milestones/package-summary.html">com.bencodez.votingplugin.commands.gui.admin.milestones</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/commands/gui/admin/voteshop/package-summary.html">com.bencodez.votingplugin.commands.gui.admin.voteshop</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/commands/gui/player/package-summary.html">com.bencodez.votingplugin.commands.gui.player</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/commands/tabcompleter/package-summary.html">com.bencodez.votingplugin.commands.tabcompleter</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/config/package-summary.html">com.bencodez.votingplugin.config</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/cooldown/package-summary.html">com.bencodez.votingplugin.cooldown</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/data/package-summary.html">com.bencodez.votingplugin.data</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/events/package-summary.html">com.bencodez.votingplugin.events</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/listeners/package-summary.html">com.bencodez.votingplugin.listeners</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/objects/package-summary.html">com.bencodez.votingplugin.objects</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/placeholders/package-summary.html">com.bencodez.votingplugin.placeholders</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/servicesites/package-summary.html">com.bencodez.votingplugin.servicesites</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/signs/package-summary.html">com.bencodez.votingplugin.signs</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/specialrewards/package-summary.html">com.bencodez.votingplugin.specialrewards</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/test/package-summary.html">com.bencodez.votingplugin.test</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/timequeue/package-summary.html">com.bencodez.votingplugin.timequeue</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/topvoter/package-summary.html">com.bencodez.votingplugin.topvoter</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/updater/package-summary.html">com.bencodez.votingplugin.updater</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/user/package-summary.html">com.bencodez.votingplugin.user</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="com/bencodez/votingplugin/voteparty/package-summary.html">com.bencodez.votingplugin.voteparty</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="com/bencodez/votingplugin/votereminding/package-summary.html">com.bencodez.votingplugin.votereminding</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,208 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>User (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.Ben12345rocks.VotingPlugin.Objects, class: User">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/User.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.Ben12345rocks.VotingPlugin.Objects</a></div>
<h1 title="Class User" class="title">Class User</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.Ben12345rocks.VotingPlugin.Objects.User</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public class </span><span class="element-name type-name-label">User</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.bukkit.entity.Player)" class="member-name-link">User</a><wbr>(org.bukkit.entity.Player&nbsp;p)</code></div>
<div class="col-last even-row-color">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#addPoints(int)" class="member-name-link">addPoints</a><wbr>(int&nbsp;points)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#getPoints()" class="member-name-link">getPoints</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#removePoints(int)" class="member-name-link">removePoints</a><wbr>(int&nbsp;points)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#setPoints(int)" class="member-name-link">setPoints</a><wbr>(int&nbsp;points)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.bukkit.entity.Player)">
<h3>User</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">User</span><wbr><span class="parameters">(org.bukkit.entity.Player&nbsp;p)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="addPoints(int)">
<h3>addPoints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addPoints</span><wbr><span class="parameters">(int&nbsp;points)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
</li>
<li>
<section class="detail" id="getPoints()">
<h3>getPoints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getPoints</span>()</div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
</li>
<li>
<section class="detail" id="removePoints(int)">
<h3>removePoints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">removePoints</span><wbr><span class="parameters">(int&nbsp;points)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
</li>
<li>
<section class="detail" id="setPoints(int)">
<h3>setPoints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setPoints</span><wbr><span class="parameters">(int&nbsp;points)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,63 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>Uses of Class com.Ben12345rocks.VotingPlugin.Objects.User (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="use: package: com.Ben12345rocks.VotingPlugin.Objects, class: User">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../User.html" title="class in com.Ben12345rocks.VotingPlugin.Objects">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class com.Ben12345rocks.VotingPlugin.Objects.User" class="title">Uses of Class<br>com.Ben12345rocks.VotingPlugin.Objects.User</h1>
</div>
No usage of com.Ben12345rocks.VotingPlugin.Objects.User</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,88 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>com.Ben12345rocks.VotingPlugin.Objects (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.Ben12345rocks.VotingPlugin.Objects">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li>Description&nbsp;|&nbsp;</li>
<li>Related Packages&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Package com.Ben12345rocks.VotingPlugin.Objects" class="title">Package com.Ben12345rocks.VotingPlugin.Objects</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">com.Ben12345rocks.VotingPlugin.Objects</span></div>
<section class="summary">
<ul class="summary-list">
<li>
<div id="class-summary">
<div class="caption"><span>Classes</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="User.html" title="class in com.Ben12345rocks.VotingPlugin.Objects">User</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">Deprecated.</div>
</div>
</div>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,77 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>com.Ben12345rocks.VotingPlugin.Objects Class Hierarchy (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="tree: package: com.Ben12345rocks.VotingPlugin.Objects">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package com.Ben12345rocks.VotingPlugin.Objects</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">com.Ben12345rocks.VotingPlugin.Objects.<a href="User.html" class="type-name-link" title="class in com.Ben12345rocks.VotingPlugin.Objects">User</a></li>
</ul>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,63 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>Uses of Package com.Ben12345rocks.VotingPlugin.Objects (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="use: package: com.Ben12345rocks.VotingPlugin.Objects">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-use-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Package com.Ben12345rocks.VotingPlugin.Objects" class="title">Uses of Package<br>com.Ben12345rocks.VotingPlugin.Objects</h1>
</div>
No usage of com.Ben12345rocks.VotingPlugin.Objects</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,297 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>BungeeHandler (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin, class: BungeeHandler">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/BungeeHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.bencodez.votingplugin</a></div>
<h1 title="Class BungeeHandler" class="title">Class BungeeHandler</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.bencodez.votingplugin.BungeeHandler</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>org.bukkit.event.Listener</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">BungeeHandler</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements org.bukkit.event.Listener</span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(com.bencodez.votingplugin.VotingPluginMain)" class="member-name-link">BungeeHandler</a><wbr>(<a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkGlobalData()" class="member-name-link">checkGlobalData</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkGlobalDataTime(com.bencodez.advancedcore.api.time.TimeType,java.util.HashMap)" class="member-name-link">checkGlobalDataTime</a><wbr>(com.bencodez.advancedcore.api.time.TimeType&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>com.bencodez.advancedcore.api.user.usercache.value.DataValue&gt;&nbsp;data)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkGlobalDataTimeValue(com.bencodez.advancedcore.api.user.usercache.value.DataValue)" class="member-name-link">checkGlobalDataTimeValue</a><wbr>(com.bencodez.advancedcore.api.user.usercache.value.DataValue&nbsp;data)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#close()" class="member-name-link">close</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBungeeVotePartyCurrent()" class="member-name-link">getBungeeVotePartyCurrent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBungeeVotePartyRequired()" class="member-name-link">getBungeeVotePartyRequired</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.advancedcore.bungeeapi.sockets.ClientHandler</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getClientHandler()" class="member-name-link">getClientHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.advancedcore.bungeeapi.GlobalMessage.GlobalMessageHandler</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getGlobalMessageHandler()" class="member-name-link">getGlobalMessageHandler</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="bungee/BungeeMethod.html" title="enum in com.bencodez.votingplugin.bungee">BungeeMethod</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMethod()" class="member-name-link">getMethod</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.advancedcore.bungeeapi.redis.RedisHandler</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRedisHandler()" class="member-name-link">getRedisHandler</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.advancedcore.bungeeapi.sockets.SocketHandler</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSocketHandler()" class="member-name-link">getSocketHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTimer()" class="member-name-link">getTimer</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#load()" class="member-name-link">load</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#loadGlobalMysql()" class="member-name-link">loadGlobalMysql</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#sendData(java.lang.String...)" class="member-name-link">sendData</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;strings)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(com.bencodez.votingplugin.VotingPluginMain)">
<h3>BungeeHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">BungeeHandler</span><wbr><span class="parameters">(<a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="close()">
<h3>close</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">close</span>()</div>
</section>
</li>
<li>
<section class="detail" id="checkGlobalData()">
<h3>checkGlobalData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkGlobalData</span>()</div>
</section>
</li>
<li>
<section class="detail" id="checkGlobalDataTimeValue(com.bencodez.advancedcore.api.user.usercache.value.DataValue)">
<h3>checkGlobalDataTimeValue</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">checkGlobalDataTimeValue</span><wbr><span class="parameters">(com.bencodez.advancedcore.api.user.usercache.value.DataValue&nbsp;data)</span></div>
</section>
</li>
<li>
<section class="detail" id="checkGlobalDataTime(com.bencodez.advancedcore.api.time.TimeType,java.util.HashMap)">
<h3>checkGlobalDataTime</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">checkGlobalDataTime</span><wbr><span class="parameters">(com.bencodez.advancedcore.api.time.TimeType&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>com.bencodez.advancedcore.api.user.usercache.value.DataValue&gt;&nbsp;data)</span></div>
</section>
</li>
<li>
<section class="detail" id="loadGlobalMysql()">
<h3>loadGlobalMysql</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">loadGlobalMysql</span>()</div>
</section>
</li>
<li>
<section class="detail" id="load()">
<h3>load</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">load</span>()</div>
</section>
</li>
<li>
<section class="detail" id="sendData(java.lang.String...)">
<h3>sendData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">sendData</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;strings)</span></div>
</section>
</li>
<li>
<section class="detail" id="getClientHandler()">
<h3>getClientHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.advancedcore.bungeeapi.sockets.ClientHandler</span>&nbsp;<span class="element-name">getClientHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMethod()">
<h3>getMethod</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="bungee/BungeeMethod.html" title="enum in com.bencodez.votingplugin.bungee">BungeeMethod</a></span>&nbsp;<span class="element-name">getMethod</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBungeeVotePartyCurrent()">
<h3>getBungeeVotePartyCurrent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getBungeeVotePartyCurrent</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBungeeVotePartyRequired()">
<h3>getBungeeVotePartyRequired</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getBungeeVotePartyRequired</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getSocketHandler()">
<h3>getSocketHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.advancedcore.bungeeapi.sockets.SocketHandler</span>&nbsp;<span class="element-name">getSocketHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getTimer()">
<h3>getTimer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></span>&nbsp;<span class="element-name">getTimer</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getRedisHandler()">
<h3>getRedisHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.advancedcore.bungeeapi.redis.RedisHandler</span>&nbsp;<span class="element-name">getRedisHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getGlobalMessageHandler()">
<h3>getGlobalMessageHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.advancedcore.bungeeapi.GlobalMessage.GlobalMessageHandler</span>&nbsp;<span class="element-name">getGlobalMessageHandler</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,209 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>VotingPluginHooks (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin, class: VotingPluginHooks">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/VotingPluginHooks.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.bencodez.votingplugin</a></div>
<h1 title="Class VotingPluginHooks" class="title">Class VotingPluginHooks</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.bencodez.votingplugin.VotingPluginHooks</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">VotingPluginHooks</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">VotingPluginHooks</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCustomRequirement(com.bencodez.advancedcore.api.rewards.injectedrequirement.RequirementInject)" class="member-name-link">addCustomRequirement</a><wbr>(com.bencodez.advancedcore.api.rewards.injectedrequirement.RequirementInject&nbsp;inject)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCustomReward(com.bencodez.advancedcore.api.rewards.injected.RewardInject)" class="member-name-link">addCustomReward</a><wbr>(com.bencodez.advancedcore.api.rewards.injected.RewardInject&nbsp;inject)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#backgroundUpdate(org.bukkit.entity.Player)" class="member-name-link">backgroundUpdate</a><wbr>(org.bukkit.entity.Player&nbsp;player)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="VotingPluginHooks.html" title="class in com.bencodez.votingplugin">VotingPluginHooks</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getInstance()" class="member-name-link">getInstance</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMainClass()" class="member-name-link">getMainClass</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="user/UserManager.html" title="class in com.bencodez.votingplugin.user">UserManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUserManager()" class="member-name-link">getUserManager</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>VotingPluginHooks</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">VotingPluginHooks</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getInstance()">
<h3>getInstance</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="VotingPluginHooks.html" title="class in com.bencodez.votingplugin">VotingPluginHooks</a></span>&nbsp;<span class="element-name">getInstance</span>()</div>
</section>
</li>
<li>
<section class="detail" id="addCustomRequirement(com.bencodez.advancedcore.api.rewards.injectedrequirement.RequirementInject)">
<h3>addCustomRequirement</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addCustomRequirement</span><wbr><span class="parameters">(com.bencodez.advancedcore.api.rewards.injectedrequirement.RequirementInject&nbsp;inject)</span></div>
</section>
</li>
<li>
<section class="detail" id="addCustomReward(com.bencodez.advancedcore.api.rewards.injected.RewardInject)">
<h3>addCustomReward</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addCustomReward</span><wbr><span class="parameters">(com.bencodez.advancedcore.api.rewards.injected.RewardInject&nbsp;inject)</span></div>
</section>
</li>
<li>
<section class="detail" id="backgroundUpdate(org.bukkit.entity.Player)">
<h3>backgroundUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">backgroundUpdate</span><wbr><span class="parameters">(org.bukkit.entity.Player&nbsp;player)</span></div>
</section>
</li>
<li>
<section class="detail" id="getMainClass()">
<h3>getMainClass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></span>&nbsp;<span class="element-name">getMainClass</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getUserManager()">
<h3>getUserManager</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="user/UserManager.html" title="class in com.bencodez.votingplugin.user">UserManager</a></span>&nbsp;<span class="element-name">getUserManager</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,888 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>VotingPluginMain (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin, class: VotingPluginMain">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/VotingPluginMain.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.bencodez.votingplugin</a></div>
<h1 title="Class VotingPluginMain" class="title">Class VotingPluginMain</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.bukkit.plugin.PluginBase
<div class="inheritance">org.bukkit.plugin.java.JavaPlugin
<div class="inheritance">com.bencodez.advancedcore.AdvancedCorePlugin
<div class="inheritance">com.bencodez.votingplugin.VotingPluginMain</div>
</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>org.bukkit.command.CommandExecutor</code>, <code>org.bukkit.command.TabCompleter</code>, <code>org.bukkit.command.TabExecutor</code>, <code>org.bukkit.plugin.Plugin</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">VotingPluginMain</span>
<span class="extends-implements">extends com.bencodez.advancedcore.AdvancedCorePlugin</span></div>
<div class="block">The Class Main.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static <a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></code></div>
<div class="col-second even-row-color"><code><a href="#plugin" class="member-name-link">plugin</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">VotingPluginMain</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addDirectlyDefinedRewards(com.bencodez.advancedcore.api.rewards.DirectlyDefinedReward)" class="member-name-link">addDirectlyDefinedRewards</a><wbr>(com.bencodez.advancedcore.api.rewards.DirectlyDefinedReward&nbsp;directlyDefinedReward)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#basicBungeeUpdate()" class="member-name-link">basicBungeeUpdate</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkFirstTimeLoaded()" class="member-name-link">checkFirstTimeLoaded</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#convertSet(java.util.Set)" class="member-name-link">convertSet</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>&gt;&nbsp;set)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAdminVoteCommand()" class="member-name-link">getAdminVoteCommand</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAdvancedTab()" class="member-name-link">getAdvancedTab</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="broadcast/BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBroadcastHandler()" class="member-name-link">getBroadcastHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBuildNumber()" class="member-name-link">getBuildNumber</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BungeeHandler.html" title="class in com.bencodez.votingplugin">BungeeHandler</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBungeeHandler()" class="member-name-link">getBungeeHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="config/BungeeSettings.html" title="class in com.bencodez.votingplugin.config">BungeeSettings</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBungeeSettings()" class="member-name-link">getBungeeSettings</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="updater/CheckUpdate.html" title="class in com.bencodez.votingplugin.updater">CheckUpdate</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCheckUpdate()" class="member-name-link">getCheckUpdate</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="commands/CommandLoader.html" title="class in com.bencodez.votingplugin.commands">CommandLoader</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCommandLoader()" class="member-name-link">getCommandLoader</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.bukkit.configuration.file.FileConfiguration</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getConfig()" class="member-name-link">getConfig</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="config/Config.html" title="class in com.bencodez.votingplugin.config">Config</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getConfigFile()" class="member-name-link">getConfigFile</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="config/ConfigVoteSites.html" title="class in com.bencodez.votingplugin.config">ConfigVoteSites</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getConfigVoteSites()" class="member-name-link">getConfigVoteSites</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="cooldown/CoolDownCheck.html" title="class in com.bencodez.votingplugin.cooldown">CoolDownCheck</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCoolDownCheck()" class="member-name-link">getCoolDownCheck</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="config/GUI.html" title="class in com.bencodez.votingplugin.config">GUI</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getGui()" class="member-name-link">getGui</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLastBackgroundTaskTimeTaken()" class="member-name-link">getLastBackgroundTaskTimeTaken</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLastMonthTopVoter()" class="member-name-link">getLastMonthTopVoter</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="placeholders/MVdWPlaceholders.html" title="class in com.bencodez.votingplugin.placeholders">MVdWPlaceholders</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMvdwPlaceholders()" class="member-name-link">getMvdwPlaceholders</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="placeholders/PlaceHolders.html" title="class in com.bencodez.votingplugin.placeholders">PlaceHolders</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPlaceholders()" class="member-name-link">getPlaceholders</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getPlugin()" class="member-name-link">getPlugin</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getProfile()" class="member-name-link">getProfile</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="data/ServerData.html" title="class in com.bencodez.votingplugin.data">ServerData</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getServerData()" class="member-name-link">getServerData</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="servicesites/ServiceSiteHandler.html" title="class in com.bencodez.votingplugin.servicesites">ServiceSiteHandler</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getServiceSiteHandler()" class="member-name-link">getServiceSiteHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="signs/Signs.html" title="class in com.bencodez.votingplugin.signs">Signs</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSigns()" class="member-name-link">getSigns</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="specialrewards/SpecialRewards.html" title="class in com.bencodez.votingplugin.specialrewards">SpecialRewards</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSpecialRewards()" class="member-name-link">getSpecialRewards</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="config/SpecialRewardsConfig.html" title="class in com.bencodez.votingplugin.config">SpecialRewardsConfig</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSpecialRewardsConfig()" class="member-name-link">getSpecialRewardsConfig</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTime()" class="member-name-link">getTime</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="timequeue/TimeQueueHandler.html" title="class in com.bencodez.votingplugin.timequeue">TimeQueueHandler</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTimeQueueHandler()" class="member-name-link">getTimeQueueHandler</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTopVoter()" class="member-name-link">getTopVoter</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTopVoter(com.bencodez.votingplugin.topvoter.TopVoter)" class="member-name-link">getTopVoter</a><wbr>(<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>&nbsp;top)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="topvoter/TopVoterHandler.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterHandler</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTopVoterHandler()" class="member-name-link">getTopVoterHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.simpleapi.updater.Updater</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUpdater()" class="member-name-link">getUpdater</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="user/VotingPluginUser.html" title="class in com.bencodez.votingplugin.user">VotingPluginUser</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUser(java.util.UUID)" class="member-name-link">getUser</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;uuid)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the user.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteCommand()" class="member-name-link">getVoteCommand</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>com.bencodez.advancedcore.logger.Logger</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteLog()" class="member-name-link">getVoteLog</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="voteparty/VoteParty.html" title="class in com.bencodez.votingplugin.voteparty">VoteParty</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteParty()" class="member-name-link">getVoteParty</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="votereminding/VoteReminding.html" title="class in com.bencodez.votingplugin.votereminding">VoteReminding</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteReminding()" class="member-name-link">getVoteReminding</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteSite(java.lang.String,boolean)" class="member-name-link">getVoteSite</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;site,
boolean&nbsp;checkEnabled)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteSiteName(boolean,java.lang.String...)" class="member-name-link">getVoteSiteName</a><wbr>(boolean&nbsp;checkEnabled,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;urls)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteSites()" class="member-name-link">getVoteSites</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteSitesEnabled()" class="member-name-link">getVoteSitesEnabled</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteSiteServiceSite(java.lang.String)" class="member-name-link">getVoteSiteServiceSite</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="test/VoteTester.html" title="class in com.bencodez.votingplugin.test">VoteTester</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteTester()" class="member-name-link">getVoteTester</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteTimer()" class="member-name-link">getVoteTimer</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVoteToday()" class="member-name-link">getVoteToday</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="user/UserManager.html" title="class in com.bencodez.votingplugin.user">UserManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVotingPluginUserManager()" class="member-name-link">getVotingPluginUserManager</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasVoteSite(java.lang.String)" class="member-name-link">hasVoteSite</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;site)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isUpdate()" class="member-name-link">isUpdate</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isUpdateStarted()" class="member-name-link">isUpdateStarted</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isVoteSite(java.lang.String)" class="member-name-link">isVoteSite</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;voteSite)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isYmlError()" class="member-name-link">isYmlError</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#loadDirectlyDefined()" class="member-name-link">loadDirectlyDefined</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#loadVoteSites()" class="member-name-link">loadVoteSites</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Load vote sites.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#logVote(java.time.LocalDateTime,java.lang.String,java.lang.String)" class="member-name-link">logVote</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&nbsp;date,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playerName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;voteSite)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Log vote.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onPostLoad()" class="member-name-link">onPostLoad</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onPreLoad()" class="member-name-link">onPreLoad</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onUnLoad()" class="member-name-link">onUnLoad</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reload()" class="member-name-link">reload</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Reload.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reloadAll()" class="member-name-link">reloadAll</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setAdminVoteCommand(java.util.ArrayList)" class="member-name-link">setAdminVoteCommand</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;&nbsp;adminVoteCommand)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSigns(com.bencodez.votingplugin.signs.Signs)" class="member-name-link">setSigns</a><wbr>(<a href="signs/Signs.html" title="class in com.bencodez.votingplugin.signs">Signs</a>&nbsp;signs)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setTopVoter(java.util.LinkedHashMap)" class="member-name-link">setTopVoter</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;&gt;&nbsp;topVoter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setUpdate(boolean)" class="member-name-link">setUpdate</a><wbr>(boolean&nbsp;update)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setUpdater(com.bencodez.simpleapi.updater.Updater)" class="member-name-link">setUpdater</a><wbr>(com.bencodez.simpleapi.updater.Updater&nbsp;updater)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setVoteCommand(java.util.ArrayList)" class="member-name-link">setVoteCommand</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;&nbsp;voteCommand)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setVoteToday(java.util.LinkedHashMap)" class="member-name-link">setVoteToday</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&gt;&gt;&nbsp;voteToday)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#update()" class="member-name-link">update</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateAdvancedCoreHook()" class="member-name-link">updateAdvancedCoreHook</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-com.bencodez.advancedcore.AdvancedCorePlugin">Methods inherited from class&nbsp;com.bencodez.advancedcore.AdvancedCorePlugin</h3>
<code>addUserStartup, allowDownloadingFromSpigot, checkPluginUpdate, convertDataStorage, debug, debug, debug, devDebug, extraDebug, getAdvancedCoreBuildNumber, getAdvancedCoreCommandLoader, getBannedPlayers, getBuildTime, getBukkitScheduler, getBungeeChannel, getCmiHandle, getEcon, getFullInventoryHandler, getGeyserHandle, getHologramHandler, getInstance, getInventoryTimer, getJavascriptEngine, getJavascriptEngineRequests, getJenkinsSite, getLoginTimer, getLuckPermsHandle, getMysql, getOptions, getPermissionHandler, getPerms, getPluginLogger, getPluginMessaging, getRewardHandler, getServerDataFile, getSignMenu, getSQLiteUserTable, getStorageType, getTimeChecker, getTimer, getUserManager, getUuidNameCache, getVersion, isAuthMeLoaded, isLoadGeyserAPI, isLoadLuckPerms, isLoadRewards, isLoadServerData, isLoadSkullHandler, isLoadUserData, isLoginSecurityLoaded, isMySQLOkay, isPlaceHolderAPIEnabled, loadAdvancedCoreEvents, loadAutoUpdateCheck, loadHook, loadLogger, loadTabComplete, loadUserAPI, loadValueRequestInputCommands, loadVault, onDisable, onEnable, registerBungeeChannels, registerEvents, reloadAdvancedCore, reloadAdvancedCore, setBungeeChannel, setConfigData, setConfigData, setJavascriptEngine, setJavascriptEngineRequests, setJenkinsSite, setLoadGeyserAPI, setLoadLuckPerms, setLoadRewards, setLoadServerData, setLoadSkullHandler, setLoadUserData, setMysql, setUserManager, unRegisterValueRequest, userStartup</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.bukkit.plugin.java.JavaPlugin">Methods inherited from class&nbsp;org.bukkit.plugin.java.JavaPlugin</h3>
<code>getClassLoader, getCommand, getDataFolder, getDefaultBiomeProvider, getDefaultWorldGenerator, getDescription, getFile, getLogger, getPlugin, getPluginLoader, getProvidingPlugin, getResource, getServer, getTextResource, isEnabled, isNaggable, onCommand, onLoad, onTabComplete, reloadConfig, saveConfig, saveDefaultConfig, saveResource, setEnabled, setNaggable, toString</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.bukkit.plugin.PluginBase">Methods inherited from class&nbsp;org.bukkit.plugin.PluginBase</h3>
<code>equals, getName, hashCode</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="plugin">
<h3>plugin</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></span>&nbsp;<span class="element-name">plugin</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>VotingPluginMain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">VotingPluginMain</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="addDirectlyDefinedRewards(com.bencodez.advancedcore.api.rewards.DirectlyDefinedReward)">
<h3>addDirectlyDefinedRewards</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addDirectlyDefinedRewards</span><wbr><span class="parameters">(com.bencodez.advancedcore.api.rewards.DirectlyDefinedReward&nbsp;directlyDefinedReward)</span></div>
</section>
</li>
<li>
<section class="detail" id="basicBungeeUpdate()">
<h3>basicBungeeUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">basicBungeeUpdate</span>()</div>
</section>
</li>
<li>
<section class="detail" id="convertSet(java.util.Set)">
<h3>convertSet</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>&gt;</span>&nbsp;<span class="element-name">convertSet</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>&gt;&nbsp;set)</span></div>
</section>
</li>
<li>
<section class="detail" id="getConfig()">
<h3>getConfig</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.bukkit.configuration.file.FileConfiguration</span>&nbsp;<span class="element-name">getConfig</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>getConfig</code>&nbsp;in interface&nbsp;<code>org.bukkit.plugin.Plugin</code></dd>
<dt>Overrides:</dt>
<dd><code>getConfig</code>&nbsp;in class&nbsp;<code>org.bukkit.plugin.java.JavaPlugin</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTopVoter(com.bencodez.votingplugin.topvoter.TopVoter)">
<h3>getTopVoter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</span>&nbsp;<span class="element-name">getTopVoter</span><wbr><span class="parameters">(<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>&nbsp;top)</span></div>
</section>
</li>
<li>
<section class="detail" id="getUser(java.util.UUID)">
<h3>getUser</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="user/VotingPluginUser.html" title="class in com.bencodez.votingplugin.user">VotingPluginUser</a></span>&nbsp;<span class="element-name">getUser</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;uuid)</span></div>
<div class="block">Gets the user.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>uuid</code> - the uuid</dd>
<dt>Returns:</dt>
<dd>the user</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVoteSite(java.lang.String,boolean)">
<h3>getVoteSite</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a></span>&nbsp;<span class="element-name">getVoteSite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;site,
boolean&nbsp;checkEnabled)</span></div>
</section>
</li>
<li>
<section class="detail" id="getVoteSitesEnabled()">
<h3>getVoteSitesEnabled</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>&gt;</span>&nbsp;<span class="element-name">getVoteSitesEnabled</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteSiteName(boolean,java.lang.String...)">
<h3>getVoteSiteName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getVoteSiteName</span><wbr><span class="parameters">(boolean&nbsp;checkEnabled,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;urls)</span></div>
</section>
</li>
<li>
<section class="detail" id="getVoteSiteServiceSite(java.lang.String)">
<h3>getVoteSiteServiceSite</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getVoteSiteServiceSite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
</section>
</li>
<li>
<section class="detail" id="hasVoteSite(java.lang.String)">
<h3>hasVoteSite</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">hasVoteSite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;site)</span></div>
</section>
</li>
<li>
<section class="detail" id="isVoteSite(java.lang.String)">
<h3>isVoteSite</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isVoteSite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;voteSite)</span></div>
</section>
</li>
<li>
<section class="detail" id="loadDirectlyDefined()">
<h3>loadDirectlyDefined</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">loadDirectlyDefined</span>()</div>
</section>
</li>
<li>
<section class="detail" id="loadVoteSites()">
<h3>loadVoteSites</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">loadVoteSites</span>()</div>
<div class="block">Load vote sites.</div>
</section>
</li>
<li>
<section class="detail" id="logVote(java.time.LocalDateTime,java.lang.String,java.lang.String)">
<h3>logVote</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">logVote</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&nbsp;date,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playerName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;voteSite)</span></div>
<div class="block">Log vote.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>date</code> - the date</dd>
<dd><code>playerName</code> - the player name</dd>
<dd><code>voteSite</code> - the vote site</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="onPostLoad()">
<h3>onPostLoad</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onPostLoad</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>onPostLoad</code>&nbsp;in class&nbsp;<code>com.bencodez.advancedcore.AdvancedCorePlugin</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="onPreLoad()">
<h3>onPreLoad</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onPreLoad</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>onPreLoad</code>&nbsp;in class&nbsp;<code>com.bencodez.advancedcore.AdvancedCorePlugin</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="onUnLoad()">
<h3>onUnLoad</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onUnLoad</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>onUnLoad</code>&nbsp;in class&nbsp;<code>com.bencodez.advancedcore.AdvancedCorePlugin</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="reload()">
<h3>reload</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">reload</span>()</div>
<div class="block">Reload.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>reload</code>&nbsp;in class&nbsp;<code>com.bencodez.advancedcore.AdvancedCorePlugin</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="reloadAll()">
<h3>reloadAll</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">reloadAll</span>()</div>
</section>
</li>
<li>
<section class="detail" id="update()">
<h3>update</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">update</span>()</div>
</section>
</li>
<li>
<section class="detail" id="checkFirstTimeLoaded()">
<h3>checkFirstTimeLoaded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkFirstTimeLoaded</span>()</div>
</section>
</li>
<li>
<section class="detail" id="updateAdvancedCoreHook()">
<h3>updateAdvancedCoreHook</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateAdvancedCoreHook</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getPlugin()">
<h3>getPlugin</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a></span>&nbsp;<span class="element-name">getPlugin</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getAdminVoteCommand()">
<h3>getAdminVoteCommand</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;</span>&nbsp;<span class="element-name">getAdminVoteCommand</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setAdminVoteCommand(java.util.ArrayList)">
<h3>setAdminVoteCommand</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setAdminVoteCommand</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;&nbsp;adminVoteCommand)</span></div>
</section>
</li>
<li>
<section class="detail" id="getAdvancedTab()">
<h3>getAdvancedTab</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&gt;</span>&nbsp;<span class="element-name">getAdvancedTab</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBroadcastHandler()">
<h3>getBroadcastHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="broadcast/BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></span>&nbsp;<span class="element-name">getBroadcastHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBungeeHandler()">
<h3>getBungeeHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BungeeHandler.html" title="class in com.bencodez.votingplugin">BungeeHandler</a></span>&nbsp;<span class="element-name">getBungeeHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBungeeSettings()">
<h3>getBungeeSettings</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="config/BungeeSettings.html" title="class in com.bencodez.votingplugin.config">BungeeSettings</a></span>&nbsp;<span class="element-name">getBungeeSettings</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCheckUpdate()">
<h3>getCheckUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="updater/CheckUpdate.html" title="class in com.bencodez.votingplugin.updater">CheckUpdate</a></span>&nbsp;<span class="element-name">getCheckUpdate</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCommandLoader()">
<h3>getCommandLoader</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="commands/CommandLoader.html" title="class in com.bencodez.votingplugin.commands">CommandLoader</a></span>&nbsp;<span class="element-name">getCommandLoader</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getConfigFile()">
<h3>getConfigFile</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="config/Config.html" title="class in com.bencodez.votingplugin.config">Config</a></span>&nbsp;<span class="element-name">getConfigFile</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getConfigVoteSites()">
<h3>getConfigVoteSites</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="config/ConfigVoteSites.html" title="class in com.bencodez.votingplugin.config">ConfigVoteSites</a></span>&nbsp;<span class="element-name">getConfigVoteSites</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCoolDownCheck()">
<h3>getCoolDownCheck</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="cooldown/CoolDownCheck.html" title="class in com.bencodez.votingplugin.cooldown">CoolDownCheck</a></span>&nbsp;<span class="element-name">getCoolDownCheck</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getGui()">
<h3>getGui</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="config/GUI.html" title="class in com.bencodez.votingplugin.config">GUI</a></span>&nbsp;<span class="element-name">getGui</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getLastMonthTopVoter()">
<h3>getLastMonthTopVoter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</span>&nbsp;<span class="element-name">getLastMonthTopVoter</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMvdwPlaceholders()">
<h3>getMvdwPlaceholders</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="placeholders/MVdWPlaceholders.html" title="class in com.bencodez.votingplugin.placeholders">MVdWPlaceholders</a></span>&nbsp;<span class="element-name">getMvdwPlaceholders</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getPlaceholders()">
<h3>getPlaceholders</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="placeholders/PlaceHolders.html" title="class in com.bencodez.votingplugin.placeholders">PlaceHolders</a></span>&nbsp;<span class="element-name">getPlaceholders</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteTester()">
<h3>getVoteTester</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="test/VoteTester.html" title="class in com.bencodez.votingplugin.test">VoteTester</a></span>&nbsp;<span class="element-name">getVoteTester</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getProfile()">
<h3>getProfile</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getProfile</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBuildNumber()">
<h3>getBuildNumber</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getBuildNumber</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getServerData()">
<h3>getServerData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="data/ServerData.html" title="class in com.bencodez.votingplugin.data">ServerData</a></span>&nbsp;<span class="element-name">getServerData</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getSigns()">
<h3>getSigns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="signs/Signs.html" title="class in com.bencodez.votingplugin.signs">Signs</a></span>&nbsp;<span class="element-name">getSigns</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setSigns(com.bencodez.votingplugin.signs.Signs)">
<h3>setSigns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setSigns</span><wbr><span class="parameters">(<a href="signs/Signs.html" title="class in com.bencodez.votingplugin.signs">Signs</a>&nbsp;signs)</span></div>
</section>
</li>
<li>
<section class="detail" id="getSpecialRewards()">
<h3>getSpecialRewards</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="specialrewards/SpecialRewards.html" title="class in com.bencodez.votingplugin.specialrewards">SpecialRewards</a></span>&nbsp;<span class="element-name">getSpecialRewards</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getSpecialRewardsConfig()">
<h3>getSpecialRewardsConfig</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="config/SpecialRewardsConfig.html" title="class in com.bencodez.votingplugin.config">SpecialRewardsConfig</a></span>&nbsp;<span class="element-name">getSpecialRewardsConfig</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getTime()">
<h3>getTime</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTime</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getTopVoter()">
<h3>getTopVoter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;&gt;</span>&nbsp;<span class="element-name">getTopVoter</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setTopVoter(java.util.LinkedHashMap)">
<h3>setTopVoter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setTopVoter</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoter.html" title="enum in com.bencodez.votingplugin.topvoter">TopVoter</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;&gt;&nbsp;topVoter)</span></div>
</section>
</li>
<li>
<section class="detail" id="getTopVoterHandler()">
<h3>getTopVoterHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="topvoter/TopVoterHandler.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterHandler</a></span>&nbsp;<span class="element-name">getTopVoterHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="isUpdate()">
<h3>isUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isUpdate</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setUpdate(boolean)">
<h3>setUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setUpdate</span><wbr><span class="parameters">(boolean&nbsp;update)</span></div>
</section>
</li>
<li>
<section class="detail" id="getUpdater()">
<h3>getUpdater</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.simpleapi.updater.Updater</span>&nbsp;<span class="element-name">getUpdater</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setUpdater(com.bencodez.simpleapi.updater.Updater)">
<h3>setUpdater</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setUpdater</span><wbr><span class="parameters">(com.bencodez.simpleapi.updater.Updater&nbsp;updater)</span></div>
</section>
</li>
<li>
<section class="detail" id="isUpdateStarted()">
<h3>isUpdateStarted</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isUpdateStarted</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteCommand()">
<h3>getVoteCommand</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;</span>&nbsp;<span class="element-name">getVoteCommand</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setVoteCommand(java.util.ArrayList)">
<h3>setVoteCommand</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setVoteCommand</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;com.bencodez.advancedcore.api.command.CommandHandler&gt;&nbsp;voteCommand)</span></div>
</section>
</li>
<li>
<section class="detail" id="getVoteLog()">
<h3>getVoteLog</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">com.bencodez.advancedcore.logger.Logger</span>&nbsp;<span class="element-name">getVoteLog</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteParty()">
<h3>getVoteParty</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="voteparty/VoteParty.html" title="class in com.bencodez.votingplugin.voteparty">VoteParty</a></span>&nbsp;<span class="element-name">getVoteParty</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteReminding()">
<h3>getVoteReminding</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="votereminding/VoteReminding.html" title="class in com.bencodez.votingplugin.votereminding">VoteReminding</a></span>&nbsp;<span class="element-name">getVoteReminding</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteSites()">
<h3>getVoteSites</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>&gt;</span>&nbsp;<span class="element-name">getVoteSites</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteToday()">
<h3>getVoteToday</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&gt;&gt;</span>&nbsp;<span class="element-name">getVoteToday</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setVoteToday(java.util.LinkedHashMap)">
<h3>setVoteToday</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setVoteToday</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html" title="class or interface in java.util" class="external-link">LinkedHashMap</a>&lt;<a href="topvoter/TopVoterPlayer.html" title="class in com.bencodez.votingplugin.topvoter">TopVoterPlayer</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="objects/VoteSite.html" title="class in com.bencodez.votingplugin.objects">VoteSite</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html" title="class or interface in java.time" class="external-link">LocalDateTime</a>&gt;&gt;&nbsp;voteToday)</span></div>
</section>
</li>
<li>
<section class="detail" id="isYmlError()">
<h3>isYmlError</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isYmlError</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVoteTimer()">
<h3>getVoteTimer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></span>&nbsp;<span class="element-name">getVoteTimer</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getVotingPluginUserManager()">
<h3>getVotingPluginUserManager</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="user/UserManager.html" title="class in com.bencodez.votingplugin.user">UserManager</a></span>&nbsp;<span class="element-name">getVotingPluginUserManager</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getTimeQueueHandler()">
<h3>getTimeQueueHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="timequeue/TimeQueueHandler.html" title="class in com.bencodez.votingplugin.timequeue">TimeQueueHandler</a></span>&nbsp;<span class="element-name">getTimeQueueHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getServiceSiteHandler()">
<h3>getServiceSiteHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="servicesites/ServiceSiteHandler.html" title="class in com.bencodez.votingplugin.servicesites">ServiceSiteHandler</a></span>&nbsp;<span class="element-name">getServiceSiteHandler</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getLastBackgroundTaskTimeTaken()">
<h3>getLastBackgroundTaskTimeTaken</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">getLastBackgroundTaskTimeTaken</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,164 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>VotingPluginMetrics (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin, class: VotingPluginMetrics">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/VotingPluginMetrics.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.bencodez.votingplugin</a></div>
<h1 title="Class VotingPluginMetrics" class="title">Class VotingPluginMetrics</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.bencodez.votingplugin.VotingPluginMetrics</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">VotingPluginMetrics</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">VotingPluginMetrics</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#load(com.bencodez.votingplugin.VotingPluginMain)" class="member-name-link">load</a><wbr>(<a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>VotingPluginMetrics</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">VotingPluginMetrics</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="load(com.bencodez.votingplugin.VotingPluginMain)">
<h3>load</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">load</span><wbr><span class="parameters">(<a href="VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,184 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>BroadcastHandler (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin.broadcast, class: BroadcastHandler">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/BroadcastHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.bencodez.votingplugin.broadcast</a></div>
<h1 title="Class BroadcastHandler" class="title">Class BroadcastHandler</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.bencodez.votingplugin.broadcast.BroadcastHandler</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">BroadcastHandler</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(com.bencodez.votingplugin.VotingPluginMain,int)" class="member-name-link">BroadcastHandler</a><wbr>(<a href="../VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin,
int&nbsp;delay)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#check()" class="member-name-link">check</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onVote(java.lang.String)" class="member-name-link">onVote</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;player)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#schedule(int)" class="member-name-link">schedule</a><wbr>(int&nbsp;delay)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(com.bencodez.votingplugin.VotingPluginMain,int)">
<h3>BroadcastHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">BroadcastHandler</span><wbr><span class="parameters">(<a href="../VotingPluginMain.html" title="class in com.bencodez.votingplugin">VotingPluginMain</a>&nbsp;plugin,
int&nbsp;delay)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="check()">
<h3>check</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">check</span>()</div>
</section>
</li>
<li>
<section class="detail" id="onVote(java.lang.String)">
<h3>onVote</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onVote</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;player)</span></div>
</section>
</li>
<li>
<section class="detail" id="schedule(int)">
<h3>schedule</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">schedule</span><wbr><span class="parameters">(int&nbsp;delay)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,88 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>Uses of Class com.bencodez.votingplugin.broadcast.BroadcastHandler (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="use: package: com.bencodez.votingplugin.broadcast, class: BroadcastHandler">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class com.bencodez.votingplugin.broadcast.BroadcastHandler" class="title">Uses of Class<br>com.bencodez.votingplugin.broadcast.BroadcastHandler</h1>
</div>
<div class="caption"><span>Packages that use <a href="../BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#com.bencodez.votingplugin">com.bencodez.votingplugin</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="com.bencodez.votingplugin">
<h2>Uses of <a href="../BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a> in <a href="../../package-summary.html">com.bencodez.votingplugin</a></h2>
<div class="caption"><span>Methods in <a href="../../package-summary.html">com.bencodez.votingplugin</a> that return <a href="../BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="../BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">VotingPluginMain.</span><code><a href="../../VotingPluginMain.html#getBroadcastHandler()" class="member-name-link">getBroadcastHandler</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,99 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>com.bencodez.votingplugin.broadcast (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="declaration: package: com.bencodez.votingplugin.broadcast">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li>Description&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Package com.bencodez.votingplugin.broadcast" class="title">Package com.bencodez.votingplugin.broadcast</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">com.bencodez.votingplugin.broadcast</span></div>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">com.bencodez.votingplugin</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="caption"><span>Classes</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="BroadcastHandler.html" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">&nbsp;</div>
</div>
</div>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,77 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>com.bencodez.votingplugin.broadcast Class Hierarchy (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="tree: package: com.bencodez.votingplugin.broadcast">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package com.bencodez.votingplugin.broadcast</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">com.bencodez.votingplugin.broadcast.<a href="BroadcastHandler.html" class="type-name-link" title="class in com.bencodez.votingplugin.broadcast">BroadcastHandler</a></li>
</ul>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,85 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sun May 26 20:38:34 UTC 2024 -->
<title>Uses of Package com.bencodez.votingplugin.broadcast (VotingPlugin 6.16.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-05-26">
<meta name="description" content="use: package: com.bencodez.votingplugin.broadcast">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-use-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Package com.bencodez.votingplugin.broadcast" class="title">Uses of Package<br>com.bencodez.votingplugin.broadcast</h1>
</div>
<div class="caption"><span>Packages that use <a href="package-summary.html">com.bencodez.votingplugin.broadcast</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#com.bencodez.votingplugin">com.bencodez.votingplugin</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="package-uses">
<ul class="block-list">
<li>
<section class="detail" id="com.bencodez.votingplugin">
<div class="caption"><span>Classes in <a href="package-summary.html">com.bencodez.votingplugin.broadcast</a> used by <a href="../package-summary.html">com.bencodez.votingplugin</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/BroadcastHandler.html#com.bencodez.votingplugin">BroadcastHandler</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2024. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
Loaded 100 of 443 files, more files were not shown because too many files have changed in this diff. Show more