Compare commits
No commits in common. "11b0f680bc1dddb0f1730476dd49637eae1b68f9" and "ab2ffcbd379b88946c7ba3b37c39fefccc4ee247" have entirely different histories.
11b0f680bc
...
ab2ffcbd37
1 changed files with 8 additions and 54 deletions
|
@ -2,17 +2,14 @@ package xyz.ineanto.nicko.packet;
|
||||||
|
|
||||||
import com.destroystokyo.paper.profile.PlayerProfile;
|
import com.destroystokyo.paper.profile.PlayerProfile;
|
||||||
import com.github.retrooper.packetevents.PacketEvents;
|
import com.github.retrooper.packetevents.PacketEvents;
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
|
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
|
||||||
import com.github.retrooper.packetevents.protocol.player.TextureProperty;
|
|
||||||
import com.github.retrooper.packetevents.protocol.player.UserProfile;
|
|
||||||
import com.github.retrooper.packetevents.protocol.world.Difficulty;
|
import com.github.retrooper.packetevents.protocol.world.Difficulty;
|
||||||
import com.github.retrooper.packetevents.util.Vector3d;
|
import com.github.retrooper.packetevents.util.Vector3d;
|
||||||
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
import com.github.retrooper.packetevents.wrapper.play.server.*;
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerDestroyEntities;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerRespawn;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||||
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -24,8 +21,6 @@ import xyz.ineanto.nicko.mojang.MojangSkin;
|
||||||
import xyz.ineanto.nicko.profile.NickoProfile;
|
import xyz.ineanto.nicko.profile.NickoProfile;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
@ -101,11 +96,8 @@ public class PacketEventsPacketSender implements PacketSender {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendEntityMetadataUpdate() {
|
public void sendEntityMetadataUpdate() {
|
||||||
// This was surprisingly easy to write?
|
// TODO (Ineanto, 27/06/2025): Entity Metadata packet
|
||||||
final EntityData<Byte> entityData = new EntityData<>(17, EntityDataTypes.BYTE, (byte) 0x7f);
|
//sendPacket(data, player);
|
||||||
final WrapperPlayServerEntityMetadata metadata = new WrapperPlayServerEntityMetadata(player.getEntityId(), List.of(entityData));
|
|
||||||
|
|
||||||
sendPacket(metadata, player);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -132,52 +124,14 @@ public class PacketEventsPacketSender implements PacketSender {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendTabListUpdate(String displayName) {
|
public void sendTabListUpdate(String displayName) {
|
||||||
final EnumSet<WrapperPlayServerPlayerInfoUpdate.Action> actions = EnumSet.of(
|
// TODO (Ineanto, 27/06/2025): TabList packet
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.ADD_PLAYER,
|
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.INITIALIZE_CHAT,
|
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.UPDATE_LISTED,
|
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.UPDATE_DISPLAY_NAME,
|
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.UPDATE_GAME_MODE,
|
|
||||||
WrapperPlayServerPlayerInfoUpdate.Action.UPDATE_LATENCY
|
|
||||||
);
|
|
||||||
|
|
||||||
final List<WrapperPlayServerPlayerInfoUpdate.PlayerInfo> entries = List.of(
|
|
||||||
new WrapperPlayServerPlayerInfoUpdate.PlayerInfo(
|
|
||||||
toUserProfile(player.getPlayerProfile()),
|
|
||||||
true,
|
|
||||||
player.getPing(),
|
|
||||||
SpigotConversionUtil.fromBukkitGameMode(player.getGameMode()),
|
|
||||||
Component.text(displayName),
|
|
||||||
null, // Welcome back fucked chat encryption
|
|
||||||
player.getPlayerListOrder(),
|
|
||||||
true
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
final WrapperPlayServerPlayerInfoRemove remove = new WrapperPlayServerPlayerInfoRemove(player.getUniqueId());
|
|
||||||
final WrapperPlayServerPlayerInfoUpdate update = new WrapperPlayServerPlayerInfoUpdate(actions, entries);
|
|
||||||
|
|
||||||
Bukkit.getOnlinePlayers().forEach(onlinePlayer -> {
|
Bukkit.getOnlinePlayers().forEach(onlinePlayer -> {
|
||||||
sendPacket(remove, onlinePlayer);
|
//sendPacket(remove, onlinePlayer);
|
||||||
sendPacket(update, onlinePlayer);
|
//sendPacket(update, onlinePlayer);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserProfile toUserProfile(PlayerProfile playerProfile) {
|
|
||||||
return new UserProfile(
|
|
||||||
playerProfile.getId(),
|
|
||||||
playerProfile.getName(),
|
|
||||||
playerProfile.getProperties()
|
|
||||||
.stream()
|
|
||||||
.map(profileProperty -> new TextureProperty(
|
|
||||||
profileProperty.getName(),
|
|
||||||
profileProperty.getValue(),
|
|
||||||
profileProperty.getSignature()
|
|
||||||
))
|
|
||||||
.toList()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendPacket(PacketWrapper<?> packet, Player player) {
|
private void sendPacket(PacketWrapper<?> packet, Player player) {
|
||||||
PacketEvents.getAPI().getPlayerManager().sendPacket(player, packet);
|
PacketEvents.getAPI().getPlayerManager().sendPacket(player, packet);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue