Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-26 00:00:41 +01:00
Check if objective is null and made scoreboard errors player-specific
Dieser Commit ist enthalten in:
Ursprung
b3e57fd465
Commit
faf663d3cd
@ -178,7 +178,7 @@ public final class Scoreboard {
|
||||
Team team = teams.get(teamName);
|
||||
if (team != null) {
|
||||
if (SHOW_SCOREBOARD_LOGS) {
|
||||
logger.info(GeyserLocale.getLocaleStringLog("geyser.network.translator.team.failed_overrides", teamName));
|
||||
logger.info("Ignoring team %s for %s. It overrides without removing old team.".formatted(teamName, session.javaUsername()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
package org.geysermc.geyser.translator.protocol.java.scoreboard;
|
||||
|
||||
import org.geysermc.geyser.GeyserImpl;
|
||||
import org.geysermc.geyser.GeyserLogger;
|
||||
import org.geysermc.geyser.scoreboard.Objective;
|
||||
import org.geysermc.geyser.scoreboard.Scoreboard;
|
||||
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
||||
@ -36,6 +38,10 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.scoreboard.
|
||||
|
||||
@Translator(packet = ClientboundResetScorePacket.class)
|
||||
public class JavaResetScorePacket extends PacketTranslator<ClientboundResetScorePacket> {
|
||||
private static final boolean SHOW_SCOREBOARD_LOGS = Boolean.parseBoolean(System.getProperty("Geyser.ShowScoreboardLogs", "true"));
|
||||
|
||||
private final GeyserLogger logger = GeyserImpl.getInstance().getLogger();
|
||||
|
||||
@Override
|
||||
public void translate(GeyserSession session, ClientboundResetScorePacket packet) {
|
||||
WorldCache worldCache = session.getWorldCache();
|
||||
@ -47,6 +53,14 @@ public class JavaResetScorePacket extends PacketTranslator<ClientboundResetScore
|
||||
scoreboard.resetPlayerScores(packet.getOwner());
|
||||
} else {
|
||||
Objective objective = scoreboard.getObjective(packet.getObjective());
|
||||
if (objective == null) {
|
||||
if (SHOW_SCOREBOARD_LOGS) {
|
||||
logger.info(String.format(
|
||||
"Tried to reset score %s for %s without the existence of its requested objective %s",
|
||||
packet.getOwner(), session.javaUsername(), packet.getObjective()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
objective.removeScore(packet.getOwner());
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,6 @@ import org.geysermc.geyser.scoreboard.Scoreboard;
|
||||
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
||||
import org.geysermc.geyser.session.GeyserSession;
|
||||
import org.geysermc.geyser.session.cache.WorldCache;
|
||||
import org.geysermc.geyser.text.GeyserLocale;
|
||||
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
||||
import org.geysermc.geyser.translator.protocol.Translator;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.scoreboard.ClientboundSetScorePacket;
|
||||
@ -41,11 +40,7 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.scoreboard.
|
||||
public class JavaSetScoreTranslator extends PacketTranslator<ClientboundSetScorePacket> {
|
||||
private static final boolean SHOW_SCOREBOARD_LOGS = Boolean.parseBoolean(System.getProperty("Geyser.ShowScoreboardLogs", "true"));
|
||||
|
||||
private final GeyserLogger logger;
|
||||
|
||||
public JavaSetScoreTranslator() {
|
||||
logger = GeyserImpl.getInstance().getLogger();
|
||||
}
|
||||
private final GeyserLogger logger = GeyserImpl.getInstance().getLogger();
|
||||
|
||||
@Override
|
||||
public void translate(GeyserSession session, ClientboundSetScorePacket packet) {
|
||||
@ -56,7 +51,9 @@ public class JavaSetScoreTranslator extends PacketTranslator<ClientboundSetScore
|
||||
Objective objective = scoreboard.getObjective(packet.getObjective());
|
||||
if (objective == null) {
|
||||
if (SHOW_SCOREBOARD_LOGS) {
|
||||
logger.info(GeyserLocale.getLocaleStringLog("geyser.network.translator.score.failed_objective", packet.getObjective()));
|
||||
logger.info(String.format(
|
||||
"Tried to update score %s for %s without the existence of its requested objective %s",
|
||||
packet.getOwner(), session.javaUsername(), packet.getObjective()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren