SteamWar/FightSystem
Archiviert
13
1

Merge pull request 'Make it possible to walk on the floor in prefight stage + Spawn position options' (#151) from FloorWalkable into master

Reviewed-by: YoyoNow <jwsteam@nidido.de>
Dieser Commit ist enthalten in:
Lixfel 2020-05-21 11:34:25 +02:00
Commit f2ec132272
2 geänderte Dateien mit 16 neuen und 7 gelöschten Zeilen

Datei anzeigen

@ -58,6 +58,7 @@ public class Config {
public static final int ArenaMinZ; public static final int ArenaMinZ;
public static final int ArenaMaxX; public static final int ArenaMaxX;
public static final int ArenaMaxZ; public static final int ArenaMaxZ;
public static final boolean GroundWalkable;
//schematic parameter //schematic parameter
public static final boolean OnlyPublicSchematics; public static final boolean OnlyPublicSchematics;
@ -154,6 +155,10 @@ public class Config {
BorderFromSchematic = worldconfig.getInt("Arena.BorderFromSchematic"); BorderFromSchematic = worldconfig.getInt("Arena.BorderFromSchematic");
AlignWater = worldconfig.getBoolean("Arena.AlignWater"); AlignWater = worldconfig.getBoolean("Arena.AlignWater");
WaterDepth = worldconfig.getInt("Arena.WaterDepth"); 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")); SchematicType = de.steamwar.sql.SchematicType.fromDB(config.getString("Schematic.SchematicType"));
IgnorePublicOnly = config.getBoolean("Schematic.IgnorePublicOnly"); IgnorePublicOnly = config.getBoolean("Schematic.IgnorePublicOnly");
@ -243,8 +248,14 @@ public class Config {
TeamRedPasteZ = TeamBluePasteZ + TeamBluetoReddistanceZ; TeamRedPasteZ = TeamBluePasteZ + TeamBluetoReddistanceZ;
World world = Bukkit.getWorlds().get(0); World world = Bukkit.getWorlds().get(0);
TeamBlueSpawn = new Location(world, TeamBluePasteX + 0.5, TeamBlueCornerY + (double)SchemsizeY + 0.5, TeamBluePasteZ + 0.5); TeamBlueSpawn = new Location(world,
TeamRedSpawn = new Location(world, TeamRedPasteX + 0.5, TeamRedCornerY + (double)SchemsizeY + 0.5, TeamRedPasteZ + 0.5); 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, SpecSpawn = new Location(world,
TeamBluePasteX + TeamBluetoReddistanceX/2.0, TeamBluePasteX + TeamBluetoReddistanceX/2.0,
TeamBlueCornerY + TeamBluetoReddistanceY/2.0 + SchemsizeY/2.0, TeamBlueCornerY + TeamBluetoReddistanceY/2.0 + SchemsizeY/2.0,

Datei anzeigen

@ -70,14 +70,12 @@ public class PlayerMoveListener extends BasicListener {
boolean inArenaY = to.getY() + 1.8 <= Config.upperArenaBorder; boolean inArenaY = to.getY() + 1.8 <= Config.upperArenaBorder;
if(to.getY() <= Config.underArenaBorder) { if(to.getY() <= Config.underArenaBorder) {
if(player.getGameMode() == GameMode.SPECTATOR){ if(player.getGameMode() == GameMode.SPECTATOR || team == null)
reset(event, DENY_ARENA); reset(event, DENY_ARENA);
}else if(FightSystem.getFightState() == FightState.RUNNING || FightSystem.getFightState() == FightState.ENTERN) else if(FightSystem.getFightState().infight())
player.damage(2); player.damage(2);
else if(team != null){ else if(!Config.GroundWalkable)
player.teleport(team.getSpawn()); player.teleport(team.getSpawn());
}else
reset(event, DENY_ARENA);
}else if(team != null && !inArenaY){ }else if(team != null && !inArenaY){
reset(event, DENY_ARENA); reset(event, DENY_ARENA);
} }