SteamWar/BungeeCore
Archiviert
13
2

Fabric Mod Sender Integration. Mod itself is not final #307

Zusammengeführt
Lixfel hat 12 Commits von fabric_mod_sender nach master 2022-03-26 10:01:51 +01:00 zusammengeführt
3 geänderte Dateien mit 49 neuen und 1 gelöschten Zeilen
Nur Änderungen aus Commit 24075306fd werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -70,6 +70,7 @@ public class BungeeCore extends Plugin {
@Override
public void onEnable(){
getProxy().registerChannel("sw:bridge");
getProxy().registerChannel("fabricmodsender:mods");
setInstance(this);
loadConfig();
@ -86,6 +87,7 @@ public class BungeeCore extends Plugin {
new ModLoaderBlocker();
new WorldDownloader();
new BrandListener();
new Fabric();
new Node.LocalNode();
//new Node.RemoteNode("lx");

Datei anzeigen

@ -0,0 +1,45 @@
package de.steamwar.bungeecore.listeners.mods;
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

License-Header.

License-Header.
import de.steamwar.bungeecore.listeners.BasicListener;
import de.steamwar.bungeecore.sql.Mod;
import io.netty.util.internal.StringUtil;
import net.md_5.bungee.api.connection.PendingConnection;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.event.EventHandler;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class Fabric extends BasicListener {
@EventHandler
public void onPluginMessageEvent(PluginMessageEvent e){
if(!e.getTag().equals("fabricmodsender:mods"))
return;
String dataString = new String(e.getData()).substring(2);
dataString = StringUtils.chop(dataString);
char x = 34;
dataString = dataString.replace(x, ' ');
dataString = dataString.replaceAll("\\s+","");
String[] parts = dataString.split(",");
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das Stringhandling schaut mir ziemlich Spanisch aus, ist das hier ein sehr primitiver JSON-Parser?

Das Stringhandling schaut mir ziemlich Spanisch aus, ist das hier ein sehr primitiver JSON-Parser?
List<Mod> mods = new ArrayList<>();
for(String mod : parts) {
mods.add(Mod.get(mod, Mod.Platform.FABRIC));
}
if (e.getSender() instanceof ProxiedPlayer) {
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das bitte zu Anfang prüfen (und ggf. verwerfen), wenn das Packet vom Subserver kommt, ist das ja uninteressant für uns.

Das bitte zu Anfang prüfen (und ggf. verwerfen), wenn das Packet vom Subserver kommt, ist das ja uninteressant für uns.
ProxiedPlayer player = (ProxiedPlayer) e.getSender();
if(!Utils.handleMods(player, mods))
player.disconnect("");
zOnlyKroks markierte diese Unterhaltung als gelöst
Review

Ich glaube, das disconnecten musst du nicht mehr von Hand machen (kannst ja mal im LabymodHandler oder Forge1.12Handler nachschauen (Forge 1.13+ ist da etwas spezieller weil in LOGIN)

Ich glaube, das disconnecten musst du nicht mehr von Hand machen (kannst ja mal im LabymodHandler oder Forge1.12Handler nachschauen (Forge 1.13+ ist da etwas spezieller weil in LOGIN)
}
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Sollten die Mods einwandfrei sein, sollte der Spieler auf eine Whitelist kommen, dass er auch Arenenserver betreten kann (siehe ModLoaderBlocker). Dazu am Besten den Spieler eine Message senden á'la "Deine Mods wurden überprüft, du darfst Arenen betreten".

Sollten die Mods einwandfrei sein, sollte der Spieler auf eine Whitelist kommen, dass er auch Arenenserver betreten kann (siehe ModLoaderBlocker). Dazu am Besten den Spieler eine Message senden á'la "Deine Mods wurden überprüft, du darfst Arenen betreten".
}
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Warum ist das eine LinkedList? Wäre der korrekte Datentyp hier nicht ein Set?

Warum ist das eine LinkedList? Wäre der korrekte Datentyp hier nicht ein Set?
}

Datei anzeigen

@ -61,7 +61,8 @@ public class Mod {
public enum Platform{
FORGE(0),
LABYMOD(1);
LABYMOD(1),
FABRIC(2);
Platform(int value){
this.value = value;