Module:Inventory slot/Aliases : Différence entre versions

De WikiField
Sauter à la navigation Sauter à la recherche
Ligne 239 : Ligne 239 :
 
     ['béton en poudre'] = { 'Béton blanc en poudre', 'Béton blanc en poudre', 'Béton orange en poudre', 'Béton magenta en poudre', 'Béton bleu clair en poudre', 'Béton jaune en poudre', 'Béton vert clair en poudre', 'Béton rose en poudre', 'Béton gris en poudre', 'Béton gris clair en poudre', 'Béton cyan en poudre', 'Béton violet en poudre', 'Béton bleu en poudre', 'Béton bleu en poudre', 'Béton marron en poudre', 'Béton marron en poudre', 'Béton vert en poudre', 'Béton rouge en poudre', 'Béton noir en poudre', 'Béton noir en poudre' },
 
     ['béton en poudre'] = { 'Béton blanc en poudre', 'Béton blanc en poudre', 'Béton orange en poudre', 'Béton magenta en poudre', 'Béton bleu clair en poudre', 'Béton jaune en poudre', 'Béton vert clair en poudre', 'Béton rose en poudre', 'Béton gris en poudre', 'Béton gris clair en poudre', 'Béton cyan en poudre', 'Béton violet en poudre', 'Béton bleu en poudre', 'Béton bleu en poudre', 'Béton marron en poudre', 'Béton marron en poudre', 'Béton vert en poudre', 'Béton rouge en poudre', 'Béton noir en poudre', 'Béton noir en poudre' },
 
}
 
}
table.insert( itemVariants['Dye'], 1, 'White Dye' )
+
table.insert( itemVariants['colorant'], 1, 'Teinture blanche' )
 +
table.insert( itemVariants['colorant'], 1, 'Poudre d\'os' )
 
for aliasName, aliasItems in pairs( itemVariants ) do
 
for aliasName, aliasItems in pairs( itemVariants ) do
 
aliases[(tout[aliasName] or 'Tout') .. ' ' .. aliasName] = aliasItems
 
aliases[(tout[aliasName] or 'Tout') .. ' ' .. aliasName] = aliasItems

Version du 4 janvier 2020 à 18:29

La documentation pour ce module peut être créée à Module:Inventory slot/Aliases/doc

