diff --git a/FightSystem_12/pom.xml b/FightSystem_12/pom.xml
index 6414e37..09aae32 100644
--- a/FightSystem_12/pom.xml
+++ b/FightSystem_12/pom.xml
@@ -32,6 +32,11 @@
FightSystem_8
1.0
+
+ steamwar
+ FightSystem_API
+ 1.0
+
steamwar
FAWE
diff --git a/FightSystem_8/pom.xml b/FightSystem_8/pom.xml
index 61bf1a3..0354cb3 100644
--- a/FightSystem_8/pom.xml
+++ b/FightSystem_8/pom.xml
@@ -33,5 +33,10 @@
1.8
provided
+
+ steamwar
+ FightSystem_API
+ 1.0
+
\ No newline at end of file
diff --git a/FightSystem_API/pom.xml b/FightSystem_API/pom.xml
new file mode 100644
index 0000000..4f997f1
--- /dev/null
+++ b/FightSystem_API/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+
+ steamwar
+ FightSystem
+ 1.0
+
+
+ FightSystem_API
+ 1.0
+
+
+ src
+
+
+ src
+
+ **/*.java
+ **/*.kt
+
+
+
+
+
+
+
+ steamwar
+ Spigot
+ 1.12
+ provided
+
+
+
\ No newline at end of file
diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java
new file mode 100644
index 0000000..873e280
--- /dev/null
+++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java
@@ -0,0 +1,314 @@
+package de.steamwar.fightsystem;
+
+import com.sk89q.worldedit.Vector;
+import de.steamwar.sql.Event;
+import de.steamwar.sql.EventFight;
+import de.steamwar.sql.Team;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import java.util.logging.Level;
+
+public class Config {
+
+ private Config(){}
+
+ //Fight sequence durations
+ public static final int NoPlayerOnlineDuration;
+ public static final int SetupDuration;
+ public static final int PreFightDuration;
+ public static final int SpectatorDuration;
+
+ //arena parameter
+ public static final int SchemsizeX;
+ public static final int SchemsizeY;
+ public static final int SchemsizeZ;
+ public static final Vector Schemsize;
+ public static final int TeamBlueCornerX;
+ public static final int TeamBlueCornerY;
+ public static final int TeamBlueCornerZ;
+ public static final Vector TeamBlueCorner;
+ public static final Location TeamBlueSpawn;
+ public static final Vector TeamBluePaste;
+ public static final int TeamRedCornerX;
+ public static final int TeamRedCornerY;
+ public static final int TeamRedCornerZ;
+ public static final Vector TeamRedCorner;
+ public static final Location TeamRedSpawn;
+ public static final Vector TeamRedPaste;
+ private static final int TeamBluetoReddistanceX;
+ private static final int TeamBluetoReddistanceY;
+ public static final int TeamBluetoReddistanceZ;
+ public static final Location SpecSpawn;
+ public static final int underArenaBorder;
+ public static final int BorderFromSchematic;
+ public static final int upperArenaBorder;
+ public static final boolean AlignWater;
+ public static final int WaterDepth;
+ private static final int Schem2BorderX;
+ private static final int Schem2BorderZ;
+ public static final int ArenaMinX;
+ public static final int ArenaMinZ;
+ public static final int ArenaMaxX;
+ public static final int ArenaMaxZ;
+
+ //schematic parameter
+ public static final boolean OnlyPublicSchematics;
+ public static final String SchematicDirectory;
+ public static final de.steamwar.sql.SchematicType SchematicType;
+ public static final boolean TeamRedRotate;
+ public static final boolean TeamBlueRotate;
+
+ //team parameter
+ public static final String TeamRedName;
+ public static final String TeamBlueName;
+ public static final String TeamRedPrefix;
+ public static final String TeamBluePrefix;
+ public static final String GameName;
+ public static final String TeamChatDetection;
+ public static final UUID BlueLeader;
+ public static final UUID RedLeader;
+
+ //Active win conditions
+ public static final boolean Timeout;
+ public static final boolean AllDead;
+ public static final boolean CaptainDead;
+ public static final boolean PercentSystem;
+ public static final boolean Entern;
+ public static final boolean TechKO;
+ public static final boolean WaterTechKO;
+
+ //win condition parameters
+ public static final int TimeoutTime;
+ public static final int EnterPhaseBegin;
+ public static final double PercentWin;
+
+ //default kits
+ public static final String MemberDefault;
+ public static final String LeaderDefault;
+
+ //tech hider parameter
+ public static final List HiddenBlocks;
+ public static final List HiddenBlockEntities;
+ public static final int ObfuscateWith;
+
+ //event parameter
+ private static final int EventKampfID;
+ public static final int EventTeamBlueID;
+ public static final int EventTeamRedID;
+ public static final boolean BothTeamsPublic;
+ public static final int MaximumTeamMembers;
+
+ static{
+ File worldConfigFile = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "config.yml");
+ if(!worldConfigFile.exists()) {
+ Bukkit.getLogger().log(Level.SEVERE, "Weltconfig fehlt!");
+ IFightSystem.shutdown(null);
+ }
+ if(!new File(IFightSystem.getPlugin().getDataFolder(), "config.yml").exists()) {
+ IFightSystem.getPlugin().saveDefaultConfig();
+ Bukkit.getLogger().log(Level.SEVERE, "Arenaconfig fehlt!");
+ IFightSystem.shutdown(null);
+ }
+ FileConfiguration config = IFightSystem.getPlugin().getConfig();
+ FileConfiguration worldconfig = YamlConfiguration.loadConfiguration(worldConfigFile);
+
+ NoPlayerOnlineDuration = config.getInt("Times.NoPlayersOnlineDuration");
+ SetupDuration = config.getInt("Times.SetupDuration");
+ PreFightDuration = config.getInt("Times.PreFightDuration");
+ SpectatorDuration = config.getInt("Times.SpectatorDuration");
+
+ int schemsizeX = worldconfig.getInt("Arena.Schemsize.x");
+ int schemsizeY = worldconfig.getInt("Arena.Schemsize.y");
+ int schemsizeZ = worldconfig.getInt("Arena.Schemsize.z");
+ int teamBlueCornerX = worldconfig.getInt("Arena.TeamBlueCorner.x");
+ int teamBlueCornerY = worldconfig.getInt("Arena.TeamBlueCorner.y");
+ int teamBlueCornerZ = worldconfig.getInt("Arena.TeamBlueCorner.z");
+ TeamBluetoReddistanceX = worldconfig.getInt("Arena.TeamBluetoReddistance.x");
+ TeamBluetoReddistanceY = worldconfig.getInt("Arena.TeamBluetoReddistance.y");
+ TeamBluetoReddistanceZ = worldconfig.getInt("Arena.TeamBluetoReddistance.z");
+ Schem2BorderX = worldconfig.getInt("Arena.Schem2Border.x");
+ Schem2BorderZ = worldconfig.getInt("Arena.Schem2Border.z");
+ underArenaBorder = worldconfig.getInt("Arena.underArenaBorder");
+ BorderFromSchematic = worldconfig.getInt("Arena.BorderFromSchematic");
+ AlignWater = worldconfig.getBoolean("Arena.AlignWater");
+ WaterDepth = worldconfig.getInt("Arena.WaterDepth");
+
+ SchematicDirectory = config.getString("Schematic.Directory");
+ SchematicType = de.steamwar.sql.SchematicType.fromDB(config.getString("Schematic.SchematicType"));
+ boolean rotate = config.getBoolean("Schematic.Rotate");
+
+ TeamRedPrefix = config.getString("Output.TeamRedPrefix");
+ TeamBluePrefix = config.getString("Output.TeamBluePrefix");
+ GameName = config.getString("Output.GameName");
+ TeamChatDetection = config.getString("Output.TeamChatDetection");
+
+ Timeout = config.getBoolean("WinConditions.Timeout");
+ AllDead = config.getBoolean("WinConditions.AllDead");
+ CaptainDead = config.getBoolean("WinConditions.CaptainDead");
+ PercentSystem = config.getBoolean("WinConditions.PercentSystem");
+ Entern = config.getBoolean("WinConditions.Entern");
+ TechKO = config.getBoolean("WinConditions.TechKO");
+ WaterTechKO = config.getBoolean("WinConditions.WaterTechKO");
+
+ TimeoutTime = config.getInt("WinConditionParams.TimeoutTime");
+ EnterPhaseBegin = config.getInt("WinConditionParams.EnterPhaseBegin");
+ PercentWin = config.getDouble("WinConditionParams.PercentWin");
+
+ MemberDefault = config.getString("Kits.MemberDefault");
+ LeaderDefault = config.getString("Kits.LeaderDefault");
+
+ HiddenBlocks = Collections.unmodifiableList(config.getIntegerList("Techhider.HiddenBlocks"));
+ HiddenBlockEntities = Collections.unmodifiableList(config.getStringList("Techhider.HiddenBlockEntities"));
+ ObfuscateWith = config.getInt("Techhider.ObfuscateWith");
+
+ if(schemsizeX < 0){
+ SchemsizeX = -schemsizeX;
+ TeamBlueCornerX = teamBlueCornerX - SchemsizeX;
+ }else{
+ SchemsizeX = schemsizeX;
+ TeamBlueCornerX = teamBlueCornerX;
+ }
+ if(schemsizeY < 0){
+ SchemsizeY = -schemsizeY;
+ TeamBlueCornerY = teamBlueCornerY - SchemsizeY;
+ }else{
+ SchemsizeY = schemsizeY;
+ TeamBlueCornerY = teamBlueCornerY;
+ }
+ if(schemsizeZ < 0){
+ SchemsizeZ = -schemsizeZ;
+ TeamBlueCornerZ = teamBlueCornerZ - SchemsizeZ;
+ }else{
+ SchemsizeZ = schemsizeZ;
+ TeamBlueCornerZ = teamBlueCornerZ;
+ }
+
+ upperArenaBorder = TeamBlueCornerY + SchemsizeY + BorderFromSchematic;
+
+ TeamRedCornerX = TeamBluetoReddistanceX + TeamBlueCornerX;
+ TeamRedCornerY = TeamBluetoReddistanceY + TeamBlueCornerY;
+ TeamRedCornerZ = TeamBluetoReddistanceZ + TeamBlueCornerZ;
+
+ int teamBluePasteX = TeamBlueCornerX + SchemsizeX / 2;
+ int teamBluePasteZ = TeamBlueCornerZ + SchemsizeZ / 2;
+ int teamRedPasteX = teamBluePasteX + TeamBluetoReddistanceX;
+ int teamRedPasteZ = teamBluePasteZ + TeamBluetoReddistanceZ;
+
+ TeamBluePaste = new Vector(teamBluePasteX, TeamBlueCornerY, teamBluePasteZ);
+ TeamRedPaste = new Vector(teamRedPasteX, TeamRedCornerY, teamRedPasteZ);
+ Schemsize = new Vector(SchemsizeX, SchemsizeY, SchemsizeZ);
+ TeamBlueCorner = new Vector(TeamBlueCornerX, TeamBlueCornerY, TeamBlueCornerZ);
+ TeamRedCorner = new Vector(TeamRedCornerX, TeamRedCornerY, TeamRedCornerZ);
+
+ World world = Bukkit.getWorlds().get(0);
+ TeamBlueSpawn = new Location(world, teamBluePasteX + 0.5, TeamBlueCornerY + (double)SchemsizeY, teamBluePasteZ + 0.5);
+ TeamRedSpawn = new Location(world, teamRedPasteX + 0.5, TeamRedCornerY + (double)SchemsizeY, teamRedPasteZ + 0.5);
+ SpecSpawn = new Location(world,
+ teamBluePasteX + TeamBluetoReddistanceX/2.0,
+ TeamBlueCornerY + TeamBluetoReddistanceY/2.0 + SchemsizeY/2.0,
+ teamBluePasteZ + TeamBluetoReddistanceZ/2.0);
+
+ boolean teamRedRotate;
+ boolean teamBlueRotate;
+ if(TeamBluetoReddistanceX > 0){
+ ArenaMinX = TeamBlueCornerX - Schem2BorderX;
+ ArenaMaxX = TeamRedCornerX + SchemsizeX + Schem2BorderX;
+ teamRedRotate = true;
+ teamBlueRotate = false;
+ }else{
+ ArenaMinX = TeamRedCornerX - Schem2BorderX;
+ ArenaMaxX = TeamBlueCornerX + SchemsizeX + Schem2BorderX;
+ teamRedRotate = false;
+ teamBlueRotate = true;
+ }
+ if(TeamBluetoReddistanceZ > 0){
+ ArenaMinZ = TeamBlueCornerZ - Schem2BorderZ;
+ ArenaMaxZ = TeamRedCornerZ + SchemsizeZ + Schem2BorderZ;
+ teamRedRotate = true;
+ teamBlueRotate = false;
+ }else{
+ ArenaMinZ = TeamRedCornerZ - Schem2BorderZ;
+ ArenaMaxZ = TeamBlueCornerZ + SchemsizeZ + Schem2BorderZ;
+ if(TeamBluetoReddistanceZ != 0){
+ teamRedRotate = false;
+ teamBlueRotate = true;
+ }
+ }
+ if(!rotate){
+ teamRedRotate = false;
+ teamBlueRotate = false;
+ }
+ TeamRedRotate = teamRedRotate;
+ TeamBlueRotate = teamBlueRotate;
+
+ EventKampfID = Integer.parseInt(System.getProperty("fightID", "0"));
+ if(event()){
+ EventFight eventFight = EventFight.get(EventKampfID);
+ if(eventFight == null){
+ Bukkit.getLogger().log(Level.SEVERE, "Failed to load EventFight");
+ IFightSystem.shutdown(null);
+ }
+
+ assert eventFight != null;
+ Team team1 = Team.get(eventFight.getTeamBlue());
+ Team team2 = Team.get(eventFight.getTeamRed());
+
+ if(team1 == null || team2 == null){
+ Bukkit.getLogger().log(Level.SEVERE, "Failed to load Team");
+ IFightSystem.shutdown(null);
+ }
+
+ assert team1 != null;
+ assert team2 != null;
+ TeamBlueName = team1.getTeamKuerzel();
+ TeamRedName = team2.getTeamKuerzel();
+ EventTeamBlueID = team1.getTeamId();
+ EventTeamRedID = team2.getTeamId();
+ BothTeamsPublic = EventTeamRedID == 0 && EventTeamBlueID == 0;
+
+ IFightSystem.setEventFight(eventFight);
+
+ Event event = Event.get(eventFight.getEventID());
+ MaximumTeamMembers = event.getMaximumTeamMembers();
+ if(BothTeamsPublic)
+ OnlyPublicSchematics = true;
+ else
+ OnlyPublicSchematics = event.publicSchemsOnly();
+ }else{
+ //No event
+ TeamRedName = config.getString("Output.TeamRedName");
+ TeamBlueName = config.getString("Output.TeamBlueName");
+ OnlyPublicSchematics = config.getBoolean("Schematic.OnlyPublicSchematics");
+ EventTeamBlueID = 0;
+ EventTeamRedID = 0;
+ BothTeamsPublic = true;
+ MaximumTeamMembers = Integer.MAX_VALUE;
+ }
+
+ String blueLeader = System.getProperty("blueLeader", null);
+ String redLeader = System.getProperty("redLeader", null);
+ if(blueLeader != null)
+ BlueLeader = UUID.fromString(blueLeader);
+ else
+ BlueLeader = null;
+ if(redLeader != null)
+ RedLeader = UUID.fromString(redLeader);
+ else
+ RedLeader = null;
+ }
+
+ public static boolean event(){
+ return EventKampfID >= 1;
+ }
+ public static boolean test(){
+ return EventKampfID == -1;
+ }
+}
diff --git a/FightSystem_API/src/de/steamwar/fightsystem/IFightSystem.java b/FightSystem_API/src/de/steamwar/fightsystem/IFightSystem.java
new file mode 100644
index 0000000..87856b8
--- /dev/null
+++ b/FightSystem_API/src/de/steamwar/fightsystem/IFightSystem.java
@@ -0,0 +1,52 @@
+package de.steamwar.fightsystem;
+
+import de.steamwar.sql.EventFight;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+
+public class IFightSystem {
+ private IFightSystem(){}
+
+ private static Plugin plugin;
+ private static String prefix;
+ private static EventFight eventFight;
+ private static boolean entern = false;
+ private static Player eventLeiter;
+
+ public static void init(Plugin plugin, String prefix){
+ IFightSystem.plugin = plugin;
+ IFightSystem.prefix = prefix;
+ }
+ static void setEventFight(EventFight ef){
+ eventFight = ef;
+ }
+ static void setEntern(boolean entern){
+ IFightSystem.entern = entern;
+ }
+ static void setEventLeiter(Player el){
+ eventLeiter = el;
+ }
+
+ public static Plugin getPlugin(){
+ return plugin;
+ }
+ public static String getPrefix(){
+ return prefix;
+ }
+ public static EventFight getEventFight(){
+ return eventFight;
+ }
+ public static boolean isEntern(){
+ return entern;
+ }
+ public static Player getEventLeiter(){
+ return eventLeiter;
+ }
+ public static void shutdown(String reason){
+ if(reason != null)
+ Bukkit.broadcastMessage(reason);
+ Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(null));
+ Bukkit.shutdown();
+ }
+}
diff --git a/FightSystem_API/src/de/steamwar/fightsystem/fight/IFight.java b/FightSystem_API/src/de/steamwar/fightsystem/fight/IFight.java
new file mode 100644
index 0000000..0530fce
--- /dev/null
+++ b/FightSystem_API/src/de/steamwar/fightsystem/fight/IFight.java
@@ -0,0 +1,23 @@
+package de.steamwar.fightsystem.fight;
+
+import org.bukkit.entity.Player;
+
+public class IFight {
+ private IFight(){}
+
+ private static IFightTeam redTeam;
+ private static IFightTeam blueTeam;
+
+ static void init(IFightTeam redTeam, IFightTeam blueTeam){
+ IFight.redTeam = redTeam;
+ IFight.blueTeam = blueTeam;
+ }
+
+ public static IFightTeam getPlayerTeam(Player player) {
+ if(redTeam.isPlayerInTeam(player))
+ return redTeam;
+ if(blueTeam.isPlayerInTeam(player))
+ return blueTeam;
+ return null;
+ }
+}
diff --git a/FightSystem_API/src/de/steamwar/fightsystem/fight/IFightTeam.java b/FightSystem_API/src/de/steamwar/fightsystem/fight/IFightTeam.java
new file mode 100644
index 0000000..6491970
--- /dev/null
+++ b/FightSystem_API/src/de/steamwar/fightsystem/fight/IFightTeam.java
@@ -0,0 +1,9 @@
+package de.steamwar.fightsystem.fight;
+
+import org.bukkit.entity.Player;
+
+public interface IFightTeam {
+
+ boolean isBlue();
+ boolean isPlayerInTeam(Player player);
+}
diff --git a/FightSystem_API/src/de/steamwar/fightsystem/utils/ITechHider.java b/FightSystem_API/src/de/steamwar/fightsystem/utils/ITechHider.java
new file mode 100644
index 0000000..cea8016
--- /dev/null
+++ b/FightSystem_API/src/de/steamwar/fightsystem/utils/ITechHider.java
@@ -0,0 +1,122 @@
+package de.steamwar.fightsystem.utils;
+
+import com.google.common.primitives.Bytes;
+import de.steamwar.fightsystem.Config;
+import de.steamwar.fightsystem.IFightSystem;
+import de.steamwar.fightsystem.fight.IFight;
+import de.steamwar.fightsystem.fight.IFightTeam;
+import org.bukkit.entity.Player;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ITechHider {
+ private ITechHider (){}
+
+ private static final int blueMinX;
+ private static final int blueMaxX;
+ private static final int blueMinZ;
+ private static final int blueMaxZ;
+ private static final int redMinX;
+ private static final int redMaxX;
+ private static final int redMinZ;
+ private static final int redMaxZ;
+ private static int arenaMinX;
+ private static int arenaMaxX;
+ private static int arenaMinZ;
+ private static int arenaMaxZ;
+
+ static{
+ blueMinX = ITechHider.posToChunk(Config.TeamBlueCornerX);
+ blueMaxX = ITechHider.posToChunk(Config.TeamBlueCornerX + Config.SchemsizeX) + 1;
+ blueMinZ = ITechHider.posToChunk(Config.TeamBlueCornerZ);
+ blueMaxZ = ITechHider.posToChunk(Config.TeamBlueCornerZ + Config.SchemsizeZ) + 1;
+ redMinX = ITechHider.posToChunk(Config.TeamRedCornerX);
+ redMaxX = ITechHider.posToChunk(Config.TeamRedCornerX + Config.SchemsizeX) + 1;
+ redMinZ = ITechHider.posToChunk(Config.TeamRedCornerZ);
+ redMaxZ = ITechHider.posToChunk(Config.TeamRedCornerZ + Config.SchemsizeZ) + 1;
+ arenaMinX = ITechHider.posToChunk(Config.ArenaMinX);
+ arenaMaxX = ITechHider.posToChunk(Config.ArenaMaxX) + 1;
+ arenaMinZ = ITechHider.posToChunk(Config.ArenaMinZ);
+ arenaMaxZ = ITechHider.posToChunk(Config.ArenaMaxZ) + 1;
+ }
+
+ static boolean bypass(Player p, int chunkX, int chunkZ){
+ if(p == IFightSystem.getEventLeiter())
+ return true;
+
+ IFightTeam ft = IFight.getPlayerTeam(p);
+ if(ft == null){
+ //Außerhalb der Arena
+ return arenaMinX > chunkX ||
+ chunkX > arenaMaxX ||
+ arenaMinZ > chunkZ ||
+ chunkZ > arenaMaxZ;
+ }else if(ft.isBlue()){
+ return IFightSystem.isEntern() ||
+ redMinX > chunkX ||
+ chunkX > redMaxX ||
+ redMinZ > chunkZ ||
+ chunkZ > redMaxZ;
+ }else{
+ return IFightSystem.isEntern() ||
+ blueMinX > chunkX ||
+ chunkX > blueMaxX ||
+ blueMinZ > chunkZ ||
+ chunkZ > blueMaxZ;
+ }
+ }
+
+ static int posToChunk(int c){
+ int chunk = c / 16;
+ if(c<0)
+ chunk--;
+ return chunk;
+ }
+
+ static int readVarInt(byte[] array, int startPos) {
+ int numRead = 0;
+ int result = 0;
+ byte read;
+ do {
+ read = array[startPos + numRead];
+ int value = (read & 0b01111111);
+ result |= (value << (7 * numRead));
+
+ numRead++;
+ if (numRead > 5) {
+ break;
+ }
+ } while ((read & 0b10000000) != 0);
+
+ return result;
+ }
+
+ static int readVarIntLength(byte[] array, int startPos) {
+ int numRead = 0;
+ byte read;
+ do {
+ read = array[startPos + numRead];
+ numRead++;
+ if (numRead > 5) {
+ break;
+ }
+ } while ((read & 0b10000000) != 0);
+
+ return numRead;
+ }
+
+ static byte[] writeVarInt(int value) {
+ List buffer = new ArrayList<>(5);
+ do {
+ byte temp = (byte)(value & 0b01111111);
+ // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone
+ value >>>= 7;
+ if (value != 0) {
+ temp |= 0b10000000;
+ }
+ buffer.add(temp);
+ } while (value != 0);
+ return Bytes.toArray(buffer);
+ }
+}
diff --git a/FightSystem_Main/pom.xml b/FightSystem_Main/pom.xml
index dc08160..1ad01a1 100644
--- a/FightSystem_Main/pom.xml
+++ b/FightSystem_Main/pom.xml
@@ -63,5 +63,11 @@
1.0
compile
+
+ steamwar
+ FightSystem_API
+ 1.0
+ compile
+
\ No newline at end of file
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
index e7b696c..01378c7 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
@@ -8,7 +8,6 @@ import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
import de.steamwar.fightsystem.kit.KitManager;
import de.steamwar.fightsystem.listener.*;
-import de.steamwar.fightsystem.utils.Config;
import de.steamwar.fightsystem.utils.FightScoreboard;
import de.steamwar.fightsystem.utils.TechHider;
import de.steamwar.fightsystem.utils.WaterRemover;
@@ -29,15 +28,16 @@ public class FightSystem extends JavaPlugin {
private static FightState fightState = FightState.SETUP;
private static int fightTime = 0;
- private static boolean entern = false;
- private static EventFight eventFight;
- private static Player eventLeiter;
+ @Override
+ public void onLoad() {
+ setPlugin(this);
+ IFightSystem.init(this, PREFIX);
+ }
@Override
public void onEnable() {
- setPlugin(this);
- Config.load();
+ Fight.init();
KitManager.loadAllKits();
new EntityDamageListener();
@@ -155,11 +155,11 @@ public class FightSystem extends JavaPlugin {
if(Config.event()){
if(winFightTeam == null)
- eventFight.setErgebnis(0);
+ getEventFight().setErgebnis(0);
else if(winFightTeam.isBlue())
- eventFight.setErgebnis(1);
+ getEventFight().setErgebnis(1);
else
- eventFight.setErgebnis(2);
+ getEventFight().setErgebnis(2);
}
if(!Config.test())
@@ -173,7 +173,7 @@ public class FightSystem extends JavaPlugin {
public static void setEntern(boolean entern) {
final List> chunksBlue = TechHider.prepareChunkReload(Fight.getBlueTeam().getPlayers().iterator().next().getPlayer());
final List> chunksRed = TechHider.prepareChunkReload(Fight.getRedTeam().getPlayers().iterator().next().getPlayer());
- FightSystem.entern = entern;
+ IFightSystem.setEntern(entern);
for(FightPlayer player : Fight.getBlueTeam().getPlayers()){
TechHider.reloadChunks(player.getPlayer(), chunksBlue);
}
@@ -207,20 +207,16 @@ public class FightSystem extends JavaPlugin {
BasicListener.fightStateChange(state);
}
- public static void setEventFight(EventFight ef){
- eventFight = ef;
- }
-
public static void setEventLeiter(Player el){
- eventLeiter = el;
+ IFightSystem.setEventLeiter(el);
}
public static Player getEventLeiter(){
- return eventLeiter;
+ return IFightSystem.getEventLeiter();
}
public static EventFight getEventFight(){
- return eventFight;
+ return IFightSystem.getEventFight();
}
private static void setPlugin(FightSystem pl){
@@ -240,13 +236,10 @@ public class FightSystem extends JavaPlugin {
}
public static boolean isEntern() {
- return entern;
+ return IFightSystem.isEntern();
}
public static void shutdown(String reason){
- if(reason != null)
- Bukkit.broadcastMessage(reason);
- Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(null));
- Bukkit.shutdown();
+ IFightSystem.shutdown(reason);
}
}
\ No newline at end of file
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/commands/AkCommand.java b/FightSystem_Main/src/de/steamwar/fightsystem/commands/AkCommand.java
index 831ecf3..f19cfa3 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/commands/AkCommand.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/commands/AkCommand.java
@@ -5,7 +5,7 @@ import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
import de.steamwar.fightsystem.kit.KitManager;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.sql.Schematic;
import de.steamwar.sql.SchematicType;
import de.steamwar.sql.SteamwarUser;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/commands/GUI.java b/FightSystem_Main/src/de/steamwar/fightsystem/commands/GUI.java
index 8e6dc3b..d57cfb2 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/commands/GUI.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/commands/GUI.java
@@ -6,7 +6,7 @@ import de.steamwar.fightsystem.fight.FightPlayer;
import de.steamwar.fightsystem.fight.FightTeam;
import de.steamwar.fightsystem.kit.Kit;
import de.steamwar.fightsystem.kit.KitManager;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EnternCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EnternCountdown.java
index 078621e..f5b36b6 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EnternCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EnternCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
public class EnternCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventStartCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventStartCountdown.java
index 1cd4a7b..71fbe1d 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventStartCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventStartCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
public class EventStartCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/NoPlayersOnlineCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/NoPlayersOnlineCountdown.java
index 3264a05..bc59f7d 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/NoPlayersOnlineCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/NoPlayersOnlineCountdown.java
@@ -1,6 +1,6 @@
package de.steamwar.fightsystem.countdown;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
public class NoPlayersOnlineCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/PreRunningCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/PreRunningCountdown.java
index 2a6f0eb..8ba17fc 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/PreRunningCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/PreRunningCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
public class PreRunningCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SetupOverCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SetupOverCountdown.java
index dd1764c..01fcdbb 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SetupOverCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SetupOverCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
public class SetupOverCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java
index 2584987..04f51aa 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
public class SpectateOverCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/TimeOverCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/TimeOverCountdown.java
index 1df0fd9..24e9d95 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/TimeOverCountdown.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/TimeOverCountdown.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.countdown;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
public class TimeOverCountdown extends Countdown {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java
index 8a69838..e1fbc94 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java
@@ -1,17 +1,20 @@
package de.steamwar.fightsystem.fight;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
public class Fight {
-
private Fight(){}
public static final FightTeam redTeam = new FightTeam(Config.TeamRedName, Config.TeamRedPrefix, Config.TeamRedSpawn, Config.TeamRedPaste, Config.TeamRedCorner, Config.TeamRedRotate, false, Config.RedLeader);
public static final FightTeam blueTeam = new FightTeam(Config.TeamBlueName, Config.TeamBluePrefix, Config.TeamBlueSpawn, Config.TeamBluePaste, Config.TeamBlueCorner, Config.TeamBlueRotate, true, Config.BlueLeader);
+ public static void init(){
+ IFight.init(redTeam, blueTeam);
+ }
+
public static FightTeam getPlayerTeam(Player player) {
if(redTeam.isPlayerInTeam(player))
return redTeam;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightPlayer.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightPlayer.java
index 0de81a0..040dc17 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightPlayer.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightPlayer.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.fight;
import de.steamwar.fightsystem.kit.KitManager;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.kit.Kit;
import org.bukkit.entity.Player;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java
index 835624e..d6d7dff 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java
@@ -4,6 +4,7 @@ import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.regions.CuboidRegion;
import de.steamwar.core.Core;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.kit.KitManager;
import de.steamwar.fightsystem.utils.*;
@@ -23,7 +24,7 @@ import java.util.Set;
import java.util.UUID;
-public class FightTeam {
+public class FightTeam implements IFightTeam{
private FightPlayer leader;
private final UUID designatedLeader;
@@ -97,6 +98,7 @@ public class FightTeam {
return true;
}
+ @Override
public boolean isPlayerInTeam(Player player) {
for(FightPlayer fightPlayer : players) {
if(fightPlayer.getPlayer().equals(player))
@@ -128,8 +130,8 @@ public class FightTeam {
player.setGameMode(GameMode.SURVIVAL);
player.teleport(spawn);
if(KitManager.getKits(false).size() > 1)
- player.getInventory().setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAtributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build());
- player.getInventory().setItem(7, new ItemBuilder(Material.BEACON).removeAllAtributs().setDisplayName("§eRespawn").build());
+ player.getInventory().setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build());
+ player.getInventory().setItem(7, new ItemBuilder(Material.BEACON).removeAllAttributs().setDisplayName("§eRespawn").build());
TechHider.reloadChunks(player, chunksToReload);
return fightPlayer;
}
@@ -164,6 +166,7 @@ public class FightTeam {
return leader != null;
}
+ @Override
public boolean isBlue(){
return blue;
}
@@ -180,15 +183,15 @@ public class FightTeam {
leader.setKit(KitManager.getKitByName(Config.LeaderDefault));
Inventory inventory = leader.getPlayer().getInventory();
if (KitManager.getKits(true).size() > 1)
- inventory.setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAtributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build());
+ inventory.setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build());
else
inventory.setItem(1, new ItemBuilder(Material.AIR).build());
if(!Config.event()){
- inventory.setItem(2, new ItemBuilder(Material.PAPER).removeAllAtributs().setDisplayName("§eSpieler einladen").build());
- inventory.setItem(3, new ItemBuilder(Material.FIREWORK_CHARGE).removeAllAtributs().setDisplayName("§cSpieler rauswerfen").build());
- inventory.setItem(4, new ItemBuilder(Material.INK_SACK, (short) 10).removeAllAtributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build());
+ inventory.setItem(2, new ItemBuilder(Material.PAPER).removeAllAttributs().setDisplayName("§eSpieler einladen").build());
+ inventory.setItem(3, new ItemBuilder(Material.FIREWORK_CHARGE).removeAllAttributs().setDisplayName("§cSpieler rauswerfen").build());
+ inventory.setItem(4, new ItemBuilder(Material.INK_SACK, (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build());
}
- inventory.setItem(0, new ItemBuilder(Material.CAULDRON_ITEM).removeAllAtributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§e" + Config.GameName + " wählen").build());
+ inventory.setItem(0, new ItemBuilder(Material.CAULDRON_ITEM).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§e" + Config.GameName + " wählen").build());
}
public Set getPlayers() {
@@ -267,13 +270,13 @@ public class FightTeam {
this.ready = ready;
if(ready) {
- l.getInventory().setItem(4, new ItemBuilder(Material.INK_SACK, (short) 8).removeAllAtributs().addEnchantment(Enchantment.DURABILITY,1 ).setDisplayName("§aBereit").build());
+ l.getInventory().setItem(4, new ItemBuilder(Material.INK_SACK, (short) 8).removeAllAttributs().addEnchantment(Enchantment.DURABILITY,1 ).setDisplayName("§aBereit").build());
broadcast(FightSystem.PREFIX + "§aEuer Team ist nun bereit!");
if(Fight.getOpposite(this).isReady() || Config.test()) {
FightSystem.setPreRunningState();
}
} else {
- l.getInventory().setItem(4, new ItemBuilder(Material.INK_SACK, (short) 10).removeAllAtributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build());
+ l.getInventory().setItem(4, new ItemBuilder(Material.INK_SACK, (short) 10).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§cNicht bereit").build());
broadcast(FightSystem.PREFIX + "§cEuer Team ist nicht mehr bereit!");
}
}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java
index cc0f0db..e9edb1e 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java
@@ -5,7 +5,7 @@ import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightPlayer;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.sql.SteamwarUser;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -25,6 +25,18 @@ public class EventJoinListener extends BasicListener {
else if(user.getTeam() == Config.EventTeamRedID)
team = Fight.getRedTeam();
+ if(Config.BothTeamsPublic){
+ if(Fight.getRedTeam().getPlayers().size() < Fight.getBlueTeam().getPlayers().size())
+ team = Fight.getRedTeam();
+ else
+ team = Fight.getBlueTeam();
+ }else if(team == null){
+ if(Config.EventTeamRedID == 0)
+ team = Fight.getRedTeam();
+ else if(Config.EventTeamBlueID == 0)
+ team = Fight.getBlueTeam();
+ }
+
if(team != null && team.getPlayers().size() < Config.MaximumTeamMembers){
FightPlayer fp = team.addMember(player);
if(!team.hasTeamLeader())
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/HotbarGUIListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/HotbarGUIListener.java
index 05b82ad..fb6f96c 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/HotbarGUIListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/HotbarGUIListener.java
@@ -4,7 +4,7 @@ import de.steamwar.fightsystem.commands.GUI;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerInteractEvent;
@@ -15,6 +15,8 @@ public class HotbarGUIListener extends BasicListener {
@EventHandler
public void handlePlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
+ event.setCancelled(true);
+
if(event.getItem() != null) {
FightTeam fightTeam = Fight.getPlayerTeam(player);
if(fightTeam == null)
@@ -26,8 +28,6 @@ public class HotbarGUIListener extends BasicListener {
if(displayName == null)
return;
- event.setCancelled(true);
-
if(displayName.equals("§e" + Config.GameName + " wählen")){
GUI.preSchemDialog(player);
return;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PistonListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PistonListener.java
index 31e5055..fbb8e95 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PistonListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PistonListener.java
@@ -2,7 +2,7 @@ package de.steamwar.fightsystem.listener;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.FightState;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.utils.Region;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerChatListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerChatListener.java
index 32ba681..8b6957a 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerChatListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerChatListener.java
@@ -3,7 +3,7 @@ package de.steamwar.fightsystem.listener;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerConnectionListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerConnectionListener.java
index 60fa765..d3c23be 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerConnectionListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerConnectionListener.java
@@ -5,7 +5,7 @@ import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightPlayer;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java
index 68905b3..124aabd 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerMoveListener.java
@@ -4,7 +4,7 @@ import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.utils.Region;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.GameMode;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerRespawnListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerRespawnListener.java
index 5388f58..6a8723a 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerRespawnListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerRespawnListener.java
@@ -2,7 +2,7 @@ package de.steamwar.fightsystem.listener;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerRespawnEvent;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/utils/Config.java b/FightSystem_Main/src/de/steamwar/fightsystem/utils/Config.java
deleted file mode 100644
index 5d69e44..0000000
--- a/FightSystem_Main/src/de/steamwar/fightsystem/utils/Config.java
+++ /dev/null
@@ -1,289 +0,0 @@
-package de.steamwar.fightsystem.utils;
-
-import com.sk89q.worldedit.Vector;
-import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.sql.Event;
-import de.steamwar.sql.EventFight;
-import de.steamwar.sql.Team;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.configuration.file.YamlConfiguration;
-
-import java.io.File;
-import java.util.List;
-import java.util.UUID;
-import java.util.logging.Level;
-
-public class Config {
-
- private Config(){}
-
- public static int NoPlayerOnlineDuration;
- public static int SetupDuration;
- public static int PreFightDuration;
- public static int SpectatorDuration;
-
- public static int SchemsizeX;
- public static int SchemsizeY;
- public static int SchemsizeZ;
- public static int TeamBlueCornerX;
- public static int TeamBlueCornerY;
- public static int TeamBlueCornerZ;
- public static int TeamBluetoReddistanceX;
- public static int TeamBluetoReddistanceY;
- public static int TeamBluetoReddistanceZ;
- public static int Schem2BorderX;
- public static int Schem2BorderZ;
- public static int underArenaBorder;
- public static int BorderFromSchematic;
- public static int upperArenaBorder;
- public static boolean AlignWater;
- public static int WaterDepth;
-
- public static boolean OnlyPublicSchematics;
- public static String SchematicDirectory;
- public static de.steamwar.sql.SchematicType SchematicType;
- public static boolean TeamRedRotate;
- public static boolean TeamBlueRotate;
-
- public static String TeamRedName;
- public static String TeamRedPrefix;
- public static String TeamBlueName;
- public static String TeamBluePrefix;
- public static String GameName;
- public static String TeamChatDetection;
-
- public static boolean Timeout;
- public static boolean AllDead;
- public static boolean CaptainDead;
- public static boolean PercentSystem;
- public static boolean Entern;
- public static boolean TechKO;
- public static boolean WaterTechKO;
-
- public static int TimeoutTime;
- public static int EnterPhaseBegin;
- public static double PercentWin;
-
- public static int MoneyWin;
- public static int MoneyLose;
- public static int MoneyDraw;
-
- public static String MemberDefault;
- public static String LeaderDefault;
-
- public static int TeamRedCornerX;
- public static int TeamRedCornerY;
- public static int TeamRedCornerZ;
-
- public static Location TeamBlueSpawn;
- public static Location TeamRedSpawn;
- public static Location SpecSpawn;
-
- public static Vector TeamBluePaste;
- public static Vector TeamRedPaste;
- public static Vector TeamBlueCorner;
- public static Vector TeamRedCorner;
- public static Vector Schemsize;
-
- public static int ArenaMinX;
- public static int ArenaMinZ;
- public static int ArenaMaxX;
- public static int ArenaMaxZ;
-
- public static List HiddenBlocks;
- public static List HiddenBlockEntities;
- public static int ObfuscateWith;
-
- public static int EventKampfID;
- public static int EventTeamBlueID;
- public static int EventTeamRedID;
- public static int MaximumTeamMembers = Integer.MAX_VALUE;
-
- public static UUID BlueLeader;
- public static UUID RedLeader;
-
- public static void load(){
- if(!new File(Bukkit.getWorldContainer().getPath() + '/' + Bukkit.getWorlds().get(0).getName() + "/config.yml").exists()) {
- FightSystem.getPlugin().saveDefaultConfig();
- System.out.println(FightSystem.PREFIX + "config.yml erstellt und geladen!");
- FightSystem.shutdown(null);
- }
- if(!new File("plugins/" + FightSystem.getPlugin().getName() + "/config.yml").exists()) {
- System.out.println(FightSystem.PREFIX + "config.yml fehlt!");
- FightSystem.shutdown(null);
- }
- FileConfiguration config = FightSystem.getPlugin().getConfig();
- YamlConfiguration worldconfig = YamlConfiguration.loadConfiguration(new File(Bukkit.getWorldContainer().getPath() + '/' + Bukkit.getWorlds().get(0).getName() + "/config.yml"));
-
- NoPlayerOnlineDuration = config.getInt("Times.NoPlayersOnlineDuration");
- SetupDuration = config.getInt("Times.SetupDuration");
- PreFightDuration = config.getInt("Times.PreFightDuration");
- SpectatorDuration = config.getInt("Times.SpectatorDuration");
-
- SchemsizeX = worldconfig.getInt("Arena.Schemsize.x");
- SchemsizeY = worldconfig.getInt("Arena.Schemsize.y");
- SchemsizeZ = worldconfig.getInt("Arena.Schemsize.z");
- TeamBlueCornerX = worldconfig.getInt("Arena.TeamBlueCorner.x");
- TeamBlueCornerY = worldconfig.getInt("Arena.TeamBlueCorner.y");
- TeamBlueCornerZ = worldconfig.getInt("Arena.TeamBlueCorner.z");
- TeamBluetoReddistanceX = worldconfig.getInt("Arena.TeamBluetoReddistance.x");
- TeamBluetoReddistanceY = worldconfig.getInt("Arena.TeamBluetoReddistance.y");
- TeamBluetoReddistanceZ = worldconfig.getInt("Arena.TeamBluetoReddistance.z");
- Schem2BorderX = worldconfig.getInt("Arena.Schem2Border.x");
- Schem2BorderZ = worldconfig.getInt("Arena.Schem2Border.z");
- underArenaBorder = worldconfig.getInt("Arena.underArenaBorder");
- BorderFromSchematic = worldconfig.getInt("Arena.BorderFromSchematic");
- AlignWater = worldconfig.getBoolean("Arena.AlignWater");
- WaterDepth = worldconfig.getInt("Arena.WaterDepth");
-
- OnlyPublicSchematics = config.getBoolean("Schematic.OnlyPublicSchematics");
- SchematicDirectory = config.getString("Schematic.Directory");
- SchematicType = de.steamwar.sql.SchematicType.fromDB(config.getString("Schematic.SchematicType"));
- boolean Rotate = config.getBoolean("Schematic.Rotate");
-
- TeamRedName = config.getString("Output.TeamRedName");
- TeamRedPrefix = config.getString("Output.TeamRedPrefix");
- TeamBlueName = config.getString("Output.TeamBlueName");
- TeamBluePrefix = config.getString("Output.TeamBluePrefix");
- GameName = config.getString("Output.GameName");
- TeamChatDetection = config.getString("Output.TeamChatDetection");
-
- Timeout = config.getBoolean("WinConditions.Timeout");
- AllDead = config.getBoolean("WinConditions.AllDead");
- CaptainDead = config.getBoolean("WinConditions.CaptainDead");
- PercentSystem = config.getBoolean("WinConditions.PercentSystem");
- Entern = config.getBoolean("WinConditions.Entern");
- TechKO = config.getBoolean("WinConditions.TechKO");
- WaterTechKO = config.getBoolean("WinConditions.WaterTechKO");
-
- TimeoutTime = config.getInt("WinConditionParams.TimeoutTime");
- EnterPhaseBegin = config.getInt("WinConditionParams.EnterPhaseBegin");
- PercentWin = config.getDouble("WinConditionParams.PercentWin");
-
- MoneyWin = config.getInt("Money.Win");
- MoneyLose = config.getInt("Money.Lose");
- MoneyDraw = config.getInt("Money.Draw");
-
- MemberDefault = config.getString("Kits.MemberDefault");
- LeaderDefault = config.getString("Kits.LeaderDefault");
-
- HiddenBlocks = config.getIntegerList("Techhider.HiddenBlocks");
- HiddenBlockEntities = config.getStringList("Techhider.HiddenBlockEntities");
- ObfuscateWith = config.getInt("Techhider.ObfuscateWith");
-
- if(SchemsizeX < 0){
- SchemsizeX = -SchemsizeX;
- TeamBlueCornerX -= SchemsizeX;
- }
- if(SchemsizeY < 0){
- SchemsizeY = -SchemsizeY;
- TeamBlueCornerY -= SchemsizeY;
- }
- if(SchemsizeZ < 0){
- SchemsizeZ = -SchemsizeZ;
- TeamBlueCornerZ -= SchemsizeZ;
- }
-
- upperArenaBorder = TeamBlueCornerY + SchemsizeY + BorderFromSchematic;
-
- TeamRedCornerX = TeamBluetoReddistanceX + TeamBlueCornerX;
- TeamRedCornerY = TeamBluetoReddistanceY + TeamBlueCornerY;
- TeamRedCornerZ = TeamBluetoReddistanceZ + TeamBlueCornerZ;
-
- int teamBluePasteX = TeamBlueCornerX + SchemsizeX / 2;
- int teamBluePasteZ = TeamBlueCornerZ + SchemsizeZ / 2;
- int teamRedPasteX = teamBluePasteX + TeamBluetoReddistanceX;
- int teamRedPasteZ = teamBluePasteZ + TeamBluetoReddistanceZ;
-
- TeamBluePaste = new Vector(teamBluePasteX, TeamBlueCornerY, teamBluePasteZ);
- TeamRedPaste = new Vector(teamRedPasteX, TeamRedCornerY, teamRedPasteZ);
- Schemsize = new Vector(SchemsizeX, SchemsizeY, SchemsizeZ);
- TeamBlueCorner = new Vector(TeamBlueCornerX, TeamBlueCornerY, TeamBlueCornerZ);
- TeamRedCorner = new Vector(TeamRedCornerX, TeamRedCornerY, TeamRedCornerZ);
-
- World world = Bukkit.getWorlds().get(0);
- TeamBlueSpawn = new Location(world, teamBluePasteX + 0.5, TeamBlueCornerY + SchemsizeY, teamBluePasteZ + 0.5);
- TeamRedSpawn = new Location(world, teamRedPasteX + 0.5, TeamRedCornerY + SchemsizeY, teamRedPasteZ + 0.5);
- SpecSpawn = new Location(world,
- teamBluePasteX + TeamBluetoReddistanceX/2.0,
- TeamBlueCornerY + TeamBluetoReddistanceY/2.0 + SchemsizeY/2.0,
- teamBluePasteZ + TeamBluetoReddistanceZ/2.0);
-
- if(TeamBluetoReddistanceX > 0){
- ArenaMinX = TeamBlueCornerX - Schem2BorderX;
- ArenaMaxX = TeamRedCornerX + SchemsizeX + Schem2BorderX;
- TeamRedRotate = true;
- TeamBlueRotate = false;
- }else{
- ArenaMinX = TeamRedCornerX - Schem2BorderX;
- ArenaMaxX = TeamBlueCornerX + SchemsizeX + Schem2BorderX;
- TeamRedRotate = false;
- TeamBlueRotate = true;
- }
- if(TeamBluetoReddistanceZ > 0){
- ArenaMinZ = TeamBlueCornerZ - Schem2BorderZ;
- ArenaMaxZ = TeamRedCornerZ + SchemsizeZ + Schem2BorderZ;
- TeamRedRotate = true;
- TeamBlueRotate = false;
- }else{
- ArenaMinZ = TeamRedCornerZ - Schem2BorderZ;
- ArenaMaxZ = TeamBlueCornerZ + SchemsizeZ + Schem2BorderZ;
- if(TeamBluetoReddistanceZ != 0){
- TeamRedRotate = false;
- TeamBlueRotate = true;
- }
- }
-
- if(!Rotate){
- TeamRedRotate = false;
- TeamBlueRotate = false;
- }
-
- EventKampfID = Integer.parseInt(System.getProperty("fightID", "0"));
- if(event()){
- EventFight eventFight = EventFight.get(EventKampfID);
- if(eventFight == null){
- Bukkit.getLogger().log(Level.SEVERE, "Failed to load EventFight");
- FightSystem.shutdown(null);
- return;
- }
-
- Team team1 = Team.get(eventFight.getTeamBlue());
- Team team2 = Team.get(eventFight.getTeamRed());
-
- if(team1 == null || team2 == null){
- Bukkit.getLogger().log(Level.SEVERE, "Failed to load Team");
- FightSystem.shutdown(null);
- return;
- }
-
- TeamBlueName = team1.getTeamKuerzel();
- TeamRedName = team2.getTeamKuerzel();
- EventTeamBlueID = team1.getTeamId();
- EventTeamRedID = team2.getTeamId();
-
- FightSystem.setEventFight(eventFight);
-
- Event event = Event.get(eventFight.getEventID());
- MaximumTeamMembers = event.getMaximumTeamMembers();
- OnlyPublicSchematics = event.publicSchemsOnly();
- }
-
- String blueLeader = System.getProperty("blueLeader", null);
- String redLeader = System.getProperty("redLeader", null);
- if(blueLeader != null)
- BlueLeader = UUID.fromString(blueLeader);
- if(redLeader != null)
- RedLeader = UUID.fromString(redLeader);
- }
-
- public static boolean event(){
- return EventKampfID >= 1;
- }
- public static boolean test(){
- return EventKampfID == -1;
- }
-}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightScoreboard.java b/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightScoreboard.java
index c408ecf..5b37a6a 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightScoreboard.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightScoreboard.java
@@ -1,5 +1,6 @@
package de.steamwar.fightsystem.utils;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/utils/ItemBuilder.java b/FightSystem_Main/src/de/steamwar/fightsystem/utils/ItemBuilder.java
index 87289fd..03ad6aa 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/utils/ItemBuilder.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/utils/ItemBuilder.java
@@ -18,7 +18,6 @@ public class ItemBuilder {
meta = item.getItemMeta();
}
-
public ItemBuilder(Material matrial, int amount) {
item = new ItemStack(matrial, amount);
meta = item.getItemMeta();
@@ -28,7 +27,7 @@ public class ItemBuilder {
meta = item.getItemMeta();
}
- public ItemBuilder removeAllAtributs() {
+ public ItemBuilder removeAllAttributs() {
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
meta.addItemFlags(ItemFlag.HIDE_DESTROYS);
meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/utils/TechHider.java b/FightSystem_Main/src/de/steamwar/fightsystem/utils/TechHider.java
index b204a92..604174b 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/utils/TechHider.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/utils/TechHider.java
@@ -12,11 +12,9 @@ import com.comphenix.protocol.wrappers.MultiBlockChangeInfo;
import com.comphenix.protocol.wrappers.WrappedBlockData;
import com.comphenix.protocol.wrappers.nbt.NbtCompound;
import com.comphenix.protocol.wrappers.nbt.NbtFactory;
-import com.google.common.primitives.Bytes;
import de.steamwar.core.Core;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.FightSystem;
-import de.steamwar.fightsystem.fight.Fight;
-import de.steamwar.fightsystem.fight.FightTeam;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.UnpooledByteBufAllocator;
import javafx.util.Pair;
@@ -27,6 +25,8 @@ import org.bukkit.entity.Player;
import java.util.*;
+import static de.steamwar.fightsystem.utils.ITechHider.bypass;
+
public class TechHider {
private TechHider(){}
@@ -36,16 +36,7 @@ public class TechHider {
private static int arenaMaxX;
private static int arenaMinZ;
private static int arenaMaxZ;
- private static int blueMinX;
- private static int blueMaxX;
- private static int blueMinZ;
- private static int blueMaxZ;
- private static int redMinX;
- private static int redMaxX;
- private static int redMinZ;
- private static int redMaxZ;
private static short obfuscateShift4;
- //private static final short BITMASK = 0x1FF;
private static Material obfuscateMaterial;
private static boolean running = false;
private static int threadMultiplier = 1;
@@ -54,19 +45,10 @@ public class TechHider {
if(disabled())
return;
- arenaMinX = posToChunk(Config.ArenaMinX);
- arenaMinZ = posToChunk(Config.ArenaMinZ);
- blueMinX = posToChunk(Config.TeamBlueCornerX);
- blueMinZ = posToChunk(Config.TeamBlueCornerZ);
- redMinX = posToChunk(Config.TeamRedCornerX);
- redMinZ = posToChunk(Config.TeamRedCornerZ);
-
- arenaMaxX = posToChunk(Config.ArenaMaxX) + 1;
- arenaMaxZ = posToChunk(Config.ArenaMaxZ) + 1;
- blueMaxX = posToChunk(Config.TeamBlueCornerX + Config.SchemsizeX) + 1;
- blueMaxZ = posToChunk(Config.TeamBlueCornerZ + Config.SchemsizeZ) + 1;
- redMaxX = posToChunk(Config.TeamRedCornerX + Config.SchemsizeX) + 1;
- redMaxZ = posToChunk(Config.TeamRedCornerZ + Config.SchemsizeZ) + 1;
+ arenaMinX = ITechHider.posToChunk(Config.ArenaMinX);
+ arenaMinZ = ITechHider.posToChunk(Config.ArenaMinZ);
+ arenaMaxX = ITechHider.posToChunk(Config.ArenaMaxX) + 1;
+ arenaMaxZ = ITechHider.posToChunk(Config.ArenaMaxZ) + 1;
obfuscateShift4 = (short)(Config.ObfuscateWith << 4);
//noinspection deprecation
@@ -120,32 +102,6 @@ public class TechHider {
}
}
- private static boolean bypass(Player p, int chunkX, int chunkZ){
- if(p == FightSystem.getEventLeiter())
- return true;
-
- FightTeam ft = Fight.getPlayerTeam(p);
- if(ft == null){
- //Außerhalb der Arena
- return arenaMinX > chunkX ||
- chunkX > arenaMaxX ||
- arenaMinZ > chunkZ ||
- chunkZ > arenaMaxZ;
- }else if(ft.isBlue()){
- return FightSystem.isEntern() ||
- redMinX > chunkX ||
- chunkX > redMaxX ||
- redMinZ > chunkZ ||
- chunkZ > redMaxZ;
- }else{
- return FightSystem.isEntern() ||
- blueMinX > chunkX ||
- chunkX > blueMaxX ||
- blueMinZ > chunkZ ||
- chunkZ > blueMaxZ;
- }
- }
-
private static void chunkHider(){
ProtocolLibrary.getProtocolManager().getAsynchronousManager().registerAsyncHandler(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Server.MAP_CHUNK) {
@Override
@@ -199,17 +155,17 @@ public class TechHider {
}
if(bitsPerBlock != 13){
- int paletteLength = readVarInt(data, i);
- int paletteLengthLength = readVarIntLength(data, i);
+ int paletteLength = ITechHider.readVarInt(data, i);
+ int paletteLengthLength = ITechHider.readVarIntLength(data, i);
buffer.writeBytes(data, i, paletteLengthLength);
i += paletteLengthLength;
for(int actPaletteId = 0; actPaletteId < paletteLength; actPaletteId++){
- int actPalette = readVarInt(data, i);
- int actPaletteLength = readVarIntLength(data, i);
+ int actPalette = ITechHider.readVarInt(data, i);
+ int actPaletteLength = ITechHider.readVarIntLength(data, i);
int blockId = actPalette >> 4;
if(Config.HiddenBlocks.contains(blockId)){
- byte[] a = writeVarInt(obfuscateShift4);
+ byte[] a = ITechHider.writeVarInt(obfuscateShift4);
buffer.writeBytes(a);
changed = true;
}else{
@@ -217,34 +173,16 @@ public class TechHider {
}
i += actPaletteLength;
}
- int dataArrayLength = readVarInt(data, i);
- int dataArrayLengthLength = readVarIntLength(data, i);
+ int dataArrayLength = ITechHider.readVarInt(data, i);
+ int dataArrayLengthLength = ITechHider.readVarIntLength(data, i);
buffer.writeBytes(data, i, dataArrayLength * 8 + dataArrayLengthLength);
i += dataArrayLengthLength;
i += dataArrayLength * 8;
}else{
- int dataArrayLength = readVarInt(data, i);
- int dataArrayLengthLength = readVarIntLength(data, i);
+ int dataArrayLength = ITechHider.readVarInt(data, i);
+ int dataArrayLengthLength = ITechHider.readVarIntLength(data, i);
buffer.writeBytes(data, i, dataArrayLength*8 + dataArrayLengthLength);
i += dataArrayLengthLength;
- /*int arrayEnd = dataArrayLength * 8 + i;
- int bitsOver = 8; //9 bits (id) + 4 bits (metadata)
- while(i < arrayEnd){
- int blockId = (newData.get(i++) & (BITMASK >> 9 - bitsOver)) << 9-bitsOver;
- blockId += newData.get(i) >> bitsOver-1;
- if(Config.HiddenBlocks.contains(blockId)){
- final short debug = 44;
- newData.set(i-1, (byte)(newData.get(i-1) & -(BITMASK >> 9-bitsOver) | debug >> 9-bitsOver));
- newData.set(i, (byte)(newData.get(i) & -(BITMASK << bitsOver-1) | debug << bitsOver-1));
- System.out.println(blockId + " replaced at " + chunkX + " " + chunkZ + " i:" + i + " " + String.format("%8s", Integer.toBinaryString(newData.get(i-1) & 0xFF)).replace(' ', '0') + String.format("%8s", Integer.toBinaryString(newData.get(i) & 0xFF)).replace(' ', '0') + " " + bitsOver);
- changed = true;
- }
- bitsOver -= 5; // 13-8
- if(bitsOver < 1){
- i++;
- bitsOver += 8;
- }
- }*/
i += dataArrayLength * 8;
}
@@ -309,7 +247,7 @@ public class TechHider {
BlockPosition pos = packet.getBlockPositionModifier().read(0);
Player p = e.getPlayer();
- if(bypass(p, posToChunk(pos.getX()), posToChunk(pos.getZ())))
+ if(bypass(p, ITechHider.posToChunk(pos.getX()), ITechHider.posToChunk(pos.getZ())))
return;
PacketContainer cached = packetCache.get(packet);
@@ -340,7 +278,7 @@ public class TechHider {
BlockPosition pos = packet.getBlockPositionModifier().read(0);
Player p = e.getPlayer();
- if(bypass(p, posToChunk(pos.getX()), posToChunk(pos.getZ())))
+ if(bypass(p, ITechHider.posToChunk(pos.getX()), ITechHider.posToChunk(pos.getZ())))
return;
e.setCancelled(true);
@@ -381,59 +319,6 @@ public class TechHider {
}
private static boolean disabled(){
- return Config.event() && Config.OnlyPublicSchematics;
- }
-
- private static int posToChunk(int c){
- int chunk = c / 16;
- if(c<0)
- chunk--;
- return chunk;
- }
-
- private static int readVarInt(byte[] array, int startPos) {
- int numRead = 0;
- int result = 0;
- byte read;
- do {
- read = array[startPos + numRead];
- int value = (read & 0b01111111);
- result |= (value << (7 * numRead));
-
- numRead++;
- if (numRead > 5) {
- break;
- }
- } while ((read & 0b10000000) != 0);
-
- return result;
- }
-
- private static int readVarIntLength(byte[] array, int startPos) {
- int numRead = 0;
- byte read;
- do {
- read = array[startPos + numRead];
- numRead++;
- if (numRead > 5) {
- break;
- }
- } while ((read & 0b10000000) != 0);
-
- return numRead;
- }
-
- private static byte[] writeVarInt(int value) {
- List buffer = new ArrayList<>(5);
- do {
- byte temp = (byte)(value & 0b01111111);
- // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone
- value >>>= 7;
- if (value != 0) {
- temp |= 0b10000000;
- }
- buffer.add(temp);
- } while (value != 0);
- return Bytes.toArray(buffer);
+ return Config.OnlyPublicSchematics;
}
}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionAllDead.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionAllDead.java
index 8350c4f..747dc29 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionAllDead.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionAllDead.java
@@ -3,7 +3,7 @@ package de.steamwar.fightsystem.winconditions;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionCaptainDead.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionCaptainDead.java
index 9d8f06a..4352b13 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionCaptainDead.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionCaptainDead.java
@@ -3,7 +3,7 @@ package de.steamwar.fightsystem.winconditions;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionEntern.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionEntern.java
index d4fd80c..24259f1 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionEntern.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionEntern.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.winconditions;
import de.steamwar.fightsystem.countdown.EnternCountdown;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
public class WinconditionEntern {
public WinconditionEntern() {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionPercentSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionPercentSystem.java
index 5f52f00..34395af 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionPercentSystem.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionPercentSystem.java
@@ -3,7 +3,7 @@ package de.steamwar.fightsystem.winconditions;
import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightState;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.utils.Region;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTechKO.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTechKO.java
index 8ccf90d..5cb45bf 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTechKO.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTechKO.java
@@ -4,7 +4,7 @@ import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.countdown.TechKOCountdown;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.TNTPrimed;
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTimeout.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTimeout.java
index 2509cb8..35e17ba 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTimeout.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionTimeout.java
@@ -1,7 +1,7 @@
package de.steamwar.fightsystem.winconditions;
import de.steamwar.fightsystem.countdown.TimeOverCountdown;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
public class WinconditionTimeout {
public WinconditionTimeout() {
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionWaterTechKO.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionWaterTechKO.java
index 82eb377..a7ba9ac 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionWaterTechKO.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionWaterTechKO.java
@@ -4,7 +4,7 @@ import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.fight.Fight;
import de.steamwar.fightsystem.fight.FightState;
import de.steamwar.fightsystem.fight.FightTeam;
-import de.steamwar.fightsystem.utils.Config;
+import de.steamwar.fightsystem.Config;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
diff --git a/pom.xml b/pom.xml
index 2b894a4..8d27342 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,7 @@
+ FightSystem_API
FightSystem_8
FightSystem_12
FightSystem_Main