Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-26 16:12:46 +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);
|
Team team = teams.get(teamName);
|
||||||
if (team != null) {
|
if (team != null) {
|
||||||
if (SHOW_SCOREBOARD_LOGS) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
package org.geysermc.geyser.translator.protocol.java.scoreboard;
|
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.Objective;
|
||||||
import org.geysermc.geyser.scoreboard.Scoreboard;
|
import org.geysermc.geyser.scoreboard.Scoreboard;
|
||||||
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
||||||
@ -36,6 +38,10 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.scoreboard.
|
|||||||
|
|
||||||
@Translator(packet = ClientboundResetScorePacket.class)
|
@Translator(packet = ClientboundResetScorePacket.class)
|
||||||
public class JavaResetScorePacket extends PacketTranslator<ClientboundResetScorePacket> {
|
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
|
@Override
|
||||||
public void translate(GeyserSession session, ClientboundResetScorePacket packet) {
|
public void translate(GeyserSession session, ClientboundResetScorePacket packet) {
|
||||||
WorldCache worldCache = session.getWorldCache();
|
WorldCache worldCache = session.getWorldCache();
|
||||||
@ -47,6 +53,14 @@ public class JavaResetScorePacket extends PacketTranslator<ClientboundResetScore
|
|||||||
scoreboard.resetPlayerScores(packet.getOwner());
|
scoreboard.resetPlayerScores(packet.getOwner());
|
||||||
} else {
|
} else {
|
||||||
Objective objective = scoreboard.getObjective(packet.getObjective());
|
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());
|
objective.removeScore(packet.getOwner());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ import org.geysermc.geyser.scoreboard.Scoreboard;
|
|||||||
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
import org.geysermc.geyser.scoreboard.ScoreboardUpdater;
|
||||||
import org.geysermc.geyser.session.GeyserSession;
|
import org.geysermc.geyser.session.GeyserSession;
|
||||||
import org.geysermc.geyser.session.cache.WorldCache;
|
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.PacketTranslator;
|
||||||
import org.geysermc.geyser.translator.protocol.Translator;
|
import org.geysermc.geyser.translator.protocol.Translator;
|
||||||
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.scoreboard.ClientboundSetScorePacket;
|
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> {
|
public class JavaSetScoreTranslator extends PacketTranslator<ClientboundSetScorePacket> {
|
||||||
private static final boolean SHOW_SCOREBOARD_LOGS = Boolean.parseBoolean(System.getProperty("Geyser.ShowScoreboardLogs", "true"));
|
private static final boolean SHOW_SCOREBOARD_LOGS = Boolean.parseBoolean(System.getProperty("Geyser.ShowScoreboardLogs", "true"));
|
||||||
|
|
||||||
private final GeyserLogger logger;
|
private final GeyserLogger logger = GeyserImpl.getInstance().getLogger();
|
||||||
|
|
||||||
public JavaSetScoreTranslator() {
|
|
||||||
logger = GeyserImpl.getInstance().getLogger();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void translate(GeyserSession session, ClientboundSetScorePacket packet) {
|
public void translate(GeyserSession session, ClientboundSetScorePacket packet) {
|
||||||
@ -56,7 +51,9 @@ public class JavaSetScoreTranslator extends PacketTranslator<ClientboundSetScore
|
|||||||
Objective objective = scoreboard.getObjective(packet.getObjective());
|
Objective objective = scoreboard.getObjective(packet.getObjective());
|
||||||
if (objective == null) {
|
if (objective == null) {
|
||||||
if (SHOW_SCOREBOARD_LOGS) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren