Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2f67fb2
Try to update Milo for 1.19
Kan18 Dec 24, 2022
f231173
oops, forgot to update itemDB
Kan18 Dec 28, 2022
13aa463
hopefully this works 9removed damage values)
Kan18 Dec 29, 2022
bf8f9c5
Revert "hopefully this works 9removed damage values)"
Kan18 Dec 29, 2022
36abdd5
second try
Kan18 Dec 29, 2022
693abd4
FIX THE WEIRD NBT ITEM ISSUES WITH THIS ONE WEIRD TRICK
Kan18 Mar 17, 2023
fceb99a
speed up imports by 100x
Kan18 Apr 16, 2023
2e81cdf
Update itemDB.lua
Kan18 May 26, 2023
6247784
Update miniAdapter.lua
Kan18 Jul 4, 2023
761f388
Attempt to fix remote
iuzx0 Jan 6, 2023
34dab3c
Attempt to fix milo remote
iuzx0 Jan 6, 2023
e683e83
fixing remote
iuzx0 Jan 6, 2023
0bbe3a1
Hopefully final fixes for remote
iuzx0 Jan 7, 2023
f73da8a
Updated recipes for 1.19.3
iuzx0 Jan 8, 2023
9f8f560
Update minecraft.db
iuzx0 Jan 8, 2023
4fe0035
Fixed item names
iuzx0 Jan 8, 2023
0db0e58
Update minecraft.db
iuzx0 Jan 8, 2023
1ae380d
Fixed some corrupted recipes
iuzx0 Jan 26, 2023
4321f33
Replace getItemMeta with getItemDetail
MarcelDev Mar 25, 2023
43e662e
Revert "Merge pull request #1 from MarcelskyXD/develop-1.8"
iuzx0 Mar 25, 2023
488576e
Revert "Revert "Merge pull request #1 from MarcelskyXD/develop-1.8""
iuzx0 Mar 25, 2023
aef1bfa
Remote fix
iuzx0 Mar 25, 2023
a9202a7
Fixed auto-feeder
iuzx0 Mar 26, 2023
f22cad1
Update recipeBook.db
iuzx0 Apr 17, 2023
c990465
Merge most of iuzx's changes into develop-1.8
Kan18 Jul 7, 2023
c0ffb90
fix craft
Kan18 Sep 16, 2023
1ee2751
fix potion
Kan18 Sep 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 20 additions & 57 deletions core/apis/itemDB.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,19 @@ end

function itemDB:makeKey(item)
if not item then error('itemDB:makeKey: item is required', 2) end
return table.concat({ item.name, item.damage or '*', item.nbtHash }, ':')
return table.concat({ item.name, item.nbt }, ':')
end

function itemDB:splitKey(key, item)
item = item or { }

local t = Util.split(key, '(.-):')
if #t[#t] > 8 then
item.nbtHash = table.remove(t)
end
local damage = table.remove(t)
if damage ~= '*' then
item.damage = tonumber(damage)

if t[3] then
item.nbt = t[3]
t[3] = nil
end

item.name = table.concat(t, ':')

return item
Expand Down Expand Up @@ -82,36 +81,20 @@ function itemDB:_get(key)
return item
end

-- try finding an item that has damage values
if type(key.damage) == 'number' then
item = TableDB.get(self, self:makeKey({ name = key.name, nbtHash = key.nbtHash }))
if item and item.maxDamage then
for k,item in pairs(self.data) do
if key.name == item.name and
key.nbt == item.nbt then
item = Util.shallowCopy(item)
item.damage = key.damage
if item.maxDamage > 0 and type(item.damage) == 'number' and item.damage > 0 then
item.displayName = string.format('%s (damage: %s)', item.displayName, item.damage)
end
return item
end
else
for k,item in pairs(self.data) do
if key.name == item.name and
key.nbtHash == key.nbtHash and
item.maxDamage > 0 then
item = Util.shallowCopy(item)
item.nbtHash = key.nbtHash
return item
end
end
end

