From aeda617a55c6b5c8910bd0844f34efe988227151 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 21 May 2020 08:42:39 +0200 Subject: [PATCH 1/2] Make it possible to walk on the floor in prefight stage Signed-off-by: Lixfel --- FightSystem_API/src/de/steamwar/fightsystem/Config.java | 2 ++ .../steamwar/fightsystem/listener/PlayerMoveListener.java | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 88bb7dc..afc767a 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -58,6 +58,7 @@ public class Config { public static final int ArenaMinZ; public static final int ArenaMaxX; public static final int ArenaMaxZ; + public static final boolean GroundWalkable; //schematic parameter public static final boolean OnlyPublicSchematics; @@ -154,6 +155,7 @@ public class Config { BorderFromSchematic = worldconfig.getInt("Arena.BorderFromSchematic"); AlignWater = worldconfig.getBoolean("Arena.AlignWater"); WaterDepth = worldconfig.getInt("Arena.WaterDepth"); + GroundWalkable = config.getBoolean("Arena.GroundWalkable"); SchematicType = de.steamwar.sql.SchematicType.fromDB(config.getString("Schematic.SchematicType")); IgnorePublicOnly = config.getBoolean("Schematic.IgnorePublicOnly"); diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java index 61aa744..2584a99 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java @@ -70,14 +70,12 @@ public class PlayerMoveListener extends BasicListener { boolean inArenaY = to.getY() + 1.8 <= Config.upperArenaBorder; if(to.getY() <= Config.underArenaBorder) { - if(player.getGameMode() == GameMode.SPECTATOR){ + if(player.getGameMode() == GameMode.SPECTATOR || team == null) reset(event, DENY_ARENA); - }else if(FightSystem.getFightState() == FightState.RUNNING || FightSystem.getFightState() == FightState.ENTERN) + else if(FightSystem.getFightState().infight()) player.damage(2); - else if(team != null){ + else if(!Config.GroundWalkable) player.teleport(team.getSpawn()); - }else - reset(event, DENY_ARENA); }else if(team != null && !inArenaY){ reset(event, DENY_ARENA); } -- 2.39.2 From 4fd9a6a2f8cef08deafaf8074f555d95337ef72b Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 21 May 2020 09:28:50 +0200 Subject: [PATCH 2/2] Choosable spawn offset Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/Config.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index afc767a..308d85c 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -156,6 +156,9 @@ public class Config { AlignWater = worldconfig.getBoolean("Arena.AlignWater"); WaterDepth = worldconfig.getInt("Arena.WaterDepth"); GroundWalkable = config.getBoolean("Arena.GroundWalkable"); + double teamBlueSpawnOffsetX = worldconfig.getDouble("Arena.SpawnOffset.x"); + double teamBlueSpawnOffsetY = worldconfig.getDouble("Arena.SpawnOffset.y"); + double teamBlueSpawnOffsetZ = worldconfig.getDouble("Arena.SpawnOffset.z"); SchematicType = de.steamwar.sql.SchematicType.fromDB(config.getString("Schematic.SchematicType")); IgnorePublicOnly = config.getBoolean("Schematic.IgnorePublicOnly"); @@ -245,8 +248,14 @@ public class Config { TeamRedPasteZ = TeamBluePasteZ + TeamBluetoReddistanceZ; World world = Bukkit.getWorlds().get(0); - TeamBlueSpawn = new Location(world, TeamBluePasteX + 0.5, TeamBlueCornerY + (double)SchemsizeY + 0.5, TeamBluePasteZ + 0.5); - TeamRedSpawn = new Location(world, TeamRedPasteX + 0.5, TeamRedCornerY + (double)SchemsizeY + 0.5, TeamRedPasteZ + 0.5); + TeamBlueSpawn = new Location(world, + TeamBluePasteX + 0.5 + teamBlueSpawnOffsetX, + TeamBlueCornerY + 0.5 + teamBlueSpawnOffsetY, + TeamBluePasteZ + 0.5 + teamBlueSpawnOffsetZ); + TeamRedSpawn = new Location(world, + TeamRedPasteX + 0.5 - teamBlueSpawnOffsetX, + TeamRedCornerY + 0.5 + teamBlueSpawnOffsetY, + TeamRedPasteZ + 0.5 - teamBlueSpawnOffsetZ); SpecSpawn = new Location(world, TeamBluePasteX + TeamBluetoReddistanceX/2.0, TeamBlueCornerY + TeamBluetoReddistanceY/2.0 + SchemsizeY/2.0, -- 2.39.2