mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-08-25 15:25:34 +02:00
Compare commits
1 Commits
fix/v7/pla
...
feat/v7/ge
Author | SHA1 | Date | |
---|---|---|---|
![]() |
91153e1b7b |
@@ -435,6 +435,11 @@ public class Settings extends Config {
|
|||||||
|
|
||||||
public static String SCHEMATICS = "schematics";
|
public static String SCHEMATICS = "schematics";
|
||||||
public static String TEMPLATES = "templates";
|
public static String TEMPLATES = "templates";
|
||||||
|
@Comment({"If schematics used for generation should be searched for in the path.schematics location",
|
||||||
|
" - This settings exists and is `false` by default for backwards compatibility.",
|
||||||
|
" - If false then generation schematics must be located in `schematics`",
|
||||||
|
" - Schematics must still always be under GEN_ROAD_SCHEMATIC/<world> etc."})
|
||||||
|
public static boolean USE_SCHEMATICS_PATH_FOR_GEN_SCHEMATICS = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -140,7 +140,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected PlotManager createManager() {
|
protected PlotManager createManager() {
|
||||||
return new HybridPlotManager(this, PlotSquared.platform().regionManager(),
|
return new HybridPlotManager(
|
||||||
|
this, PlotSquared.platform().regionManager(),
|
||||||
PlotSquared.platform().injector().getInstance(ProgressSubscriberFactory.class)
|
PlotSquared.platform().injector().getInstance(ProgressSubscriberFactory.class)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -215,15 +216,16 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
|
|
||||||
// Try to determine root. This means that plot areas can have separate schematic
|
// Try to determine root. This means that plot areas can have separate schematic
|
||||||
// directories
|
// directories
|
||||||
|
String schematicFolder = Settings.Paths.USE_SCHEMATICS_PATH_FOR_GEN_SCHEMATICS ? Settings.Paths.SCHEMATICS : "schematics";
|
||||||
if (!(root =
|
if (!(root =
|
||||||
FileUtils.getFile(
|
FileUtils.getFile(
|
||||||
PlotSquared.platform().getDirectory(),
|
PlotSquared.platform().getDirectory(),
|
||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.getWorldName() + "/" + this.getId()
|
schematicFolder + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + this.getWorldName() + File.separator + this.getId()
|
||||||
))
|
))
|
||||||
.exists()) {
|
.exists()) {
|
||||||
root = FileUtils.getFile(
|
root = FileUtils.getFile(
|
||||||
PlotSquared.platform().getDirectory(),
|
PlotSquared.platform().getDirectory(),
|
||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.getWorldName()
|
schematicFolder + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + this.getWorldName()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -614,16 +614,16 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
PlotId id = plot.getId();
|
PlotId id = plot.getId();
|
||||||
int x = id.getX();
|
int x = id.getX();
|
||||||
int z = id.getY();
|
int z = id.getY();
|
||||||
ByteBuffer buffer = ByteBuffer.allocate(14);
|
ByteBuffer buffer = ByteBuffer.allocate(13);
|
||||||
buffer.putShort((short) x);
|
buffer.putShort((short) x);
|
||||||
buffer.putShort((short) z);
|
buffer.putShort((short) z);
|
||||||
Location location = getLocation();
|
Location location = getLocation();
|
||||||
buffer.putInt(location.getX());
|
buffer.putInt(location.getX());
|
||||||
buffer.putShort((short) location.getY());
|
buffer.put((byte) location.getY());
|
||||||
buffer.putInt(location.getZ());
|
buffer.putInt(location.getZ());
|
||||||
setPersistentMeta("quitLocV2", buffer.array());
|
setPersistentMeta("quitLoc", buffer.array());
|
||||||
} else if (hasPersistentMeta("quitLocV2")) {
|
} else if (hasPersistentMeta("quitLoc")) {
|
||||||
removePersistentMeta("quitLocV2");
|
removePersistentMeta("quitLoc");
|
||||||
}
|
}
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
this.eventDispatcher.callLeave(this, plot);
|
this.eventDispatcher.callLeave(this, plot);
|
||||||
@@ -700,18 +700,11 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlotArea area = ((SinglePlotAreaManager) manager).getArea();
|
PlotArea area = ((SinglePlotAreaManager) manager).getArea();
|
||||||
boolean V2 = false;
|
|
||||||
byte[] arr = PlotPlayer.this.getPersistentMeta("quitLoc");
|
byte[] arr = PlotPlayer.this.getPersistentMeta("quitLoc");
|
||||||
if (arr == null) {
|
|
||||||
arr = PlotPlayer.this.getPersistentMeta("quitLocV2");
|
|
||||||
if (arr == null) {
|
if (arr == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
V2 = true;
|
|
||||||
removePersistentMeta("quitLocV2");
|
|
||||||
} else {
|
|
||||||
removePersistentMeta("quitLoc");
|
removePersistentMeta("quitLoc");
|
||||||
}
|
|
||||||
|
|
||||||
if (!getMeta("teleportOnLogin", true)) {
|
if (!getMeta("teleportOnLogin", true)) {
|
||||||
return;
|
return;
|
||||||
@@ -721,7 +714,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
final int plotZ = quitWorld.getShort();
|
final int plotZ = quitWorld.getShort();
|
||||||
PlotId id = PlotId.of(plotX, plotZ);
|
PlotId id = PlotId.of(plotX, plotZ);
|
||||||
int x = quitWorld.getInt();
|
int x = quitWorld.getInt();
|
||||||
int y = V2 ? quitWorld.getShort() : (quitWorld.get() & 0xFF);
|
int y = quitWorld.get() & 0xFF;
|
||||||
int z = quitWorld.getInt();
|
int z = quitWorld.getInt();
|
||||||
Plot plot = area.getOwnedPlot(id);
|
Plot plot = area.getOwnedPlot(id);
|
||||||
|
|
||||||
@@ -755,11 +748,10 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
LOGGER.error("Error populating persistent meta for player {}", PlotPlayer.this.getName(), e);
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user