local coloredDyes = {
	'Teinture orange', 'Teinture magenta', 'Teinture bleu clair', 'Jaune pissenlit', 'Teinture vert clair',
	'Teinture rose', 'Teinture grise', 'Teinture gris clair', 'Teinture cyan', 'Teinture violette',
	'Lapis-lazuli', 'Teinture bleue', 'Fèves de cacao', 'Teinture marron', 'Vert de cactus', 'Rouge de rose', 'Poche d\'encre', 
	'Teinture noire',
}
local aliases = {
	-- Common fuel types for furnace --
	['Tout combustible'] = { 'Charbon', 'Charbon de bois', { title = 'Bûche', name = 'Bûche' }, { title = 'Planches', name = 'Planches de chêne' }, 'Bloc de charbon' },
	['Tout outil en or'] = { 'Pioche en or', 'Hache en or', 'Pelle en or', 'Houe en or' },
	['Tout outil en bois'] = { 'Pioche en bois', 'Hache en bois', 'Pelle en bois', 'Houe en bois' },
	['Tout outil en pierre'] = { 'Pioche en pierre', 'Hache en pierre', 'Pelle en pierre', 'Houe en pierre' },
	['Tout outil en fer'] = { 'Pioche en fer', 'Hache en fer', 'Pelle en fer', 'Houe en fer' },
	['Tout outil en diamant'] = { 'Pioche en diamant', 'Hache en diamant', 'Pelle en diamant', 'Houe en diamant' },
	['Toute armure en cuir'] = { 'Chapeau en cuir', 'Tunique en cuir', 'Pantalon en cuir', 'Bottes en cuir' },
	['Toute armure en or'] = { 'Casque en or', 'Plastron en or', 'Jambières en or', 'Bottes en or' },
	['Toute armure en cotte de mailles'] = { 'Casque de mailles', 'Cotte de mailles', 'Jambières de mailles', 'Bottes de mailles' },
	['Toute armure en fer'] = { 'Casque en diamant', 'Plastron en diamant', 'Jambières en diamant', 'Bottes en diamant' },
	['Toute armure en diamant'] = { 'Casque en diamant', 'Plastron en diamant', 'Jambières en diamant', 'Bottes en diamant' },
	['Armure en fer'] = { 'Casque en fer', 'Plastron en fer', 'Jambières en fer', 'Bottes en fer' },
    ['Armure en or'] = { 'Casque en or', 'Plastron en or', 'Jambières en or', 'Bottes en or' },
    ['Armure en mailles'] = { 'Casque de mailles', 'Cotte de mailles', 'Jambières de mailles', 'Bottes de mailles' },
	-- Display names --
	['Champignon brun'] = { title = 'Champignon brun', name = 'Champignon brun' },
	['Bloc de champignon brun'] = { title = 'Bloc de champignon', name = 'Bloc de champignon brun' },
	['Bloc d\'argile'] = { title = 'Bloc d\'argile', name = 'Bloc d\'argile' },
	['Cadre de portail de l\'End'] = { title = 'Portail de l\'End', name = 'Cadre de portail de l\'End' },
	['Pastèque'] = { title = 'Pastèque', name = 'Pastèque' },
	['Brique du Nether'] = { title = 'Brique du Nether', name = 'Brique du Nether' },
	['Champignon rouge'] = { title = 'Champignon rouge', name = 'Champignon rouge' },
	['Bloc de champignon rouge'] = { title = 'Bloc de champignon', name = 'Bloc de champignon rouge' },
	['Bloc de neige'] = { title = 'Bloc de neige', name = 'Bloc de neige' },
	['Bouton en pierre'] = { title = 'Bouton en pierre', name = 'Bouton en pierre' },
    ['Élytres cassées'] = { title = '&eÉlytres', name = 'Élytres cassées' },
    ['Bloc de structure'] = { title = '&d', name = 'Bloc de structure' },
    ['Pomme dorée enchantée'] = { title = '&dPomme dorée enchantée', name = 'Pomme dorée enchantée' },
    ['Disque 13'] = { title = '&b', name = 'Disque 13' },
    ['Disque cat'] = { title = '&b', name = 'Disque cat' },
    ['Disque blocks'] = { title = '&b', name = 'Disque blocks' },
    ['Disque chirp'] = { title = '&b', name = 'Disque chirp' },
    ['Disque far'] = { title = '&b', name = 'Disque far' },
    ['Disque mall'] = { title = '&b', name = 'Disque mall' },
    ['Disque mellohi'] = { title = '&b', name = 'Disque mellohi' },
    ['Disque stal'] = { title = '&b', name = 'Disque stal' },
    ['Disque strad'] = { title = '&b', name = 'Disque strad' },
    ['Disque ward'] = { title = '&b', name = 'Disque ward' },
    ['Disque 11'] = { title = '&b', name = 'Disque 11' },
    ['Disque wait'] = { title = '&b', name = 'Disque wait' },

    -- Armes --
    ['Trident'] = { name = 'Trident', text = '/&7 Dans la main principale :/ &2 1.1 de vitesse d\'attaque/ &2 9 de points d\'attaque'},
	
	-- Potions --
	['Potion banale'] = { name = 'Potion banale', text = '&7Sans effet' },
	['Fiole d\'eau'] = { name = 'Fiole d\'eau', text = '&7Sans effet' },
	['Potion étrange'] = { name = 'Potion étrange', text = '&7Sans effet' },
	['Potion épaisse'] = { name = 'Potion épaisse', text = '&7Sans effet' },
	['Potion non fabricable'] = { name = 'Potion non fabricable', text = '&7Sans effet' },
    ['Potion banale jetable'] = { name = 'Potion banale jetable', text = '&7Sans effet' },
	['Fiole d\'eau jetable'] = { name = 'Fiole d\'eau jetable', text = '&7Sans effet' },
	['Potion étrange jetable'] = { name = 'Potion étrange jetable', text = '&7Sans effet' },
	['Potion épaisse jetable'] = { name = 'Potion épaisse jetable', text = '&7Sans effet' },
	['Potion étrange jetable'] = { name = 'Potion étrange jetable', text = '&7Sans effet' },
	['Potion jetable non fabricable'] = { name = 'Potion jetable non fabricable', text = '&7Sans effet' },
    ['Potion banale persistante'] = { name = 'Potion banale persistante', text = '&7Sans effet' },
	['Fiole d\'eau persistante'] = { name = 'Fiole d\'eau persistante', text = '&7Sans effet' },
	['Potion étrange persistante'] = { name = 'Potion étrange persistante', text = '&7Sans effet' },
	['Potion épaisse persistante'] = { name = 'Potion épaisse persistante', text = '&7Sans effet' },
	['Potion étrange persistante'] = { name = 'Potion étrange persistante', text = '&7Sans effet' },
	['Potion persistante non fabricable'] = { name = 'Potion persistante non fabricable', text = '&7Sans effet' },
	['Flèche spéciale'] = { name = 'Flèche spéciale', text = '&7Sans effet' },
	['Flèche à effet'] = { name = 'Flèche à effet', text = '&7Sans effet' },
	['Flèche à eau'] = { name = 'Flèche à eau', text = '&7Sans effet' },
	['Flèche spéciale non fabricable'] = { name = 'Flèche spéciale non fabricable', text = '&7Sans effet' },
	['Flèche à effet non fabricable'] = { name = 'Flèche à effet non fabricable', text = '&7Sans effet' },

    ['Potion du Maître Tortue'] = { name = 'Potion du Maître Tortue', text = '&cLenteur IV (1:00)/&9Résistance III (1:00)' },
	['Potion du Maître Tortue allongée'] = { name = 'Potion du Maître Tortue', text = '&cLenteur IV (3:00)/&9Résistance III (3:00)' },
	['Potion du Maître Tortue améliorée'] = { name = 'Potion du Maître Tortue', text = '&cLenteur VI (1:00)/&9Résistance IV (1:00)' },
	['Potion du Maître Tortue jetable'] = { name = 'Potion du Maître Tortue jetable', text = '&cLenteur IV (1:00)/&9Résistance IIIV (1:00)' },
	['Potion du Maître Tortue jetable allongée'] = { name = 'Potion du Maître Tortue jetable', text = '&cLenteur IV (3:00)/&9Résistance III (3:00)' },
	['Potion du Maître Tortue jetable améliorée'] = { name = 'Potion du Maître Tortue jetable', text = '&cLenteur VI (1:00)/&9Résistance IV (1:00)' },
	['Potion du Maître Tortue persistante'] = { name = 'Potion du Maître Tortue persistante', text = '&cLenteur IV (0:15)/&9Résistance III (0:15)' },
	['Potion du Maître Tortue persistante allongée'] = { name = 'Potion du Maître Tortue persistante', text = '&cLenteur IV (0:45)/&9Résistance III (0:45)' },
	['Potion du Maître Tortue persistante améliorée'] = { name = 'Potion du Maître Tortue persistante', text = '&cLenteur VI (45:15)/&9Résistance IV (0:15)' },
	['Flèche du Maître Tortue'] = { name = 'Flèche du Maître Tortue', text = '&cLenteur IV (0:07)/&9Résistance III (0:07)' },
	['Flèche du Maître Tortue allongée'] = { name = 'Flèche du Maître Tortue', text = '&cLenteur IV (0:22)/&9Résistance III (0:22)' },
	['Flèche du Maître Tortue améliorée'] = { name = 'Flèche du Maître Tortue', text = '&cLenteur VI (0:07)/&9Résistance IV (0:07)' },

}

