mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 15:16:45 +01:00
Fixes
This commit is contained in:
parent
9f89928120
commit
96dd736a6d
@ -332,7 +332,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setString((i * 6) + 4, DBFunc.everyone.toString());
|
stmt.setString((i * 6) + 4, DBFunc.everyone.toString());
|
||||||
}
|
}
|
||||||
stmt.setString((i * 6) + 5, plot.world);
|
stmt.setString((i * 6) + 5, plot.world);
|
||||||
stmt.setTimestamp((i * 6) + 6, new Timestamp(System.currentTimeMillis()));
|
stmt.setString((i * 6) + 6, System.currentTimeMillis() + "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -23,6 +23,7 @@ package com.intellectualcrafters.plot.object;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -146,6 +147,14 @@ public class Plot {
|
|||||||
this.temp = false;
|
this.temp = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the players currently inside this plot
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<PlotPlayer> getPlayersInPlot() {
|
||||||
|
return MainUtil.getPlayersInPlot(this);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the plot has a set owner
|
* Check if the plot has a set owner
|
||||||
*
|
*
|
||||||
|
@ -106,7 +106,7 @@ public class MainUtil {
|
|||||||
public static List<PlotPlayer> getPlayersInPlot(Plot plot) {
|
public static List<PlotPlayer> getPlayersInPlot(Plot plot) {
|
||||||
ArrayList<PlotPlayer> players = new ArrayList<>();
|
ArrayList<PlotPlayer> players = new ArrayList<>();
|
||||||
for (PlotPlayer pp : UUIDHandler.getPlayers().values()) {
|
for (PlotPlayer pp : UUIDHandler.getPlayers().values()) {
|
||||||
if (plot.equals(MainUtil.getPlot(pp.getLocation()))) {
|
if (plot.equals(pp.getCurrentPlot())) {
|
||||||
players.add(pp);
|
players.add(pp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,10 @@ import com.intellectualcrafters.plot.object.Plot;
|
|||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
|
import com.intellectualcrafters.plot.object.StaticStrings;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
|
import com.intellectualcrafters.plot.util.StringMan;
|
||||||
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
import com.plotsquared.bukkit.util.BukkitUtil;
|
import com.plotsquared.bukkit.util.BukkitUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,7 +30,7 @@ import com.plotsquared.bukkit.util.BukkitUtil;
|
|||||||
*/
|
*/
|
||||||
public class ChatListener implements Listener {
|
public class ChatListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onChat(final AsyncPlayerChatEvent event) {
|
public void onChat(final AsyncPlayerChatEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String world = player.getWorld().getName();
|
final String world = player.getWorld().getName();
|
||||||
@ -44,20 +47,21 @@ public class ChatListener implements Listener {
|
|||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
event.setCancelled(true);
|
||||||
final String message = event.getMessage();
|
final String message = event.getMessage();
|
||||||
String format = C.PLOT_CHAT_FORMAT.s();
|
|
||||||
final String sender = event.getPlayer().getDisplayName();
|
final String sender = event.getPlayer().getDisplayName();
|
||||||
final PlotId id = plot.id;
|
final PlotId id = plot.id;
|
||||||
final Set<Player> recipients = event.getRecipients();
|
String toSend = StringMan.replaceAll(C.PLOT_CHAT_FORMAT.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender, "%msg%", message);
|
||||||
recipients.clear();
|
PS.debug("FORMAT: " + event.getFormat());
|
||||||
for (final Player p : Bukkit.getOnlinePlayers()) {
|
PS.debug("MESSAGE: " + event.getMessage());
|
||||||
if (p.hasPermission("plots.admin.command.chat") || plot.equals(MainUtil.getPlot(BukkitUtil.getLocation(p)))) {
|
for (PlotPlayer recipient : UUIDHandler.getPlayers().values()) {
|
||||||
recipients.add(p);
|
if (plot.equals(recipient.getCurrentPlot())) {
|
||||||
|
recipient.sendMessage(toSend);
|
||||||
|
}
|
||||||
|
else if (recipient.hasPermission(StaticStrings.PERMISSION_COMMANDS_CHAT)) {
|
||||||
|
recipient.sendMessage(toSend);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
format = format.replaceAll("%plot_id%", id.x + ";" + id.y).replaceAll("%sender%", sender).replaceAll("%msg%", message.replaceAll("([%]{1})", "%%"));
|
|
||||||
format = ChatColor.translateAlternateColorCodes('&', format);
|
|
||||||
event.setFormat(format);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ import com.intellectualcrafters.plot.object.PlotLoc;
|
|||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.object.RegionWrapper;
|
import com.intellectualcrafters.plot.object.RegionWrapper;
|
||||||
|
import com.intellectualcrafters.plot.object.RunnableVal;
|
||||||
import com.intellectualcrafters.plot.util.ChunkManager;
|
import com.intellectualcrafters.plot.util.ChunkManager;
|
||||||
import com.intellectualcrafters.plot.util.ClusterManager;
|
import com.intellectualcrafters.plot.util.ClusterManager;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
@ -194,112 +195,61 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean copyRegion(final Location pos1, final Location pos2, final Location newPos, final Runnable whenDone) {
|
public boolean copyRegion(final Location pos1, final Location pos2, final Location newPos, final Runnable whenDone) {
|
||||||
TaskManager.index.incrementAndGet();
|
|
||||||
final int relX = newPos.getX() - pos1.getX();
|
final int relX = newPos.getX() - pos1.getX();
|
||||||
final int relZ = newPos.getZ() - pos1.getZ();
|
final int relZ = newPos.getZ() - pos1.getZ();
|
||||||
|
|
||||||
|
final int relCX = relX >> 4;
|
||||||
|
final int relCZ = relZ >> 4;
|
||||||
|
|
||||||
final RegionWrapper region = new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
final RegionWrapper region = new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
||||||
final World oldWorld = Bukkit.getWorld(pos1.getWorld());
|
final World oldWorld = Bukkit.getWorld(pos1.getWorld());
|
||||||
final World newWorld = Bukkit.getWorld(newPos.getWorld());
|
final World newWorld = Bukkit.getWorld(newPos.getWorld());
|
||||||
|
|
||||||
final Chunk c1 = newWorld.getChunkAt(pos1.getX() >> 4, pos1.getZ() >> 4);
|
|
||||||
final Chunk c2 = newWorld.getChunkAt(pos2.getX() >> 4, pos2.getZ() >> 4);
|
|
||||||
|
|
||||||
final int sx = pos1.getX();
|
|
||||||
final int sz = pos1.getZ();
|
|
||||||
final int ex = pos2.getX();
|
|
||||||
final int ez = pos2.getZ();
|
|
||||||
|
|
||||||
final int c1x = c1.getX();
|
|
||||||
final int c1z = c1.getZ();
|
|
||||||
final int c2x = c2.getX();
|
|
||||||
final int c2z = c2.getZ();
|
|
||||||
|
|
||||||
final ArrayList<Chunk> chunks = new ArrayList<>();
|
final ArrayList<Chunk> chunks = new ArrayList<>();
|
||||||
final ArrayList<Chunk> toGenerate = new ArrayList<>();
|
|
||||||
// Load chunks
|
initMaps();
|
||||||
for (int x = c1x; x <= c2x; x++) {
|
|
||||||
for (int z = c1z; z <= c2z; z++) {
|
ChunkManager.chunkTask(pos1, pos2, new RunnableVal<int[]>() {
|
||||||
final Chunk chunk = newWorld.getChunkAt(x, z);
|
|
||||||
toGenerate.add(chunk);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final Plugin plugin = BukkitMain.THIS;
|
|
||||||
final Integer currentIndex = TaskManager.index.get();
|
|
||||||
final int loadTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
final long start = System.currentTimeMillis();
|
int bx = value[2];
|
||||||
while ((System.currentTimeMillis() - start) < 25) {
|
int bz = value[3];
|
||||||
if (toGenerate.size() == 0) {
|
|
||||||
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
int tx = value[4];
|
||||||
TaskManager.tasks.remove(currentIndex);
|
int tz = value[5];
|
||||||
TaskManager.runTask(new Runnable() {
|
// Load chunks
|
||||||
@Override
|
ChunkLoc loc1 = new ChunkLoc(value[0], value[1]);
|
||||||
public void run() {
|
ChunkLoc loc2 = new ChunkLoc(loc1.x + relCX, loc1.z + relCZ);
|
||||||
TaskManager.index.incrementAndGet();
|
Chunk c1 = oldWorld.getChunkAt(loc1.x, loc1.z);
|
||||||
// Copy entities
|
Chunk c2 = oldWorld.getChunkAt(loc2.x, loc2.z);
|
||||||
initMaps();
|
c1.load(true);
|
||||||
for (int x = c1x; x <= c2x; x++) {
|
c2.load(true);
|
||||||
for (int z = c1z; z <= c2z; z++) {
|
chunks.add(c2);
|
||||||
final Chunk chunk = oldWorld.getChunkAt(x, z);
|
// entities
|
||||||
chunks.add(chunk);
|
saveEntitiesIn(c1, region);
|
||||||
chunk.load(false);
|
// copy chunk
|
||||||
}
|
for (int x = bx; x <= tx; x++) {
|
||||||
}
|
for (int z = bz; z <= tz; z++) {
|
||||||
// Copy blocks
|
saveBlocks(oldWorld, 255, x, z);
|
||||||
final AtomicInteger mx = new AtomicInteger(sx);
|
for (int y = 1; y < 256; y++) {
|
||||||
final Integer currentIndex = TaskManager.index.get();
|
final Block block = oldWorld.getBlockAt(x, y, z);
|
||||||
final int maxY = oldWorld.getMaxHeight();
|
final int id = block.getTypeId();
|
||||||
final Integer task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
|
final byte data = block.getData();
|
||||||
@Override
|
BukkitSetBlockManager.setBlockManager.set(newWorld, x + relX, y, z + relZ, id, data);
|
||||||
public void run() {
|
}
|
||||||
final long start = System.currentTimeMillis();
|
|
||||||
while ((System.currentTimeMillis() - start) < 25) {
|
|
||||||
final int xv = mx.intValue();
|
|
||||||
for (int z = sz; z <= ez; z++) {
|
|
||||||
saveBlocks(oldWorld, maxY, xv, z);
|
|
||||||
for (int y = 1; y <= maxY; y++) {
|
|
||||||
final Block block = oldWorld.getBlockAt(xv, y, z);
|
|
||||||
final int id = block.getTypeId();
|
|
||||||
final byte data = block.getData();
|
|
||||||
BukkitSetBlockManager.setBlockManager.set(newWorld, xv + relX, y, z + relZ, id, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mx.incrementAndGet();
|
|
||||||
if (xv == ex) { // done!
|
|
||||||
for (int x = c1x; x <= c2x; x++) {
|
|
||||||
for (int z = c1z; z <= c2z; z++) {
|
|
||||||
final Chunk chunk = oldWorld.getChunkAt(x, z);
|
|
||||||
chunks.add(chunk);
|
|
||||||
chunk.load(false);
|
|
||||||
saveEntitiesIn(chunk, region);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
restoreBlocks(newWorld, relX, relZ);
|
|
||||||
restoreEntities(newWorld, relX, relZ);
|
|
||||||
BukkitSetBlockManager.setBlockManager.update(chunks);
|
|
||||||
TaskManager.runTask(whenDone);
|
|
||||||
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
|
||||||
TaskManager.tasks.remove(currentIndex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1, 1);
|
|
||||||
TaskManager.tasks.put(currentIndex, task);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
final Chunk chunk = toGenerate.get(0);
|
|
||||||
toGenerate.remove(0);
|
|
||||||
chunk.load(true);
|
|
||||||
chunks.add(chunk);
|
|
||||||
}
|
}
|
||||||
|
// restore chunk
|
||||||
|
restoreBlocks(newWorld, relX, relZ);
|
||||||
|
restoreEntities(newWorld, relX, relZ);
|
||||||
|
BukkitSetBlockManager.setBlockManager.update(chunks);
|
||||||
}
|
}
|
||||||
}, 1l, 1l);
|
}, new Runnable() {
|
||||||
TaskManager.tasks.put(currentIndex, loadTask);
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// TODO whenDone
|
||||||
|
TaskManager.runTask(whenDone);
|
||||||
|
}
|
||||||
|
}, 5);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -549,7 +499,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
try {
|
try {
|
||||||
entity.spawn(world, x_offset, z_offset);
|
entity.spawn(world, x_offset, z_offset);
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("Failed to restore entity " + entity.x + "," + entity.y + "," + entity.z + " : " + entity.id + " : " + EntityType.fromId(entity.id));
|
PS.debug("Failed to restore entity (e): " + entity.x + "," + entity.y + "," + entity.z + " : " + entity.id + " : " + EntityType.fromId(entity.id));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -568,7 +518,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate chest: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate chest: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate chest: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate chest (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : signContents.keySet()) {
|
for (final BlockLoc loc : signContents.keySet()) {
|
||||||
@ -601,7 +551,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : dropperContents.keySet()) {
|
for (final BlockLoc loc : dropperContents.keySet()) {
|
||||||
@ -615,7 +565,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate dispenser (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : beaconContents.keySet()) {
|
for (final BlockLoc loc : beaconContents.keySet()) {
|
||||||
@ -629,7 +579,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate beacon: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate beacon: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate beacon: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate beacon (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : jukeDisc.keySet()) {
|
for (final BlockLoc loc : jukeDisc.keySet()) {
|
||||||
@ -643,7 +593,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore jukebox: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore jukebox: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate jukebox: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate jukebox (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : skullData.keySet()) {
|
for (final BlockLoc loc : skullData.keySet()) {
|
||||||
@ -666,7 +616,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore skull: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore skull: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate skull: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate skull (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : hopperContents.keySet()) {
|
for (final BlockLoc loc : hopperContents.keySet()) {
|
||||||
@ -680,7 +630,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate hopper: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate hopper: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate hopper: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate hopper (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : noteBlockContents.keySet()) {
|
for (final BlockLoc loc : noteBlockContents.keySet()) {
|
||||||
@ -694,7 +644,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate note block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate note block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate note block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate note block (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : brewTime.keySet()) {
|
for (final BlockLoc loc : brewTime.keySet()) {
|
||||||
@ -707,7 +657,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore brewing stand cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore brewing stand cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to restore brewing stand cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore brewing stand cooking (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : spawnerData.keySet()) {
|
for (final BlockLoc loc : spawnerData.keySet()) {
|
||||||
@ -721,7 +671,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore spawner type: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore spawner type: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to restore spawner type: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore spawner type (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : cmdData.keySet()) {
|
for (final BlockLoc loc : cmdData.keySet()) {
|
||||||
@ -735,7 +685,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore command block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore command block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to restore command block: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore command block (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : brewingStandContents.keySet()) {
|
for (final BlockLoc loc : brewingStandContents.keySet()) {
|
||||||
@ -749,7 +699,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate brewing stand: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate brewing stand: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate brewing stand: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate brewing stand (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : furnaceTime.keySet()) {
|
for (final BlockLoc loc : furnaceTime.keySet()) {
|
||||||
@ -764,7 +714,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to restore furnace cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore furnace cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to restore furnace cooking: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to restore furnace cooking (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : furnaceContents.keySet()) {
|
for (final BlockLoc loc : furnaceContents.keySet()) {
|
||||||
@ -778,7 +728,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate furnace: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate furnace: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate furnace: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate furnace (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (final BlockLoc loc : bannerBase.keySet()) {
|
for (final BlockLoc loc : bannerBase.keySet()) {
|
||||||
@ -798,7 +748,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
PS.debug("&c[WARN] Plot clear failed to regenerate banner: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate banner: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
PS.debug("&c[WARN] Plot clear failed to regenerate banner: " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
PS.debug("&c[WARN] Plot clear failed to regenerate banner (e): " + (loc.x + x_offset) + "," + (loc.y) + "," + (loc.z + z_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,9 +56,9 @@ public class FileUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
PS.debug(C.PREFIX.s() + "&6Starting player data caching for: " + world);
|
PS.debug(C.PREFIX.s() + "&6Starting player data caching for: " + world);
|
||||||
final HashBiMap<StringWrapper, UUID> toAdd = HashBiMap.create(new HashMap<StringWrapper, UUID>());
|
|
||||||
toAdd.put(new StringWrapper("*"), DBFunc.everyone);
|
|
||||||
if (Settings.TWIN_MODE_UUID) {
|
if (Settings.TWIN_MODE_UUID) {
|
||||||
|
final HashBiMap<StringWrapper, UUID> toAdd = HashBiMap.create(new HashMap<StringWrapper, UUID>());
|
||||||
|
toAdd.put(new StringWrapper("*"), DBFunc.everyone);
|
||||||
HashSet<UUID> all = UUIDHandler.getAllUUIDS();
|
HashSet<UUID> all = UUIDHandler.getAllUUIDS();
|
||||||
PS.debug("&aFast mode UUID caching enabled!");
|
PS.debug("&aFast mode UUID caching enabled!");
|
||||||
final File playerdataFolder = new File(container, world + File.separator + "playerdata");
|
final File playerdataFolder = new File(container, world + File.separator + "playerdata");
|
||||||
@ -99,6 +99,8 @@ public class FileUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
PS.debug("Failed to cache: " + all.size() + " uuids - slowly processing all files");
|
PS.debug("Failed to cache: " + all.size() + " uuids - slowly processing all files");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
final HashBiMap<StringWrapper, UUID> toAdd = HashBiMap.create(new HashMap<StringWrapper, UUID>());
|
||||||
|
toAdd.put(new StringWrapper("*"), DBFunc.everyone);
|
||||||
final HashSet<String> worlds = new HashSet<>();
|
final HashSet<String> worlds = new HashSet<>();
|
||||||
worlds.add(world);
|
worlds.add(world);
|
||||||
worlds.add("world");
|
worlds.add("world");
|
||||||
|
@ -218,14 +218,16 @@ public class MainListener {
|
|||||||
String sender = player.getName();
|
String sender = player.getName();
|
||||||
PlotId id = plot.id;
|
PlotId id = plot.id;
|
||||||
String newMessage = StringMan.replaceAll(C.PLOT_CHAT_FORMAT.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
String newMessage = StringMan.replaceAll(C.PLOT_CHAT_FORMAT.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
||||||
String forcedMessage = StringMan.replaceAll(C.PLOT_CHAT_FORCED.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
Text forcedMessage = event.getMessage();
|
||||||
|
// String forcedMessage = StringMan.replaceAll(C.PLOT_CHAT_FORCED.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
||||||
for (PlotPlayer user : UUIDHandler.getPlayers().values()) {
|
for (PlotPlayer user : UUIDHandler.getPlayers().values()) {
|
||||||
String toSend;
|
String toSend;
|
||||||
if (plot.equals(MainUtil.getPlot(user.getLocation()))) {
|
if (plot.equals(MainUtil.getPlot(user.getLocation()))) {
|
||||||
toSend = newMessage;
|
toSend = newMessage;
|
||||||
}
|
}
|
||||||
else if (Permissions.hasPermission(user, PERMISSION_COMMANDS_CHAT)) {
|
else if (Permissions.hasPermission(user, PERMISSION_COMMANDS_CHAT)) {
|
||||||
toSend = forcedMessage;
|
((SpongePlayer) user).player.sendMessage(forcedMessage);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user