Fixes #783
Fixes #780
This commit is contained in:
Jesse Boyd
2015-12-15 03:15:30 +11:00
parent 35589dcc5f
commit 163ccc9eae
6 changed files with 110 additions and 21 deletions

View File

@ -156,7 +156,7 @@ public class LikePlotMeConverter {
if (!connector.isValidConnection(connection)) {
sendMessage("Cannot connect to PlotMe DB. Conversion process will not continue");
return false;
}
}
sendMessage(plugin + " conversion has started. To disable this, please set 'plotme-convert.enabled' to false in the 'settings.yml'");

View File

@ -2,6 +2,7 @@ package com.plotsquared.bukkit.generator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map.Entry;
import org.bukkit.World;
import org.bukkit.block.Biome;
@ -109,7 +110,7 @@ public class HybridPop extends BukkitPlotPopulator {
}
}
if (requiredRegion != null) {
if (requiredRegion != null) {
if (!doFloor && !doFilling && plotworld.G_SCH_DATA == null) {
return;
}
@ -127,8 +128,8 @@ public class HybridPop extends BukkitPlotPopulator {
final int absZ = ((sz + z) % size);
final PlotLoc loc = new PlotLoc(absX, absZ);
final HashMap<Short, Byte> blocks = plotworld.G_SCH_DATA.get(loc);
if (blocks != null) {
for (final short y : blocks.keySet()) {
if (blocks != null) {
for (Entry<Short, Byte> entry : blocks.entrySet()) {
setBlockAbs(x, (short) (plotheight + entry.getKey()), z, entry.getValue());
}
}
@ -164,8 +165,8 @@ public class HybridPop extends BukkitPlotPopulator {
if (plotworld.PLOT_SCHEMATIC) {
final PlotLoc loc = new PlotLoc(absX, absZ);
final HashMap<Short, Byte> blocks = plotworld.G_SCH_DATA.get(loc);
if (blocks != null) {
for (final short y : blocks.keySet()) {
if (blocks != null) {
for (Entry<Short, Byte> entry : blocks.entrySet()) {
setBlockAbs(x, (short) (plotheight + entry.getKey()), z, entry.getValue());
}
}
@ -199,8 +200,8 @@ public class HybridPop extends BukkitPlotPopulator {
if (plotworld.ROAD_SCHEMATIC_ENABLED) {
final PlotLoc loc = new PlotLoc(absX, absZ);
final HashMap<Short, Byte> blocks = plotworld.G_SCH_DATA.get(loc);
if (blocks != null) {
for (final short y : blocks.keySet()) {
if (blocks != null) {
for (Entry<Short, Byte> entry : blocks.entrySet()) {
setBlockAbs(x, (short) (roadheight + entry.getKey()), z, entry.getValue());
}
}

View File

@ -74,7 +74,7 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
@ -405,7 +405,7 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
}
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onConnect(final PlayerJoinEvent event) {
final Player player = event.getPlayer();
@ -428,7 +428,7 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
}
// Async
TaskManager.runTaskLaterAsync(new Runnable() {
@Override
@Override
public void run() {
if (!player.hasPlayedBefore() && player.isOnline()) {
player.saveData();
@ -1623,12 +1623,19 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
return;
}
Plot now = MainUtil.getPlot(loc);
final Plot lastPlot = (Plot) pp.getMeta("lastplot");
final Plot lastPlot = (Plot) pp.getMeta("lastplot");
if (now == null) {
if ((lastPlot != null) && !plotExit(pp, lastPlot) && tmp_teleport) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED);
if (lastPlot.equals(MainUtil.getPlot(BukkitUtil.getLocation(from)))) {
tmp_teleport = false;
player.teleport(from);
player.teleport(from);
tmp_teleport = true;
} else {
Location spawn = BukkitUtil.getLocation(player.getWorld().getSpawnLocation());
if (spawn.getEuclideanDistanceSquared(pp.getLocation()) > 2) {
tmp_teleport = false;
player.teleport(player.getWorld().getSpawnLocation());
tmp_teleport = true;
}
}
@ -1636,29 +1643,43 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
return;
}
} else if ((lastPlot != null) && now.equals(lastPlot)) {
return;
return;
} else {
if (!plotEntry(pp, now)) {
if (!plotEntry(pp, now) && tmp_teleport) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_ENTRY_DENIED);
if (!now.equals(MainUtil.getPlot(BukkitUtil.getLocation(from)))) {
tmp_teleport = false;
player.teleport(from);
player.teleport(from);
tmp_teleport = true;
} else {
Location spawn = BukkitUtil.getLocation(player.getWorld().getSpawnLocation());
if (spawn.getEuclideanDistanceSquared(pp.getLocation()) > 2) {
tmp_teleport = false;
player.teleport(player.getWorld().getSpawnLocation());
tmp_teleport = true;
}
}
event.setCancelled(true);
return;
}
}
}
final Integer border = MainUtil.worldBorder.get(worldname);
if (border != null && tmp_teleport) {
if (z2 > border) {
to.setZ(border - 4);
tmp_teleport = false;
player.teleport(event.getTo());
tmp_teleport = true;
MainUtil.sendMessage(pp, C.BORDER);
return;
} else if (z2 < -border) {
to.setZ(-border + 4);
tmp_teleport = false;
player.teleport(event.getTo());
tmp_teleport = true;
MainUtil.sendMessage(pp, C.BORDER);
return;
}
}
return;
}