Archived
0

Sonar: [squid:S3776] make the method easier

This commit is contained in:
2019-02-11 14:44:57 +03:00
parent d4a3a49b47
commit 441e0e91d2

View File

@@ -19,25 +19,7 @@ public class CoreEventListener {
EventBus.getInstance().registerSubscribes(this); EventBus.getInstance().registerSubscribes(this);
} }
@Subscriber private void processLoadChunks(CS_PlayerMoveEvent event, int cMinX, int cMaxX, int cMinZ, int cMaxZ) {
public void handlerPlayerMoveEvent(CS_PlayerMoveEvent event) {
Chunk chunk;
chunk = event.getPlayer().getWorld().getChunk(event.getOldLocation().toBlockLocation()); // Old chunk
if (chunk == null) return;
int ccX = chunk.getX();
int ccZ = chunk.getZ();
chunk = event.getPlayer().getWorld().getChunk(event.getNewLocation().toBlockLocation()); // Next chunk
if (chunk == null) return;
int ncX = chunk.getX();
int ncZ = chunk.getZ();
if (event.isRecalcChunk() || (ncX != ccX || ncZ != ccZ)) {
final int viewDistance = event.getPlayer().getSettings().getViewDistance() + 1;
int cMinX = chunk.getX() - viewDistance;
int cMaxX = chunk.getX() + viewDistance;
int cMinZ = chunk.getZ() - viewDistance;
int cMaxZ = chunk.getZ() + viewDistance;
SC_ChunkLoadEvent eventChunkLoad = new SC_ChunkLoadEvent(event.getPlayer()); SC_ChunkLoadEvent eventChunkLoad = new SC_ChunkLoadEvent(event.getPlayer());
for (int cZ = cMinZ; cZ <= cMaxZ; cZ++) { for (int cZ = cMinZ; cZ <= cMaxZ; cZ++) {
for (int cX = cMinX; cX <= cMaxX; cX++) { for (int cX = cMinX; cX <= cMaxX; cX++) {
@@ -54,7 +36,9 @@ public class CoreEventListener {
if (!eventChunkLoad.getNeedLoadChunks().isEmpty()) { if (!eventChunkLoad.getNeedLoadChunks().isEmpty()) {
EventBus.getInstance().post(eventChunkLoad); EventBus.getInstance().post(eventChunkLoad);
} }
}
private void processUnloadChunks(CS_PlayerMoveEvent event, int cMinX, int cMaxX, int cMinZ, int cMaxZ) {
SC_ChunkUnloadEvent eventChunkUnload = new SC_ChunkUnloadEvent(event.getPlayer()); SC_ChunkUnloadEvent eventChunkUnload = new SC_ChunkUnloadEvent(event.getPlayer());
Iterator<Integer> itr = event.getPlayer().getLoadedChunks().iterator(); Iterator<Integer> itr = event.getPlayer().getLoadedChunks().iterator();
while(itr.hasNext()) { while(itr.hasNext()) {
@@ -71,6 +55,30 @@ public class CoreEventListener {
} }
} }
@Subscriber
public void handlerPlayerMoveEvent(CS_PlayerMoveEvent event) {
Chunk chunk;
chunk = event.getPlayer().getWorld().getChunk(event.getOldLocation().toBlockLocation()); // Old chunk
if (chunk == null) return;
int ccX = chunk.getX();
int ccZ = chunk.getZ();
chunk = event.getPlayer().getWorld().getChunk(event.getNewLocation().toBlockLocation()); // Next chunk
if (chunk == null) return;
int ncX = chunk.getX();
int ncZ = chunk.getZ();
if (event.isRecalcChunk() || (ncX != ccX || ncZ != ccZ)) {
final int viewDistance = event.getPlayer().getSettings().getViewDistance() + 1;
final int cMinX = chunk.getX() - viewDistance;
final int cMaxX = chunk.getX() + viewDistance;
final int cMinZ = chunk.getZ() - viewDistance;
final int cMaxZ = chunk.getZ() + viewDistance;
processLoadChunks(event, cMinX, cMaxX, cMinZ, cMaxZ);
processUnloadChunks(event, cMinX, cMaxX, cMinZ, cMaxZ);
}
event.getPlayer().getLocation().setXYZ( event.getPlayer().getLocation().setXYZ(
event.getNewLocation().getX(), event.getNewLocation().getX(),
event.getNewLocation().getY(), event.getNewLocation().getY(),