Skip to content

Commit 614cb31

Browse files
authored
Merge pull request #589 from pylonmc/human/block-texture-stuff
Fix Block Texture Issues
2 parents 7040646 + d20f09c commit 614cb31

File tree

6 files changed

+20
-17
lines changed

6 files changed

+20
-17
lines changed

nms/src/main/kotlin/io/github/pylonmc/rebar/i18n/packet/PlayerPacketHandler.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,14 @@ class PlayerPacketHandler(private val player: ServerPlayer, private val handler:
5353
private inner class PacketHandler : ChannelDuplexHandler() {
5454
override fun write(ctx: ChannelHandlerContext, packet: Any, promise: ChannelPromise) {
5555
@Suppress("UNCHECKED_CAST")
56-
super.write(ctx, handleOutgoingPacket(packet as Packet<in ClientGamePacketListener>), promise)
56+
val packet = packet as? Packet<in ClientGamePacketListener> ?: return super.write(ctx, packet, promise)
57+
super.write(ctx, handleOutgoingPacket(packet), promise)
5758
}
5859

5960
override fun channelRead(ctx: ChannelHandlerContext, packet: Any) {
6061
@Suppress("UNCHECKED_CAST")
61-
super.channelRead(ctx, handleIncomingPacket(packet as Packet<in ServerGamePacketListener>))
62+
val packet = packet as? Packet<in ServerGamePacketListener> ?: return super.channelRead(ctx, packet)
63+
super.channelRead(ctx, handleIncomingPacket(packet))
6264
}
6365
}
6466

nms/src/main/kotlin/io/github/pylonmc/rebar/nms/NmsAccessorImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ object NmsAccessorImpl : NmsAccessor {
8686
val state = (block as CraftBlock).nms
8787
val map = mutableMapOf<String, String>()
8888
val possibleValues = mutableMapOf<String, Int>()
89-
for (property in state.properties) {
89+
for (property in state.block.stateDefinition.properties) {
9090
@Suppress("UNCHECKED_CAST")
9191
property as Property<Comparable<Any>>
9292
map[property.name] = state.getOptionalValue(property).map(property::getName).orElse("none")
@@ -96,7 +96,7 @@ object NmsAccessorImpl : NmsAccessor {
9696
map[name] = pair.first
9797
possibleValues[name] = pair.second
9898
}
99-
return map.toSortedMap().toSortedMap(compareBy<String> { possibleValues[it] ?: 0 }.reversed())
99+
return map.toSortedMap(compareByDescending<String> { possibleValues[it] ?: 0 }.thenBy { it })
100100
}
101101

102102
override fun handleRecipeBookClick(event: PlayerRecipeBookClickEvent) {

rebar/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ dependencies {
4242
paperLibraryApi("com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:2.22.0")
4343
paperLibraryApi("xyz.xenondevs.invui:invui:2.0.0-beta.1")
4444
paperLibraryApi("xyz.xenondevs.invui:invui-kotlin:2.0.0-beta.1")
45-
implementation("com.github.Tofaa2.EntityLib:spigot:a5184b3bdc")
46-
implementation("com.github.retrooper:packetevents-spigot:2.11.1")
45+
implementation("com.github.Tofaa2.EntityLib:spigot:f0318e298f")
46+
implementation("com.github.retrooper:packetevents-spigot:2.11.2")
4747
implementation("info.debatty:java-string-similarity:2.0.0")
4848
implementation("org.bstats:bstats-bukkit:2.2.1")
4949
paperLibrary("com.github.ben-manes.caffeine:caffeine:3.2.2")

rebar/src/main/kotlin/io/github/pylonmc/rebar/block/RebarBlock.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ open class RebarBlock internal constructor(val block: Block) {
164164
meta.item = SpigotConversionUtil.fromBukkitItemStack(item)
165165
meta.displayType = ItemDisplayMeta.DisplayType.FIXED
166166
meta.brightnessOverride = 15 shl 4 or 15 shl 20;
167-
meta.scale = Vector3f(1.0000175f, 1.0000175f, 1.0000175f)
167+
meta.scale = Vector3f(BlockTextureEntity.BLOCK_OVERLAP_SCALE, BlockTextureEntity.BLOCK_OVERLAP_SCALE, BlockTextureEntity.BLOCK_OVERLAP_SCALE)
168168
meta.width = 0f
169169
meta.height = 0f
170170
}

rebar/src/main/kotlin/io/github/pylonmc/rebar/entity/packet/BlockTextureEntity.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.github.pylonmc.rebar.entity.packet
22

3+
import com.github.retrooper.packetevents.PacketEvents
4+
import com.github.retrooper.packetevents.PacketEventsAPI
35
import com.github.retrooper.packetevents.protocol.entity.data.EntityData
46
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes
57
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes
@@ -42,7 +44,7 @@ open class BlockTextureEntity(
4244
open fun sendPacketToViewer(viewer: UUID, wrapper: PacketWrapper<*>, distanceSquared: Double) {
4345
var packet = wrapper
4446
if (packet is WrapperPlayServerEntityMetadata) {
45-
val scaleIncrease = (min(distanceSquared, 1600.0) * 0.0005 / 20.0).toFloat()
47+
val scaleIncrease = (min(distanceSquared, 1600.0) * SCALE_DISTANCE_INCREASE / 20.0).toFloat()
4648
val metadata = ArrayList(packet.entityMetadata)
4749
var scale = metadata.find { it.index == SCALE_INDEX && it.type == EntityDataTypes.VECTOR3F } ?: return
4850
val index = metadata.indexOf(scale)
@@ -51,12 +53,14 @@ open class BlockTextureEntity(
5153
packet = WrapperPlayServerEntityMetadata(packet.entityId, metadata)
5254
}
5355

54-
val protocolManager = EntityLib.getOptionalApi().orElse(null)?.packetEvents?.protocolManager ?: return
56+
val protocolManager = PacketEvents.getAPI().protocolManager ?: return
5557
val channel = protocolManager.getChannel(viewer) ?: return
5658
protocolManager.sendPacket(channel, packet)
5759
}
5860

59-
protected companion object {
61+
companion object {
6062
const val SCALE_INDEX = 12
63+
const val SCALE_DISTANCE_INCREASE = 0.0005f
64+
const val BLOCK_OVERLAP_SCALE = 1.0004f
6165
}
6266
}

rebar/src/main/kotlin/io/github/pylonmc/rebar/resourcepack/armor/ArmorTextureEngine.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package io.github.pylonmc.rebar.resourcepack.armor
55
import com.github.retrooper.packetevents.event.PacketListener
66
import com.github.retrooper.packetevents.event.PacketReceiveEvent
77
import com.github.retrooper.packetevents.event.PacketSendEvent
8+
import com.github.retrooper.packetevents.protocol.ConnectionState
89
import com.github.retrooper.packetevents.protocol.item.ItemStack
910
import com.github.retrooper.packetevents.protocol.packettype.PacketType
1011
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientCreativeInventoryAction
@@ -32,10 +33,10 @@ object ArmorTextureEngine : PacketListener {
3233
set(value) = this.persistentDataContainer.set(customArmorTexturesKey, PersistentDataType.BOOLEAN, RebarConfig.ArmorTextureConfig.FORCED || value)
3334

3435
override fun onPacketSend(event: PacketSendEvent?) {
35-
if (event == null) return
36+
if (event == null || event.connectionState != ConnectionState.PLAY) return
3637

3738
val player = event.getPlayer<Player>()
38-
if (player == null || !player.hasCustomArmorTextures) return
39+
if (!player.hasCustomArmorTextures) return
3940

4041
when (event.packetType) {
4142
PacketType.Play.Server.SET_SLOT -> handleSetSlot(WrapperPlayServerSetSlot(event))
@@ -47,11 +48,7 @@ object ArmorTextureEngine : PacketListener {
4748
}
4849

4950
override fun onPacketReceive(event: PacketReceiveEvent?) {
50-
if (event == null) return
51-
52-
val player = event.getPlayer<Player>()
53-
if (player == null) return
54-
51+
if (event == null || event.connectionState != ConnectionState.PLAY) return
5552
when (event.packetType) {
5653
PacketType.Play.Client.CREATIVE_INVENTORY_ACTION -> handleCreativeAction(WrapperPlayClientCreativeInventoryAction(event))
5754
else -> {}

0 commit comments

Comments
 (0)