SteamWar/BungeeCore
Archiviert
13
2

Ranked #306

Zusammengeführt
Lixfel hat 25 Commits von Ranked nach master 2022-03-13 20:26:16 +01:00 zusammengeführt
Nur Änderungen aus Commit e570b3544d werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -23,10 +23,8 @@ import de.steamwar.bungeecore.*;
import de.steamwar.bungeecore.bot.SteamwarDiscordBot;
import de.steamwar.bungeecore.commands.TpCommand;
import de.steamwar.bungeecore.comms.packets.PingPacket;
import de.steamwar.bungeecore.sql.Punishment;
import de.steamwar.bungeecore.sql.SteamwarUser;
import de.steamwar.bungeecore.sql.Team;
import de.steamwar.bungeecore.sql.UserGroup;
import de.steamwar.bungeecore.sql.*;
import lombok.val;
import net.md_5.bungee.api.*;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@ -39,6 +37,7 @@ import net.md_5.bungee.event.EventHandler;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@ -200,7 +199,7 @@ public class ChatListener extends BasicListener {
}
private void publicChat(SteamwarUser user, ProxiedPlayer sender, String message){
String name = sender.getDisplayName();
String name = getEmblem(user) + sender.getDisplayName();
String chatcolor = user.getUserGroup().getChatColorCode();
if(user.getUserGroup() != UserGroup.Member || user.getTeam() == 12 || user.getTeam() == 285 || user.getTeam() == 54)
@ -228,6 +227,35 @@ public class ChatListener extends BasicListener {
BungeeCore.log(sender.getServer().getInfo(), msg);
}
private static String getEmblem(SteamwarUser user) {
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das hier bei jeder einzelnen Chatnachricht durchzuführen ist sehr wahrscheinlich performanceproblematisch. Besser wäre hier ein Cache und ich würde die Emblemberechnung eher ungerne hier im ChatListener drin haben wollen, eher in UserElo.

Das hier bei jeder einzelnen Chatnachricht durchzuführen ist sehr wahrscheinlich performanceproblematisch. Besser wäre hier ein Cache und ich würde die Emblemberechnung eher ungerne hier im ChatListener drin haben wollen, eher in UserElo.
Veraltet
Review

Ich muss aber alle gecached embleme killen, wenn es einen neuen max gibt und für dich wenn du eine neue elo erhälst richtig?

Ich muss aber alle gecached embleme killen, wenn es einen neuen max gibt und für dich wenn du eine neue elo erhälst richtig?
Veraltet
Review

Es reicht auch, wenn es nach einer Stunde angepasst wird...

Es reicht auch, wenn es nach einer Stunde angepasst wird...
Veraltet
Review

Würde ich lieber nicht machen, ich würde gerne sie so schnell geupdated wie möglich haben.

Würde ich lieber nicht machen, ich würde gerne sie so schnell geupdated wie möglich haben.
Veraltet
Review

Dann kannst du die Embleme dennoch cachen. Und ob sie so schnell geupdatet werden wie möglich oder nicht, dazwischen liegen bis zu 3 Kämpfe (in etwa).... Es ist also ziemlich egal und dafür ein heidenaufwand, das Echtzeit zu halten.

Dann kannst du die Embleme dennoch cachen. Und ob sie so schnell geupdatet werden wie möglich oder nicht, dazwischen liegen bis zu 3 Kämpfe (in etwa).... Es ist also ziemlich egal und dafür ein heidenaufwand, das Echtzeit zu halten.
Veraltet
Review

Ich sehe jetzt nicht unbedingt so viel aufwand darin, guck dir gleich einfach mal meine Lösung an und mecker dann gerne nochmal rum, dann schmeiße ich es gerne weiter raus.

Ich sehe jetzt nicht unbedingt so viel aufwand darin, guck dir gleich einfach mal meine Lösung an und mecker dann gerne nochmal rum, dann schmeiße ich es gerne weiter raus.
int maxEloOfPlayer = 0;
ArenaMode arenaMode = null;
for (ArenaMode mode : ArenaMode.getAllModes()) {
if (!mode.isRanked()) continue;
if (UserElo.getFightsOfSeason(user.getId(), mode.getSchemType()) < 10) continue;
Optional<Integer> currentElo = UserElo.getElo(user.getId(), mode.getSchemType());
if (currentElo.isPresent() && currentElo.get() > maxEloOfPlayer) {
maxEloOfPlayer = currentElo.get();
arenaMode = mode;
}
}
if (arenaMode == null) return "";
int maxEloOfGameMode = UserElo.getMaxElo(arenaMode.getSchemType());
return getEmblem(maxEloOfPlayer, maxEloOfGameMode);
}
private static String getEmblem(int maxEloOfPlayer, int maxEloOfGameMode) {
if (maxEloOfPlayer > maxEloOfGameMode * 0.99) return "§5❂ ";
Lixfel markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Würde ohne Space bevorzugen (Platz), muss man aber mal sehen, wie es aussieht

Würde ohne Space bevorzugen (Platz), muss man aber mal sehen, wie es aussieht
Veraltet
Review

Ich würde persönlich gerne ein leerzeichen zwischen dem Emblem und dem Rang haben, ich glaube das entzerrt das ganze ein wenig, weil so ist es halt direkt daran, was auch nicht unbedingt perfekt ist.

Ich würde persönlich gerne ein leerzeichen zwischen dem Emblem und dem Rang haben, ich glaube das entzerrt das ganze ein wenig, weil so ist es halt direkt daran, was auch nicht unbedingt perfekt ist.
if (maxEloOfPlayer > maxEloOfGameMode * 0.94) return "§c✹ ";
if (maxEloOfPlayer > maxEloOfGameMode * 0.84) return "§b✸ ";
if (maxEloOfPlayer > maxEloOfGameMode * 0.69) return "§a✷ ";
if (maxEloOfPlayer > maxEloOfGameMode * 0.49) return "§e✶ ";
if (maxEloOfPlayer > maxEloOfGameMode * 0.26) return "§f✦ ";
return "§7✧ ";
}
private void localChat(ChatEvent e, String [] command){
ProxiedPlayer sender = (ProxiedPlayer) e.getSender();
BungeeCore.log(sender, e.getMessage());