mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 11:13:45 +01:00 
			
		
		
		
	Merge branch 'features/v5/internal-updates' into features/v5/async-load
This commit is contained in:
		@@ -39,7 +39,7 @@ public class EntitySpawnListener implements Listener {
 | 
				
			|||||||
    private static boolean hasPlotArea = false;
 | 
					    private static boolean hasPlotArea = false;
 | 
				
			||||||
    private static String areaName = null;
 | 
					    private static String areaName = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void testNether(Entity entity) {
 | 
					    public static void testNether(final Entity entity) {
 | 
				
			||||||
        @NotNull World world = entity.getWorld();
 | 
					        @NotNull World world = entity.getWorld();
 | 
				
			||||||
        if (world.getEnvironment() != World.Environment.NETHER
 | 
					        if (world.getEnvironment() != World.Environment.NETHER
 | 
				
			||||||
            && world.getEnvironment() != World.Environment.THE_END) {
 | 
					            && world.getEnvironment() != World.Environment.THE_END) {
 | 
				
			||||||
@@ -48,15 +48,16 @@ public class EntitySpawnListener implements Listener {
 | 
				
			|||||||
        test(entity);
 | 
					        test(entity);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void testCreate(Entity entity) {
 | 
					    public static void testCreate(final Entity entity) {
 | 
				
			||||||
        @NotNull World world = entity.getWorld();
 | 
					        @NotNull World world = entity.getWorld();
 | 
				
			||||||
        if (areaName == world.getName()) {
 | 
					        if (areaName == world.getName()) {
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            areaName = world.getName();
 | 
					            areaName = world.getName();
 | 
				
			||||||
            hasPlotArea = PlotSquared.get().hasPlotArea(areaName);
 | 
					            hasPlotArea = PlotSquared.get().hasPlotArea(areaName);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (!hasPlotArea)
 | 
					        if (!hasPlotArea) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        test(entity);
 | 
					        test(entity);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -76,15 +77,21 @@ public class EntitySpawnListener implements Listener {
 | 
				
			|||||||
                    if (!world.getName().equalsIgnoreCase(originWorld + "_the_end")) {
 | 
					                    if (!world.getName().equalsIgnoreCase(originWorld + "_the_end")) {
 | 
				
			||||||
                        try {
 | 
					                        try {
 | 
				
			||||||
                            ignoreTP = true;
 | 
					                            ignoreTP = true;
 | 
				
			||||||
                            PaperLib.teleportAsync(entity,origin);
 | 
					                            PaperLib.teleportAsync(entity, origin);
 | 
				
			||||||
                        } finally {
 | 
					                        } finally {
 | 
				
			||||||
                            ignoreTP = false;
 | 
					                            ignoreTP = false;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					                        if (entity.getType() == EntityType.PLAYER) {
 | 
				
			||||||
 | 
					                            return;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                        if (entity.getLocation().getWorld().equals(world)) {
 | 
					                        if (entity.getLocation().getWorld().equals(world)) {
 | 
				
			||||||
                            entity.remove();
 | 
					                            entity.remove();
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
 | 
					                    if (entity.getType() == EntityType.PLAYER) {
 | 
				
			||||||
 | 
					                        return;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    entity.remove();
 | 
					                    entity.remove();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -136,7 +143,7 @@ public class EntitySpawnListener implements Listener {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @EventHandler public void onChunkLoad(ChunkLoadEvent event) {
 | 
					    @EventHandler public void onChunkLoad(ChunkLoadEvent event) {
 | 
				
			||||||
        @NotNull Chunk chunk = event.getChunk();
 | 
					        @NotNull Chunk chunk = event.getChunk();
 | 
				
			||||||
        for (Entity entity : chunk.getEntities()) {
 | 
					        for (final Entity entity : chunk.getEntities()) {
 | 
				
			||||||
            testCreate(entity);
 | 
					            testCreate(entity);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -101,8 +101,12 @@ public class Claim extends SubCommand {
 | 
				
			|||||||
        final String finalSchematic = schematic;
 | 
					        final String finalSchematic = schematic;
 | 
				
			||||||
        DBFunc.createPlotSafe(plot, () -> TaskManager.IMP.sync(new RunnableVal<Object>() {
 | 
					        DBFunc.createPlotSafe(plot, () -> TaskManager.IMP.sync(new RunnableVal<Object>() {
 | 
				
			||||||
            @Override public void run(Object value) {
 | 
					            @Override public void run(Object value) {
 | 
				
			||||||
                plot.claim(player, true, finalSchematic);
 | 
					                if (!plot.claim(player, true, finalSchematic)) {
 | 
				
			||||||
                if (area.isAutoMerge()) {
 | 
					                    PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
 | 
				
			||||||
 | 
					                        String.format("Failed to claim plot %s", plot.getId().toCommaSeparatedString()));
 | 
				
			||||||
 | 
					                    sendMessage(player, Captions.PLOT_NOT_CLAIMED);
 | 
				
			||||||
 | 
					                    plot.owner = null;
 | 
				
			||||||
 | 
					                } else if (area.isAutoMerge()) {
 | 
				
			||||||
                    PlotMergeEvent event = PlotSquared.get().getEventDispatcher()
 | 
					                    PlotMergeEvent event = PlotSquared.get().getEventDispatcher()
 | 
				
			||||||
                        .callMerge(plot, Direction.ALL, Integer.MAX_VALUE, player);
 | 
					                        .callMerge(plot, Direction.ALL, Integer.MAX_VALUE, player);
 | 
				
			||||||
                    if (event.getEventResult() == Result.DENY) {
 | 
					                    if (event.getEventResult() == Result.DENY) {
 | 
				
			||||||
@@ -112,7 +116,12 @@ public class Claim extends SubCommand {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }), () -> sendMessage(player, Captions.PLOT_NOT_CLAIMED));
 | 
					        }), () -> {
 | 
				
			||||||
 | 
					            PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
 | 
				
			||||||
 | 
					                String.format("Failed to add plot %s to the database", plot.getId().toCommaSeparatedString()));
 | 
				
			||||||
 | 
					            sendMessage(player, Captions.PLOT_NOT_CLAIMED);
 | 
				
			||||||
 | 
					            plot.owner = null;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -978,7 +978,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void createPlotSafe(final Plot plot, final Runnable success, final Runnable failure) {
 | 
					    public void createPlotSafe(final Plot plot, final Runnable success, final Runnable failure) {
 | 
				
			||||||
        final long timestamp = plot.getTimestamp();
 | 
					 | 
				
			||||||
        addPlotTask(plot, new UniqueStatement("createPlotSafe_" + plot.hashCode()) {
 | 
					        addPlotTask(plot, new UniqueStatement("createPlotSafe_" + plot.hashCode()) {
 | 
				
			||||||
            @Override public void set(PreparedStatement statement) throws SQLException {
 | 
					            @Override public void set(PreparedStatement statement) throws SQLException {
 | 
				
			||||||
                statement.setInt(1, plot.getId().x);
 | 
					                statement.setInt(1, plot.getId().x);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1709,6 +1709,9 @@ public class Plot {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public boolean claim(final PlotPlayer player, boolean teleport, String schematic) {
 | 
					    public boolean claim(final PlotPlayer player, boolean teleport, String schematic) {
 | 
				
			||||||
        if (!canClaim(player)) {
 | 
					        if (!canClaim(player)) {
 | 
				
			||||||
 | 
					            PlotSquared.debug(Captions.PREFIX.getTranslated() +
 | 
				
			||||||
 | 
					                String.format("Player %s attempted to claim plot %s, but was not allowed",
 | 
				
			||||||
 | 
					                    player.getName(), this.getId().toCommaSeparatedString()));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return claim(player, teleport, schematic, true);
 | 
					        return claim(player, teleport, schematic, true);
 | 
				
			||||||
@@ -1719,6 +1722,9 @@ public class Plot {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (updateDB) {
 | 
					        if (updateDB) {
 | 
				
			||||||
            if (!create(player.getUUID(), true)) {
 | 
					            if (!create(player.getUUID(), true)) {
 | 
				
			||||||
 | 
					                PlotSquared.debug(Captions.PREFIX.getTranslated() +
 | 
				
			||||||
 | 
					                    String.format("Player %s attempted to claim plot %s, but the database failed to update",
 | 
				
			||||||
 | 
					                        player.getName(), this.getId().toCommaSeparatedString()));
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
@@ -1804,6 +1810,9 @@ public class Plot {
 | 
				
			|||||||
            });
 | 
					            });
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
 | 
				
			||||||
 | 
					            String.format("Failed to add plot %s to plot area %s", this.getId().toCommaSeparatedString(),
 | 
				
			||||||
 | 
					            this.area.toString()));
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2346,7 +2355,13 @@ public class Plot {
 | 
				
			|||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return this.guessOwner() == null && !isMerged();
 | 
					        final UUID owner = this.guessOwner();
 | 
				
			||||||
 | 
					        if (owner != null) {
 | 
				
			||||||
 | 
					            if (player == null || !player.getUUID().equals(owner)) {
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return !isMerged();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user