1
0
mirror of https://github.com/luanti-org/luanti.git synced 2026-01-11 19:55:26 +01:00

check for negative width in set_width

This commit is contained in:
OgelGames
2024-04-21 01:17:37 +10:00
parent 8be77302e9
commit 181e6f0177
2 changed files with 13 additions and 3 deletions

View File

@@ -7456,6 +7456,7 @@ An `InvRef` is a reference to an inventory.
* returns `false` on error (e.g. invalid `listname` or `size`)
* `get_width(listname)`: get width of a list
* `set_width(listname, width)`: set width of list; currently used for crafting
* returns `false` on error (e.g. invalid `listname` or `width`)
* `get_stack(listname, i)`: get a copy of stack index `i` in list
* `set_stack(listname, i, stack)`: copy `stack` to index `i` in list
* `get_list(listname)`: returns full list (list of `ItemStack`s)

View File

@@ -151,19 +151,28 @@ int InvRef::l_set_width(lua_State *L)
NO_MAP_LOCK_REQUIRED;
InvRef *ref = checkObject<InvRef>(L, 1);
const char *listname = luaL_checkstring(L, 2);
int newwidth = luaL_checknumber(L, 3);
if (newwidth < 0) {
lua_pushboolean(L, false);
return 1;
}
Inventory *inv = getinv(L, ref);
if(inv == NULL){
return 0;
lua_pushboolean(L, false);
return 1;
}
InventoryList *list = inv->getList(listname);
if(list){
list->setWidth(newwidth);
} else {
return 0;
lua_pushboolean(L, false);
return 1;
}
reportInventoryChange(L, ref);
return 0;
lua_pushboolean(L, true);
return 1;
}
// get_stack(self, listname, i) -> itemstack