Fabric Mod Sender Integration. Mod itself is not final #307
@ -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");
|
||||
|
45
src/de/steamwar/bungeecore/listeners/mods/Fabric.java
Normale Datei
45
src/de/steamwar/bungeecore/listeners/mods/Fabric.java
Normale Datei
@ -0,0 +1,45 @@
|
||||
package de.steamwar.bungeecore.listeners.mods;
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
|
||||
|
||||
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
Lixfel
hat
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
Lixfel
hat
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
Lixfel
hat
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
Lixfel
hat
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
Lixfel
hat
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?
|
||||
}
|
@ -61,7 +61,8 @@ public class Mod {
|
||||
|
||||
public enum Platform{
|
||||
FORGE(0),
|
||||
LABYMOD(1);
|
||||
LABYMOD(1),
|
||||
FABRIC(2);
|
||||
|
||||
Platform(int value){
|
||||
this.value = value;
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
License-Header.