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
2 geänderte Dateien mit 10 neuen und 2 gelöschten Zeilen
Nur Änderungen aus Commit c239dc7809 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -23,11 +23,13 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import de.steamwar.bungeecore.BungeeCore;
import de.steamwar.bungeecore.Storage;
import de.steamwar.bungeecore.listeners.BasicListener;
import de.steamwar.bungeecore.sql.Mod;
import de.steamwar.bungeecore.sql.Punishment;
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?
import de.steamwar.bungeecore.sql.SteamwarUser;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.event.EventHandler;
@ -40,6 +42,7 @@ import java.util.logging.Level;
public class Fabric extends BasicListener {
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".
private final List<String> neededMods = new LinkedList<>();
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?
public static final Set<ProxiedPlayer> checkedPlayers = new HashSet();
{
neededMods.add("java");
@ -91,13 +94,18 @@ public class Fabric extends BasicListener {
return;
}
Utils.handleMods(player,mods);
if(Utils.handleMods(player,mods)) checkedPlayers.add(player);
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Du solltest lieber den Spieler aus den Storage.fabricPlayers entfernen (und den Spieler darüber informieren, dass die Mods geprüft wurden und er deshalb auf Arenen darf). Das derzeitige System hat das Problem, sobald ein softreload gemacht wird, können geprüfte Spieler eben nicht mehr auf Arenen.

Du solltest lieber den Spieler aus den Storage.fabricPlayers entfernen (und den Spieler darüber informieren, dass die Mods geprüft wurden und er deshalb auf Arenen darf). Das derzeitige System hat das Problem, sobald ein softreload gemacht wird, können geprüfte Spieler eben nicht mehr auf Arenen.
}catch (Exception ex) {
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das Try-Catch gefällt mir gar nicht. Mir ist bewusst, dass beim JsonParser Fehler fliegen können, in dem Fall solltest du aber nur den JsonParser try-catchen und falls das auftritt auch wieder bannen.

Das Try-Catch gefällt mir gar nicht. Mir ist bewusst, dass beim JsonParser Fehler fliegen können, in dem Fall solltest du aber nur den JsonParser try-catchen und falls das auftritt auch wieder bannen.
ex.printStackTrace();
player.disconnect("§7Mod Verification failed! Contact a Developer");
}
}
@EventHandler
public void onDisconnect(PlayerDisconnectEvent e){
checkedPlayers.remove(e.getPlayer());
}
private boolean isSortedAlphabetically(List<Mod> mods) {
boolean isSorted = true;
for(int i = 0; i < mods.size() - 1; i++) {

Datei anzeigen

@ -73,7 +73,7 @@ public class ModLoaderBlocker extends BasicListener {
}
public static boolean isFabric(ProxiedPlayer player) {
return Storage.fabricPlayers.contains(player);
return Storage.fabricPlayers.contains(player) && !Fabric.checkedPlayers.contains(player);
}
public static void addServer(String server) {