Add RegionCommand.copyPointCommand
Dieser Commit ist enthalten in:
Ursprung
ffc16db480
Commit
b0eb0dfae3
@ -19,10 +19,13 @@
|
|||||||
|
|
||||||
package de.steamwar.bausystem.region;
|
package de.steamwar.bausystem.region;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.*;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@ToString
|
@ToString
|
||||||
@ -45,4 +48,20 @@ public class Point {
|
|||||||
public Point subtract(int x, int y, int z) {
|
public Point subtract(int x, int y, int z) {
|
||||||
return new Point(this.x - x, this.y - y, this.z - z);
|
return new Point(this.x - x, this.y - y, this.z - z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Location toLocation(World world) {
|
||||||
|
return new Location(world, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location toLocation(World world, double dx, double dy, double dz) {
|
||||||
|
return new Location(world, x + dx, y + dy, z + dz);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location toLocation(Player player) {
|
||||||
|
return new Location(player.getWorld(), x, y, z, player.getLocation().getYaw(), player.getLocation().getPitch());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location toLocation(Player player, double dx, double dy, double dz) {
|
||||||
|
return new Location(player.getWorld(), x + dx, y + dy, z + dz, player.getLocation().getYaw(), player.getLocation().getPitch());
|
||||||
|
}
|
||||||
}
|
}
|
@ -14,7 +14,9 @@ import de.steamwar.bausystem.region.utils.RegionType;
|
|||||||
import de.steamwar.command.SWCommand;
|
import de.steamwar.command.SWCommand;
|
||||||
import de.steamwar.sql.Schematic;
|
import de.steamwar.sql.Schematic;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
@ -127,6 +129,16 @@ public class RegionCommand extends SWCommand {
|
|||||||
colorCommand.genericColor(p, color);
|
colorCommand.genericColor(p, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Register("copypoint")
|
||||||
|
public void copyPointCommand(Player p) {
|
||||||
|
Region region = Region.getRegion(p.getLocation());
|
||||||
|
if (checkGlobalRegion(region, p)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
p.teleport(region.getCopyPoint().toLocation(p, 0.5, 0, 0.5), PlayerTeleportEvent.TeleportCause.COMMAND);
|
||||||
|
p.sendMessage(BauSystem.PREFIX + "§7Zum Kopierpunkt teleportiert");
|
||||||
|
}
|
||||||
|
|
||||||
static boolean checkGlobalRegion(Region region, Player p) {
|
static boolean checkGlobalRegion(Region region, Player p) {
|
||||||
if (region.isGlobal()) {
|
if (region.isGlobal()) {
|
||||||
p.sendMessage(BauSystem.PREFIX + "§cDu bist in keiner Region");
|
p.sendMessage(BauSystem.PREFIX + "§cDu bist in keiner Region");
|
||||||
|
@ -49,6 +49,10 @@ public class Prototype {
|
|||||||
private final SubPrototype testblock; // Nullable
|
private final SubPrototype testblock; // Nullable
|
||||||
private final SubPrototype build; // Nullable
|
private final SubPrototype build; // Nullable
|
||||||
|
|
||||||
|
private final int copyPointOffsetX;
|
||||||
|
private final int copyPointOffsetY;
|
||||||
|
private final int copyPointOffsetZ;
|
||||||
|
|
||||||
public Prototype(String name, YAPIONObject yapionObject) {
|
public Prototype(String name, YAPIONObject yapionObject) {
|
||||||
PROTOTYPE_MAP.put(name, this);
|
PROTOTYPE_MAP.put(name, this);
|
||||||
|
|
||||||
@ -59,6 +63,10 @@ public class Prototype {
|
|||||||
sizeY = yapionObject.getPlainValue("sizeY");
|
sizeY = yapionObject.getPlainValue("sizeY");
|
||||||
sizeZ = yapionObject.getPlainValue("sizeZ");
|
sizeZ = yapionObject.getPlainValue("sizeZ");
|
||||||
|
|
||||||
|
copyPointOffsetX = yapionObject.getPlainValue("copyOffsetX");
|
||||||
|
copyPointOffsetY = yapionObject.getPlainValue("copyOffsetY");
|
||||||
|
copyPointOffsetZ = yapionObject.getPlainValue("copyOffsetZ");
|
||||||
|
|
||||||
schematicFile = new File(yapionObject.getValue("schematic", String.class).get());
|
schematicFile = new File(yapionObject.getValue("schematic", String.class).get());
|
||||||
|
|
||||||
floorOffset = yapionObject.getPlainValueOrDefault("floorOffset", 0);
|
floorOffset = yapionObject.getPlainValueOrDefault("floorOffset", 0);
|
||||||
|
@ -82,6 +82,8 @@ public class Region {
|
|||||||
private int floorLevel;
|
private int floorLevel;
|
||||||
private int waterLevel;
|
private int waterLevel;
|
||||||
|
|
||||||
|
private Point copyPoint; // Nullable
|
||||||
|
|
||||||
private String linkedRegionName = null; // Nullable
|
private String linkedRegionName = null; // Nullable
|
||||||
private Region linkedRegion = null; // Nullable
|
private Region linkedRegion = null; // Nullable
|
||||||
|
|
||||||
@ -162,6 +164,8 @@ public class Region {
|
|||||||
} else {
|
} else {
|
||||||
waterLevel = 0;
|
waterLevel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
copyPoint = this.minPoint.add(prototype.getCopyPointOffsetX(), prototype.getCopyPointOffsetY(), prototype.getCopyPointOffsetZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean inRegion(Location location, RegionType regionType, RegionExtensionType regionExtensionType) {
|
public boolean inRegion(Location location, RegionType regionType, RegionExtensionType regionExtensionType) {
|
||||||
|
189
yapion/prototypes.yapion
Normale Datei
189
yapion/prototypes.yapion
Normale Datei
@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
wg{
|
||||||
|
displayName(WarGear)
|
||||||
|
schematic(sections4/WGArena.schem)
|
||||||
|
sizeX(178)
|
||||||
|
sizeY(119)
|
||||||
|
sizeZ(221)
|
||||||
|
copyOffsetX(89)
|
||||||
|
copyOffsetY(45)
|
||||||
|
copyOffsetZ(85)
|
||||||
|
floorOffset(46)
|
||||||
|
testblock{
|
||||||
|
sizeX(67)
|
||||||
|
sizeY(41)
|
||||||
|
sizeZ(47)
|
||||||
|
offsetX(56)
|
||||||
|
offsetY(45)
|
||||||
|
offsetZ(135)
|
||||||
|
schematic(sections4/WGTestblock.schem)
|
||||||
|
extensionX(20)
|
||||||
|
extensionPositiveY(20)
|
||||||
|
extensionNegativeZ(12)
|
||||||
|
extensionPositiveZ(20)
|
||||||
|
}
|
||||||
|
build{
|
||||||
|
sizeX(67)
|
||||||
|
sizeY(41)
|
||||||
|
sizeZ(47)
|
||||||
|
offsetX(56)
|
||||||
|
offsetY(45)
|
||||||
|
offsetZ(38)
|
||||||
|
extensionX(20)
|
||||||
|
extensionPositiveY(20)
|
||||||
|
extensionNegativeZ(20)
|
||||||
|
extensionPositiveZ(12)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mwg{
|
||||||
|
displayName(MiniWarGear)
|
||||||
|
schematic(sections4/MWGArena.schem)
|
||||||
|
sizeX(107)
|
||||||
|
sizeY(94)
|
||||||
|
sizeZ(141)
|
||||||
|
copyOffsetX(53)
|
||||||
|
copyOffsetY(45)
|
||||||
|
copyOffsetZ(45)
|
||||||
|
floorOffset(46)
|
||||||
|
testblock{
|
||||||
|
sizeX(37)
|
||||||
|
sizeY(26)
|
||||||
|
sizeZ(22)
|
||||||
|
offsetX(35)
|
||||||
|
offsetY(45)
|
||||||
|
offsetZ(95)
|
||||||
|
schematic(sections4/MWGTestblock.schem)
|
||||||
|
extensionX(7)
|
||||||
|
extensionPositiveY(7)
|
||||||
|
extensionNegativeZ(7)
|
||||||
|
extensionPositiveZ(7)
|
||||||
|
}
|
||||||
|
build{
|
||||||
|
sizeX(37)
|
||||||
|
sizeY(26)
|
||||||
|
sizeZ(22)
|
||||||
|
offsetX(35)
|
||||||
|
offsetY(45)
|
||||||
|
offsetZ(23)
|
||||||
|
extensionX(7)
|
||||||
|
extensionPositiveY(7)
|
||||||
|
extensionNegativeZ(7)
|
||||||
|
extensionPositiveZ(7)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
as{
|
||||||
|
displayName(AirShip)
|
||||||
|
schematic(sections4/ASArena.schem)
|
||||||
|
sizeX(121)
|
||||||
|
sizeY(64)
|
||||||
|
sizeZ(177)
|
||||||
|
copyOffsetX(5)
|
||||||
|
copyOffsetY(11)
|
||||||
|
copyOffsetZ(38)
|
||||||
|
testblock{
|
||||||
|
sizeX(115)
|
||||||
|
sizeY(45)
|
||||||
|
sizeZ(65)
|
||||||
|
offsetX(6)
|
||||||
|
offsetY(10)
|
||||||
|
offsetZ(106)
|
||||||
|
schematic(sections4/ASTestblock.schem)
|
||||||
|
}
|
||||||
|
build{
|
||||||
|
sizeX(115)
|
||||||
|
sizeY(45)
|
||||||
|
sizeZ(65)
|
||||||
|
offsetX(6)
|
||||||
|
offsetY(10)
|
||||||
|
offsetZ(6)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ws{
|
||||||
|
displayName(WarShip)
|
||||||
|
schematic(sections4/WSArena.schem)
|
||||||
|
sizeX(214)
|
||||||
|
sizeY(97)
|
||||||
|
sizeZ(185)
|
||||||
|
copyOffsetX(19)
|
||||||
|
copyOffsetY(28)
|
||||||
|
copyOffsetZ(145)
|
||||||
|
waterLevel(53)
|
||||||
|
testblock{
|
||||||
|
sizeX(175)
|
||||||
|
sizeY(58)
|
||||||
|
sizeZ(31)
|
||||||
|
offsetX(20)
|
||||||
|
offsetY(20)
|
||||||
|
offsetZ(-1)
|
||||||
|
schematic(sections4/WSTestblock.schem)
|
||||||
|
extensionX(12)
|
||||||
|
extensionNegativeZ(8)
|
||||||
|
extensionPositiveZ(8)
|
||||||
|
}
|
||||||
|
build{
|
||||||
|
sizeX(175)
|
||||||
|
sizeY(58)
|
||||||
|
sizeZ(39)
|
||||||
|
offsetX(20)
|
||||||
|
offsetY(20)
|
||||||
|
offsetZ(126)
|
||||||
|
extensionX(12)
|
||||||
|
extensionNegativeZ(8)
|
||||||
|
extensionPositiveZ(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ws_inner{
|
||||||
|
displayName(WarShip)
|
||||||
|
schematic(sections4/WSInnerArena.schem)
|
||||||
|
sizeX(214)
|
||||||
|
sizeY(97)
|
||||||
|
sizeZ(185)
|
||||||
|
copyOffsetX(19)
|
||||||
|
copyOffsetY(28)
|
||||||
|
copyOffsetZ(34)
|
||||||
|
waterLevel(53)
|
||||||
|
testblock{
|
||||||
|
sizeX(175)
|
||||||
|
sizeY(58)
|
||||||
|
sizeZ(31)
|
||||||
|
offsetX(20)
|
||||||
|
offsetY(20)
|
||||||
|
offsetZ(154)
|
||||||
|
schematic(sections4/WSTestblock.schem)
|
||||||
|
extensionX(12)
|
||||||
|
extensionNegativeZ(8)
|
||||||
|
extensionPositiveZ(8)
|
||||||
|
}
|
||||||
|
build{
|
||||||
|
sizeX(175)
|
||||||
|
sizeY(58)
|
||||||
|
sizeZ(39)
|
||||||
|
offsetX(20)
|
||||||
|
offsetY(20)
|
||||||
|
offsetZ(19)
|
||||||
|
extensionX(12)
|
||||||
|
extensionNegativeZ(8)
|
||||||
|
extensionPositiveZ(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ws_rumpf{
|
||||||
|
displayName(WarShip Rumpf)
|
||||||
|
schematic(sections4/WSRumpf.schem)
|
||||||
|
sizeX(184)
|
||||||
|
sizeY(67)
|
||||||
|
sizeZ(48)
|
||||||
|
copyOffsetX(4)
|
||||||
|
copyOffsetY(13)
|
||||||
|
copyOffsetZ(24)
|
||||||
|
}
|
||||||
|
ws_rahmen{
|
||||||
|
displayName(WarShip Rahmen)
|
||||||
|
schematic(sections4/WSRahmen.schem)
|
||||||
|
sizeX(184)
|
||||||
|
sizeY(67)
|
||||||
|
sizeZ(48)
|
||||||
|
copyOffsetX(4)
|
||||||
|
copyOffsetY(13)
|
||||||
|
copyOffsetZ(24)
|
||||||
|
}
|
||||||
|
}
|
219
yapion/regions.yapion
Normale Datei
219
yapion/regions.yapion
Normale Datei
@ -0,0 +1,219 @@
|
|||||||
|
{
|
||||||
|
wg11{
|
||||||
|
minX(-188)
|
||||||
|
minY(1)
|
||||||
|
minZ(26)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
wg12{
|
||||||
|
minX(-188)
|
||||||
|
minY(1)
|
||||||
|
minZ(248)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
wg21{
|
||||||
|
minX(-367)
|
||||||
|
minY(1)
|
||||||
|
minZ(26)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
wg22{
|
||||||
|
minX(-367)
|
||||||
|
minY(1)
|
||||||
|
minZ(248)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
wg31{
|
||||||
|
minX(-546)
|
||||||
|
minY(1)
|
||||||
|
minZ(26)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
wg32{
|
||||||
|
minX(-546)
|
||||||
|
minY(1)
|
||||||
|
minZ(248)
|
||||||
|
prototype(wg)
|
||||||
|
}
|
||||||
|
|
||||||
|
mwg11{
|
||||||
|
minX(-119)
|
||||||
|
minY(1)
|
||||||
|
minZ(-164)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg12{
|
||||||
|
minX(-119)
|
||||||
|
minY(1)
|
||||||
|
minZ(-306)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg13{
|
||||||
|
minX(-119)
|
||||||
|
minY(1)
|
||||||
|
minZ(-448)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg21{
|
||||||
|
minX(-225)
|
||||||
|
minY(1)
|
||||||
|
minZ(-164)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg22{
|
||||||
|
minX(-225)
|
||||||
|
minY(1)
|
||||||
|
minZ(-306)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg23{
|
||||||
|
minX(-225)
|
||||||
|
minY(1)
|
||||||
|
minZ(-448)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg31{
|
||||||
|
minX(-331)
|
||||||
|
minY(1)
|
||||||
|
minZ(-164)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg32{
|
||||||
|
minX(-331)
|
||||||
|
minY(1)
|
||||||
|
minZ(-306)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg33{
|
||||||
|
minX(-331)
|
||||||
|
minY(1)
|
||||||
|
minZ(-448)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg41{
|
||||||
|
minX(-437)
|
||||||
|
minY(1)
|
||||||
|
minZ(-164)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg42{
|
||||||
|
minX(-437)
|
||||||
|
minY(1)
|
||||||
|
minZ(-306)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg43{
|
||||||
|
minX(-437)
|
||||||
|
minY(1)
|
||||||
|
minZ(-448)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg51{
|
||||||
|
minX(-543)
|
||||||
|
minY(1)
|
||||||
|
minZ(-164)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg52{
|
||||||
|
minX(-543)
|
||||||
|
minY(1)
|
||||||
|
minZ(-306)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
mwg53{
|
||||||
|
minX(-543)
|
||||||
|
minY(1)
|
||||||
|
minZ(-448)
|
||||||
|
prototype(mwg)
|
||||||
|
}
|
||||||
|
|
||||||
|
as11{
|
||||||
|
minX(33)
|
||||||
|
minY(55)
|
||||||
|
minZ(29)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as12{
|
||||||
|
minX(33)
|
||||||
|
minY(55)
|
||||||
|
minZ(218)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as21{
|
||||||
|
minX(160)
|
||||||
|
minY(55)
|
||||||
|
minZ(29)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as22{
|
||||||
|
minX(160)
|
||||||
|
minY(55)
|
||||||
|
minZ(218)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as31{
|
||||||
|
minX(287)
|
||||||
|
minY(55)
|
||||||
|
minZ(29)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as32{
|
||||||
|
minX(287)
|
||||||
|
minY(55)
|
||||||
|
minZ(218)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as41{
|
||||||
|
minX(414)
|
||||||
|
minY(55)
|
||||||
|
minZ(29)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
as42{
|
||||||
|
minX(414)
|
||||||
|
minY(55)
|
||||||
|
minZ(218)
|
||||||
|
prototype(as)
|
||||||
|
}
|
||||||
|
|
||||||
|
ws11{
|
||||||
|
optionsLinkedWith(ws12)
|
||||||
|
minX(14)
|
||||||
|
minY(26)
|
||||||
|
minZ(-214)
|
||||||
|
prototype(ws)
|
||||||
|
}
|
||||||
|
ws12{
|
||||||
|
optionsLinkedWith(ws11)
|
||||||
|
minX(14)
|
||||||
|
minY(26)
|
||||||
|
minZ(-369)
|
||||||
|
prototype(ws_inner)
|
||||||
|
}
|
||||||
|
ws21{
|
||||||
|
optionsLinkedWith(ws22)
|
||||||
|
minX(266)
|
||||||
|
minY(26)
|
||||||
|
minZ(-214)
|
||||||
|
prototype(ws)
|
||||||
|
}
|
||||||
|
ws22{
|
||||||
|
optionsLinkedWith(ws21)
|
||||||
|
minX(266)
|
||||||
|
minY(26)
|
||||||
|
minZ(-369)
|
||||||
|
prototype(ws_inner)
|
||||||
|
}
|
||||||
|
ws_rumpf{
|
||||||
|
minX(29)
|
||||||
|
minY(41)
|
||||||
|
minZ(-440)
|
||||||
|
prototype(ws_rumpf)
|
||||||
|
}
|
||||||
|
ws_rahmen{
|
||||||
|
minX(281)
|
||||||
|
minY(41)
|
||||||
|
minZ(-440)
|
||||||
|
prototype(ws_rahmen)
|
||||||
|
}
|
||||||
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren