Skip to content

Commit f96d935

Browse files
committed
Refactoring
1 parent fe1a678 commit f96d935

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+660
-1396
lines changed

src/main/java/gollorum/signpost/BlockHandler.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import java.util.Arrays;
2929
import java.util.List;
3030
import java.util.function.Function;
31-
import java.util.function.Predicate;
3231

3332
public class BlockHandler {
3433

@@ -63,19 +62,19 @@ public static void init(){}
6362

6463
public List<BaseModelPost> baseModelsForCrafting(){
6564
List<BaseModelPost> allModels = Arrays.asList(basemodels);
66-
ArrayList<BaseModelPost> allowedModels = new ArrayList<BaseModelPost>();
65+
ArrayList<BaseModelPost> allowedModels = new ArrayList<>();
6766
for (final String model : ClientConfigStorage.INSTANCE.getAllowedCraftingModels()){
68-
BaseModelPost block = CollectionUtils.find(allModels, (Predicate<BaseModelPost>) m -> m.type.name.equals(model));
67+
BaseModelPost block = CollectionUtils.find(allModels, m -> m.type.name.equals(model));
6968
if(block != null) allowedModels.add(block);
7069
}
7170
return allowedModels;
7271
}
7372

7473
public List<BaseModelPost> baseModelsForVillages(){
7574
List<BaseModelPost> allModels = Arrays.asList(basemodels);
76-
ArrayList<BaseModelPost> allowedModels = new ArrayList<BaseModelPost>();
75+
ArrayList<BaseModelPost> allowedModels = new ArrayList<>();
7776
for (final String model : ClientConfigStorage.INSTANCE.getAllowedVillageModels()){
78-
BaseModelPost block = CollectionUtils.find(allModels, (Predicate<BaseModelPost>) m -> m.type.name.equals(model));
77+
BaseModelPost block = CollectionUtils.find(allModels, m -> m.type.name.equals(model));
7978
if(block != null) allowedModels.add(block);
8079
}
8180
return allowedModels;

src/main/java/gollorum/signpost/ClientProxy.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package gollorum.signpost;
22

3-
import java.io.IOException;
4-
import java.io.InputStream;
5-
import java.util.Collection;
6-
import java.util.LinkedList;
7-
83
import net.minecraft.client.Minecraft;
94
import net.minecraft.entity.player.EntityPlayer;
105
import net.minecraft.util.ResourceLocation;
@@ -14,6 +9,11 @@
149
import net.minecraftforge.fml.common.FMLCommonHandler;
1510
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
1611

12+
import java.io.IOException;
13+
import java.io.InputStream;
14+
import java.util.Collection;
15+
import java.util.LinkedList;
16+
1717
public class ClientProxy extends CommonProxy{
1818

1919
public ClientProxy(){
@@ -39,11 +39,11 @@ public World getWorld(MessageContext ctx){
3939
}
4040

4141
@Override
42-
public World getWorld(String worldName, int dim){
42+
public World getWorld(int dim){
4343
if(FMLCommonHandler.instance()!=null &&
4444
FMLCommonHandler.instance().getMinecraftServerInstance()!=null &&
4545
FMLCommonHandler.instance().getMinecraftServerInstance().isSinglePlayer()){
46-
return super.getWorld(worldName, dim);
46+
return super.getWorld(dim);
4747
}else{
4848
return FMLClientHandler.instance().getWorldClient();
4949
}

src/main/java/gollorum/signpost/CommonProxy.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package gollorum.signpost;
22

3-
import java.io.InputStream;
4-
import java.util.Collection;
5-
import java.util.LinkedList;
6-
73
import gollorum.signpost.blocks.tiles.BasePostTile;
84
import gollorum.signpost.blocks.tiles.BigPostPostTile;
95
import gollorum.signpost.blocks.tiles.PostPostTile;
@@ -19,6 +15,10 @@
1915
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
2016
import net.minecraftforge.fml.common.registry.GameRegistry;
2117

18+
import java.io.InputStream;
19+
import java.util.Collection;
20+
import java.util.LinkedList;
21+
2222
public class CommonProxy {
2323

2424
public BlockHandler blockHandler;
@@ -75,7 +75,7 @@ public World getWorld(MessageContext ctx){
7575
return ctx.getServerHandler().player.world;
7676
}
7777

78-
public World getWorld(String worldName, int dim){
78+
public World getWorld(int dim){
7979
return FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(dim);
8080
}
8181

src/main/java/gollorum/signpost/SPEventHandler.java

Lines changed: 58 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package gollorum.signpost;
22

3-
import java.util.Map.Entry;
4-
import java.util.UUID;
5-
63
import gollorum.signpost.blocks.BaseModelPost;
74
import gollorum.signpost.blocks.BasePost;
85
import gollorum.signpost.blocks.SuperPostPost;
@@ -11,21 +8,14 @@
118
import gollorum.signpost.blocks.tiles.SuperPostPostTile;
129
import gollorum.signpost.items.CalibratedPostWrench;
1310
import gollorum.signpost.items.PostWrench;
14-
import gollorum.signpost.management.ClientConfigStorage;
15-
import gollorum.signpost.management.PlayerProvider;
16-
import gollorum.signpost.management.PlayerStore;
17-
import gollorum.signpost.management.PostHandler;
18-
import gollorum.signpost.management.WorldSigns;
11+
import gollorum.signpost.management.*;
1912
import gollorum.signpost.network.NetworkHandler;
2013
import gollorum.signpost.network.messages.InitPlayerResponseMessage;
2114
import gollorum.signpost.network.messages.SendAllBigPostBasesMessage;
2215
import gollorum.signpost.network.messages.SendAllPostBasesMessage;
2316
import gollorum.signpost.util.BoolRun;
2417
import gollorum.signpost.util.MyBlockPos;
25-
import gollorum.signpost.util.MyBlockPosSet;
26-
import gollorum.signpost.util.collections.Lurchpaerchensauna;
27-
import gollorum.signpost.util.collections.Lurchsauna;
28-
import gollorum.signpost.util.collections.Pair;
18+
import gollorum.signpost.util.collections.CollectionUtils;
2919
import net.minecraft.entity.Entity;
3020
import net.minecraft.entity.player.EntityPlayerMP;
3121
import net.minecraft.init.Blocks;
@@ -44,13 +34,15 @@
4434
import net.minecraftforge.fml.common.gameevent.TickEvent;
4535
import net.minecraftforge.fml.relauncher.Side;
4636

37+
import java.util.*;
38+
4739
public class SPEventHandler {
4840

49-
private static Lurchpaerchensauna<Runnable, Integer> serverTasks = new Lurchpaerchensauna<Runnable, Integer>();
50-
private static Lurchsauna<BoolRun> serverPredicatedTasks = new Lurchsauna<BoolRun>();
41+
private static Map<Runnable, Integer> serverTasks = new HashMap<Runnable, Integer>();
42+
private static Collection<BoolRun> serverPredicatedTasks = new ArrayList<BoolRun>();
5143

52-
private static Lurchpaerchensauna<Runnable, Integer> clientTasks = new Lurchpaerchensauna<Runnable, Integer>();
53-
private static Lurchsauna<BoolRun> clientPredicatedTasks = new Lurchsauna<BoolRun>();
44+
private static Map<Runnable, Integer> clientTasks = new HashMap<Runnable, Integer>();
45+
private static Collection<BoolRun> clientPredicatedTasks = new ArrayList<BoolRun>();
5446

5547
public static final SPEventHandler INSTANCE = new SPEventHandler();
5648
private SPEventHandler(){}
@@ -92,53 +84,35 @@ public void onServerTick(TickEvent event) {
9284
if (!(event instanceof TickEvent.ServerTickEvent)) {
9385
return;
9486
}
95-
Lurchpaerchensauna<Runnable, Integer> serverTasksTEMP = serverTasks;
96-
Lurchsauna<BoolRun> serverPredicatedTasksTEMP = serverPredicatedTasks;
97-
serverTasks = new Lurchpaerchensauna<Runnable, Integer>();
98-
serverPredicatedTasks = new Lurchsauna<BoolRun>();
99-
100-
// time++;
101-
for (Entry<Runnable, Integer> now : serverTasksTEMP.entrySet()) {
102-
int val = now.getValue()-1;
103-
if (val < 2) {
104-
now.getKey().run();
105-
}else{
106-
serverTasks.put(now.getKey(), val);
107-
}
108-
}
109-
110-
for(BoolRun now: serverPredicatedTasksTEMP){
111-
if(!now.run()){
112-
serverPredicatedTasks.add(now);
113-
}
114-
}
87+
Map<Runnable, Integer> oldTasks = serverTasks;
88+
serverTasks = new HashMap<>();
89+
serverTasks.putAll(CollectionUtils.mutateOr(
90+
oldTasks,
91+
(task, delay) -> delay > 1, // condition
92+
(task, delay) -> delay - 1, // mutation
93+
(task, delay) -> task.run() // elseAction
94+
));
95+
Collection<BoolRun> oldPredicateTasks = serverPredicatedTasks;
96+
serverPredicatedTasks = new HashSet<>();
97+
serverPredicatedTasks.addAll(CollectionUtils.where(oldPredicateTasks, boolRun -> !boolRun.run()));
11598
}
11699

117100
@SubscribeEvent
118101
public void onClientTick(TickEvent event) {
119102
if (!(event instanceof TickEvent.ClientTickEvent)) {
120103
return;
121104
}
122-
Lurchpaerchensauna<Runnable, Integer> clientTasksTEMP = clientTasks;
123-
Lurchsauna<BoolRun> clientPredicatedTasksTEMP = clientPredicatedTasks;
124-
clientTasks = new Lurchpaerchensauna<Runnable, Integer>();
125-
clientPredicatedTasks = new Lurchsauna<BoolRun>();
126-
127-
// time++;
128-
for (Entry<Runnable, Integer> now : clientTasksTEMP.entrySet()) {
129-
int val = now.getValue()-1;
130-
if (val < 2) {
131-
now.getKey().run();
132-
}else{
133-
clientTasks.put(now.getKey(), val);
134-
}
135-
}
136-
137-
for(BoolRun now: clientPredicatedTasksTEMP){
138-
if(!now.run()){
139-
clientPredicatedTasks.add(now);
140-
}
141-
}
105+
Map<Runnable, Integer> oldTasks = clientTasks;
106+
clientTasks = new HashMap<>();
107+
clientTasks.putAll(CollectionUtils.mutateOr(
108+
oldTasks,
109+
(task, delay) -> delay > 1, // condition
110+
(task, delay) -> delay - 1, // mutation
111+
(task, delay) -> task.run() // elseAction
112+
));
113+
Collection<BoolRun> oldPredicateTasks = clientPredicatedTasks;
114+
clientPredicatedTasks = new HashSet<>();
115+
clientPredicatedTasks.addAll(CollectionUtils.where(oldPredicateTasks, boolRun -> !boolRun.run()));
142116
}
143117

144118
// ServerSide
@@ -179,56 +153,55 @@ public void onSave(WorldEvent.Save event) {
179153

180154
@SubscribeEvent
181155
public void oBlockPlace(PlaceEvent event){
156+
MyBlockPos blockPos = new MyBlockPos(event.getPos(), event.getPlayer().dimension);
182157
if(!(event.getPlayer() instanceof EntityPlayerMP)){
183158
if(event.getState().getBlock() instanceof BasePost){
184-
BasePost.placeClient(event.getWorld(), new MyBlockPos("", event.getPos(), event.getPlayer().dimension), event.getPlayer());
159+
BasePost.placeClient(event.getWorld(), blockPos, event.getPlayer());
185160
}else if(event.getState().getBlock() instanceof BaseModelPost){
186-
BaseModelPost.placeClient(event.getWorld(), new MyBlockPos("", event.getPos(), event.getPlayer().dimension), event.getPlayer());
161+
BaseModelPost.placeClient(event.getWorld(), blockPos, event.getPlayer());
187162
}else if(event.getState().getBlock() instanceof SuperPostPost){
188-
SuperPostPost.placeClient(event.getWorld(), new MyBlockPos("", event.getPos(), event.getPlayer().dimension), event.getPlayer());
163+
SuperPostPost.placeClient(event.getWorld(), blockPos, event.getPlayer());
189164
}
190165
return;
191166
}
192167
EntityPlayerMP player = (EntityPlayerMP)event.getPlayer();
168+
MyBlockPos eventPos = new MyBlockPos(event.getPos(), player.dimension);
193169
if(event.getState().getBlock() instanceof BasePost){
194170
BasePostTile tile = BasePost.getWaystoneRootTile(event.getWorld(), event.getPos());
195171
if(!(ClientConfigStorage.INSTANCE.getSecurityLevelWaystone().canPlace(player) && checkWaystoneCount(player))){
196-
tile.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
172+
tile.onBlockDestroy(eventPos);
197173
event.setCanceled(true);
198174
}else{
199-
BasePost.placeServer(event.getWorld(), new MyBlockPos(event.getWorld().getWorldInfo().getWorldName(), event.getPos(), event.getPlayer().dimension), (EntityPlayerMP) event.getPlayer());
175+
BasePost.placeServer(event.getWorld(), eventPos, (EntityPlayerMP) event.getPlayer());
200176
}
201177
}else if(event.getState().getBlock() instanceof BaseModelPost){
202178
BasePostTile tile = BaseModelPost.getWaystoneRootTile(event.getWorld(), event.getPos());
203179
if(!(ClientConfigStorage.INSTANCE.getSecurityLevelWaystone().canPlace(player) && checkWaystoneCount(player))){
204-
tile.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
180+
tile.onBlockDestroy(eventPos);
205181
event.setCanceled(true);
206182
}else{
207-
BaseModelPost.placeServer(event.getWorld(), new MyBlockPos(event.getWorld().getWorldInfo().getWorldName(), event.getPos(), event.getPlayer().dimension), (EntityPlayerMP) event.getPlayer());
183+
BaseModelPost.placeServer(event.getWorld(), eventPos, (EntityPlayerMP) event.getPlayer());
208184
}
209185
}else if(event.getState().getBlock() instanceof SuperPostPost){
210186
SuperPostPostTile tile = SuperPostPost.getSuperTile(event.getWorld(), event.getPos());
211187
if(!(ClientConfigStorage.INSTANCE.getSecurityLevelSignpost().canPlace(player) && checkSignpostCount(player))){
212-
tile.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
188+
tile.onBlockDestroy(eventPos);
213189
event.setCanceled(true);
214190
}else{
215-
SuperPostPost.placeServer(event.getWorld(), new MyBlockPos(event.getWorld().getWorldInfo().getWorldName(), event.getPos(), event.getPlayer().dimension), (EntityPlayerMP) event.getPlayer());
191+
SuperPostPost.placeServer(event.getWorld(), eventPos, (EntityPlayerMP) event.getPlayer());
216192
}
217193
}
218194
}
219195

220196
public boolean checkWaystoneCount(EntityPlayerMP player){
221-
Pair<MyBlockPosSet, Pair<Integer, Integer>> pair = PostHandler.playerKnownWaystonePositions.get(player.getUniqueID());
222-
int remaining = pair.b.a;
197+
PlayerRestrictions restrictions = PostHandler.getPlayerKnownWaystonePositions(player.getUniqueID());
198+
int remaining = restrictions.remainingWaystones;
223199
if(remaining == 0){
224200
player.sendMessage(new TextComponentString("You are not allowed to place more waystones"));
225201
return false;
226-
}else{
227-
if(remaining > 0){
228-
pair.b.a--;
229-
}
230-
return true;
231202
}
203+
if(remaining > 0) restrictions.remainingWaystones--;
204+
return true;
232205
}
233206

234207
public void updateWaystoneCount(WaystoneContainer tile){
@@ -239,33 +212,30 @@ public void updateWaystoneCount(WaystoneContainer tile){
239212
if(owner == null){
240213
return;
241214
}
242-
Pair<MyBlockPosSet, Pair<Integer, Integer>> pair = PostHandler.playerKnownWaystonePositions.get(owner);
243-
if(pair!=null && pair.b.a>=0){
244-
pair.b.a++;
215+
PlayerRestrictions restrictions = PostHandler.getPlayerKnownWaystonePositions(owner);
216+
if(restrictions.remainingWaystones >= 0){
217+
restrictions.remainingWaystones++;
245218
}
246219
}
247220

248221
private boolean checkSignpostCount(EntityPlayerMP player){
249-
Pair<MyBlockPosSet, Pair<Integer, Integer>> pair = PostHandler.playerKnownWaystonePositions.get(player.getUniqueID());
250-
int remaining = pair.b.b;
222+
PlayerRestrictions restrictions = PostHandler.getPlayerKnownWaystonePositions(player.getUniqueID());
223+
int remaining = restrictions.remainingSignposts;
251224
if(remaining == 0){
252225
player.sendMessage(new TextComponentString("You are not allowed to place more signposts"));
253226
return false;
254-
}else{
255-
if(remaining > 0){
256-
pair.b.b--;
257-
}
258-
return true;
259227
}
228+
if(remaining > 0) restrictions.remainingSignposts--;
229+
return true;
260230
}
261231

262232
private void updateSignpostCount(SuperPostPostTile tile){
263233
if(tile == null || tile.owner == null){
264234
return;
265235
}
266-
Pair<MyBlockPosSet, Pair<Integer, Integer>> pair = PostHandler.playerKnownWaystonePositions.get(tile.owner);
267-
if(pair.b.b>=0){
268-
pair.b.b++;
236+
PlayerRestrictions restrictions = PostHandler.getPlayerKnownWaystonePositions(tile.owner);
237+
if(restrictions.remainingSignposts >= 0){
238+
restrictions.remainingSignposts++;
269239
}
270240
}
271241

@@ -294,23 +264,23 @@ public void onBlockBreak(BreakEvent event){
294264
event.setCanceled(true);
295265
}else{
296266
updateWaystoneCount(t);
297-
t.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
267+
t.onBlockDestroy(new MyBlockPos(event.getPos(), player.dimension));
298268
}
299269
}else if(event.getState().getBlock() instanceof BaseModelPost){
300270
BasePostTile t = BaseModelPost.getWaystoneRootTile(event.getWorld(), event.getPos());
301271
if(!ClientConfigStorage.INSTANCE.getSecurityLevelWaystone().canUse(player, ""+t.getBaseInfo().owner)){
302272
event.setCanceled(true);
303273
}else{
304274
updateWaystoneCount(t);
305-
t.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
275+
t.onBlockDestroy(new MyBlockPos(event.getPos(), player.dimension));
306276
}
307277
}else if(event.getState().getBlock() instanceof SuperPostPost){
308278
SuperPostPostTile t = SuperPostPost.getSuperTile(event.getWorld(), event.getPos());
309279
if(!ClientConfigStorage.INSTANCE.getSecurityLevelSignpost().canUse(player, ""+t.owner)){
310280
event.setCanceled(true);
311281
}else{
312282
updateSignpostCount(t);
313-
t.onBlockDestroy(new MyBlockPos(event.getWorld(), event.getPos(), player.dimension));
283+
t.onBlockDestroy(new MyBlockPos(event.getPos(), player.dimension));
314284
}
315285
}
316286
}catch(Exception e){}

0 commit comments

Comments
 (0)