if key.nbtHash then
item = self:get({ name = key.name, damage = key.damage })
if key.nbt then
item = self:get({ name = key.name })

if item and item.ignoreNBT then
item = Util.shallowCopy(item)
item.nbtHash = key.nbtHash
item.damage = key.damage
item.nbt = key.nbt
return item
end
end
Expand All @@ -134,16 +117,14 @@ end
function itemDB:add(baseItem)
local nItem = {
name = baseItem.name,
damage = baseItem.damage,
nbtHash = baseItem.nbtHash,
nbt = baseItem.nbt,
}
-- if detail.maxDamage > 0 then
-- nItem.damage = '*'
-- end

nItem.displayName = safeString(baseItem.displayName)
nItem.maxCount = baseItem.maxCount
nItem.maxDamage = baseItem.maxDamage

-- enchanted items
if baseItem.enchantments then
Expand All @@ -156,7 +137,7 @@ function itemDB:add(baseItem)
if k > 1 then
nItem.displayName = nItem.displayName .. ', '
end
nItem.displayName = nItem.displayName .. v.fullName
nItem.displayName = nItem.displayName .. v.displayName
end

-- turtles / computers / etc
Expand Down Expand Up @@ -192,18 +173,8 @@ function itemDB:add(baseItem)
if nItem.name == item.name and
nItem.displayName == item.displayName then

if nItem.nbtHash ~= item.nbtHash and nItem.damage ~= item.damage then
nItem.damage = '*'
nItem.nbtHash = nil
nItem.ignoreNBT = true
self.data[k] = nil
break
elseif nItem.damage ~= item.damage then
nItem.damage = '*'
self.data[k] = nil
break
elseif nItem.nbtHash ~= item.nbtHash then
nItem.nbtHash = nil
if nItem.nbt ~= item.nbt then
nItem.nbt = nil
nItem.ignoreNBT = true
self.data[k] = nil
break
Expand All @@ -214,8 +185,7 @@ function itemDB:add(baseItem)

TableDB.add(self, self:makeKey(nItem), nItem)
nItem = Util.shallowCopy(nItem)
nItem.damage = baseItem.damage
nItem.nbtHash = baseItem.nbtHash
nItem.nbt = baseItem.nbt

return nItem
end
Expand All @@ -234,8 +204,8 @@ function itemDB:getName(item)
-- fallback to nameDB
local strId = self:makeKey(item)
local name = nameDB.data[strId]
if not name and not item.damage then
name = nameDB.data[self:makeKey({ name = item.name, damage = 0, nbtHash = item.nbtHash })]
if not name then
name = nameDB.data[self:makeKey({ name = item.name, nbt = item.nbt })]
end
return name or strId
end
Expand All @@ -250,24 +220,17 @@ function itemDB:load()

for key,item in pairs(self.data) do
self:splitKey(key, item)
item.maxDamage = item.maxDamage or 0
item.maxCount = item.maxCount or 64
end
end

function itemDB:flush()
if self.dirty then

local t = { }
for k,v in pairs(self.data) do
v = Util.shallowCopy(v)
v.name = nil
v.damage = nil
v.nbtHash = nil
v.count = nil -- wipe out previously saved counts - temporary
if v.maxDamage == 0 then
v.maxDamage = nil
end
v.nbt = nil
if v.maxCount == 64 then
v.maxCount = nil
end
Expand Down
10 changes: 3 additions & 7 deletions core/apis/nameDB.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,10 @@ function nameDB:loadDirectory(directory)
error('Unable to read ' .. fs.combine(directory, file))
end

for strId, block in pairs(blocks) do
for strId, blockName in pairs(blocks) do
strId = string.format('%s:%s', mod, strId)
if type(block.name) == 'string' then
self.data[strId .. ':0'] = block.name
else
for nid,name in pairs(block.name) do
self.data[strId .. ':' .. (nid-1)] = name
end
if type(blockName) == 'string' then
self.data[strId] = blockName
end
end

Expand Down
Loading