SteamWar/FightSystem
Archiviert
13
1

The big refactoring #238

Manuell gemergt
Lixfel hat 16 Commits von refactoring nach master 2021-03-31 20:08:07 +02:00 zusammengeführt
3 geänderte Dateien mit 157 neuen und 79 gelöschten Zeilen
Nur Änderungen aus Commit aeaced502a werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -161,6 +161,7 @@ public class Config {
double teamBlueSpawnOffsetX = worldconfig.getDouble("SpawnOffset.x");
double teamBlueSpawnOffsetY = worldconfig.getDouble("SpawnOffset.y");
double teamBlueSpawnOffsetZ = worldconfig.getDouble("SpawnOffset.z");
WaterDepth = config.getInt("Arena.WaterDepth");
int schemsizeX = config.getInt("Arena.Schemsize.x");
int schemsizeY = config.getInt("Arena.Schemsize.y");
@ -197,7 +198,7 @@ public class Config {
HiddenBlocks = Collections.unmodifiableSet(new HashSet<>(config.getStringList("Techhider.HiddenBlocks")));
HiddenBlockEntities = Collections.unmodifiableSet(new HashSet<>(config.getStringList("Techhider.HiddenBlockEntities")));
ObfuscateWith = config.getString("Techhider.ObfuscateWithTag");
ObfuscateWith = config.getString("Techhider.ObfuscateWith");
TechhiderActive = config.getBoolean("Techhider.Active");
if(schemsizeX < 0){

Datei anzeigen

@ -1,90 +1,150 @@
Times:
NoPlayersOnlineDuration: 300
# Time in seconds the server stops after starting if nobody joins
NoPlayersOnlineDuration: 30
# Time in seconds the team leaders have to choose their schematic
PreSchemPasteDuration: 120
# Time in seconds for preparing
SetupDuration: 300
# Time in seconds the final countdown is long
PreFightDuration: 30
# Time in seconds to spectate the arena after the fight
SpectatorDuration: 30
Arena:
# The amount of blocks the schematics should be pasted under the surface
WaterDepth: 0
# The size of the schematics
Schemsize:
x: 0
y: 0
z: 0
# The outer border of the arena, measured in blocks around the schematic areas
Schem2Border:
x: 0
z: 0
# The size of the team areas are expanded around the schematics
BorderFromSchematic: 0
# If ground walkable, teams can walk below the lower arena border during setup
GroundWalkable: true
Schematic:
OnlyPublicSchematics: false
# If the rank system for the schematics should be enabled
RanksEnabled: false
# The schematic type that can be chosen in this arena
SchematicType: normal
# If the schematics should be rotated during pasting
Rotate: true
ReplaceObsidian: false
ReplaceBedrock: false
# If only public schematics are allowed
OnlyPublicSchematics: false
# If the public only force should be completly disabled
IgnorePublicOnly: false
# If obsidian and bedrock should be replaced during PRE_RUNNING
ReplaceObsidianBedrock: false
# If the replacement should happen with blockupdates
ReplaceWithBlockupdates: false
Output:
# Name of the "Red" team
TeamRedName: Rot
# Color prefix of the "Red" team
TeamRedPrefix: '§c'
# Name of the "Blue" team
TeamBlueName: Blau
# Color of the "Blue" team
TeamBluePrefix: '§3'
GameName: War*
# The name of the gamemode presented to the players
GameName: NoGear
# The prefix used for team chats
TeamChatDetection: +
# The list of active winconditions
WinConditions:
Timeout: true
AllDead: true
CaptainDead: false
PercentSystem: false
RelativePercent: false
Points: false
Entern: false
TechKO: false
WaterTechKO: false
HeartRatioTimeout: false
PumpkinTechKO: false
- TIMEOUT
# - HEART_RATIO_TIMEOUT
# - PERCENT_TIMEOUT
- ALL_DEAD
# - CAPTAIN_DEAD
# - PERCENT_SYSTEM
# - RELATIVE_PERCENT
# - POINTS
- WATER_TECH_KO
# - TIME_TECH_KO
# - PUMPKIN_TECH_KO
WinConditionParams:
# The time of any of the timeout winconditions in seconds
TimeoutTime: 1200
EnterPhaseBegin: 600
# The percentage when any of the percent winconditions limits or triggers a win
PercentWin: 5.0
# Blocks ignored by the percent winconditions
IgnoredBlocks:
- AIR
- WATER
- TNT
- OBSIDIAN
Kits:
# The kit file for this configuration
File: kits.yml
# The default kit for team members
MemberDefault: default
# The default kit for team leaders
LeaderDefault: default
# If the personal kit system is active
PersonalKits: false
# Items that are not allowed in the personal kit
ForbiddenItems: []
# A list of integers containing the waiting time of this enter stage in the fight
EnterStages: []
Techhider:
ObfuscateWith: 121
ObfuscateWithTag: ENDER_STONE
# if the techhider is active
Active: true
# Which block the techhider replaces to.
ObfuscateWith: end_stone
# A list of all hidden blocks. "water" results in the hiding of all waterlogged blocks as well.
HiddenBlocks:
BEDROCK: 7
WATER: 8
STATIONARY_WATER: 9
NOTE_BLOCK: 25
DETECTOR_RAIL: 28
PISTON_BASE: 33
PISTON_EXTENSION: 34
PISTON_STICKY_BASE: 29
POWERED_RAIL: 27
TNT: 46
OBSIDIAN: 49
CHEST: 54
REDSTONE_WIRE: 55
STONE_PLATE: 70
IRON_DOOR_BLOCK: 71
WOOD_PLATE: 72
REDSTONE_TORCH_OFF: 75
REDSTONE_TORCH_ON: 76
STONE_BUTTON: 77
DIODE_BLOCK_OFF: 93
DIODE_BLOCK_ON: 94
BREWING_STAND: 117
TRIPWIRE_HOOK: 131
TRIPWIRE: 132
WOOD_BUTTON: 143
TRAPPED_CHEST: 146
GOLD_PLATE: 147
IRON_PLATE: 148
REDSTONE_COMPARATOR_OFF: 149
REDSTONE_COMPARATOR_ON: 150
REDSTONE_BLOCK: 152
HOPPER: 154
ACTIVATOR_RAIL: 157
DROPPER: 158
SLIME_BLOCK: 165
IRON_TRAPDOOR: 167
OBSERVER: 218
LEVER: 69
- water
- note_block
- powered_rail
- detector_rail
- piston
- piston_head
- sticky_piston
- tnt
- chest
- trapped_chest
- redstone_wire
- stone_pressure_plate
- iron_door
- oak_pressure_plate
- spruce_pressure_plate
- birch_pressure_plate
- jungle_pressure_plate
- acacia_pressure_plate
- dark_oak_pressure_plate
- redstone_torch
- redstone_wall_torch
- repeater
- brewing_stand
- tripwire_hook
- tripwire
- heavy_weighted_pressure_plate
- light_weighted_pressure_plate
- comparator
- redstone_block
- hopper
- activator_rail
- dropper
- slime_block
- observer
- honey_block
- lever
# The block entities that are hidden (contents of blocks)
HiddenBlockEntites:
- minecraft:sign
- minecraft:dispenser
@ -98,22 +158,22 @@ Techhider:
- minecraft:jukebox
- minecraft:comparator
# Muss in config.yml des Weltordners gesetzt werden
Arena:
Schemsize:
x: 0
y: 0
z: 0
TeamBlueCorner:
x: 0
y: 0
z: 0
TeamBluetoReddistance:
x: 0
y: 0
z: 0
Schem2Border:
x: 0
z: 0
underArenaBorder: 0
BorderFromSchematic: 0
# The following configuration must be in the Worldforlder/config.yml
#
# # The lower arena border under which players get damage
# UnderBorder:
# # The lowest corner in all axis of the blue team schematic area
# BlueCorner:
# x: 0
# y: 0
# z: 0
# # The offset between the lowest corner of the blue area and the lowest corner of the red area
# BlueToRed:
# x: 0
# y: 0
# z: 0
# # The offset the teams spawn relative to the center of their area
# SpawnOffset:
# x: 0
# y: 0
# z: 0

Datei anzeigen

@ -23,13 +23,25 @@ import de.steamwar.fightsystem.ArenaMode;
import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.states.FightState;
import de.steamwar.fightsystem.states.StateDependentCountdown;
import de.steamwar.fightsystem.states.StateDependentListener;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public class NoPlayersOnlineCountdown extends Countdown {
public class NoPlayersOnlineCountdown extends Countdown implements Listener {
public NoPlayersOnlineCountdown() {
super(Config.NoPlayerOnlineDuration, null, false);
new StateDependentCountdown(ArenaMode.All, FightState.PreLeaderSetup, this);
new StateDependentListener(ArenaMode.All, FightState.PreLeaderSetup, this);
new StateDependentCountdown(ArenaMode.All, FightState.PreLeaderSetup, this){
@Override
public void enable() {
if(Bukkit.getOnlinePlayers().isEmpty())
super.enable();
}
};
}
@Override
@ -37,6 +49,11 @@ public class NoPlayersOnlineCountdown extends Countdown {
return "bis der Server gestoppt wird!";
}
@EventHandler
public void handlePlayerJoin(PlayerJoinEvent event) {
disable();
}
@Override
public void countdownFinished() {
Bukkit.getServer().shutdown();