Fix sending empty inventories on logout for versions above 1.11
(Fixes #1039)
This commit is contained in:
parent
f19837bea4
commit
f4b999217c
10
pom.xml
10
pom.xml
@ -563,7 +563,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.comphenix.protocol</groupId>
|
<groupId>com.comphenix.protocol</groupId>
|
||||||
<artifactId>ProtocolLib-API</artifactId>
|
<artifactId>ProtocolLib-API</artifactId>
|
||||||
<version>4.1.0-SNAPSHOT</version>
|
<version>4.2.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
@ -906,10 +906,10 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<groupId>org.yaml</groupId>
|
<groupId>org.yaml</groupId>
|
||||||
<artifactId>snakeyaml</artifactId>
|
<artifactId>snakeyaml</artifactId>
|
||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@ -22,13 +22,18 @@ import com.comphenix.protocol.ProtocolManager;
|
|||||||
import com.comphenix.protocol.events.PacketAdapter;
|
import com.comphenix.protocol.events.PacketAdapter;
|
||||||
import com.comphenix.protocol.events.PacketContainer;
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
import com.comphenix.protocol.events.PacketEvent;
|
import com.comphenix.protocol.events.PacketEvent;
|
||||||
|
import com.comphenix.protocol.reflect.StructureModifier;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.data.auth.PlayerCache;
|
import fr.xephi.authme.data.auth.PlayerCache;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
class InventoryPacketAdapter extends PacketAdapter {
|
class InventoryPacketAdapter extends PacketAdapter {
|
||||||
@ -72,7 +77,16 @@ class InventoryPacketAdapter extends PacketAdapter {
|
|||||||
|
|
||||||
ItemStack[] blankInventory = new ItemStack[inventorySize];
|
ItemStack[] blankInventory = new ItemStack[inventorySize];
|
||||||
Arrays.fill(blankInventory, new ItemStack(Material.AIR));
|
Arrays.fill(blankInventory, new ItemStack(Material.AIR));
|
||||||
inventoryPacket.getItemArrayModifier().write(0, blankInventory);
|
|
||||||
|
//old minecraft versions
|
||||||
|
StructureModifier<ItemStack[]> itemArrayModifier = inventoryPacket.getItemArrayModifier();
|
||||||
|
if (itemArrayModifier.size() > 0) {
|
||||||
|
itemArrayModifier.write(0, blankInventory);
|
||||||
|
} else {
|
||||||
|
//minecraft versions above 1.11
|
||||||
|
StructureModifier<List<ItemStack>> itemListModifier = inventoryPacket.getItemListModifier();
|
||||||
|
itemListModifier.write(0, Arrays.asList(blankInventory));
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
protocolManager.sendServerPacket(player, inventoryPacket, false);
|
protocolManager.sendServerPacket(player, inventoryPacket, false);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user