-- Tooltip colors --
local yellowTooltips = {
	'Fiole d\'expérience',
	'Tête de Creeper',
	'Élytres endommagées',
	'Tête de dragon',
	'Souffle de dragon',
	'Élytres',
	'Livre enchanté',
	'Tête',
	'Cœur de la mer',
	'Coeur de la mer',
	'Étoile du Nether',
	'Crâne de squelette',
	'Totem d\'immortalité',
	'Crâne de Wither squelette',
	'Tête de zombie',
}
for _, name in ipairs( yellowTooltips ) do
	aliases[name] = { title = '&e', name = name }
end

local aquaTooltips = {
	'Balise',
	'Conduit',
	'Cristal de l\'End',
	'Pomme dorée',
}
for _, name in ipairs( aquaTooltips ) do
	aliases[name] = { title = '&b', name = name }
end

local lightPurpleTooltips = {
	'Bloc de commande en mode Chaîne',
	'Bloc de commande en mode Impulsion',
	'Oeuf de dragon',
	'Bloc de commande en mode Répétition',
	'Bloc de structure',
	'Bloc de puzzle',
}
for _, name in ipairs( lightPurpleTooltips ) do
	aliases[name] = { title = '&d', name = name }
end

-- Animated icons --
local animatedIcons = {
	'Fire',
	'Heat Block',
	'Magma Block',
	'Prismarine',
	'Prismarine Slab',
	'Prismarine Stairs',
	'Prismarine Wall',
	'Sea Lantern',
	'Stonecutter',
}
for _, icon in ipairs( animatedIcons ) do
	aliases[icon] = icon .. '.gif'
