From ecb1e283ecb962e802122a439a56f0777f74f945 Mon Sep 17 00:00:00 2001 From: Giov4 Date: Mon, 21 Dec 2020 15:24:50 +0100 Subject: [PATCH] Fixed the treasures id generation system not always working --- _chest_handler/treasures.lua | 14 ++++++++++++++ commands.lua | 6 ++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/_chest_handler/treasures.lua b/_chest_handler/treasures.lua index 6fa3ffd..19b839a 100644 --- a/_chest_handler/treasures.lua +++ b/_chest_handler/treasures.lua @@ -3,6 +3,20 @@ local mod = "skywars" local function treasure_to_itemstack() end +function skywars.generate_treasure_id(arena) + local max_id = 1 + + for i = 1, #arena.treasures do + if arena.treasures[i].id > max_id then + max_id = arena.treasures[i].id + end + end + + return max_id+1 +end + + + function skywars.reorder_treasures(arena) -- Sorting the table from the rarest to the least rare treasure. for j = #arena.treasures, 2, -1 do diff --git a/commands.lua b/commands.lua index a0ada0b..c719c8f 100644 --- a/commands.lua +++ b/commands.lua @@ -121,8 +121,7 @@ ChatCmdBuilder.new("skywars", function(cmd) return end - local item_id = 1 - if arena.treasures[#arena.treasures] then item_id = arena.treasures[#arena.treasures].id+1 end + local item_id = skywars.generate_treasure_id(arena) local treasure = { name = treasure_name, rarity = rarity, @@ -153,8 +152,7 @@ ChatCmdBuilder.new("skywars", function(cmd) return end - local item_id = 1 - if arena.treasures[#arena.treasures] then item_id = arena.treasures[#arena.treasures].id+1 end + local item_id = skywars.generate_treasure_id(arena) treasure = { name = wielded_itemstack.name, rarity = rarity,