22
33import java .io .IOException ;
44import java .nio .file .Path ;
5- import java .util .Collection ;
65import java .util .concurrent .TimeUnit ;
76
87import org .slf4j .Logger ;
1312import org .spongepowered .api .event .game .state .GameStartedServerEvent ;
1413import org .spongepowered .api .plugin .Plugin ;
1514import org .spongepowered .api .scheduler .Task ;
16- import org .spongepowered .api .world .World ;
1715import com .google .inject .Inject ;
1816
1917import io .github .axle2005 .clearmob .clearers .ClearMain ;
@@ -34,15 +32,9 @@ public class ClearMob {
3432 @ ConfigDir (sharedRoot = false )
3533 private Path defaultConfig ;
3634
37-
38- private Collection <World > worlds ;
3935 private ListenersRegister events ;
40- Task .Builder taskBuilder = Sponge .getScheduler ().createTaskBuilder ();
41- Task task = null ;
42- Task warn = null ;
43-
44- Task .Builder warning = null ;
45- Task .Builder build = null ;
36+ Task .Builder clear = Task .builder ();
37+ Task .Builder warn = Task .builder ();
4638
4739 private static ClearMob instance ;
4840 private GlobalConfig globalConfig ;
@@ -54,7 +46,7 @@ public void onEnable(GameStartedServerEvent event) {
5446
5547 events = new ListenersRegister (this );
5648 new Register (this );
57- worlds = Sponge . getServer (). getWorlds ();
49+
5850
5951
6052 }
@@ -66,12 +58,30 @@ public void reload(GameReloadEvent event) {
6658
6759 public void reload () {
6860 Sponge .getEventManager ().unregisterPluginListeners (Sponge .getPluginManager ().fromInstance (instance ).get ());
69- worlds = Sponge . getServer (). getWorlds ();
61+
7062 try {
7163 globalConfig = ConfigHandler .loadConfiguration ();
64+ clear .reset ();
65+ warn .reset ();
7266
73- clearSubmit (getGlobalConfig ().passive .get (0 ).enabled );
74- warnSubmit (getGlobalConfig ().warning .get (0 ).enabled );
67+
68+
69+ if (getGlobalConfig ().passive .get (0 ).enabled ){
70+
71+ clear = clear .execute (() -> {
72+ ClearMain .run (Sponge .getServer ().getConsole ());
73+ BroadcastUtil .send (getGlobalConfig ().passive .get (0 ).message );
74+ }).async ().delay (getGlobalConfig ().passive .get (0 ).interval - 60 , TimeUnit .SECONDS )
75+ .interval (instance .getGlobalConfig ().passive .get (0 ).interval , TimeUnit .SECONDS );
76+
77+ Util .scheduleTask (clear );
78+
79+ }
80+ if (getGlobalConfig ().warning .get (0 ).enabled ){
81+ warn = warn .execute (() -> BroadcastUtil .send (getGlobalConfig ().warning .get (0 ).message )).async ().delay (getGlobalConfig ().passive .get (0 ).interval - 60 , TimeUnit .SECONDS )
82+ .interval (getGlobalConfig ().passive .get (0 ).interval , TimeUnit .SECONDS );
83+ Util .scheduleTask (warn );
84+ }
7585
7686 if (getGlobalConfig ().mobLimiter .get (0 ).enabled == true ) {
7787 events .registerEvent ("SpawnEntity" );
@@ -85,52 +95,6 @@ public void reload() {
8595
8696 }
8797
88- private void clearSubmit (Boolean toggle ) {
89- build = taskBuilder .execute (() -> {
90- ClearMain .run (Sponge .getServer ().getConsole ());
91- BroadcastUtil .send (getGlobalConfig ().passive .get (0 ).message );
92- }).async ().delay (getGlobalConfig ().passive .get (0 ).interval , TimeUnit .SECONDS ).interval (getGlobalConfig ().passive .get (0 ).interval , TimeUnit .SECONDS );
93-
94- if (toggle ) {
95- if (task == null ) {
96- task = build .submit (this );
97- } else {
98-
99- task .cancel ();
100- task = build .submit (this );
101-
102- }
103- } else {
104- if (task != null ) {
105- task .cancel ();
106- }
107- }
108-
109- }
110-
111- private void warnSubmit (Boolean toggle ) {
112- warning = taskBuilder .execute (() -> BroadcastUtil .send (getGlobalConfig ().warning .get (0 ).message )).async ().delay (getGlobalConfig ().passive .get (0 ).interval - 60 , TimeUnit .SECONDS )
113- .interval (getGlobalConfig ().passive .get (0 ).interval , TimeUnit .SECONDS );
114- if (toggle && getGlobalConfig ().warning .get (0 ).enabled ) {
115- if (warn == null ) {
116- if (getGlobalConfig ().passive .get (0 ).interval > 60 ) {
117- warn = warning .submit (this );
118- }
119-
120- } else {
121- warn .cancel ();
122- if (getGlobalConfig ().passive .get (0 ).interval > 60 ) {
123- warn = warning .submit (this );
124- }
125- }
126- } else {
127- if (warn != null ) {
128- warn .cancel ();
129- }
130- }
131-
132- }
133-
13498 public Logger getLogger () {
13599 return log ;
136100 }
@@ -142,9 +106,6 @@ public Path getConfigDir() {
142106 public int getMobLimit () {
143107 return getGlobalConfig ().mobLimiter .get (0 ).limit ;
144108 }
145- public Collection <World > getWorlds () {
146- return worlds ;
147- }
148109 public static ClearMob getInstance () {
149110 return instance ;
150111 }
0 commit comments