end

-- Command blocks are both animated and purple --
local commandBlocks = {
	'Command Block',
	'Chain Command Block',
	'Repeating Command Block',
}
for _, name in ipairs( commandBlocks ) do
	aliases[name] = { title = '&d', name = name .. '.gif' }
end

-- Tools and weapons --
local tools = {
{'en bois', 'Épée', 1.6, 4 },
	{'en pierre', 'Épée', 1.6, 5 },
	{'en fer', 'Épée', 1.6, 4 },
	{'en or', 'Épée', 1.6, 7 },
	{'en diamant', 'Épée', 1.6, 6 },
	
	{'en bois', 'Pioche', 1.2, 2 },
	{'en pierre', 'Pioche', 1.2, 3 },
	{'en fer', 'Pioche', 1.2, 4 },
	{'en or', 'Pioche', 1.2, 2 },
	{'en diamant', 'Pioche', 1.2, 5 },
	
	{'en bois', 'Hache', 0.8, 7 },
	{'en pierre', 'Hache', 0.8, 9 },
	{'en fer', 'Hache', 0.9, 9 },
	{'en or', 'Hache', 1, 7 },
	{'en diamant', 'Hache', 1, 9 },
	
	{'en bois', 'Pelle', 1, 2.5 },
	{'en pierre', 'Pelle', 1, 3.5 },
	{'en fer', 'Pelle', 1, 4.5 },
	{'en or', 'Pelle', 1, 2.5 },
	{'en diamant', 'Pelle', 1, 5.5 },
	
	{'en bois', 'Houe', 1, 1 },
	{'en pierre', 'Houe', 2, 1 },
	{'en fer', 'Houe', 3, 1 },
	{'en or', 'Houe', 1, 1 },
	{'en diamant', 'Houe', 4, 1 }
}

local materialGroups = {}
local toolGroups = {}

for _, toolProps in ipairs( tools ) do
	local aliasName = toolProps[1] .. ' ' .. toolProps[2]
	aliases[aliasName] = { title = aliasName, name = aliasName, text = '/&7When in main hand:/ &2' .. toolProps[3] .. ' Attack Speed/ &2' .. toolProps[4] .. ' Attack Damage' }
	
	local materialGroup = toolProps[1]:lower();
	local toolGroup = toolProps[2]:lower();
	
	if toolProps[2] ~= 'Sword' then
		if materialGroups[materialGroup] == nil then materialGroups[materialGroup] = {} end
		table.insert( materialGroups[materialGroup], aliases[aliasName] )
	end
	if toolGroups[toolGroup] == nil then toolGroups[toolGroup] = {} end
	table.insert( toolGroups[toolGroup], aliases[aliasName] )
end

for materialGroup, items in pairs( materialGroups ) do
	aliases['Any ' .. materialGroup .. ' tools'] = items
end

for toolGroup, items in pairs( toolGroups ) do
	aliases['Any ' .. toolGroup] = items
end

