Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-26 16:12:46 +01:00
Add protection for out-of-bounds inventory management
Dieser Commit ist enthalten in:
Ursprung
ad4196f5a0
Commit
ffae69471d
@ -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;
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren