Minecraft Wiki
(Update)
k (fx lapislazuli-erts)
Regel 363: Regel 363:
 
'Prismarienblokstenen', 'Donkerprismarien' } },
 
'Prismarienblokstenen', 'Donkerprismarien' } },
 
['erts'] = { vorm = 'verbogen', lijst = { 'Steenkoolerts', 'IJzererts', 'Gouderts',
 
['erts'] = { vorm = 'verbogen', lijst = { 'Steenkoolerts', 'IJzererts', 'Gouderts',
'Lapis lazuli-erts', 'Redstone-erts', 'Smaragderts', 'Diamanterts', 'Netherkwartserts',
+
'Lapislazuli-erts', 'Redstone-erts', 'Smaragderts', 'Diamanterts', 'Netherkwartserts',
 
'Nethergouderts' } },
 
'Nethergouderts' } },
 
['dood koraalblok'] = { vorm = 'onverbogen', lijst = { 'Dood buiskoraalblok',
 
['dood koraalblok'] = { vorm = 'onverbogen', lijst = { 'Dood buiskoraalblok',

Versie van 2 mrt 2021 22:50

Deze pagina heeft nog geen documentatie. Als je weet hoe het werkt, maak het dan alsjeblieft.
-- Ga door een tabel in de volgorde zoals gegeven (http://lua-users.org/wiki/MakingLuaLikePhp)
function functioning_table( ... )
    local newTable,keys,values={},{},{}
    newTable.pairs=function(self) -- pairs iterator
        local count=0
        return function() 
            count=count+1
            return keys[count],values[keys[count]]
        end
    end
    setmetatable(newTable,{
        __newindex=function(self,key,value)
            if not self[key] then table.insert(keys,key)
            elseif value==nil then -- Handle item delete
                local count=1
                while keys[count]~=key do count = count + 1 end
                table.remove(keys,count)
            end
            values[key]=value -- replace/create
        end,
        __index=function(self,key) return values[key] end
    })
    for x=1,table.getn(arg) do -- door #args vervangen als dit werkt
        for k,v in pairs(arg[x]) do newTable[k]=v end
    end
    return newTable
end

-- Hoofdletters (houdt ook rekening met 'ij')
function hoofdletter( str )
    local pstr = '' -- pstr = Parsed STRing
    if str:match('^%l%l') == 'ij' then
        pstr = str:gsub('^ij', 'IJ')
    else
        pstr = str:gsub('^%l', string.upper)
    end
    return pstr
end

local aliases = {
    -- Veelvoorkomende branstof --
    ['Elke brandstof'] = { 'Steenkool', 'Houtskool', { title = 'Stam', name = 'Eikenstam' }, { title = 'Houten planken', name = 'Eikenhouten planken' }, 'Steenkoolblok', 'Gedroogd kelpblok' },
    
    -- Harnas --
    ['Leren harnas'] = { 'Leren kap', 'Leren tuniek', 'Leren broek', 'Leren laarzen' },
    ['Gouden harnas'] = { 'Gouden helm', 'Gouden borstplaat', 'Gouden beenstukken', 'Gouden laarzen' },
    ['Maliënharnas'] = { 'Maliënkap', 'Maliënkolder', 'Maliënbroek', 'Maliënlaarzen' },
    ['IJzeren harnas'] = { 'IJzeren helm', 'IJzeren borstplaat', 'IJzeren beenstukken', 'IJzeren laarzen' },
    ['Diamanten harnas'] = { 'Diamanten helm', 'Diamanten borstplaat', 'Diamanten beenstukken', 'Diamanten laarzen' },
    ['Netherieten harnas'] = { 'Netherieten helm', 'Netherieten borstplaat', 'Netherieten beenstukken', 'Netherieten laarzan' },

    -- Overige namen --
    ['Gebroken dekschild'] = { title = 'Dekschild', name = 'Gebroken dekschild' },
    -- Klei (blok) -> Klei
    -- Klei -> Kleibal
    ['Bloemwapenbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Bloem' },
    ['Creeperwapenbanierpatroon'] = { title = '&eBanierpatroon', name = 'Banierpatroon', text = '&7Creeper' },
    ['Ingesprongen zoom-banierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&Ingesprongen zoom' },
    ['Metselwerkbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Metselwerk' },
    ['Schedelwapenbanierpatroon'] = { title = '&eBanierpatroon', name = 'Banierpatroon', text = '&7Schedel' },
    ['Mojanglogobanierpatroon'] = { title = '&dBanierpatroon', name = 'Banierpatroon', text = '&7Mojanglogo' },
    ['Globebanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Globe' },
    ['Snuitbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Snuit' },
    ['Piglinbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Snuit' },
    ['Knop'] = { title = 'Knop', name = 'Stenen knop' },
    ['Houten knop'] = { title = 'Houten knop', name = 'Eikenhouten knop' },
    ['Kruisboog geladen met pijl'] = { title = 'Kruisboog', name = 'Kruisboog geladen met pijl' },
    ['Beschadigde kruisboog geladen met pijl'] = { title = 'Kruisboog', name = 'Beschadigde kruisboog geladen met pijl' },
    ['Kruisboog geladen met vuurpijl'] = { title = 'Kruisboog', name = 'Kruisboog geladen met vuurpijl' },
    ['Beschadigde kruisboog geladen met vuurpijl'] = { title = 'Kruisboog', name = 'Beschadigde kruisboog geladen met vuurpijl' },
    ['Illagerbanier'] = { title = '&6&oIllagerbanier', name = 'Illagerbanier', text = 
        '&7Turquoise lozanje/&7Lichtgrijs schildvoet/&7Grijze paal/&7Lichtgrijze zoom/&7Zwarte dwarsbalk/&7Lichtgrijsgebalkt'
    },
    ['Puzzelblok'] = { title = '&dPuzzelblok', name = 'Puzzelblok' },
    ['Halfvolle bundel'] = { title = 'Bundel', name = 'Halfvolle bundel' },
    ['Volle bundel'] = { title = 'Bundel', name = 'Volle bundel' },

    -- Wapens --
    ['Drietand'] = { name = 'Drietand', text = '/&7 Wanneer hoofdhand:/ &21,1 aanvalssnelheid/ &29 aanvalsschade' },
    ['Drietand (BE)'] = { name = 'Drietand', text = '/&9 +8 aanvalsschade' },

    -- Bedrock- en Educationedities --
    ['Gebakken rundvlees'] = { title = 'Gebakken rundvlees', name = 'Biefstuk' },
    ['Kaart (BE)'] = { title = 'Kaart', name = 'Kaart', text = 'Toon markeerders: &cNee' },
    ['Kompas wijzend naar zeilsteen (BE)'] = { title = 'Kompas wijzend naar zeilsteen', name = 'Kompas wijzend naar zeilsteen.gif' },
    ['Locatiekaart (BE)'] = { title = 'Kaart', name = 'Kaart', text = 'Toon markeerders: &aJa' },
    ['Sculksensor (BE)'] = { title = 'Sculksensor', name = 'Sculksensor (BE).gif' },

    -- Chemie --
    ['Water (stof)'] = { title = 'Water', name = 'Water (stof)' },
    ['Chloride'] = { 'Calciumchloride', 'Ceriumchloride', 'Kaliumchloride', 'Kwikchloride', 'Wolfraamchloride' },
    ['Sterretjes'] = { 'Oranje sterretje', 'Blauw sterretje', 'Rood sterretje', 'Paars sterretje', 'Groen sterretje' },
    ['Overeenkomende chloride'] = { 'Calciumchloride', 'Ceriumchloride', 'Kaliumchloride', 'Kwikchloride', 'Wolfraamchloride' },
    ['Overeenkomende gekleurde fakkel'] = { 'Blauwe fakkel', 'Rode fakkel', 'Paarse fakkel', 'Groene fakkel' },
    ['Overeenkomende gloeistaaf'] = { 'Witte gloeistaaf', 'Oranje gloeistaaf', 'Magenta gloeistaaf', 'Lichtblauwe gloeistaaf',
        'Gele gloeistaaf', 'Lichtgroene gloeistaaf', 'Roze gloeistaaf', 'Grijze gloeistaaf', 'Lichtgrijze gloeistaaf', 'Turquoise gloeistaaf',
        'Paarse gloeistaaf', 'Blauwe gloeistaaf', 'Bruine gloeistaaf', 'Groene gloeistaaf', 'Rode gloeistaaf'
    },
}

-- Tekstwolkkleuren & animatie --
-- Geen speciale tekstkleur (dus wit)
local geanimeerdeSprites = {
    'Blauwe sleutel', 'Bellenkolom',
    'Debugstok',
    'Gele sleutel', 'Geschreven boek',
    'Helrode schimmeldraden', 'Helrode stam',
    'Klok', 'Kompas', 'Kompas wijzend naar zeilsteen',
    'Lava',
    'Magmablok',
    'Netherportaal',
    'Prismarien', 'Prismarienmuur', 'Prismarienplaat', 'Prismarientrap',
    'Rode sleutel',
    'Sculksensor', 'Spookachtige schimmeldraden', 'Spookachtige stam', 'Steenzaag',
    'Vuur',
    'Warmteblok', 'Water',
    'Zeelantaarn', 'Zielenvuur',
}

for _, sprite in ipairs ( geanimeerdeSprites ) do
    aliases[sprite] = sprite .. '.gif'
end

-- Gele tekst in tekstwolk en/of geanimeerd
local geleTekstwolken = {
    { naam = 'Beschadigd dekschild', geanimeerd = false },
    { naam = 'Betoverd boek', geanimeerd = true },
    { naam = 'Creeperhoofd', geanimeerd = false },
    { naam = 'Drakenhoofd', geanimeerd = false },
    { naam = 'Drakenadem', geanimeerd = false },
    { naam = 'Dekschild', geanimeerd = false },
    { naam = 'Hoofd', geanimeerd = false },
    { naam = 'Hart van de zee', geanimeerd = false },
    { naam = 'Magiërsextract', geanimeerd = false },
    { naam = 'Netherster', geanimeerd = true },
    { naam = 'Skelettenschedel', geanimeerd = false },
    { naam = 'Totem der onsterfelijkheid', geanimeerd = false },
    { naam = 'Witherskelettenschedel', geanimeerd = false },
    { naam = 'Zombiehoofd', geanimeerd = false }
}

for _, eigenschap in ipairs( geleTekstwolken ) do
    local naam = eigenschap.naam
    if eigenschap.geanimeerd == true then
        aliases[naam] = { title = '&e', name = naam .. '.gif' }
    else
        aliases[naam] = { title = '&e', name = naam }
    end
end

-- Aqua tekst in tekstwolk en/of geanimeerd
local aquaTekstwolken = {
    { naam = 'Baken', geanimeerd = false },
    { naam = 'Endkristal', geanimeerd = true },
    { naam = 'Gouden appel', geanimeerd = false },
    { naam = 'Kracht van de zee', geanimeerd = false }
}

for _, eigenschap in ipairs( aquaTekstwolken ) do
    local naam = eigenschap.naam
    if eigenschap.geanimeerd == true then
        aliases[naam] = { title = '&b', name = naam .. '.gif' }
    else
        aliases[naam] = { title = '&b', name = naam }
    end
end

-- Lichtpaarse tekst in tekstwolk en/of geanimeerd
local lichtpaarseTekstwolken = {
    { naam = 'Betoverde gouden appel', geanimeerd = true },
    { naam = 'Constructieblok', geanimeerd = false },
    { naam = 'Drakenei', geanimeerd = false },
    { naam = 'Gekoppeld opdrachtblok', geanimeerd = true },
    { naam = 'Herhalend opdrachtblok', geanimeerd = true },
    { naam = 'Opdrachtblok', geanimeerd = true },
    { naam = 'Kracht van de zee', geanimeerd = false }
}

for _, eigenschap in ipairs( lichtpaarseTekstwolken ) do
    local naam = eigenschap.naam
    if eigenschap.geanimeerd == true then
        aliases[naam] = { title = '&b', name = naam .. '.gif' }
    else
        aliases[naam] = { title = '&b', name = naam }
    end
end

local oranjeEnSchuingedrukteTekstwolken = {
    { naam = 'Onheilspellende banier', geanimeerd = false },
}

for _, eigenschap in ipairs( oranjeEnSchuingedrukteTekstwolken ) do
    local naam = eigenschap.naam
    if eigenschap.geanimeerd == true then
        aliases[naam] = { title = '&6&o', name = naam .. '.gif' }
    else
        aliases[naam] = { title = '&6&o', name = naam }
    end
end

-- Gereedschap en wapens --
local gereedschapsvormen = {
    ["zwaard"] = { vorm = 'onverbogen' },
    ["houweel"] = { vorm = 'verbogen' },
    ["bijl"] = { vorm = 'verbogen' },
    ["schep"] = { vorm = 'verbogen' },
    ["schoffel"] = { vorm = 'verbogen' },
}

-- Merk op dat deze gereedschapstabel geen normale tabel is. Hierom zijn de
-- verschillende materiaalsoorten opgesplitst in een eigen tabel. Zie ook de
-- functie die bovenaan staat.
local gereedschap = functioning_table({
    ['hout'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 2, bedrock_aanvalsschade = 2 },
        { gereedschap = 'bijl', aanvalssnelheid = '0,8', aanvalsschade = 7, bedrock_aanvalsschade = 3 },
        { gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '2,5', bedrock_aanvalsschade = 1 },
        { gereedschap = 'schoffel', aanvalssnelheid = 1, aanvalsschade = 1, bedrock_aanvalsschade = 2 },
    }},{
    ['steen'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 5, bedrock_aanvalsschade = 5 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 3, bedrock_aanvalsschade = 3 },
        { gereedschap = 'bijl', aanvalssnelheid = '0,8', aanvalsschade = 9, bedrock_aanvalsschade = 4 },
        { gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '3,5', bedrock_aanvalsschade = 2 },
        { gereedschap = 'schoffel', aanvalssnelheid = 2, aanvalsschade = 1, bedrock_aanvalsschade = 3 },
    }},{
    ['ijzer'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 6, bedrock_aanvalsschade = 6 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
        { gereedschap = 'bijl', aanvalssnelheid = '0,9', aanvalsschade = 9, bedrock_aanvalsschade = 5 },
        { gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '4,5', bedrock_aanvalsschade = 3 },
        { gereedschap = 'schoffel', aanvalssnelheid = 3, aanvalsschade = 1, bedrock_aanvalsschade = 4 },
    }},{
    ['goud'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 2, bedrock_aanvalsschade = 2 },
        { gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 7, bedrock_aanvalsschade = 3 },
        { gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '2,5', bedrock_aanvalsschade = 1 },
        { gereedschap = 'schoffel', aanvalssnelheid = 1, aanvalsschade = 1, bedrock_aanvalsschade = 2 },
    }},{
    ['diamant'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 7, bedrock_aanvalsschade = 7 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 5, bedrock_aanvalsschade = 5 },
        { gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 9, bedrock_aanvalsschade = 6 },
        { gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '5,5', bedrock_aanvalsschade = 4 },
        { gereedschap = 'schoffel', aanvalssnelheid = 4, aanvalsschade = 1, bedrock_aanvalsschade = 5 },
    }},{
    ['Netheriet'] = {
        { gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 8, bedrock_aanvalsschade = 8 },
        { gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 6, bedrock_aanvalsschade = 6 },
        { gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 10, bedrock_aanvalsschade = 7 },
        { gereedschap = 'schep', aanvalssnelheid = '1,6', aanvalsschade = '6,5', bedrock_aanvalsschade = 5 },
        { gereedschap = 'schoffel', aanvalssnelheid = 4, aanvalsschade = 1, bedrock_aanvalsschade = 4 },
    }})

local materiaalgroepen = functioning_table()
local gereedschapsgroepen = functioning_table()

for materiaalsoort, gereedschapsoort in gereedschap:pairs() do
    local materiaalsoortVerbogen
    if materiaalsoort == 'steen' then
        materiaalsoortVerbogen = 'stenen'
    else
        materiaalsoortVerbogen = materiaalsoort .. 'en'
    end
        
    for _, eigenschappen in ipairs( gereedschapsoort ) do
        -- Voeg eerst alle aliasen toe aan de tabel
        materiaalsoortVerbogen = hoofdletter( materiaalsoortVerbogen )

        local gereedschapsnaam = materiaalsoortVerbogen .. ' ' .. eigenschappen.gereedschap
        aliases[gereedschapsnaam] = { name = gereedschapsnaam, text = '/&7Wanneer in hoofdhand:/ &2' .. eigenschappen.aanvalssnelheid .. ' aanvalssnelheid/ &2' .. eigenschappen.aanvalsschade .. ' aanvalsschade'  }
        aliases[gereedschapsnaam .. ' (BE)'] = { name = gereedschapsnaam, text = '/&9+' .. eigenschappen.bedrock_aanvalsschade .. ' aanvalsschade' }

        local materiaalgroep = materiaalsoortVerbogen
        local gereedschapsgroep = eigenschappen.gereedschap
        -- Per materiaalgroep (m.u.v. zwaard)
        if gereedschapsnaam:find('%(BE%)$') == nil then
            if eigenschappen.gereedschap ~= 'zwaard' then
                if materiaalgroepen[materiaalgroep] == nil then
                    materiaalgroepen[materiaalgroep] = {}
                end
                table.insert( materiaalgroepen[materiaalgroep], aliases[gereedschapsnaam] )
            end
            -- Per gereedschapsgroep
            if gereedschapsgroepen[gereedschapsgroep] == nil then
                gereedschapsgroepen[gereedschapsgroep] = {}
            end
            table.insert( gereedschapsgroepen[gereedschapsgroep], aliases[gereedschapsnaam] )
        end
    end
end

-- Zet materiaal en gereedschap gegroepeerd in aliasestabel
for materiaalgroep, voorwerpen in materiaalgroepen:pairs() do
    local mg
    if materiaalgroep == 'Netherieten' then
        mg = materiaalgroep
    else
        mg = materiaalgroep:lower()
    end
    aliases['Elk ' .. mg .. ' gereedschap'] = voorwerpen
    aliases['Overeenkomend ' .. mg .. ' gereedschap'] = voorwerpen
end

for gereedschapsgroep, voorwerpen in gereedschapsgroepen:pairs() do
    local vorm = gereedschapsvormen[gereedschapsgroep].vorm
    if vorm == 'onverbogen' then
        aliases['Elk ' .. gereedschapsgroep] = voorwerpen
        aliases['Overeenkomend ' .. gereedschapsgroep] = voorwerpen
    elseif vorm == 'verbogen' then
        aliases['Elke ' .. gereedschapsgroep] = voorwerpen
        aliases['Overeenkomende ' .. gereedschapsgroep] = voorwerpen
    end
end

--[[
    Lijst met voorwerpvarianten. De parameter 'vorm' bepaalt of er 'elke' en
    'overeenkomende' (verbogen) óf 'elk' en 'overeenkomend' (onverbogen) voor
    komt te staan in de aliasestabel.
    Merk op dat hoofdletters niet nodig zijn tussen de blokhaken.
]]
local voorwerpvarianten = {
    ['bloem'] = { vorm = 'verbogen', lijst = { 'Margriet', 'Korenbloem', 'Lelietje-van-dalen',
        'Witherroos', 'Rode tulp', 'Oranje tulp', 'Witte tulp', 'Roze tulp', 'Porseleinsterretje',
        'Look', 'Blauwe orchidee', 'Klaproos', 'Paardenbloem' } },
    ['paddenstoel'] = { vorm = 'verbogen', lijst = { 'Rode paddenstoel', 'Bruine paddenstoel' } },
    ['kwartsblok'] = { vorm = 'onverbogen', lijst = { 'Kwartsblok', 'Gebeiteld kwartsblok',
        'Kwartspilaar' } },
    ['rood zandsteen'] = { vorm = 'onverbogen', lijst = { 'Rood zandsteen',
        'Gesneden rood zandsteen', 'Gebeiteld rood zandsteen', 'Glad rood zandsteen' } },
    ['zandsteen'] = { vorm = 'onverbogen', lijst = { 'Zandsteen', 'Gesneden zandsteen',
        'Gebeiteld zandsteen', 'Glad zandsteen' } },
    ['blokstenen'] = { vorm = 'verbogen', lijst = {'Blokstenen', 'Mossige blokstenen',
        'Gebarsten blokstenen', 'Gebeitelde blokstenen'} },
    ['stenen plaat'] = { vorm = 'verbogen', lijst = { 'Stenen plaat', 'Gladde stenen plaat',
        'Keistenen plaat', 'Mossige keistenen plaat', 'Blokstenen plaat',
        'Mossige blokstenen plaat', 'Andesietplaat', 'Gepolijste andesietplaat', 'Diorietplaat',
        'Gepolijste diorietplaat', 'Granietplaat', 'Gepolijste granietplaat', 'Zandstenen plaat',
        'Gesneden zandstenen plaat', 'Gladde zandstenen plaat', 'Rode zandstenen plaat',
        'Gesneden rode zandstenen plaat', 'Gladde rode zandstenen plaat', 'Bakstenen plaat',
        { title = 'Prismarienplaat', name = 'Prismarienplaat.gif' }, 'Prismarienblokstenen plaat',
        'Donkerprismarienplaat', 'Netherbakstenen plaat', 'Rode Netherbakstenen plaat',
        'Kwartsplaat', 'Gladde kwartsplaat', 'Purpurplaat', 'Endblokstenen plaat',
        'Versteende eikenhouten plaat', 'Zwartstenen plaat', 'Gepolijste zwartstenen plaat',
        'Gepolijste zwartstenen blokstenen plaat' } },
    ['stenen trap'] = { vorm = 'verbogen', lijst = { 'Stenen trap', 'Keistenen trap',
        'Mossige keistenen trap', 'Blokstenen trap', 'Mossige blokstenen trap', 'Andesiettrap',
        'Gepolijste andesiettrap', 'Dioriettrap', 'Gepolijste dioriettrap', 'Graniettrap',
        'Gepolijste graniettrap', 'Zandstenen trap', 'Gladde zandstenen trap',
        'Rode zandstenen trap', 'Gladde rode zandstenen trap', 'Bakstenen trap',
        { title = 'Prismarientrap', name = 'Prismarientrap.gif' }, 'Prismarienblokstenen trap',
        'Donkerprismarientrap', 'Netherbakstenen trap', 'Rode Netherbakstenen trap', 'Kwartstrap',
        'Gladde kwartstrap', 'Purpurtrap', 'Endblokstenen trap', 'Zwartstenen trap',
        'Gepolijste zwartstenen trap', 'Gepolijste zwartstenen blokstenen trap' } },
    ['purpurblok'] = { vorm = 'onverbogen', lijst = { 'Purpurblok', 'Purpurpilaar' } },
    ['steen'] = { vorm = 'verbogen', lijst = { 'Steen', 'Andesiet', 'Graniet', 'Dioriet',
        'Gepolijst andesiet', 'Gepolijst graniet', 'Gepolijst dioriet' } },
    ['tulp'] = { vorm = 'verbogen', lijst = { 'Rode tulp', 'Oranje tulp', 'Witte tulp',
        'Roze tulp' } },
    ['prismarien'] = { vorm = 'onverbogen', lijst = { { title = 'Prismarien', name = 'Prismarien.gif' },
        'Prismarienblokstenen', 'Donkerprismarien' } },
    ['erts'] = { vorm = 'verbogen', lijst = { 'Steenkoolerts', 'IJzererts', 'Gouderts',
        'Lapislazuli-erts', 'Redstone-erts', 'Smaragderts', 'Diamanterts', 'Netherkwartserts',
        'Nethergouderts' } },
    ['dood koraalblok'] = { vorm = 'onverbogen', lijst = { 'Dood buiskoraalblok',
        'Dood hersenkoraalblok', 'Dood blaaskoraalblok', 'Dood brandkoraalblok',
        'Dood hoornkoraalblok' } },
    ['dode koraalwaaier'] = { vorm = 'verbogen', lijst = { 'Dode buiskoraalwaaier',
        'Dode hersenkoraalwaaier', 'Dode blaaskoraalwaaier', 'Dode brandkoraalwaaier',
        'Dode hoornkoraalwaaier' } },
    ['muur'] = { vorm = 'verbogen', lijst = { 'Keistenen muur', 'Mossige keistenen muur',
        'Blokstenen muur', 'Mossige blokstenen muur', 'Andesietmuur', 'Diorietmuur', 'Granietmuur',
        'Zandstenen muur', 'Rode zandstenen muur', 'Bakstenen muur',
        { title = 'Prismarienmuur', name = 'Prismarienmuur.gif' }, 'Netherbakstenen muur',
        'Rode Netherbakstenen muur', 'Endblokstenen muur', 'Zwartstenen muur',
        'Gepolijste zwartstenen muur' } },
    ['fakkel'] = { vorm = 'verbogen', lijst = { 'Fakkel', 'Zielenfakkel' } },
    ['lantaarn'] = { vorm = 'verbogen', lijst = { 'Lantaarn', 'Zielenlantaarn' } },
    ['zwam'] = { vorm = 'verbogen', lijst = { 'Helrode zwam', 'Spookachtige zwam' } },
    ['wortels'] = { vorm = 'verbogen', lijst = { 'Helrode wortels', 'Spookachtige wortels' } },
    ['nylium'] = { vorm = 'onverbogen', lijst = { 'Helrood nylium', 'Spookachtig nylium' } },
    ['zielenzand'] = { vorm = 'onverbogen', lijst = { 'Zielenzand', 'Zielenaarde' } },
    ['kampvuur'] = { vorm = 'onverbogen', lijst = { 'Kampvuur', 'Zielenkampvuur' } },
    ['zwartsteen'] = { vorm = 'onverbogen', lijst = { 'Zwartsteen', 'Gepolijst zwartsteen',
        'Gebeiteld gepolijst zwartsteen', 'Gepolijste zwartstenen blokstenen',
        'Gebarsten gepolijste zwartstenen blokstenen' } },
    ['stenen knop'] = { vorm = 'verbogen', lijst = { 'Stenen knop', 'Gepolijste zwartstenen knop' } },
    ['stenen drukplaat'] = { vorm = 'verbogen', lijst = { 'Stenen drukplaat',
        'Gepolijste zwartstenen drukplaat' } },
    ['Netherhouten drukplaat'] = { vorm = 'verbogen', lijst = { 'Helrode houten drukplaat',
        'Spookachtige houten drukplaat' } },
    ['Netherhouten hek'] = { vorm = 'verbogen', lijst = { 'Helrood houten hek',
        'Spookachtig houten hek' } },
    ['Netherhouten valluik'] = { vorm = 'verbogen', lijst = { 'Helrood houten valluik',
        'Spookachtig houten valluik' } },
    ['Netherhouten poort'] = { vorm = 'verbogen', lijst = { 'Helrode houten poort',
        'Spookachtige houten poort' } },
    ['Netherhouten trap'] = { vorm = 'verbogen', lijst = { 'Helrode houten trap',
        'Spookachtige houten trap' } },
    ['Netherhouten deur'] = { vorm = 'verbogen', lijst = { 'Helrode houten deur',
        'Spookachtige houten deur' } },
    ['Netherhouten bord'] = { vorm = 'verbogen', lijst = { 'Helrood houten bord',
        'Spookachtig houten bord' } },
}

for aliasnaam, aliasinhoud in pairs( voorwerpvarianten ) do
    if aliasinhoud.vorm == 'onverbogen' then
        aliases['Elk ' .. aliasnaam] = aliasinhoud.lijst
        aliases['Overeenkomend ' .. aliasnaam] = aliasinhoud.lijst
    elseif aliasinhoud.vorm == 'verbogen' then
        aliases['Elke ' .. aliasnaam] = aliasinhoud.lijst
        aliases['Overeenkomende ' .. aliasnaam] = aliasinhoud.lijst
    else
        error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
    end
end

-- Koper --
local kopervarianten = {
    ['Overeenkomend# (geoxideerd#) koperblok'] = { 'Koperblok', 'Blootgesteld# koperblok',
        'Verweerd# koperblok', 'Geoxideerd# koperblok' },
    ['Overeenkomend# (geoxideerd#) gesneden koperblok'] = { 'Gesneden koperblok',
        'Blootgesteld# gesneden koperblok', 'Verweerd# gesneden koperblok',
        'Geoxideerd# gesneden koperblok' },
    ['Overeenkomend# ingewassen (geoxideerd#) koperblok'] = { 'Ingewassen koperblok',
        'Ingewassen blootgesteld# koperblok', 'Ingewassen verweerd# koperblok' },
    ['Overeenkomend# ingewassen (geoxideerd#) gesneden koperblok'] = { 'Ingewassen gesneden koperblok',
        'Ingewassen blootgesteld# gesneden koperblok', 'Ingewassen verweerd# gesneden koperblok' },
}

for key, values in pairs( kopervarianten ) do -- waarde in kopervariantentabel
    for _, value in ipairs(values) do -- waarde in tabel van waarde kopervariantentabel
        local geparseerdeSleutel = ''
        local geparseerdeWaarde = ''

        -- Koperblok
        geparseerdeSleutel = key:gsub('#', '')
        geparseerdeWaarde = value:gsub('#', '')
        
        -- maak tabel als-ie niet bestaat
        if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
        aliases[geparseerdeSleutel] = geparseerdeWaarde

        -- Koperen plaat
        geparseerdeSleutel = key:gsub('#', 'e'):gsub('blok$', 'en plaat')
        geparseerdeWaarde = value:gsub('#', 'e'):gsub('blok$', 'en plaat')
        if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
        aliases[geparseerdeSleutel] = geparseerdeWaarde

        -- Koperen trap
        geparseerdeSleutel = key:gsub('#', 'e'):gsub('blok$', 'en trap')
        geparseerdeWaarde = value:gsub('#', 'e'):gsub('blok$', 'en trap')
        if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
        aliases[geparseerdeSleutel] = geparseerdeWaarde
    end
end

-- Muziekplaten --
local platen = {
    { nummer = '13', artiest = 'C418' },
    { nummer = 'cat', artiest = 'C418' },
    { nummer = 'blocks', artiest = 'C418' },
    { nummer = 'chirp', artiest = 'C418' },
    { nummer = 'far', artiest = 'C418' },
    { nummer = 'mall', artiest = 'C418' },
    { nummer = 'mellohi', artiest = 'C418' },
    { nummer = 'stal', artiest = 'C418' },
    { nummer = 'strad', artiest = 'C418' },
    { nummer = 'ward', artiest = 'C418' },
    { nummer = '11', artiest = 'C418' },
    { nummer = 'wait', artiest = 'C418' },
    { nummer = 'pigstep', artiest = 'Lena Raine' },
}

for _, plaat in ipairs( platen ) do
    local naam = 'Muziekplaat ' .. plaat.nummer
    aliases[naam] = { title = '&bMuziekplaat', name = naam, text = '&7' .. plaat.artiest .. ' - ' .. plaat.nummer }
end

--[[
    Beschadigde voorwerpen.
    De parameter 'vorm' kan de volgende waarden bevatten:
        - onverbogen (zonder -e)
        - verbogen (met -e)
]]
local beschadigdeVoorwerpen = {
    { naam = 'boog', vorm = 'verbogen' },
    { naam = 'dekschild', vorm = 'onverbogen' },
    { naam = 'diamanten beenstukken', vorm = 'verbogen' },
    { naam = 'diamanten bijl', vorm = 'verbogen' },
    { naam = 'diamanten borstplaat', vorm = 'verbogen' },
    { naam = 'diamanten helm', vorm = 'verbogen' },
    { naam = 'diamanten houweel', vorm = 'verbogen' },
    { naam = 'diamanten laarzen', vorm = 'verbogen' },
    { naam = 'diamanten schep', vorm = 'verbogen' },
    { naam = 'diamanten schoffel', vorm = 'verbogen' },
    { naam = 'diamanten zwaard', vorm = 'onverbogen' },
    { naam = 'gouden beenstukken', vorm = 'verbogen' },
    { naam = 'gouden bijl', vorm = 'verbogen' },
    { naam = 'gouden borstplaat', vorm = 'verbogen' },
    { naam = 'gouden helm', vorm = 'verbogen' },
    { naam = 'gouden houweel', vorm = 'verbogen' },
    { naam = 'gouden laarzen', vorm = 'verbogen' },
    { naam = 'gouden schep', vorm = 'verbogen' },
    { naam = 'gouden schoffel', vorm = 'verbogen' },
    { naam = 'gouden zwaard', vorm = 'onverbogen' },
    { naam = 'houten bijl', vorm = 'verbogen' },
    { naam = 'houten houweel', vorm = 'verbogen' },
    { naam = 'houten schep', vorm = 'verbogen' },
    { naam = 'houten schoffel', vorm = 'verbogen' },
    { naam = 'houten zwaard', vorm = 'onverbogen' },
    { naam = 'ijzeren beenstukken', vorm = 'verbogen' },
    { naam = 'ijzeren bijl', vorm = 'verbogen' },
    { naam = 'ijzeren borstplaat', vorm = 'verbogen' },
    { naam = 'ijzeren helm', vorm = 'verbogen' },
    { naam = 'ijzeren houweel', vorm = 'verbogen' },
    { naam = 'ijzeren laarzen', vorm = 'verbogen' },
    { naam = 'ijzeren schep', vorm = 'verbogen' },
    { naam = 'ijzeren schoffel', vorm = 'verbogen' },
    { naam = 'ijzeren zwaard', vorm = 'onverbogen' },
    { naam = 'leren broek', vorm = 'verbogen' },
    { naam = 'leren kap', vorm = 'verbogen' },
    { naam = 'leren tuniek', vorm = 'verbogen' },
    { naam = 'leren laarzen', vorm = 'verbogen' },
    { naam = 'maliënbroek', vorm = 'verbogen' },
    { naam = 'maliënkap', vorm = 'verbogen' },
    { naam = 'maliënkolder', vorm = 'verbogen' },
    { naam = 'maliënlaarzen', vorm = 'verbogen' },
    { naam = 'Netherieten beenstukken', vorm = 'verbogen' },
    { naam = 'Netherieten bijl', vorm = 'verbogen' },
    { naam = 'Netherieten borstplaat', vorm = 'verbogen' },
    { naam = 'Netherieten helm', vorm = 'verbogen' },
    { naam = 'Netherieten houweel', vorm = 'verbogen' },
    { naam = 'Netherieten laarzen', vorm = 'verbogen' },
    { naam = 'Netherieten schep', vorm = 'verbogen' },
    { naam = 'Netherieten schoffel', vorm = 'verbogen' },
    { naam = 'Netherieten zwaard', vorm = 'onverbogen' },
    { naam = 'kruisboog', vorm = 'verbogen' },
    { naam = 'schaar', vorm = 'verbogen' },
    { naam = 'schild', vorm = 'onverbogen' },
    { naam = 'spookachtige zwam aan een stok', vorm = 'verbogen' },
    { naam = 'stenen bijl', vorm = 'verbogen' },
    { naam = 'stenen houweel', vorm = 'verbogen' },
    { naam = 'stenen schep', vorm = 'verbogen' },
    { naam = 'stenen schoffel', vorm = 'verbogen' },
    { naam = 'stenen zwaard', vorm = 'onverbogen' },
    { naam = 'vishengel', vorm = 'verbogen' },
    { naam = 'vuursteen en staal', vorm = 'onverbogen' },
    { naam = 'wortel aan een stok', vorm = 'verbogen' },
}

for _, voorwerp in ipairs( beschadigdeVoorwerpen ) do
    local naam = hoofdletter( voorwerp.naam )

    if voorwerp.vorm == 'onverbogen' then
        aliases['Beschadigd ' .. voorwerp.naam] = { title = naam, name = 'Beschadigd ' .. voorwerp.naam }
    elseif voorwerp.vorm == 'verbogen' then
        aliases['Beschadigde ' .. voorwerp.naam] = { title = naam, name = 'Beschadigde ' .. voorwerp.naam }
    else
        error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
    end
end

-- Kleuren --
local kleuren = {
    { onverbogen = 'Wit', verbogen = 'Witte' },
    { onverbogen = 'Oranje', verbogen = 'Oranje' },
    { onverbogen = 'Magenta', verbogen = 'Magenta' },
    { onverbogen = 'Lichtblauw', verbogen = 'Lichtblauwe' },
    { onverbogen = 'Geel', verbogen = 'Gele' },
    { onverbogen = 'Lichtgroen', verbogen = 'Lichtgroene' },
    { onverbogen = 'Roze', verbogen = 'Roze' },
    { onverbogen = 'Grijs', verbogen = 'Grijze' },
    { onverbogen = 'Lichtgrijs', verbogen = 'Lichtgrijze' },
    { onverbogen = 'Turquoise', verbogen = 'Turquoise' },
    { onverbogen = 'Paars', verbogen = 'Paarse' },
    { onverbogen = 'Blauw', verbogen = 'Blauwe' },
    { onverbogen = 'Bruin', verbogen = 'Bruine' },
    { onverbogen = 'Groen', verbogen = 'Groene' },
    { onverbogen = 'Rood', verbogen = 'Rode' },
    { onverbogen = 'Zwart', verbogen = 'Zwarte' }
}

--[[
    Banieren.
    Parameters:
        - vorm:
            - onverbogen: geen -e
            - verbogen: met -e
        - voorzetsel: of 'met' tussen banier en patroon geplaatst moet worden
        - spatie: of tussen kleur en patroon een spatie hoort te staan
]]
local banierpatronen = {
    ['andreaskruis'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['bloem'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['Creeper'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['dwarsbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['gebalkt'] = { vorm = 'onverbogen', voorzetsel = false, spatie = false },
    ['gegolfd schildhoofd'] = { vorm = 'onverbogen', voorzetsel = true, spatie = false },
    ['gegolfd schildvoet'] = { vorm = 'onverbogen', voorzetsel = true, spatie = false },
    ['gepaald'] = { vorm = 'onverbogen', voorzetsel = false, spatie = false },
    ['globe'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['gradiënt'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['ingesprongen zoom'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['keper'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['koek'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['kruis'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['kwartier linksboven'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['kwartier linksonder'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['kwartier rechtsboven'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['kwartier rechtsonder'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['linkerpaal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['linkerschuinbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['lozanje'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['metselwerk'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['Mojanglogo'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['omgekeerd gebalkt'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['omgekeerd gepaald'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['omgekeerd schuinlinks verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['omgekeerd schuinrechts verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['paal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['palen'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['rechterpaal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['rechterschuinbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['schedel'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['schildhoofd'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['schildvoet'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['schildvoetgradiënt'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
    ['schuinlinks verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['schuinrechts verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
    ['snuit'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
    ['zoom'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
}

for patroon, eigenschappen in pairs( banierpatronen ) do
    for _, kleur in ipairs( kleuren ) do
        local patroonnaam = ''
        if eigenschappen.vorm == 'onverbogen' then
            if eigenschappen.voorzetsel == true and eigenschappen.spatie == true then
                patroonnaam = 'Banier met ' .. kleur.onverbogen:lower() .. ' ' .. patroon
                aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. ' ' .. patroon }
            elseif eigenschappen.voorzetsel == true and eigenschappen.spatie == false then
                patroonnaam = 'Banier met ' .. kleur.onverbogen:lower() .. patroon
                aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. patroon }
            elseif eigenschappen.voorzetsel == false and eigenschappen.spatie == true then
                patroonnaam = 'Banier ' .. kleur.onverbogen:lower() .. ' ' .. patroon
                aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. ' ' .. patroon }
            elseif eigenschappen.voorzetsel == false and eigenschappen.spatie == false then
                patroonnaam = 'Banier ' .. kleur.onverbogen:lower() .. patroon
                aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. patroon }
            else
                error("Controleer waarden voor '" .. patroon .. "'.")
            end
        elseif eigenschappen.vorm == 'verbogen' then
            if eigenschappen.voorzetsel == true and eigenschappen.spatie == true then
                patroonnaam = 'Banier met ' .. kleur.verbogen:lower() .. ' ' .. patroon
                aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.verbogen .. ' ' .. patroon }
            else
                error("Fout bij maken aliases. Overige vormen van voorzetsel en spatie niet geïmplementeerd.")
            end
        else
            error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
        end
    end
end

--[[
    Gekleurde voorwerpen. Vuurwerksterren krijgen een aparte behandeling.
    Parameters:
        - vorm:
            - onverbogen: geen -e
            - verbogen: met -e
        - spatie: of een spatie hoort te staan tussen kleur en voorwerp
        - wit: of voorwerp met of zonder witte kleurstof moet worden gemaakt
            - false: er worden twee aliasen gemaakt - één mét witte kleur
                     en één zonder. De alias zonder wit wordt 'gekleurd(e)'
                     genoemd
            - true: er wordt één alias gemaakt, mét witte kleur
    Overige:
        - $1: kleur en vorm komen overeen
        - $2: kleur en vorm komen niet overeen
        In beide gevallen wordt de kleur als eerste ingevuld in correcte vorm.
        Er wordt uitgegaan dat de kleur op de juiste locatie staat. Hierom
        wordt de parameter 'spatie' niet meegenomen.
]]
local gekleurdeVoorwerpen = {
    ['ballon'] = { vorm = 'verbogen', spatie = true, wit = true },
    ['banier'] = { vorm = 'verbogen', spatie = true, wit = true },
    ['bed'] = { vorm = 'onverbogen', spatie = true, wit = false },
    ['beton'] = { vorm = 'onverbogen', spatie = true, wit = true },
    ['cement'] = { vorm = 'onverbogen', spatie = true, wit = true },
    ['geglazuurd terracotta'] = { vorm = 'onverbogen', spatie = false, wit = true },
    ['gehard $1gekleurd glas'] = { vorm = 'onverbogen', spatie = false, wit = true },
    ['geharde $2gekleurde glazen ruit'] = { vorm = 'verbogen', spatie = false, wit = true },
    ['gekleurd glas'] = { vorm = 'onverbogen', spatie = false, wit = true },
    ['$2gekleurde glazen ruit'] = { vorm = 'verbogen', spatie = false, wit = true },
    ['tapijt'] = { vorm = 'onverbogen', spatie = true, wit = false },
    ['terracotta'] = { vorm = 'onverbogen', spatie = true, wit = false },
    ['kaars'] = { vorm = 'verbogen', spatie = true, wit = false },
    ['kleurstof'] = { vorm = 'verbogen', spatie = true, wit = false },
    ['schild'] = { vorm = 'onverbogen', spatie = true, wit = true },
    ['Shulkerdoos'] = { vorm = 'verbogen', spatie = true, wit = true },
    ['wol'] = { vorm = 'verbogen', spatie = true, wit = false },
}

for voorwerp, eigenschappen in pairs( gekleurdeVoorwerpen ) do
    local gekleurdeVoorwerpenAliases = {}
    local voorwerpnaam = ''
    local voorwerpalias = ''
    for _, kleur in ipairs( kleuren ) do
        if eigenschappen.vorm == 'onverbogen' then
            if voorwerp:find( '%$1' ) then
                local kl = kleur.onverbogen:lower()
                voorwerpnaam = voorwerp:gsub( '%$1', kl )
                voorwerpnaam = hoofdletter( voorwerpnaam )
                table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
            elseif voorwerp:find( '%$2' ) then
                local kl = kleur.verbogen:lower()
                voorwerpnaam = voorwerp:gsub( '%$2', kl )
                voorwerpnaam = hoofdletter( voorwerpnaam )
                table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
            else
                if eigenschappen.spatie == true then
                    voorwerpnaam = kleur.onverbogen .. ' ' .. voorwerp
                    table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
                else
                    voorwerpnaam = kleur.onverbogen .. voorwerp
                    table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
                end
            end
        elseif eigenschappen.vorm == 'verbogen' then
            if voorwerp:find( '%$1' ) then
                local kl = kleur.verbogen:lower()
                voorwerpnaam = voorwerp:gsub( '%$1', kl )
                voorwerpnaam = hoofdletter( voorwerpnaam )
                table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
            elseif voorwerp:find( '%$2' ) then
                local kl = kleur.onverbogen:lower()
                voorwerpnaam = voorwerp:gsub( '%$2', kl )
                voorwerpnaam = hoofdletter( voorwerpnaam )
                table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
            else
                if eigenschappen.spatie == true then
                    voorwerpnaam = kleur.verbogen .. ' ' .. voorwerp
                    table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
                else
                    voorwerpnaam = kleur.verbogen .. voorwerp
                    table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
                end
            end
        else
            error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
        end
    end

    if eigenschappen.vorm == 'onverbogen' then
        voorwerpalias = voorwerp:gsub( '%$%d', '' )
        aliases['Elk ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
        aliases['Overeenkomend ' .. voorwerpalias] = gekleurdeVoorwerpenAliases

        if eigenschappen.wit == false then
            alleenGekleurdeVoorwerpen = table.remove( gekleurdeVoorwerpenAliases, 1 ) -- verwijder het eerste element van de tabel (wit)
            aliases['Elk gekleurd ' .. voorwerpalias] = alleenGekleurdeVoorwerpen
            aliases['Overeenkomend gekleurd ' .. voorwerpalias] = alleenGekleurdeVoorwerpen
        end
    elseif eigenschappen.vorm == 'verbogen' then
        voorwerpalias = voorwerp:gsub( '%$%d', '' )
        aliases['Elke ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
        aliases['Overeenkomende ' .. voorwerpalias] = gekleurdeVoorwerpenAliases

        if eigenschappen.wit == false then
            alleenGekleurdeVoorwerpen = table.remove( gekleurdeVoorwerpenAliases, 1 ) -- verwijder het eerste element van de tabel (wit)
            aliases['Elke gekleurde ' .. voorwerpalias] = alleenGekleurdeVoorwerpen
            aliases['Overeenkomende gekleurde ' .. voorwerpalias] = alleenGekleurdeVoorwerpen
        end
    else
        error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
    end
end

-- Vuurwerksterren --
local vuurwerksterren = {}
for _, kleur in ipairs( kleuren ) do
    local naam = kleur.verbogen .. ' vuurwerkster'
    aliases[naam] = { title = 'Vuurwerkster', name = naam, text = '&7' .. kleur.onverbogen }
    table.insert( vuurwerksterren, aliases[naam] )
end
aliases['Elke vuurwerkster'] = vuurwerksterren
aliases['Overeenkomende vuurwerkster'] = vuurwerksterren

-- Dranken --
-- Geen effect
local geenEffecten = {
    'Waterfles',
    'Vreemde drank',
    'Stroperige drank',
    'Triviale drank',
    'Onmaakbare drank',
    'Spattende waterfles',
    'Spattende vreemde drank',
    'Spattende stroperige drank',
    'Spattende triviale drank',
    'Spattende onmaakbare drank',
    'Aanhoudende waterfles',
    'Aanhoudende vreemde drank',
    'Aanhoudende stroperige drank',
    'Aanhoudende triviale drank',
    'Aanhoudende onmaakbare drank',
    'Getipte pijl',
    'Pijl der spatting',
    'Onmaakbare getipte pijl'
}

for _, naam in ipairs( geenEffecten ) do
    aliases[naam] = { name = naam, text = '&7Geen effecten' }
end

-- Begin lijst met dranken
local drankvoorwerpen = {
    ['drank'] = {
        aliases['Waterfles'],
        aliases['Vreemde drank'],
        aliases['Stroperige drank'],
        aliases['Triviale drank'],
    },
    ['spattende drank'] = {
        aliases['Spattende waterfles'],
        aliases['Spattende vreemde drank'],
        aliases['Spattende stroperige drank'],
        aliases['Spattende triviale drank'],
    },
    ['aanhoudende drank'] = {
        aliases['Aanhoudende waterfles'],
        aliases['Aanhoudende vreemde drank'],
        aliases['Aanhoudende stroperige drank'],
        aliases['Aanhoudende triviale drank'],
    },
    ['getipte pijl'] = {
        aliases['Pijl der spatting'],
        aliases['Getipte pijl'],
        aliases['Getipte pijl'],
        aliases['Getipte pijl'],
    }
}

--[[
    Effecten.
    Paramters:
        - naam: naam van effect, inclusief genitief
        - effect: naam van effect zelf, voorafgegaan door &9 (positief) of &c (negatief)
        - versterking: met Romeinse cijfers aangegeven wat de versterking is
        - duur: duur van het effect
            - normaal: gewone & spattende drank voor normaal, verlengd en versterkt
            - aanhoudend: aanhoudende drank voor normaal, verlengd en versterkt
            - pijl: getipte pijl voor normaal, verlengd en versterkt
        - in gevallen waar een drank meerdere effecten heeft (zoals der schildpadmeester) is de
          formatting iets anders. In plaats van 'effect' heet deze parameter 'tekst'
]]
local effecten = {
    { naam = 'der regeneratie', effect = '&9Regeneratie', versterking = 'II',
        duur = { normaal = { '0:45', '1:30', '0:22' }, aanhoudend = { '0:11', '0:22', '0:05' }, pijl = { '0:05', '0:11', '0:02' } } },
    { naam = 'der vlotheid', effect = '&9Snelheid', versterking = 'II',
        duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
    { naam = 'der vuurbestendigheid', effect = 'Vuurbestendigheid',
        duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
    { naam = 'des gifs', effect = '&cVergif', versterking = 'II',
        duur = { normaal = { '0:45', '1:30', '0:21' }, aanhoudend = { '0:11', '0:22', '0:05' }, pijl = { '0:05', '0:11', '0:02' } } },
    { naam = 'der genezing', effect = '&9Onmiddellijke genezing', versterking = 'II' },
    { naam = 'des nachtzichts', effect = '&9Nachtzicht',
        duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
    { naam = 'der zwakheid', effect = '&cZwakheid',
        duur = { normaal = { '1:30', '4:00' }, aanhoudend = { '0:22', '1:00' }, pijl = { '0:11', '0:30' } } },
    { naam = 'der kracht', effect = '&9Kracht', versterking = 'II',
        duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
    { naam = 'der traagheid', effect = '&cTraagheid', versterking = 'IV',
        duur = { normaal = { '1:30', '4:00', '0:20' }, aanhoudend = { '0:22', '1:00', '0:05' }, pijl = { '0:11', '0:30', '0:02' } } },
    { naam = 'der sprongen', effect = '&9Sprongversterking', versterking = 'II',
        duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
    { naam = 'der verwonding', effect = '&cOnmiddellijke schade', versterking = 'II' },
    { naam = 'des wateradems', effect = '&9Wateradem',
        duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
    { naam = 'der onzichtbaarheid', effect = '&9Onzichtbaarheid',
        duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
    { naam = 'der valvertraging', effect = '&9Valvertraging',
        duur = { normaal = { '1:30', '4:00' }, aanhoudend = { '0:22', '1:00' }, pijl = { '0:11', '0:30' } } },
    { naam = 'des geluks', effect = '&9Geluk',
        duur = { normaal = { '5:00' }, aanhoudend = { '1:15' }, pijl = { '0:37' } } },
    { naam = 'der verval', effect = '&cVerschrompeling',
        duur = { normaal = { '0:40' }, aanhoudend = { '0:10' }, pijl = { '0:05' } } },
    -- Drank der schildpadmeester heeft speciale formatting nodig. Hierom volgt het niet het standaardformaat.
    { naam = 'der schildpadmeester', tekst = '&cTraagheid IV ($1)/&9Weerstand III ($1)', versterking = '&cTraagheid VI ($1)/&9Weerstand IV ($1)',
        duur = { normaal = { '0:20', '0:40', '0:20' }, aanhoudend = { '0:15', '0:45', '0:15' }, pijl = { '0:07', '0:22', '0:07' } } },
}

local soorten = {
    { naam = 'Drank', duur = 'normaal', tekst = 'Drank ' },
    { naam = 'Spattende drank', duur = 'normaal', tekst = 'Spattende drank ' },
    { naam = 'Aanhoudende drank', duur = 'aanhoudend', tekst = 'Aanhoudende drank ' },
    { naam = 'Getipte pijl', duur = 'pijl', tekst = 'Pijl ' },
}

for _, effect in ipairs( effecten ) do
    for _, soort in ipairs( soorten ) do
        -- Maak naam van drank
        local naam = soort.tekst .. effect.naam
        local dranknaam = {}
        if soort.naam == 'Getipte pijl' then
            dranknaam = soort.tekst .. effect.naam
        else
            dranknaam = soort.tekst .. effect.naam .. '.gif'
        end

        -- Voeg duur toe als er een duur is
        if effect.duur then
            local duur = effect.duur[soort.duur]

            -- Vervang $1 door tijden
            if effect.tekst then
                aliases[naam] = { name = dranknaam, text = effect.tekst:gsub( '%$1', duur[1] ) }
                aliases[naam .. ' - verlengd'] = { name = dranknaam, text = effect.tekst:gsub( '%$1', duur[2] ) }
                aliases[naam .. ' - versterkt'] = { name = dranknaam, text = effect.versterking:gsub( '%$1', duur[3] ) }
            else
                -- Er is altijd de normale variant
                aliases[naam] = { name = dranknaam, text = string.format( '%s (%s)', effect.effect, duur[1] ) }

                -- Verlengde variant als die er is
                if duur[2] then
                    aliases[naam .. ' - verlengd'] = { name = dranknaam, text = string.format( '%s (%s)', effect.effect, duur[2] ) }
                end

                -- Versterkte variant als die er is
                if effect.versterking then
                    aliases[naam .. ' - versterkt'] = { name = dranknaam, text = string.format( '%s %s (%s)', effect.effect, effect.versterking, duur[3] ) }
                end
            end

        else
            -- Anders is het drank zonder duur
            aliases[naam] = { name = dranknaam, text = effect.effect }

            -- Voeg de versterkte variant toe als die er is
            if effect.versterking then 
                aliases[naam .. ' - versterkt'] = { name = dranknaam, text = effect.effect .. ' ' .. effect.versterking }
            end
        end
        -- Voeg de standaarddrank toe aan de drankenlijst
        table.insert( drankvoorwerpen[soort.naam:lower()], aliases[naam] )
    end
end

-- Maak ten slotte de lijst met dranken
-- Op dit moment zijn alle drankvoorwerpen in de verbogen vorm, dus hoeft daar
-- geen rekening gehouden mee te worden.
for voorwerp, drankaliases in pairs( drankvoorwerpen ) do
    aliases['Elke ' .. voorwerp] = drankaliases
    aliases['Overeenkomende ' .. voorwerp] = drankaliases
end

--[[
    Houtsoorten.
    Parameters:
        - vorm:
            - onverbogen: geen -e
            - verbogen: met -e
]]
local houtsoorten = {
    bovenwereld = {
        { onverbogen = 'Eik', verbogen = 'Eiken' },
        { onverbogen = 'Spar', verbogen = 'Sparren' },
        { onverbogen = 'Berk', verbogen = 'Berken' },
        { onverbogen = 'Oerwoud', verbogen = 'Oerwoud' },
        { onverbogen = 'Acacia', verbogen = 'Acacia' },
        { onverbogen = 'Donkereik', verbogen = 'Donkereiken' },
    },
    Nether = {
        { onverbogen = 'Helrood', verbogen = 'Helrode' },
        { onverbogen = 'Spookachtig', verbogen = 'Spookachtige' },
    }
}

--[[
    Houten voorwerpen.
    Parameters:
        - vorm:
            - onverbogen: geen -e
            - verbogen: met -e
        - bovenwereld: optioneel.
            Naam van het blok in de bovenwereld.
        - Nether: optioneel
            Naam van het blok in de Nether.
        - overige:
            - $1: Gebruik de onverbogen variant van de houtsoort
            - $1l: Zelfde als bovenstaande, maar in kleine letters - van :lower()
            - $2: Gebruik de verbogen variant van de houtsoort
            - $2l: Zelfde als bovenstaande, maar in kleine letters - van :lower()
]]
local houtenVoorwerpen = {
    ['hout'] = { vorm = 'onverbogen', bovenwereld = '$2hout' },
    ['gestript hout'] = { vorm = 'onverbogen', bovenwereld = 'Gestript $2lhout' },
    ['gestripte schimmeldraden'] = { vorm = 'verbogen', Nether = 'Gestripte $2l schimmeldraden' },
    ['gestripte stam'] = { vorm = 'verbogen', bovenwereld = 'Gestripte $2lstam', Nether = 'Gestripte $2l stam' },
    ['houten boot'] = { vorm = 'verbogen', bovenwereld = '$2houten boot' },
    ['houten bord'] = { vorm = 'onverbogen', bovenwereld = '$2houten bord', Nether = '$1 houten bord' },
    ['houten deur'] = { vorm = 'verbogen', bovenwereld = '$2houten deur', Nether = '$2 houten deur' },
    ['houten drukplaat'] = { vorm = 'verbogen', bovenwereld = '$2houten drukplaat', Nether = '$2 houten drukplaat' },
    ['houten hek'] = { vorm = 'onverbogen', bovenwereld = '$2houten hek', Nether = '$1 houten hek' },
    ['houten knop'] = { vorm = 'verbogen', bovenwereld = '$2houten knop', Nether = '$2 houten knop' },
    ['houten plaat'] = { vorm = 'verbogen', bovenwereld = '$2houten plaat', Nether = '$2 houten plaat' },
    ['houten planken'] = { vorm = 'verbogen', bovenwereld = '$2houten planken', Nether = '$2 houten planken' },
    ['houten poort'] = { vorm = 'verbogen', bovenwereld = '$2houten poort', Nether = '$2 houten poort' },
    ['houten trap'] = { vorm = 'verbogen', bovenwereld = '$2houten trap', Nether = '$2 houten trap' },
    ['houten valluik'] = { vorm = 'onverbogen', bovenwereld = '$2houten valluik', Nether = '$1 houten valluik' },
    ['kiemplant'] = { vorm = 'verbogen', bovenwereld = '$2kiemplant' },
    ['schimmeldraden'] = { vorm = 'verbogen', Nether = '$2 schimmeldraden' },
    ['stam'] = { vorm = 'verbogen', bovenwereld = '$2stam', Nether = '$2 stam' },
}

-- Geparseerd hout, door onderstaande drie for-loops gebruikt
local geparseerdHout = {}

-- Vul bovenstaande tabel
for groep, data in pairs( houtenVoorwerpen ) do
    for wereld, houtsoortenInWereld in pairs( houtsoorten ) do
        local geparseerdHoutenVoorwerp = ''
        if data.bovenwereld and wereld == 'bovenwereld' then
            for _, houttype in ipairs( houtsoortenInWereld ) do
                geparseerdHoutenVoorwerp = data.bovenwereld:gsub('%$1l', houttype.verbogen:lower()):gsub('%$1', houttype.onverbogen):gsub('%$2l', houttype.verbogen:lower()):gsub('%$2', houttype.verbogen)
                if geparseerdHout[groep .. ' - bovenwereld'] == nil then geparseerdHout[groep .. ' - bovenwereld'] = {} end
                if geparseerdHout[groep] == nil then geparseerdHout[groep] = {} end
                table.insert(geparseerdHout[groep .. ' - bovenwereld'], geparseerdHoutenVoorwerp)
                table.insert(geparseerdHout[groep], geparseerdHoutenVoorwerp) -- compatibiliteit met vorige versie
            end
        end
        if data.Nether and wereld == 'Nether' then
            for _, houttype in ipairs( houtsoortenInWereld ) do
                geparseerdHoutenVoorwerp = data.Nether:gsub('%$1l', houttype.verbogen:lower()):gsub('%$1', houttype.onverbogen):gsub('%$2l', houttype.verbogen:lower()):gsub('%$2', houttype.verbogen)
                if geparseerdHout[groep .. ' - Nether'] == nil then geparseerdHout[groep .. ' - Nether'] = {} end
                table.insert(geparseerdHout[groep .. ' - Nether'], geparseerdHoutenVoorwerp)
            end
        end
    end
end

-- Voeg toe aan de aliasestabel
for houtPerWereld, voorwerpen in pairs( geparseerdHout ) do
    local houtRegex = ''
    if houtPerWereld:match( '%-' ) then
        houtRegex = houtPerWereld:match( '(.+)%s%-' )
    else
        houtRegex = houtPerWereld
    end
    
    if houtenVoorwerpen[houtRegex].vorm == 'onverbogen' then
        aliases['Elk ' .. houtPerWereld] = voorwerpen
        aliases['Overeenkomend ' .. houtPerWereld] = voorwerpen
    elseif houtenVoorwerpen[houtRegex].vorm == 'verbogen' then
        aliases['Elke ' .. houtPerWereld] = voorwerpen
        aliases['Overeenkomende ' .. houtPerWereld] = voorwerpen
    else
        error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
    end
end

-- Zet hier blokken neer die samengevoegd moeten worden
-- volgorde: bovenwereld, Nether
local houtSamenvoegen = {
    { 'hout', 'schimmeldraden' },
    { 'gestript hout', 'gestripte schimmeldraden' },
    { 'gestripte stam' },
    { 'houten bord' },
    { 'houten deur' },
    { 'houten drukplaat' },
    { 'houten hek' },
    { 'houten knop' },
    { 'houten plaat' },
    { 'houten planken' },
    { 'houten poort' },
    { 'houten trap' },
    { 'houten valluik' },
    { 'stam' },
}

-- Merge two tables into one https://stackoverflow.com/a/43460349
function merge_tables( a, b )
    local result = {}
    for k,v in pairs ( a ) do
        table.insert( result, v )
    end
    for k,v in pairs ( b ) do
        table.insert( result, v )
    end
    return result
end

-- Voeg houten voorwerpen (bovenwereld en Nether) samen
for _, samenvoegen in ipairs( houtSamenvoegen ) do
    local samengevoegd
    if #samenvoegen > 1 then
        local samenTeVoegenLinks = samenvoegen[1]  -- zoals altijd fantastische
        local samenTeVoegenRechts = samenvoegen[2] -- future-proofing
        samengevoegd = merge_tables( geparseerdHout[samenTeVoegenLinks .. ' - bovenwereld'], geparseerdHout[samenTeVoegenRechts .. ' - Nether'] )
        if houtenVoorwerpen[samenTeVoegenLinks].vorm == houtenVoorwerpen[samenTeVoegenRechts].vorm then
            -- omdat beide vormen gelijk zijn aan elkaar, hoeft enkel één
            -- opgehaald te worden
            local vorm = houtenVoorwerpen[samenTeVoegenLinks].vorm
            if vorm == 'onverbogen' then
                aliases['Elk ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
                aliases['Overeenkomend ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
            elseif vorm == 'verbogen' then
                aliases['Elke ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
                aliases['Overeenkomende ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
            else
                error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'\nWaarde: " .. vorm)
            end
        else
            -- beide vormen zijn verschillend, dus de linkervorm is het
            -- tegenovergestelde van de rechter
            local vormLinks = houtenVoorwerpen[samenTeVoegenLinks].vorm
            if vormLinks == 'onverbogen' then
                aliases['Elk ' .. samenTeVoegenLinks .. ' of elke ' .. samenTeVoegenRechts] = samengevoegd
                aliases['Overeenkomend ' .. samenTeVoegenLinks .. ' of overeenkomende ' .. samenTeVoegenRechts] = samengevoegd
            elseif vormLinks == 'verbogen' then
                aliases['Elke ' .. samenTeVoegenLinks .. ' of elk ' .. samenTeVoegenRechts] = samengevoegd
                aliases['Overeenkomende ' .. samenTeVoegenLinks .. ' of overeenkomend ' .. samenTeVoegenRechts] = samengevoegd
            else
                error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'\nWaarde: " .. vormLinks)
            end
        end
    else
        -- Er is slechts één element in de tabel, dus hoeft er geen rekening
        -- gehouden te worden met of de vorm van beide verschillen of gelijk
        -- zijn.
        samenTeVoegen = samenvoegen[1]
        samengevoegd = merge_tables( geparseerdHout[samenTeVoegen .. ' - bovenwereld'], geparseerdHout[samenTeVoegen .. ' - Nether'] )
        if houtenVoorwerpen[samenTeVoegen].vorm == 'onverbogen' then
            aliases['Elk ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
            aliases['Overeenkomend ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
        elseif houtenVoorwerpen[samenTeVoegen].vorm == 'verbogen' then
            aliases['Elke ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
            aliases['Overeenkomende ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
        else
            error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
        end
    end
end

-- Bedrock en console-specifieke voorwerpen --
local editievoorwerpen = {
    ['(BE)'] = {
        'Acaciahouten poort',
        'Baken', 'Betoveringstafel', 'Berkenhouten poort', 'Blauw ijs', 'Boog', 'Bosontdekkingskaart',
        'Constructieleegte', 'Creeperhoofd',
        'Donkereikenhouten poort', 'Drakenei', 'Drakenhoofd',
        'Eikenhouten poort', 'Emmer kogelvis', 'Emmer tropische vis', 'Enderkist', 'Endpoort', 'Endportaal', 'Endportaalframe', 'Endstaf',
        'Glazen ruit', 'Gloeisteen',
        'Helrode poort', 'Honingblok', 'Hoofd', 'Hoornkoraalblok', 'Huilend obsidiaan',
        "Jack-o'-lantern",
        'Kaart', 'Kattenspawnei', 'Kist', 'Kist met valstrik', 'Kracht van de zee',
        'Lava',
        'Magmablok', 'Mijnkar met opdrachtblok', 'Monsterkooi',
        'Observeerder', 'Oceaanontdekkingskaart', 'Oerwoudbladeren', 'Oerwoudhouten poort',
        'Pandaspawnei', 'Pioenroos', 'Puzzelblok',
        'Rondreizendehandelaarsspawnei', 'Rozenstruik',
        'Skelettenschedel', 'Sparrenhouten poort', 'Spookachtige houten poort', 'Steensnijder', 'Steiger', 'Stromende lava',
        'Tralies',
        'Witherskelettenschedel',
        'Zeelantaarn', 'Zombiehoofd', 'Zwammenlicht',
    },
    ['(LCE)'] = {
        'Pioenroos',
        'Rozenstruik',
        'Struik'
    }
}

for editie, voorwerpen in pairs( editievoorwerpen ) do
    for _, voorwerp in ipairs( voorwerpen ) do
        local naam = voorwerp .. ' ' .. editie
        aliases[naam] = { title = voorwerp, name = naam }
    end
end

-- Lichtblokken (BE)
for niveau = 0,15 do
    aliases['Lichtblok ' .. niveau] = { title = 'Lichtblok', naam = 'Lichtblok ' .. niveau }
end

return aliases