-- Lists of item variants --
local itemVariants = {
	['colorant'] = mw.clone( coloredDyes ),
	['fleur'] = { 'Pissenlit', 'Coquelicot', 'Orchidée bleue', 'Allium', 'Houstonie bleue', 'Tulipe rouge', 'Tulipe orange', 'Tulipe blanche', 'Tulipe rose', 'Marguerite', 'Bleuet', 'Muguet', 'Rose de Wither' },
	['bloc de terre cuite colorée'] = {
		'Terre cuite blanche', 'Terre cuite blanche', 'Terre cuite orange', 'Terre cuite magenta', 'Terre cuite bleu clair', 'Terre cuite jaune',
		'Terre cuite vert clair', 'Terre cuite rose', 'Terre cuite grise', 'Terre cuite gris clair', 'Terre cuite cyan',
		'Terre cuite violette', 'Terre cuite bleue', 'Terre cuite bleue', 'Terre cuite marron', 'Terre cuite marron', 'Terre cuite verte', 'Terre cuite rouge', 'Terre cuite noire', 'Terre cuite noire',
	},
	['champignons'] = { { title = 'Champignons', name = 'Champignon rouge' }, { title = 'Champignons', name = 'Champignon brun' } },
	['grès rouge'] = { 'Grès rouge', 'Grès rouge sculpté', 'Grès rouge poli' },
	['grès'] = { 'Grès', 'Grès sculpté', 'Grès poli' },
	['pierre taillée'] = { 'Pierre taillée', 'Pierre taillée moussue', 'Pierre taillée craquelée', 'Pierre sculptée' },
	['dalle de pierre'] = { 'Dalle en pierre', 'Dalle en grès', 'Dalle en grès rouge', 'Dalle de pierres', 'Dalle en briques', 'Dalle en pierre taillée', 'Dalle en briques du Nether', 'Dalle de quartz', 'Dalle de purpur' },
    ['bloc de quartz'] = { 'Bloc de quartz', 'Bloc de quartz sculpté', 'Pilier de quartz' },
    ['bloc de purpur'] = { 'Bloc de purpur', 'Bloc de purpur sculpté' },
    ['bûche écorcée'] = { 'Bûche de chêne écorcée', 'Bûche de sapin écorcée', 'Bûche de bouleau écorcée', 'Bûche d\'acajou écorcée', 'Bûche d\'acacia écorcée', 'Bûche de chêne noir écorcée' },
    ['bois écorcé'] = { 'Bois de chêne écorcé', 'Bois de sapin écorcé', 'Bois de bouleau écorcé', 'Bois d\'acajou écorcé', 'Bois d\'acacia écorcé', 'Bois de chêne noir écorcé' },
    ['béton en poudre'] = { 'Béton blanc en poudre', 'Béton blanc en poudre', 'Béton orange en poudre', 'Béton magenta en poudre', 'Béton bleu clair en poudre', 'Béton jaune en poudre', 'Béton vert clair en poudre', 'Béton rose en poudre', 'Béton gris en poudre', 'Béton gris clair en poudre', 'Béton cyan en poudre', 'Béton violet en poudre', 'Béton bleu en poudre', 'Béton bleu en poudre', 'Béton marron en poudre', 'Béton marron en poudre', 'Béton vert en poudre', 'Béton rouge en poudre', 'Béton noir en poudre', 'Béton noir en poudre' },
}
table.insert( itemVariants['colorant'], 1, 'Teinture blanche' )
table.insert( itemVariants['colorant'], 1, 'Poudre d\'os' )
for aliasName, aliasItems in pairs( itemVariants ) do
	aliases[(tout[aliasName] or 'Tout') .. ' ' .. aliasName] = aliasItems
	aliases[(meme[aliasName] or 'Même') .. ' ' .. aliasName] = aliasItems
end

-- Discs --
local discs = { '13', 'Cat', 'Blocks', 'Chirp', 'Far', 'Mall', 'Mellohi', 'Stal', 'Strad', 'Ward', '11', 'Wait' }
for _, disc in ipairs( discs ) do
	local name = 'Music Disc ' .. disc
	aliases[name] = { title = '&bMusic Disc', name = name, text = '&7C418 - ' .. disc }
end

-- Damaged armor, tools and weapons --
local damagedItems = {
	'Arrow Loaded Crossbow',
	'Bow',
	'Carrot on a Stick',
	'Chainmail Boots',
	'Chainmail Chestplate',
	'Chainmail Helmet',
	'Chainmail Leggings',
	'Crossbow',
	'Diamond Axe',
	'Diamond Boots',
	'Diamond Chestplate',
	'Diamond Helmet',
	'Diamond Hoe',
	'Diamond Leggings',
	'Diamond Pickaxe',
	'Diamond Shovel',
	'Diamond Sword',
	'Elytra',
	'Firework Loaded Crossbow',
	'Fishing Rod',
	'Flint and Steel',
	'Golden Axe',
	'Golden Boots',
	'Golden Chestplate',
	'Golden Helmet',
	'Golden Hoe',
	'Golden Leggings',
	'Golden Pickaxe',
	'Golden Shovel',
	'Golden Sword',
	'Iron Axe',
	'Iron Boots',
	'Iron Chestplate',
	'Iron Helmet',
	'Iron Hoe',
	'Iron Leggings',
	'Iron Pickaxe',
	'Iron Shovel',
	'Iron Sword',
	'Leather Boots',
	'Leather Tunic',
	'Leather Cap',
	'Leather Pants',
	'Shears',
	'Shield',
	'Stone Axe',
	'Stone Hoe',
	'Stone Pickaxe',
	'Stone Shovel',
	'Stone Sword',
	'Wooden Axe',
	'Wooden Hoe',
	'Wooden Pickaxe',
	'Wooden Shovel',
	'Wooden Sword'
}
for _, item in ipairs( damagedItems ) do
	local name = 'Damaged ' .. item
	aliases[name] = { title = item, name = name }
