|
18 | 18 | package com.viaversion.viaversion.bukkit.providers; |
19 | 19 |
|
20 | 20 | import com.viaversion.viaversion.ViaVersionPlugin; |
| 21 | +import com.viaversion.viaversion.api.Via; |
21 | 22 | import com.viaversion.viaversion.api.connection.UserConnection; |
22 | 23 | import com.viaversion.viaversion.api.minecraft.BlockPosition; |
| 24 | +import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; |
23 | 25 | import com.viaversion.viaversion.bukkit.platform.PaperViaInjector; |
24 | 26 | import com.viaversion.viaversion.bukkit.util.LegacyBlockToItem; |
25 | 27 | import com.viaversion.viaversion.protocols.v1_21_2to1_21_4.provider.PickItemProvider; |
@@ -187,14 +189,25 @@ static BlockToItem build() { |
187 | 189 | } |
188 | 190 | return item; |
189 | 191 | }; |
| 192 | + } |
| 193 | + |
| 194 | + final ProtocolVersion version = Via.getAPI().getServerVersion().lowestSupportedProtocolVersion(); |
| 195 | + if (version.equalTo(ProtocolVersion.v1_8)) { |
| 196 | + final LegacyBlockToItem legacy = LegacyBlockToItem.getInstance(); |
| 197 | + return legacy != null ? (block, includeData) -> legacy.blockToItem(block) : (b, i) -> null; |
190 | 198 | } else if (PaperViaInjector.hasMethod(Material.class, "isItem")) { |
191 | | - return (block, includeData) -> new ItemStack(block.getType(), 1); |
| 199 | + return (block, includeData) -> { |
| 200 | + if (!block.getType().isItem()) { |
| 201 | + return null; |
| 202 | + } |
| 203 | + return version.newerThanOrEqualTo(ProtocolVersion.v1_13) |
| 204 | + ? new ItemStack(block.getType()) |
| 205 | + : new ItemStack(block.getType(), 1, (short) 0, block.getData()); |
| 206 | + }; |
192 | 207 | } else { |
193 | | - LegacyBlockToItem legacy = LegacyBlockToItem.getInstance(); |
194 | | - return legacy != null ? (block, includeData) -> legacy.blockToItem(block) : (b, i) -> null; |
| 208 | + return (block, includeData) -> null; |
195 | 209 | } |
196 | 210 | } |
197 | | - |
198 | 211 | } |
199 | 212 |
|
200 | 213 | @FunctionalInterface |
|
0 commit comments