mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-21 06:41:43 +01:00
hollow-cube/display-name-and-team-fixes (#40)
* Update Player.java * Remove useless team creation packets * Send display names to new players * Oops * Add display name test * Change to act * Do not send display name if they do not have one --------- Co-authored-by: emortaldev <me@emortal.dev>
This commit is contained in:
parent
ef37e40cd8
commit
ab35ab0587
@ -518,7 +518,6 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
super.updateNewViewer(player);
|
||||
player.sendPacket(new LazyPacket(this::getEquipmentsPacket));
|
||||
player.sendPacket(new LazyPacket(this::getPropertiesPacket));
|
||||
if (getTeam() != null) player.sendPacket(getTeam().createTeamsCreationPacket());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -313,8 +313,14 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
this.skin = skinInitEvent.getSkin();
|
||||
// FIXME: when using Geyser, this line remove the skin of the client
|
||||
PacketUtils.broadcastPacket(getAddPlayerToList());
|
||||
|
||||
for (var player : MinecraftServer.getConnectionManager().getOnlinePlayers()) {
|
||||
if (player != this) sendPacket(player.getAddPlayerToList());
|
||||
if (player != this) {
|
||||
sendPacket(player.getAddPlayerToList());
|
||||
if (player.displayName != null) {
|
||||
sendPacket(new PlayerInfoUpdatePacket(PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, player.infoEntry()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Teams
|
||||
@ -1473,13 +1479,6 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
return heldSlot;
|
||||
}
|
||||
|
||||
public void setTeam(Team team) {
|
||||
super.setTeam(team);
|
||||
if (team != null) {
|
||||
PacketUtils.broadcastPacket(team.createTeamsCreationPacket());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the tag below the name.
|
||||
*
|
||||
@ -2031,10 +2030,6 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
if (hasPassenger()) {
|
||||
connection.sendPacket(getPassengersPacket());
|
||||
}
|
||||
// Team
|
||||
if (this.getTeam() != null) {
|
||||
connection.sendPacket(this.getTeam().createTeamsCreationPacket());
|
||||
}
|
||||
connection.sendPacket(new EntityHeadLookPacket(getEntityId(), position.yaw()));
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.minestom.server.entity.player;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.entity.damage.DamageType;
|
||||
import net.minestom.server.message.ChatMessageType;
|
||||
import net.minestom.server.network.packet.client.play.ClientSettingsPacket;
|
||||
@ -169,4 +170,37 @@ public class PlayerIntegrationTest {
|
||||
assertEquals(dimensionNamespace, player.getDeathLocation().dimension());
|
||||
assertEquals(5, player.getDeathLocation().position().x());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void displayNameTest(Env env) {
|
||||
var instance = env.createFlatInstance();
|
||||
var connection = env.createConnection();
|
||||
var tracker = connection.trackIncoming(PlayerInfoUpdatePacket.class);
|
||||
var player = connection.connect(instance, new Pos(0, 42, 0)).join();
|
||||
|
||||
player.setDisplayName(Component.text("Display Name!"));
|
||||
|
||||
var connection2 = env.createConnection();
|
||||
var tracker2 = connection2.trackIncoming(PlayerInfoUpdatePacket.class);
|
||||
connection2.connect(instance, new Pos(0, 42, 0)).join();
|
||||
|
||||
var displayNamePackets = tracker2.collect().stream().filter((packet) ->
|
||||
packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME))
|
||||
.count();
|
||||
assertEquals(1, displayNamePackets);
|
||||
|
||||
var tracker3 = connection2.trackIncoming(PlayerInfoUpdatePacket.class);
|
||||
|
||||
player.setDisplayName(Component.text("Other Name!"));
|
||||
|
||||
var displayNamePackets2 = tracker3.collect().stream().filter((packet) ->
|
||||
packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME))
|
||||
.count();
|
||||
assertEquals(1, displayNamePackets2);
|
||||
|
||||
var displayNamePackets3 = tracker.collect().stream().filter((packet) ->
|
||||
packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME))
|
||||
.count();
|
||||
assertEquals(2, displayNamePackets3);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user