1
0

Fix sw:bridge, axiom, bau.steamwar.de

Signed-off-by: Lixfel <agga-games@gmx.de>
Dieser Commit ist enthalten in:
Lixfel 2024-03-14 22:52:50 +01:00
Ursprung a0a2d70c46
Commit 9572347419
3 geänderte Dateien mit 18 neuen und 15 gelöschten Zeilen

Datei anzeigen

@ -116,7 +116,7 @@ public class PluginMessage extends BasicListener {
"axiom:hello", "axiom:set_gamemode", "axiom:set_fly_speed", "axiom:set_world_time", "axiom:hello", "axiom:set_gamemode", "axiom:set_fly_speed", "axiom:set_world_time",
"axiom:set_world_property", "axiom:set_block", "axiom:set_hotbar_slot", "axiom:switch_active_hotbar", "axiom:set_world_property", "axiom:set_block", "axiom:set_hotbar_slot", "axiom:switch_active_hotbar",
"axiom:teleport", "axiom:set_editor_views", "axiom:request_chunk_data", "axiom:spawn_entity", "axiom:teleport", "axiom:set_editor_views", "axiom:request_chunk_data", "axiom:spawn_entity",
"axiom:manipulate_entity", "axiom:delete_entity", "axiom:marker_nbt_request" "axiom:manipulate_entity", "axiom:delete_entity", "axiom:marker_nbt_request", "axiom:set_buffer"
); );
register("REGISTER", false, directional(this::serverRegistersChannel, this::clientRegistersChannel)); register("REGISTER", false, directional(this::serverRegistersChannel, this::clientRegistersChannel));
@ -129,7 +129,8 @@ public class PluginMessage extends BasicListener {
register("MC|Brand", false, directional(this::steamWarBrand, this::userBrand)); register("MC|Brand", false, directional(this::steamWarBrand, this::userBrand));
register("minecraft:brand", false, directional(this::steamWarBrand, this::userBrand)); register("minecraft:brand", false, directional(this::steamWarBrand, this::userBrand));
register("sw:bridge", false, directional(onlySWSource(async(event -> NetworkPacket.handle(new ServerMetaInfo(((Server) event.getSender()).getInfo()), event.getData()))), UNKNOWN)); //Needs to be registered cause paper refuses to send PluginMessages on unregistered channels...
register("sw:bridge", true, directional(onlySWSource(async(event -> NetworkPacket.handle(new ServerMetaInfo(((Server) event.getSender()).getInfo()), event.getData()))), UNKNOWN));
register("sw:hotkeys", false, directional(UNKNOWN, PASS_THROUGH)); register("sw:hotkeys", false, directional(UNKNOWN, PASS_THROUGH));
register("fabricmodsender:mods", true, directional(UNKNOWN, async(fabricModSender::handlePluginMessage))); register("fabricmodsender:mods", true, directional(UNKNOWN, async(fabricModSender::handlePluginMessage)));
@ -172,11 +173,9 @@ public class PluginMessage extends BasicListener {
} }
private void registerPassthroughToServer(String... channels) { private void registerPassthroughToServer(String... channels) {
for(String channel : channels) { for(String channel : channels)
knownChannels.add(channel);
register(channel, false, directional(UNKNOWN, PASS_THROUGH)); register(channel, false, directional(UNKNOWN, PASS_THROUGH));
} }
}
private void registerBiDirPassthrough(String... channels) { private void registerBiDirPassthrough(String... channels) {
for(String channel : channels) { for(String channel : channels) {

Datei anzeigen

@ -43,13 +43,17 @@ import java.util.concurrent.TimeUnit;
public class FabricModSender extends BasicListener { public class FabricModSender extends BasicListener {
private final Set<String> neededMods = new HashSet<>(); private final Set<String> neededFabricMods = new HashSet<>();
private final Set<String> neededQuiltMods = new HashSet<>();
public FabricModSender() { public FabricModSender() {
neededMods.add("java"); neededFabricMods.add("java");
neededMods.add("minecraft"); neededFabricMods.add("minecraft");
neededMods.add("fabricloader"); neededFabricMods.add("steamwarmodsender");
neededMods.add("steamwarmodsender"); neededQuiltMods.addAll(neededFabricMods);
neededFabricMods.add("fabricloader");
neededQuiltMods.add("quilt_loader");
BungeeCord.getInstance().getScheduler().schedule(BungeeCore.get(), () -> { BungeeCord.getInstance().getScheduler().schedule(BungeeCore.get(), () -> {
synchronized (Storage.fabricExpectPluginMessage) { synchronized (Storage.fabricExpectPluginMessage) {
@ -95,7 +99,7 @@ public class FabricModSender extends BasicListener {
mods.add(Mod.getOrCreate(mod.getAsString(), Mod.Platform.FABRIC)); mods.add(Mod.getOrCreate(mod.getAsString(), Mod.Platform.FABRIC));
} }
if(!neededModsContained(mods)) { if(!neededModsContained(neededFabricMods, mods) && !neededModsContained(neededQuiltMods, mods)) {
logMessage(user, "Needed mods are not contained", data); logMessage(user, "Needed mods are not contained", data);
return; return;
} }
@ -128,11 +132,11 @@ public class FabricModSender extends BasicListener {
} }
} }
private boolean neededModsContained(List<Mod> mods) { private boolean neededModsContained(Set<String> neededMods, List<Mod> mods) {
return mods.stream() return mods.stream()
.map(Mod::getModName) .map(Mod::getModName)
.filter(neededMods::contains) .filter(neededMods::contains)
.count() == neededMods.size(); .count() == neededFabricMods.size();
} }
private void logMessage(SteamwarUser user, String reason, String data) { private void logMessage(SteamwarUser user, String reason, String data) {

Datei anzeigen

@ -54,12 +54,12 @@ public class Hostname extends BasicListener {
@EventHandler @EventHandler
public void onHandshake(PlayerHandshakeEvent event) { public void onHandshake(PlayerHandshakeEvent event) {
String hostname = event.getHandshake().getHost().toLowerCase();
String extraDataInHandshake = ((InitialHandler) event.getConnection()).getExtraDataInHandshake(); String extraDataInHandshake = ((InitialHandler) event.getConnection()).getExtraDataInHandshake();
if (!knownHostnames.contains(event.getHandshake().getHost().toLowerCase())) { if (!knownHostnames.contains(hostname) && !hostname.endsWith(".steamwar.de")) {
BungeeCore.get().getLogger().log(Level.WARNING, () -> event.getConnection().getSocketAddress() + " connected with unknown hostname " + event.getHandshake() + " " + extraDataInHandshake); BungeeCore.get().getLogger().log(Level.WARNING, () -> event.getConnection().getSocketAddress() + " connected with unknown hostname " + event.getHandshake() + " " + extraDataInHandshake);
} else if (!knownExtraData.contains(extraDataInHandshake)) { } else if (!knownExtraData.contains(extraDataInHandshake)) {
BungeeCore.get().getLogger().log(Level.WARNING, () -> event.getConnection().getSocketAddress() + " connected with unknown extra data " + event.getHandshake() + " " + extraDataInHandshake); BungeeCore.get().getLogger().log(Level.WARNING, () -> event.getConnection().getSocketAddress() + " connected with unknown extra data " + event.getHandshake() + " " + extraDataInHandshake);
} }
} }
} }