end

-- Banners and colored items --
local patterns = {
	'Base Dexter Canton',
	'Base',
	'Base Gradient',
	'Base Indented',
	'Base Sinister Canton',
	'Bend',
	'Bend Sinister',
	'Bordure',
	'Bordure Indented',
	'Chevron',
	'Chief Dexter Canton',
	'Chief',
	'Chief Indented',
	'Chief Sinister Canton',
	'Creeper Charge',
	'Cross',
	'Fess',
	'Field Masoned',
	'Flower Charge',
	'Globe',
	'Gradient',
	'Inverted Chevron',
	'Lozenge',
	'Thing',
	'Pale',
	'Pale Dexter',
	'Pale Sinister',
	'Paly',
	'Per Bend',
	'Per Bend Inverted',
	'Per Bend Sinister',
	'Per Bend Sinister Inverted',
	'Per Fess',
	'Per Fess Inverted',
	'Per Pale',
	'Per Pale Inverted',
	'Roundel',
	'Saltire',
	'Skull Charge'
}
local colors = {
	'White',
	'Orange',
	'Magenta',
	'Light Blue',
	'Yellow',
	'Lime',
	'Pink',
	'Gray',
	'Light Gray',
	'Cyan',
	'Purple',
	'Blue',
	'Brown',
	'Green',
	'Red',
	'Black'
}

-- Firework Stars --
local fireworkStar = {}
for _, color in ipairs( colors ) do
	local name = color .. ' Firework Star'
	aliases[name] = { title = 'Firework Star', name = name, text = '&7' .. color }
	table.insert( fireworkStar, aliases[name] )
	for _, pattern in ipairs( patterns ) do
		name = color .. ' ' .. pattern .. ' Banner'
		aliases[name] = { title = 'Banner', name = name, text = '&7' .. color .. ' ' .. pattern }
	end
end
aliases['Any Firework Star'] = fireworkStar
aliases['Matching Firework Star'] = fireworkStar

-- Items that use the sixteen colors --
local coloredItems = {
	'Balloon',
	'Banner',
	'Bed',
	'Carpet',
	'Concrete',
	'Concrete Powder',
	'Glazed Terracotta',
	'Hardened $1 Stained Glass',
	'Hardened $1 Stained Glass Pane',
	'Shield',
	'Shulker Box',
	'Stained Glass',
	'Stained Glass Pane',
	'Wool'
}
for _, item in ipairs( coloredItems ) do
	local coloredItemAliases = {}
	local itemName = ''
	
	for _, color in ipairs( colors ) do
		if item:find( '%$1' ) then
			itemName = string.gsub( item, '%$1', color )
		else
			itemName = color .. ' ' .. item
		end
		table.insert( coloredItemAliases, itemName )
	end
	
	item = item:gsub( '%$1 ', '')
	aliases['Any ' .. item] = coloredItemAliases
	aliases['Matching ' .. item] = coloredItemAliases
end
-- list of all potions with no effects
local noEffects = {
	'Water Bottle',
	'Awkward Potion',
	'Thick Potion',
	'Mundane Potion',
	'Uncraftable Potion',
	'Splash Water Bottle',
	'Awkward Splash Potion',
	'Thick Splash Potion',
	'Mundane Splash Potion',
	'Uncraftable Splash Potion',
	'Lingering Water Bottle',
	'Awkward Lingering Potion',
	'Thick Lingering Potion',
	'Mundane Lingering Potion',
	'Uncraftable Lingering Potion',
	'Tipped Arrow',
	'Arrow of Splashing',
	'Uncraftable Tipped Arrow',
}
for _, name in ipairs(noEffects) do
	aliases[name] = { name = name, text = '&7No effects' }
