- Баллы
- 173
Помогите мне исправить этот баг: Бессмертные мобы. Писал на Bukkit, никто не отвечает, надеюсь тут поможете.Думаю это из-за ChunkCoordIntPair , так как без него все хорошо работает(Света нету).
Вот код:
Дайте мне способ как решить эту проблему (Обяз. с кодом), или какой нибудь другой способ.
Вот код:
Код:
//New Chunk Update
public static List<Chunk> getChunks(Player p) {
List<Chunk> res = new ArrayList<Chunk>();
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
Location loc = new Location(p.getWorld(), x, y, z);
Location posx = new Location(p.getWorld(), x + 16, y, z);
Location negx = new Location(p.getWorld(), x - 16, y, z);
Location posz = new Location(p.getWorld(), x, y, z + 16);
Location negz = new Location(p.getWorld(), x, y, z - 16);
Location diag1 = new Location(p.getWorld(), x + 16, y, z + 16);
Location diag2 = new Location(p.getWorld(), x - 16, y, z + 16);
Location diag3 = new Location(p.getWorld(), x + 16, y, z - 16);
Location diag4 = new Location(p.getWorld(), x - 16, y, z - 16);
res.add(loc.getChunk());
res.add(posx.getChunk());
res.add(negx.getChunk());
res.add(posz.getChunk());
res.add(negz.getChunk());
res.add(diag1.getChunk());
res.add(diag2.getChunk());
res.add(diag3.getChunk());
res.add(diag4.getChunk());
return res;
}
public static void sendClientChangesStandart(Player player) {
for (Player p : Bukkit.getOnlinePlayers()){
List<ChunkCoordIntPair> pairs = new ArrayList<ChunkCoordIntPair>();
for (Chunk c : getChunks(p)) {
pairs.add(new ChunkCoordIntPair(c.getX(), c.getZ()));
}
EntityPlayer ep = ((CraftPlayer) p).getHandle();
queueChunks(ep,pairs);
}
}
private static void queueChunks(EntityPlayer ep, List<ChunkCoordIntPair> pairs) {
Set<ChunkCoordIntPair> queued = new HashSet<ChunkCoordIntPair>();
for (Object o : ep.chunkCoordIntPairQueue) {
queued.add((ChunkCoordIntPair) o);
}
for (ChunkCoordIntPair pair : pairs) {
ep.chunkCoordIntPairQueue.clear();
if (!queued.contains(pair)) {
ep.chunkCoordIntPairQueue.add(pair);
}
}
}
//Chunk Server
Дайте мне способ как решить эту проблему (Обяз. с кодом), или какой нибудь другой способ.