SteamWar/BungeeCore
Archiviert
13
2

Whois Fabric Mod Info #444

Zusammengeführt
Lixfel hat 20 Commits von whois_fabric_mods nach master 2023-01-15 16:42:18 +01:00 zusammengeführt
9 geänderte Dateien mit 45 neuen und 43 gelöschten Zeilen
Nur Änderungen aus Commit ed55af8952 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -22,6 +22,7 @@ package de.steamwar.bungeecore.commands;
import com.google.common.reflect.TypeParameter;
import de.steamwar.bungeecore.Message;
import de.steamwar.bungeecore.Storage;
import de.steamwar.bungeecore.listeners.mods.Utils;
import de.steamwar.bungeecore.sql.*;
import de.steamwar.command.SWCommand;
import de.steamwar.command.SWCommandUtils;
@ -108,15 +109,18 @@ public class WhoisCommand extends SWCommand {
Team team = Team.get(user.getTeam());
Message.send("WHOIS_TEAM", player, Message.parse("WHOIS_TEAM_HOVER", player, team.getTeamName()), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/team info " + team.getTeamKuerzel()), team.getTeamColor(), team.getTeamKuerzel(), team.getTeamName());
if(Utils.synchronizedPlayerModMap.containsKey(user.getUuid())) {
Mod.Platform modPlatform = Utils.synchronizedPlayerModMap.get(user.getUuid()).get(0).getPlatform();
Message.send("WHOIS_PLATFORM",player,modPlatform.toString());
}
if(parameterTypes.contains(WhoisParameterTypes.MOD)) {
if(!user.getActiveMods().isEmpty()) {
Message.send("WHOIS_ACTIVE_MODS",player);
StringBuilder msg = new StringBuilder();
for(Mod mod : user.getActiveMods()) {
msg.append(mod.getModName()).append(",");
}
msg.deleteCharAt(msg.length() - 1);
Message.send("WHOIS_ACTIVE_MOD", player,msg.toString());
List<Mod> activeMods = Utils.synchronizedPlayerModMap.get(user.getUuid());
if(!activeMods.isEmpty()) {
Message.send("WHOIS_ACTIVE_MODS",player);
String result = activeMods.stream().map(mod -> mod.getModType().getColorCode() + mod.getModName()).collect(Collectors.joining("§8, "));
Message.send("WHOIS_ACTIVE_MOD", player,result);
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das sollte das ganze farbig senden, da musst du halt mal mit Debug-Output das ganze durchsuchen warums nicht tut.

Das sollte das ganze farbig senden, da musst du halt mal mit Debug-Output das ganze durchsuchen warums nicht tut.
Veraltet
Review

Wenn ich einfach in die enum gehe, dort mir von einem die farbe sysoute, bekomm ich einen leeren string. was eig nicht sein kann

Wenn ich einfach in die enum gehe, dort mir von einem die farbe sysoute, bekomm ich einen leeren string. was eig nicht sein kann
Veraltet
Review

funktioniert

funktioniert
}else {
Message.send("WHOIS_NO_ACTIVE_MODS",player);
}
@ -143,13 +147,13 @@ public class WhoisCommand extends SWCommand {
}
@ClassMapper(value = WhoisParameterTypes.class, local = true)
public TypeMapper<WhoisParameterTypes> argument() {
public TypeMapper<WhoisParameterTypes> argumentTypeMapper() {
WhoisParameterTypes[] values = WhoisParameterTypes.values();
return new TypeMapper<WhoisParameterTypes>() {
@Override
public WhoisParameterTypes map(CommandSender commandSender, String[] previousArguments, String s) {
UserGroup userGroup = (commandSender instanceof ConsoleCommandSender) ? UserGroup.Admin : SteamwarUser.get(((ProxiedPlayer) commandSender).getUniqueId()).getUserGroup();
UserGroup userGroup = SteamwarUser.get(((ProxiedPlayer) commandSender).getUniqueId()).getUserGroup();
return Stream.of(values)
.filter(p -> p.userGroupSet.contains(userGroup))
.filter(p -> p.getTabCompletes().contains(s))
@ -159,7 +163,7 @@ public class WhoisCommand extends SWCommand {
@Override
public Collection<String> tabCompletes(CommandSender commandSender, String[] previousArguments, String s) {
UserGroup userGroup = (commandSender instanceof ConsoleCommandSender) ? UserGroup.Admin : SteamwarUser.get(((ProxiedPlayer) commandSender).getUniqueId()).getUserGroup();
UserGroup userGroup = SteamwarUser.get(((ProxiedPlayer) commandSender).getUniqueId()).getUserGroup();
return Stream.of(values)
.filter(p -> p.userGroupSet.contains(userGroup))
.flatMap(p -> p.getTabCompletes().stream())

Datei anzeigen

@ -28,8 +28,10 @@ import de.steamwar.bungeecore.bot.util.DiscordRanks;
import de.steamwar.bungeecore.commands.ChallengeCommand;
import de.steamwar.bungeecore.commands.CheckCommand;
import de.steamwar.bungeecore.commands.MsgCommand;
import de.steamwar.bungeecore.listeners.mods.Utils;
import de.steamwar.bungeecore.sql.SteamwarUser;
import de.steamwar.bungeecore.sql.UserGroup;
import net.md_5.bungee.Util;
import net.md_5.bungee.api.AbstractReconnectHandler;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.ClickEvent;
@ -135,6 +137,7 @@ public class ConnectionListener extends BasicListener {
public void onDisconnect(PlayerDisconnectEvent e){
ChallengeCommand.remove(e.getPlayer());
MsgCommand.remove(e.getPlayer());
Utils.synchronizedPlayerModMap.remove(e.getPlayer().getUniqueId());
}
@EventHandler

Datei anzeigen

@ -89,7 +89,7 @@ public class Fabric extends BasicListener {
}
Storage.fabricExpectPluginMessage.remove(player);
ArrayList<Mod> mods = new ArrayList<>();
List<Mod> mods = new ArrayList<>();
Utils.VarInt varInt = Utils.readVarInt(data,0);
@ -127,8 +127,6 @@ public class Fabric extends BasicListener {
return;
}
user.setActiveMods(mods);
if(Utils.handleMods(player,mods)) {
if (Storage.fabricCheckedPlayers.containsKey(player)) {
long current = Storage.fabricCheckedPlayers.get(player);

Datei anzeigen

@ -33,10 +33,7 @@ import net.md_5.bungee.event.EventHandler;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import java.util.*;
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Keine Changes in ungeänderten Dateien!

Keine Changes in ungeänderten Dateien!
public class LabyMod extends BasicListener {

Datei anzeigen

@ -33,15 +33,15 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.sql.Timestamp;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.UUID;
import java.util.*;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.stream.Collectors;
class Utils {
public class Utils {
public static final Map<UUID,List<Mod>> synchronizedPlayerModMap = new HashMap<>();
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Warum nennst du sie synchronizedPlayerModMap, wenn sie nicht mal synchronized ist?

Warum nennst du sie synchronizedPlayerModMap, wenn sie nicht mal synchronized ist?
Review

Sollte in den PersistentBungeeCore verschoben werden, sonst ist das nach nem Softreload alles weg. (https://steamwar.de/devlabs/SteamWar/PersistentBungeeCore/src/branch/master/src/de/steamwar/bungeecore/Storage.java)

Sollte in den PersistentBungeeCore verschoben werden, sonst ist das nach nem Softreload alles weg. (https://steamwar.de/devlabs/SteamWar/PersistentBungeeCore/src/branch/master/src/de/steamwar/bungeecore/Storage.java)
Review

diese infos sind nicht so wichtig, dass sie nach einem softreload benötigt werden.

diese infos sind nicht so wichtig, dass sie nach einem softreload benötigt werden.
Review

spätestens wenn der user rejoined sind sie wieder da. Diese infos sind auch nicht essenziell zu haben.

spätestens wenn der user rejoined sind sie wieder da. Diese infos sind auch nicht essenziell zu haben.
zOnlyKroks markierte diese Unterhaltung als gelöst
Review

evtl. Nur den Modname Speichern und den ModTypen dann aus der DB laden, besonders wenn die Liste in den PersistentBungeeCore kommt.

evtl. Nur den Modname Speichern und den ModTypen dann aus der DB laden, besonders wenn die Liste in den PersistentBungeeCore kommt.
Review

da kommen dann relativ viele datenbank zugriffe zusammen. finde es so vorallem im moment wie es ist einfacher

da kommen dann relativ viele datenbank zugriffe zusammen. finde es so vorallem im moment wie es ist einfacher
private Utils(){}
static VarInt readVarInt(byte[] array, int startPos) {
@ -69,6 +69,7 @@ class Utils {
static boolean handleMods(UUID uuid, Locale locale, Consumer<BaseComponent[]> disconnect, List<Mod> mods){
SteamwarUser user = SteamwarUser.get(uuid);
boolean privileged = user.getUserGroup().privilegedMods();
synchronizedPlayerModMap.put(uuid,new ArrayList<>(mods));
ModType max = ModType.YELLOW;
Iterator<Mod> it = mods.iterator();
@ -80,8 +81,10 @@ class Utils {
max = ModType.RED;
}
if(mods.isEmpty())
if(mods.isEmpty()) {
return true;
}
ModType finalMax = max;
String modList = mods.stream().filter(mod -> finalMax == ModType.YELLOW || mod.getModType() == ModType.RED).map(Mod::getModName).collect(Collectors.joining("\n"));

Datei anzeigen

@ -74,11 +74,11 @@ public class Mod {
}
public enum ModType {
UNKLASSIFIED(0),
GREEN(1),
YELLOW(2),
RED(3),
YOUTUBER_ONLY(4);
UNKLASSIFIED(0,"§7 "),
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Da das ganze hier in den CommonCore kommt, würde ich mich freuen, wenn da nur der Colorcode (ohne leerzeichen, ohne §) drinbleibt.

Da das ganze hier in den CommonCore kommt, würde ich mich freuen, wenn da nur der Colorcode (ohne leerzeichen, ohne §) drinbleibt.
GREEN(1,"§a "),
YELLOW(2,"§e "),
RED(3,"§c "),
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Yellow und Red werden nie sichtbar sein (damit ist niemand online)

Yellow und Red werden nie sichtbar sein (damit ist niemand online)
YOUTUBER_ONLY(4,"§6 ");
static ModType valueOf(int value){
for(ModType mt : values()){
@ -88,9 +88,15 @@ public class Mod {
throw new EnumConstantNotPresentException(ModType.class, Integer.toString(value));
}
ModType(int value){
ModType(int value,String colorcode){
this.value = value;
this.colorcode = colorcode;
}
int value;
String colorcode;
public String getColorCode() {
return colorcode;
}
}
}

Datei anzeigen

@ -81,8 +81,6 @@ public class SteamwarUser {
private Locale locale;
private boolean manualLocale;
private List<Mod> activeMods = new CopyOnWriteArrayList<>();
static {
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Was zum Henker ist das für ein Listentyp? Ist das wirklich nötig?

Was zum Henker ist das für ein Listentyp? Ist das wirklich nötig?
try {
LIXFEL_DE = InetAddress.getByAddress(new byte[]{(byte) 195, (byte) 201, (byte) 242, 43});
@ -395,13 +393,4 @@ public class SteamwarUser {
updateLocale.update(locale.toLanguageTag(), manualLocale, id);
NetworkSender.send(getPlayer(), new LocaleInvalidationPacket(id));
}
public void setActiveMods(List<Mod> activeMods) {
this.activeMods.clear();
this.activeMods.addAll(activeMods);
}
public List<Mod> getActiveMods() {
return new ArrayList<>(activeMods);
}
}

Datei anzeigen

@ -598,7 +598,8 @@ WHOIS_NO_PUNISHMENT=§a✓ §7This player has no active punishment.
WHOIS_NO_ALL_PUNISHMENT=§a✓ §7The player has not done anything yet.
WHOIS_ACTIVE_MODS=§7Active Mods:
WHOIS_NO_ACTIVE_MODS=§7This player has no active mods.
WHOIS_ACTIVE_MOD=§7{0}
WHOIS_ACTIVE_MOD={0}
zOnlyKroks markierte diese Unterhaltung als gelöst
Review

Wie wäre es stattdessen, WHOIS_ACTIVE_MODS um ein zweites Argument am Ende zu erweitern (für die Modliste)? Dann ist es in einer Zeile. Ansonsten mal oben in der Datei schauen, ob es nicht schon irgendwein OLD_STRING oder ähnliches gibt, was einfach nur einen String ausgibt.

Wie wäre es stattdessen, WHOIS_ACTIVE_MODS um ein zweites Argument am Ende zu erweitern (für die Modliste)? Dann ist es in einer Zeile. Ansonsten mal oben in der Datei schauen, ob es nicht schon irgendwein OLD_STRING oder ähnliches gibt, was einfach nur einen String ausgibt.
Review

so sind es nur zwei zeilen und meiner meinung nach übersichtlicher, da die länge der modliste seperat steht und nicht im getummel der mods.

so sind es nur zwei zeilen und meiner meinung nach übersichtlicher, da die länge der modliste seperat steht und nicht im getummel der mods.
WHOIS_PLATFORM=§7Modloader: §e{0}
#VerifyCommand
VERIFY_USAGE=§c/verify [Code]

Datei anzeigen

@ -577,7 +577,8 @@ WHOIS_NO_PUNISHMENT=§a✓ §7Der Spieler hat keine aktiven Strafen.
WHOIS_NO_ALL_PUNISHMENT=§a✓ §7Der Spieler hat noch nichts getan.
WHOIS_ACTIVE_MODS=§7Aktive Mods:
WHOIS_NO_ACTIVE_MODS=§7Der Spieler hat keine aktiven Mods.
WHOIS_ACTIVE_MOD=§7{0}
WHOIS_ACTIVE_MOD={0}
WHOIS_PLATFORM=§7Modloader:§e{0}
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Wenn deutsch und englisch 1 zu 1 das gleiche sind, brauchst du den im deutschen nicht zu kopieren sondern kannst ihn einfach weglassen.

Wenn deutsch und englisch 1 zu 1 das gleiche sind, brauchst du den im deutschen nicht zu kopieren sondern kannst ihn einfach weglassen.
#VerifyCommand
VERIFY_USAGE=§c/verify [Code]