end

-- start these lists with the no effect items as names are not normal
local potionItems = {
	['Potion'] = {
		aliases['Water Bottle'],
		aliases['Awkward Potion'],
		aliases['Thick Potion'],
		aliases['Mundane Potion'],
	},
	['Splash Potion'] = {
		aliases['Splash Water Bottle'],
		aliases['Awkward Splash Potion'],
		aliases['Thick Splash Potion'],
		aliases['Mundane Splash Potion'],
	},
	['Lingering Potion'] = {
		aliases['Lingering Water Bottle'],
		aliases['Awkward Lingering Potion'],
		aliases['Thick Lingering Potion'],
		aliases['Mundane Lingering Potion'],
	},
	['Tipped Arrow'] = {
		aliases['Arrow of Splashing'],
	},
}

-- Potions --
local effects = {
	-- durations are in the order normal, extended, enhanced
	{name = 'Regeneration', effect = '&9Regeneration', enhanced = 'II',
		durations = { normal = { '0:45', '1:30', '0:22' }, lingering = { '0:11', '0:22', '0:05' }, arrow = { '0:05', '0:11', '0:02' }}},
	{ name = 'Swiftness', effect = '&9Speed', enhanced = 'II', 
		durations = { normal = { '3:00', '8:00', '1:30' }, lingering = { '0:45', '2:00', '0:22' }, arrow = { '0:22', '1:00', '0:11' }}},
	{ name = 'Fire Resistance', effect = '&9Fire Resistance', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}},
	{ name = 'Poison', effect = '&cPoison', enhanced = 'II', 
		durations = { normal = { '0:45', '1:30', '0:21' }, lingering = { '0:11', '0:22', '0:05' }, arrow = { '0:05', '0:11', '0:02' }}},
	{ name = 'Healing', effect = '&9Instant Health', enhanced = 'II' },
	{ name = 'Night Vision',    effect = '&9Night Vision',    durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}},
	{ name = 'Weakness',        effect = '&cWeakness',        durations = { normal = { '1:30', '4:00' }, lingering = { '0:22', '1:00' }, arrow = { '0:11', '0:30' }}},
	{ name = 'Strength', effect = '&9Strength', enhanced = 'II', 
		durations = { normal = { '3:00', '8:00', '1:30'}, lingering = {'0:45', '2:00', '0:22'}, arrow = { '0:22', '1:00', '0:11' }}},
	{ name = 'Slowness', effect = '&cSlowness', enhanced = 'IV', 
		durations = { normal = { '1:30', '4:00', '0:20'}, lingering = {'0:22', '1:00', '0:05'}, arrow = { '0:11', '0:30', '0:02' }}},
	{ name = 'Leaping', effect = '&9Jump Boost', enhanced = 'II', 
		durations = { normal = { '3:00', '8:00', '1:30' }, lingering = {'0:45', '2:00', '0:22'}, arrow = { '0:22', '1:00', '0:11' }}},
	{ name = 'Harming', effect = '&cInstant Damage', enhanced = 'II' },
	{ name = 'Water Breathing', effect = '&9Water Breathing', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}},
	{ name = 'Invisibility',    effect = '&9Invisibility',    durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}},
	{ name = 'Slow Falling',    effect = '&9Slow Falling',    durations = { normal = { '1:30', '4:00' }, lingering = { '0:22', '1:00' }, arrow = { '0:11', '0:30' }}},
	{ name = 'Luck',  effect = '&9Luck',   durations = { normal = { '5:00' }, lingering = { '1:15' }, arrow = { '0:37' }}},
	{ name = 'Decay', effect = '&cWither', durations = { normal = { '0:40' }, lingering = { '0:10' }, arrow = { '0:05' }}},
	{ name = 'the Turtle Master', text = '&cSlowness IV ($1)/&9Resistance III ($1)', enhanced = '&cSlowness VI ($1)/&9Resistance IV ($1)',
		durations = { normal = { '0:20', '0:40', '0:20' }, lingering = { '0:15', '0:45', '0:15' }, arrow = {  '0:07', '0:22', '0:07' }}}
}
local types = {
	{name = 'Potion',           durations = 'normal',    text = 'Potion of '},
	{name = 'Splash Potion',    durations = 'normal',    text = 'Splash Potion of '},
	{name = 'Lingering Potion', durations = 'lingering', text = 'Lingering Potion of '},
	{name = 'Tipped Arrow',     durations = 'arrow',     text = 'Arrow of '},
}

