mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Add protection for out-of-bounds inventory management
This commit is contained in:
parent
ad4196f5a0
commit
ffae69471d
1 changed files with 9 additions and 0 deletions
|
@ -30,6 +30,7 @@ import com.nukkitx.math.vector.Vector3i;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.geysermc.connector.GeyserConnector;
|
||||||
import org.geysermc.connector.network.session.GeyserSession;
|
import org.geysermc.connector.network.session.GeyserSession;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -86,10 +87,18 @@ public class Inventory {
|
||||||
}
|
}
|
||||||
|
|
||||||
public GeyserItemStack getItem(int slot) {
|
public GeyserItemStack getItem(int slot) {
|
||||||
|
if (slot > this.size) {
|
||||||
|
GeyserConnector.getInstance().getLogger().debug("Tried to get an item out of bounds! " + this.toString());
|
||||||
|
return GeyserItemStack.EMPTY;
|
||||||
|
}
|
||||||
return items[slot];
|
return items[slot];
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setItem(int slot, @NonNull GeyserItemStack newItem, GeyserSession session) {
|
public void setItem(int slot, @NonNull GeyserItemStack newItem, GeyserSession session) {
|
||||||
|
if (slot > this.size) {
|
||||||
|
session.getConnector().getLogger().debug("Tried to set an item out of bounds! " + this.toString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
GeyserItemStack oldItem = items[slot];
|
GeyserItemStack oldItem = items[slot];
|
||||||
updateItemNetId(oldItem, newItem, session);
|
updateItemNetId(oldItem, newItem, session);
|
||||||
items[slot] = newItem;
|
items[slot] = newItem;
|
||||||
|
|
Loading…
Reference in a new issue