Merge pull request #4 from LogicismDev/master

Scoreboard Fix
This commit is contained in:
Redned 2019-07-22 13:24:34 -05:00 committed by GitHub
commit 13c000ec66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 17 additions and 13 deletions

View file

@ -58,8 +58,6 @@ public class UpstreamPacketHandler implements BedrockPacketHandler {
return true; return true;
} }
session.getUpstream().setPacketCodec(GeyserConnector.BEDROCK_PACKET_CODEC);
try { try {
JSONObject chainData = (JSONObject) JSONValue.parse(loginPacket.getChainData().array()); JSONObject chainData = (JSONObject) JSONValue.parse(loginPacket.getChainData().array());
JSONArray chainArray = (JSONArray) chainData.get("chain"); JSONArray chainArray = (JSONArray) chainData.get("chain");
@ -82,6 +80,7 @@ public class UpstreamPacketHandler implements BedrockPacketHandler {
ResourcePacksInfoPacket resourcePacksInfo = new ResourcePacksInfoPacket(); ResourcePacksInfoPacket resourcePacksInfo = new ResourcePacksInfoPacket();
session.getUpstream().sendPacketImmediately(resourcePacksInfo); session.getUpstream().sendPacketImmediately(resourcePacksInfo);
return true; return true;
} }

View file

@ -25,6 +25,7 @@
package org.geysermc.connector.network.session; package org.geysermc.connector.network.session;
import com.github.steveice10.mc.auth.exception.request.RequestException;
import com.github.steveice10.mc.protocol.MinecraftProtocol; import com.github.steveice10.mc.protocol.MinecraftProtocol;
import com.github.steveice10.packetlib.Client; import com.github.steveice10.packetlib.Client;
import com.github.steveice10.packetlib.event.session.ConnectedEvent; import com.github.steveice10.packetlib.event.session.ConnectedEvent;

View file

@ -29,6 +29,7 @@ import com.flowpowered.math.vector.Vector2f;
import com.flowpowered.math.vector.Vector3f; import com.flowpowered.math.vector.Vector3f;
import com.flowpowered.math.vector.Vector3i; import com.flowpowered.math.vector.Vector3i;
import com.github.steveice10.mc.protocol.data.game.scoreboard.ObjectiveAction; import com.github.steveice10.mc.protocol.data.game.scoreboard.ObjectiveAction;
import com.github.steveice10.mc.protocol.data.message.ChatFormat;
import com.github.steveice10.mc.protocol.data.message.TranslationMessage; import com.github.steveice10.mc.protocol.data.message.TranslationMessage;
import com.github.steveice10.mc.protocol.packet.ingame.server.ServerChatPacket; import com.github.steveice10.mc.protocol.packet.ingame.server.ServerChatPacket;
import com.github.steveice10.mc.protocol.packet.ingame.server.ServerJoinGamePacket; import com.github.steveice10.mc.protocol.packet.ingame.server.ServerJoinGamePacket;
@ -311,7 +312,7 @@ public class TranslatorsInit {
objective.setDisplaySlot(ScoreboardObjective.DisplaySlot.SIDEBAR); objective.setDisplaySlot(ScoreboardObjective.DisplaySlot.SIDEBAR);
objective.setDisplayName(packet.getDisplayName().getFullText()); objective.setDisplayName(packet.getDisplayName().getFullText());
} else { } else {
scoreboard.unregisterObjective(packet.getDisplayName().getFullText()); scoreboard.unregisterObjective(packet.getName());
} }
scoreboard.onUpdate(); scoreboard.onUpdate();
@ -336,10 +337,10 @@ public class TranslatorsInit {
System.out.println(packet.getEntry() + " <-> objective = " + packet.getObjective() + " val " + packet.getValue()); System.out.println(packet.getEntry() + " <-> objective = " + packet.getObjective() + " val " + packet.getValue());
switch (packet.getAction()) { switch (packet.getAction()) {
case REMOVE: case REMOVE:
objective.registerScore(packet.getObjective(), packet.getEntry(), packet.getValue(), SetScorePacket.Action.REMOVE); objective.registerScore(packet.getEntry(), packet.getEntry(), packet.getValue(), SetScorePacket.Action.REMOVE);
break; break;
case ADD_OR_UPDATE: case ADD_OR_UPDATE:
objective.registerScore(packet.getObjective(), packet.getEntry(), packet.getValue(), SetScorePacket.Action.SET); objective.registerScore(packet.getEntry(), packet.getEntry(), packet.getValue(), SetScorePacket.Action.SET);
break; break;
} }

View file

@ -30,6 +30,7 @@ import com.nukkitx.protocol.bedrock.packet.RemoveObjectivePacket;
import com.nukkitx.protocol.bedrock.packet.SetDisplayObjectivePacket; import com.nukkitx.protocol.bedrock.packet.SetDisplayObjectivePacket;
import com.nukkitx.protocol.bedrock.packet.SetScorePacket; import com.nukkitx.protocol.bedrock.packet.SetScorePacket;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.session.GeyserSession;
import java.util.Arrays; import java.util.Arrays;
@ -47,7 +48,10 @@ public class Scoreboard {
private GeyserSession session; private GeyserSession session;
@Getter
@Setter
private long id; private long id;
private Map<String, ScoreboardObjective> objectiveMap = new HashMap<String, ScoreboardObjective>(); private Map<String, ScoreboardObjective> objectiveMap = new HashMap<String, ScoreboardObjective>();
public Scoreboard(GeyserSession session) { public Scoreboard(GeyserSession session) {
@ -101,7 +105,7 @@ public class Scoreboard {
displayObjectivePacket.setObjectiveId(objective.getObjectiveName()); displayObjectivePacket.setObjectiveId(objective.getObjectiveName());
displayObjectivePacket.setDisplayName(objective.getDisplayName()); displayObjectivePacket.setDisplayName(objective.getDisplayName());
displayObjectivePacket.setCriteria("dummy"); displayObjectivePacket.setCriteria("dummy");
displayObjectivePacket.setDisplaySlot(ScoreboardObjective.DisplaySlot.SIDEBAR.name()); displayObjectivePacket.setDisplaySlot("sidebar");
displayObjectivePacket.setSortOrder(1); displayObjectivePacket.setSortOrder(1);
session.getUpstream().sendPacket(displayObjectivePacket); session.getUpstream().sendPacket(displayObjectivePacket);
@ -110,7 +114,8 @@ public class Scoreboard {
fakeMap.put(entry.getKey(), entry.getValue()); fakeMap.put(entry.getKey(), entry.getValue());
} }
for (Score score : fakeMap.values()) { for (String string : fakeMap.keySet()) {
Score score = fakeMap.get(string);
ScoreInfo scoreInfo = new ScoreInfo(score.getScoreboardId(), objective.getObjectiveName(), score.getScore(), score.getFakeId()); ScoreInfo scoreInfo = new ScoreInfo(score.getScoreboardId(), objective.getObjectiveName(), score.getScore(), score.getFakeId());
SetScorePacket setScorePacket = new SetScorePacket(); SetScorePacket setScorePacket = new SetScorePacket();

View file

@ -84,16 +84,11 @@ public class ScoreboardObjective {
public void setScoreText(String id, String text) { public void setScoreText(String id, String text) {
if (scores.containsKey(id)) { if (scores.containsKey(id)) {
Score oldScore = scores.get(id);
oldScore.setAction(SetScorePacket.Action.REMOVE);
oldScore.setFakeId(id + "_old_changed");
Score newScore = new Score(this, text); Score newScore = new Score(this, text);
newScore.setScore(oldScore.getScore()); newScore.setScore(scores.get(id).getScore());
newScore.setFakeId(id); newScore.setFakeId(id);
scores.remove(id); scores.remove(id);
scores.put(id, newScore); scores.put(id, newScore);
scores.put(id + "_old_changed", oldScore);
} }
} }

View file

@ -20,6 +20,9 @@ remote:
# The port of the remote (Java Edition) server # The port of the remote (Java Edition) server
port: 25565 port: 25565
online-mode: false online-mode: false
#Online Mode Credentials -Logicism
email: email@email.address
password: password
# Relay the MOTD, player count and max players from the remote server # Relay the MOTD, player count and max players from the remote server
ping-passthrough: false ping-passthrough: false