mirror of
https://github.com/Zrips/Jobs.git
synced 2024-12-30 21:07:48 +01:00
Merge pull request #1357 from jippi/fix-explore-cache
ExploreRegion: Fix encoding X and Z
This commit is contained in:
commit
41df0ea794
@ -1,75 +1,55 @@
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
|
||||
public class ExploreRegion {
|
||||
|
||||
int x;
|
||||
int z;
|
||||
|
||||
private final Map<Short, ExploreChunk> chunks = new HashMap<>();
|
||||
|
||||
public ExploreRegion(int x, int z) {
|
||||
this.x = x;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public void addChunk(int x, int z, ExploreChunk chunk) {
|
||||
chunks.put(getPlace(x, z), chunk);
|
||||
}
|
||||
|
||||
public Map<Short, ExploreChunk> getChunks() {
|
||||
return chunks;
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(int x, int z) {
|
||||
return getChunk(getPlace(x, z));
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(Chunk chunk) {
|
||||
return getChunk(getPlace(chunk));
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(short place) {
|
||||
return chunks.get(place);
|
||||
}
|
||||
|
||||
private static short getPlace(Chunk chunk) {
|
||||
return getPlace(chunk.getX(), chunk.getZ());
|
||||
}
|
||||
|
||||
private static short getPlace(int x, int z) {
|
||||
return (short) ((x - ((x >> 5) * 32)) + ((z - ((z >> 5) * 32)) * 32));
|
||||
}
|
||||
|
||||
public int getChunkX(short place) {
|
||||
int endX = place % 32;
|
||||
|
||||
if (x < 0)
|
||||
endX = -endX;
|
||||
|
||||
endX = x * 32 + endX;
|
||||
|
||||
if (endX < 0) {
|
||||
endX += 32;
|
||||
}
|
||||
|
||||
return endX;
|
||||
}
|
||||
|
||||
public int getChunkZ(short place) {
|
||||
int endZ = (place - (place % 32)) / 32;
|
||||
if (z < 0)
|
||||
endZ = -endZ;
|
||||
endZ = z * 32 + endZ;
|
||||
|
||||
if (endZ < 0) {
|
||||
endZ += 32;
|
||||
}
|
||||
|
||||
return endZ;
|
||||
}
|
||||
}
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
|
||||
public class ExploreRegion {
|
||||
|
||||
int x;
|
||||
int z;
|
||||
|
||||
private final Map<Long, ExploreChunk> chunks = new HashMap<>();
|
||||
|
||||
public ExploreRegion(int x, int z) {
|
||||
this.x = x;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public void addChunk(int x, int z, ExploreChunk chunk) {
|
||||
chunks.put(getPlace(x, z), chunk);
|
||||
}
|
||||
|
||||
public Map<Long, ExploreChunk> getChunks() {
|
||||
return chunks;
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(int x, int z) {
|
||||
return getChunk(getPlace(x, z));
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(Chunk chunk) {
|
||||
return getChunk(getPlace(chunk));
|
||||
}
|
||||
|
||||
public ExploreChunk getChunk(long place) {
|
||||
return chunks.get(place);
|
||||
}
|
||||
|
||||
private static long getPlace(Chunk chunk) {
|
||||
return getPlace(chunk.getX(), chunk.getZ());
|
||||
}
|
||||
|
||||
private static long getPlace(int x, int z) {
|
||||
return (((long) x) << 32) | (z & 0xffffffff);
|
||||
}
|
||||
|
||||
public int getChunkX(long place) {
|
||||
return (int)(place >> 32);
|
||||
}
|
||||
|
||||
public int getChunkZ(long place) {
|
||||
return (int) place;
|
||||
}
|
||||
}
|
||||
|
@ -1541,7 +1541,7 @@ public abstract class JobsDAO {
|
||||
* Join a job (create player-job entry from storage)
|
||||
* @param player - player that wishes to join the job
|
||||
* @param job - job that the player wishes to join
|
||||
* @throws SQLException
|
||||
* @throws SQLException
|
||||
*/
|
||||
public List<Convert> convertDatabase() throws SQLException {
|
||||
List<Convert> list = new ArrayList<>();
|
||||
@ -2465,7 +2465,7 @@ public abstract class JobsDAO {
|
||||
|
||||
int id = jobsWorld == null ? 0 : jobsWorld.getId();
|
||||
if (id != 0)
|
||||
for (Entry<Short, ExploreChunk> oneChunk : region.getValue().getChunks().entrySet()) {
|
||||
for (Entry<Long, ExploreChunk> oneChunk : region.getValue().getChunks().entrySet()) {
|
||||
ExploreChunk chunk = oneChunk.getValue();
|
||||
if (chunk.getDbId() != -1)
|
||||
continue;
|
||||
@ -2598,7 +2598,7 @@ public abstract class JobsDAO {
|
||||
/**
|
||||
* Save player-job information
|
||||
* @param jobInfo - the information getting saved
|
||||
* @return
|
||||
* @return
|
||||
*/
|
||||
public List<Integer> getLognameList(int fromtime, int untiltime) {
|
||||
JobsConnection conn = getConnection();
|
||||
@ -2630,7 +2630,7 @@ public abstract class JobsDAO {
|
||||
/**
|
||||
* Show top list
|
||||
* @param toplist - toplist by jobs name
|
||||
* @return
|
||||
* @return
|
||||
*/
|
||||
public List<TopList> toplist(String jobsname) {
|
||||
return toplist(jobsname, 0);
|
||||
@ -2639,7 +2639,7 @@ public abstract class JobsDAO {
|
||||
/**
|
||||
* Show top list
|
||||
* @param toplist - toplist by jobs name
|
||||
* @return
|
||||
* @return
|
||||
*/
|
||||
public List<TopList> toplist(String jobsname, int limit) {
|
||||
List<TopList> jobs = new ArrayList<>();
|
||||
@ -2790,4 +2790,4 @@ public abstract class JobsDAO {
|
||||
return DBTables.JobsTable.getTableName();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user