Skip to content

Commit 05c5141

Browse files
committed
Overhaul
1 parent f91d435 commit 05c5141

File tree

6 files changed

+36
-89
lines changed

6 files changed

+36
-89
lines changed

src/main/java/io/github/axle2005/clearmob/ClearMob.java

Lines changed: 24 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.io.IOException;
44
import java.nio.file.Path;
5-
import java.util.Collection;
65
import java.util.concurrent.TimeUnit;
76

87
import org.slf4j.Logger;
@@ -13,7 +12,6 @@
1312
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
1413
import org.spongepowered.api.plugin.Plugin;
1514
import org.spongepowered.api.scheduler.Task;
16-
import org.spongepowered.api.world.World;
1715
import com.google.inject.Inject;
1816

1917
import 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
}

src/main/java/io/github/axle2005/clearmob/Util.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,19 @@
44
import java.util.Arrays;
55
import java.util.List;
66
import java.util.Optional;
7-
8-
import javax.annotation.Nullable;
9-
107
import org.spongepowered.api.Sponge;
11-
import org.spongepowered.api.block.BlockSnapshot;
12-
import org.spongepowered.api.block.BlockState;
13-
import org.spongepowered.api.block.tileentity.TileEntity;
148
import org.spongepowered.api.block.tileentity.TileEntityType;
159
import org.spongepowered.api.command.CommandSource;
16-
import org.spongepowered.api.data.DataContainer;
17-
import org.spongepowered.api.data.DataQuery;
18-
import org.spongepowered.api.data.manipulator.ImmutableDataManipulator;
19-
import org.spongepowered.api.data.manipulator.immutable.ImmutableDyeableData;
20-
import org.spongepowered.api.data.manipulator.immutable.ImmutableVariantData;
21-
import org.spongepowered.api.data.manipulator.immutable.block.*;
2210
import org.spongepowered.api.entity.EntityType;
2311
import org.spongepowered.api.entity.EntityTypes;
2412
import org.spongepowered.api.entity.living.player.Player;
2513
import org.spongepowered.api.item.ItemType;
26-
import org.spongepowered.api.item.inventory.ItemStack;
14+
import org.spongepowered.api.scheduler.Task.Builder;
2715
import org.spongepowered.api.text.Text;
2816

2917
public class Util {
3018

19+
3120

3221

3322
public static void feedback(String type, CommandSource src, Integer removed) {
@@ -121,5 +110,11 @@ public static Boolean playerPermCheck(CommandSource src, String perm) {
121110
return true;
122111
}
123112

113+
public static void scheduleTask(Builder build) {
114+
ClearMob instance = ClearMob.getInstance();
115+
build.submit(instance);
116+
117+
}
118+
124119

125120
}

src/main/java/io/github/axle2005/clearmob/commands/CommandClearChunks.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.axle2005.clearmob.commands;
22

3+
import org.spongepowered.api.Sponge;
34
import org.spongepowered.api.command.CommandException;
45
import org.spongepowered.api.command.CommandResult;
56
import org.spongepowered.api.command.CommandSource;
@@ -27,7 +28,7 @@ public CommandResult execute(CommandSource src, CommandContext arguments) throws
2728

2829
} else {
2930
int unloaded=0;
30-
for(World w : plugin.getWorlds())
31+
for(World w : Sponge.getServer().getWorlds())
3132
{
3233
for(Chunk c : w.getLoadedChunks())
3334
{

src/main/java/io/github/axle2005/clearmob/configuration/ConfigHandler.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
package io.github.axle2005.clearmob.configuration;
22

3-
import java.io.File;
43
import java.io.IOException;
5-
import java.net.URL;
64
import java.nio.file.Files;
75
import java.nio.file.Path;
86
import java.nio.file.Paths;
97

10-
import org.apache.commons.lang3.StringUtils;
118
import org.slf4j.Logger;
129

1310
import com.google.common.reflect.TypeToken;
1411

1512
import io.github.axle2005.clearmob.ClearMob;
1613
import ninja.leaping.configurate.ConfigurationNode;
17-
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
1814
import ninja.leaping.configurate.gson.GsonConfigurationLoader;
19-
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
20-
import ninja.leaping.configurate.loader.ConfigurationLoader;
2115
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
2216

2317
public class ConfigHandler {

src/main/java/io/github/axle2005/clearmob/configuration/OptionsConfig.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@
44
import java.util.Arrays;
55
import java.util.List;
66

7-
import org.spongepowered.api.block.tileentity.TileEntityType;
8-
import org.spongepowered.api.entity.EntityType;
9-
import org.spongepowered.api.item.ItemType;
10-
11-
import io.github.axle2005.clearmob.Util;
127
import ninja.leaping.configurate.objectmapping.Setting;
138
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
149

src/main/java/io/github/axle2005/clearmob/listeners/EntityLimiter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.List;
44

5+
import org.spongepowered.api.Sponge;
56
import org.spongepowered.api.entity.Entity;
67
import org.spongepowered.api.entity.ExperienceOrb;
78
import org.spongepowered.api.entity.living.monster.Boss;
@@ -31,7 +32,7 @@ public void handle(SpawnEntityEvent event) throws Exception {
3132
Integer count = 0;
3233
Integer xpcount=0;
3334

34-
for(World w : plugin.getWorlds())
35+
for(World w : Sponge.getServer().getWorlds())
3536
{
3637
for(Entity e:w.getEntities())
3738
{

0 commit comments

Comments
 (0)