for _, effect in ipairs(effects) do
	for _, type in ipairs(types) do
		-- form name, it will be reused
		local name = type.text .. effect.name
		
		-- if we have durations, add times
		if effect.durations then
			local durations = effect.durations[type.durations]
			
			-- turtle master is weird, so just do a fancy string replacement
			if effect.text then
				aliases[name] = { name = name, text = string.gsub( effect.text, '%$1', durations[1] ) }
				aliases[name .. ' Extended'] = { name = name, text = string.gsub( effect.text, '%$1', durations[2] ) }
				aliases[name .. ' Enhanced'] = { name = name, text = string.gsub( effect.enhanced, '%$1', durations[3] ) }
			else
				-- we always have normal
				aliases[name] = { name = name, text = string.format( '%s (%s)', effect.effect, durations[1] ) }
			
				-- ensure we have extended
				if durations[2] then
					aliases[name .. ' Extended'] = { name = name, text = string.format( '%s (%s)', effect.effect, durations[2] ) }
					
					-- and enhanced, currently there is nothing with a duration that can be extended but not enhanced
					if effect.enhanced then
						aliases[name .. ' Enhanced'] = { name = name, text = string.format( '%s %s (%s)', effect.effect, effect.enhanced, durations[3] ) }
					end
				end
			end
		else
			-- otherwise its just effect, currently every potion with no duration can be enhanced
			aliases[name] = { name = name, text = effect.effect}
			aliases[name .. ' Enhanced'] = { name = name, text = effect.effect .. ' ' .. effect.enhanced }
		end
		
		-- add the base potion to the any list
		table.insert(potionItems[type.name], aliases[name])
	end
end

-- build the any lists
for item, potionAliases in pairs( potionItems ) do
	aliases['Any ' .. item] = potionAliases
	aliases['Matching ' .. item] = potionAliases
end

-- Wood --
local woods = {
	'Oak',
	'Spruce',
	'Birch',
	'Jungle',
	'Acacia',
	'Dark Oak'
}
local woodItems = {
	'Wood',
	'Log',
	'Planks',
	'Fence Gate',
	'Boat',
	'wood Door',
	'wood Fence',
	'wood Button',
	'wood Pressure Plate',
	'wood Trapdoor',
	'wood Slab',
	'wood Stairs',
	'Stripped $1 Log',
	'Stripped $1 Wood',
	'Wood Planks',
	'Wood Slab',
	'Wood Stairs',
}

for _, item in ipairs( woodItems ) do
	local itemName = ''
	local woodAliases = {}
	
	for _, wood in ipairs( woods ) do
		if item:find('wood') then
			itemName = string.gsub( item, 'wood', wood )
		elseif item:find('%$1') then
			itemName = string.gsub( item, '%$1', wood )
		else
			itemName = wood .. ' ' .. item
		end
		table.insert( woodAliases, itemName )
	end
	
	item = string.gsub( item, '%$1 ', '' )
	aliases['Any ' .. item] = woodAliases
	aliases['Matching ' .. item] = woodAliases
end


-- Bedrock Edition Items --
local editionItems = {
	BE = {
		'Bow',
		'Bucket of Pufferfish',
		'Bucket of Tropical Fish',
		'Spawn Cat',
		'Chest',
		'Cobblestone Wall',
		'Ender Chest',
		'Glass Pane',
		'Horn Coral Block',
		'Iron Bars',
		'Lava',
		'Flowing Lava',
		'Minecart with Command Block',
		'Mossy Cobblestone Wall',
		'Oak Fence Gate',
		'Observer',
		'Spawn Panda',
		'Peony',
		'Rose Bush',
		'Scaffolding',
		'Stonecutter',
	},
	LCE = {
		'Peony',
		'Rose Bush'
	}
}
for edition, items in pairs(editionItems) do
	for _, item in ipairs(items) do
		local name = item .. ' ' .. edition
		aliases[name] = { title = item, name = name }
	end
end

return aliases