1 Commits

Author SHA1 Message Date
2d172ffe6b Implement basic techhider
All checks were successful
SteamWarCI Build successful
2025-10-08 18:32:32 +02:00
30 changed files with 292 additions and 4 deletions

View File

@ -60,14 +60,16 @@ public class TechHiderWrapper extends StateDependent implements TechHider.Locati
public TechHiderWrapper() {
super(ENABLED, FightState.Schem);
SecretKey key1;
techHider = new TechHider(this, Config.ObfuscateWith, Config.HiddenBlocks, Config.HiddenBlockEntities);
try {
key = new SecretKeySpec(Files.readAllBytes(new File(System.getProperty("user.home"), "hullhider.key").toPath()), "AES");
key1 = new SecretKeySpec(Files.readAllBytes(new File(System.getProperty("user.home"), "hullhider.key").toPath()), "AES");
} catch (IOException e) {
throw new SecurityException(e);
key1 = new SecretKeySpec(new byte[32], "AES");
}
key = key1;
new StateDependentListener(ENABLED, FightState.Schem, this);
register();
}

View File

@ -0,0 +1,35 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
tasks.compileJava {
options.isWarnings = false
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(libs.spigotapi)
compileOnly(libs.netty)
compileOnly(libs.fastutil)
}

View File

@ -0,0 +1,32 @@
/*
* This file is a part of the SteamWAR software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider_8", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider_9", "default"))
compileOnly(libs.nms14)
}

View File

@ -0,0 +1,32 @@
/*
* This file is a part of the SteamWAR software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(libs.nms18)
compileOnly(libs.netty)
compileOnly(libs.spigotapi)
}

View File

@ -0,0 +1,32 @@
/*
* This file is a part of the SteamWAR software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider_18", "default"))
compileOnly(libs.nms19)
compileOnly(libs.spigotapi)
}

View File

@ -0,0 +1,32 @@
/*
* This file is a part of the SteamWAR software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(libs.nms21)
compileOnly(libs.netty)
compileOnly(libs.spigotapi)
}

View File

@ -0,0 +1,30 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(libs.nms8)
}

View File

@ -0,0 +1,31 @@
/*
* This file is a part of the SteamWAR software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
dependencies {
compileOnly(project(":CommonCore", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider", "default"))
compileOnly(project(":SpigotCore:SpigotCore_Main", "default"))
compileOnly(project(":HiderCore:HiderCore_TechHider_8", "default"))
compileOnly(libs.nms9)
}

View File

@ -0,0 +1,42 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
`java-library`
alias(libs.plugins.shadow)
}
tasks.build {
finalizedBy(tasks.shadowJar)
}
dependencies {
api(project(":HiderCore:HiderCore_TechHider"))
implementation(project(":HiderCore:HiderCore_TechHider_8"))
implementation(project(":HiderCore:HiderCore_TechHider_9"))
implementation(project(":HiderCore:HiderCore_TechHider_14"))
implementation(project(":HiderCore:HiderCore_TechHider_18"))
implementation(project(":HiderCore:HiderCore_TechHider_19"))
implementation(project(":HiderCore:HiderCore_TechHider_21")) {
attributes {
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 21)
}
}
}

View File

@ -23,7 +23,6 @@ import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.Reflection;
import de.steamwar.command.*;
import de.steamwar.core.authlib.AuthlibInjector;
import de.steamwar.core.events.AntiNocom;
import de.steamwar.core.events.ChattingEvent;
import de.steamwar.core.events.PlayerJoinedEvent;
import de.steamwar.core.events.WorldLoadEvent;
@ -110,7 +109,16 @@ public class Core extends JavaPlugin {
TinyProtocol.init();
CheckpointUtils.signalHandler();
new AntiNocom();
// AntiNocom moved to HiderCore - will be initialized if HiderCore is present
try {
Class<?> antiNocomClass = Class.forName("de.steamwar.core.events.AntiNocom");
antiNocomClass.getDeclaredConstructor().newInstance();
} catch (ClassNotFoundException ignored) {
// HiderCore not present, skip AntiNocom
} catch (Exception e) {
getLogger().log(Level.WARNING, "Failed to initialize AntiNocom", e);
}
if(Core.getVersion() >= 19)
new ServerDataHandler();

View File

@ -30,6 +30,7 @@ dependencies {
api(project(":CommonCore"))
api(project(":CommandFramework"))
api(project(":SpigotCore:SpigotCore_Main"))
api(project(":HiderCore"))
implementation(project(":SpigotCore:SpigotCore_8"))
implementation(project(":SpigotCore:SpigotCore_9"))

View File

@ -190,6 +190,17 @@ include(
"CommonCore:Network"
)
include(
"HiderCore",
"HiderCore:HiderCore_TechHider",
"HiderCore:HiderCore_TechHider_8",
"HiderCore:HiderCore_TechHider_9",
"HiderCore:HiderCore_TechHider_14",
"HiderCore:HiderCore_TechHider_18",
"HiderCore:HiderCore_TechHider_19",
"HiderCore:HiderCore_TechHider_21"
)
include(
"FightSystem",
"FightSystem:FightSystem_8",