forked from SteamWar/SteamWar
Fix Warp WorldSpawn
This commit is contained in:
@@ -22,6 +22,7 @@ package de.steamwar.bausystem.features.warp;
|
|||||||
import de.steamwar.bausystem.region.RegionSystem;
|
import de.steamwar.bausystem.region.RegionSystem;
|
||||||
import de.steamwar.bausystem.worlddata.WorldData;
|
import de.steamwar.bausystem.worlddata.WorldData;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
@@ -35,14 +36,20 @@ public class Warp {
|
|||||||
private static Map<String, Warp> warpMap = new HashMap<>();
|
private static Map<String, Warp> warpMap = new HashMap<>();
|
||||||
|
|
||||||
public static void enable() {
|
public static void enable() {
|
||||||
Warp worldSpawn = new Warp("WorldSpawn");
|
Warp worldSpawn = new Warp("WorldSpawn") {
|
||||||
worldSpawn.setLocation(RegionSystem.INSTANCE.getWorldSpawn());
|
@Override
|
||||||
|
public Location getLocation() {
|
||||||
|
return RegionSystem.INSTANCE.getWorldSpawn();
|
||||||
|
}
|
||||||
|
};
|
||||||
worldSpawn.setMat(Material.NETHER_STAR);
|
worldSpawn.setMat(Material.NETHER_STAR);
|
||||||
warpMap.put("WorldSpawn", worldSpawn);
|
warpMap.put("WorldSpawn", worldSpawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
@Setter
|
||||||
private Location location;
|
private Location location;
|
||||||
|
@Setter
|
||||||
private Material mat;
|
private Material mat;
|
||||||
|
|
||||||
private Warp(String name) {
|
private Warp(String name) {
|
||||||
@@ -91,21 +98,13 @@ public class Warp {
|
|||||||
return warpMap.get(name);
|
return warpMap.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMat(Material mat) {
|
|
||||||
this.mat = mat;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLocation(Location location) {
|
|
||||||
this.location = location;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void delete() {
|
public void delete() {
|
||||||
warpMap.remove(name);
|
warpMap.remove(name);
|
||||||
WorldData.getWarpData().remove(name);
|
WorldData.getWarpData().remove(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void teleport(Player player) {
|
public void teleport(Player player) {
|
||||||
player.teleport(location, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
player.teleport(getLocation(), PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||||
player.playSound(location, Sound.ENTITY_ENDERMAN_TELEPORT, SoundCategory.PLAYERS, 1, 1);
|
player.playSound(getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, SoundCategory.PLAYERS, 1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-1
@@ -27,6 +27,7 @@ import de.steamwar.bausystem.region.dynamic.global.GlobalRegion;
|
|||||||
import de.steamwar.bausystem.region.dynamic.path.PathRegion;
|
import de.steamwar.bausystem.region.dynamic.path.PathRegion;
|
||||||
import de.steamwar.bausystem.region.dynamic.spawn.SpawnPathRegion;
|
import de.steamwar.bausystem.region.dynamic.spawn.SpawnPathRegion;
|
||||||
import de.steamwar.bausystem.region.dynamic.spawn.SpawnRegion;
|
import de.steamwar.bausystem.region.dynamic.spawn.SpawnRegion;
|
||||||
|
import de.steamwar.bausystem.region.dynamic.spawn.SpawnResetter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@@ -77,7 +78,11 @@ public class DynamicRegionSystem implements RegionSystem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull Location getWorldSpawn() {
|
public @NonNull Location getWorldSpawn() {
|
||||||
return new Location(Bukkit.getWorlds().get(0), 0, 0, 0);
|
if (SpawnResetter.isBigSpawn()) {
|
||||||
|
return SpawnResetter.BIG_WORLD_SPAWN;
|
||||||
|
} else {
|
||||||
|
return SpawnResetter.SMALL_WORLD_SPAWN;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
@@ -20,8 +20,10 @@
|
|||||||
package de.steamwar.bausystem.region.dynamic.normal;
|
package de.steamwar.bausystem.region.dynamic.normal;
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
|
import de.steamwar.bausystem.region.FlagStorage;
|
||||||
import de.steamwar.bausystem.region.Point;
|
import de.steamwar.bausystem.region.Point;
|
||||||
import de.steamwar.bausystem.region.Region;
|
import de.steamwar.bausystem.region.Region;
|
||||||
|
import de.steamwar.bausystem.region.flags.Flag;
|
||||||
import de.steamwar.bausystem.utils.PasteBuilder;
|
import de.steamwar.bausystem.utils.PasteBuilder;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -92,6 +94,7 @@ public class WorkArea extends NormalArea {
|
|||||||
EditSession editSession = pasteBuilder.minPoint(minPoint)
|
EditSession editSession = pasteBuilder.minPoint(minPoint)
|
||||||
.maxPoint(maxPoint)
|
.maxPoint(maxPoint)
|
||||||
.rotate(rotate)
|
.rotate(rotate)
|
||||||
|
.color(region.getFlags().get(Flag.COLOR).getWithDefault())
|
||||||
.run();
|
.run();
|
||||||
region.getHistory().remember(editSession);
|
region.getHistory().remember(editSession);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -38,6 +38,9 @@ public class SpawnResetter {
|
|||||||
private static final File SECTIONS_DIR = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections");
|
private static final File SECTIONS_DIR = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections");
|
||||||
private static final File RESET_FILE = new File(SECTIONS_DIR, "spawn/SpawnBig.schem");
|
private static final File RESET_FILE = new File(SECTIONS_DIR, "spawn/SpawnBig.schem");
|
||||||
|
|
||||||
|
public static final Location BIG_WORLD_SPAWN = new Location(Bukkit.getWorlds().get(0), 0.5, 26, 0.5);
|
||||||
|
public static final Location SMALL_WORLD_SPAWN = new Location(Bukkit.getWorlds().get(0), 0.5, 32, 0.5);
|
||||||
|
|
||||||
private static final Location LOCATION = new Location(null, 0, 0, 0);
|
private static final Location LOCATION = new Location(null, 0, 0, 0);
|
||||||
|
|
||||||
public boolean isBigSpawn() {
|
public boolean isBigSpawn() {
|
||||||
@@ -81,6 +84,7 @@ public class SpawnResetter {
|
|||||||
private void internalReset(Region region, boolean message) {
|
private void internalReset(Region region, boolean message) {
|
||||||
Region.Area area = region.getArea();
|
Region.Area area = region.getArea();
|
||||||
Point minPoint = area.getMinPoint(false);
|
Point minPoint = area.getMinPoint(false);
|
||||||
|
System.out.println(area.getClass() + " " + area.getResetFile());
|
||||||
Clipboard clipboard = FlatteningWrapper.impl.loadSchematic(area.getResetFile());
|
Clipboard clipboard = FlatteningWrapper.impl.loadSchematic(area.getResetFile());
|
||||||
BlockVector3 offset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin());
|
BlockVector3 offset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin());
|
||||||
BlockVector3 to = minPoint.toBlockVector3().subtract(offset);
|
BlockVector3 to = minPoint.toBlockVector3().subtract(offset);
|
||||||
|
|||||||
Reference in New Issue
Block a user