Module:Inventory slot/Aliases

De WikiField
< Module:Inventory slot
Révision datée du 5 janvier 2020 à 20:00 par Squirkiz (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

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' },
	['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' },
	
	-- Display names --
	['Élytres cassées'] = { title = '&eÉlytres', name = 'Élytres cassées' },
	['Bloc d\'argile'] = { title = 'Bloc d\'argile', name = 'Bloc d\'argile' },
	['Clay (ball)'] = { title = 'Clay', name = 'Clay (ball)' },
	['Pomme dorée enchantée'] = { title = '&dPomme dorée enchantée', name = 'Pomme dorée enchantée' },
	['Banner Pattern Flower'] = { title = 'Banner Pattern', name = 'Banner Pattern', text = '&7Flower Charge'},
	['Banner Pattern Flower Charge'] = { title = 'Banner Pattern', name = 'Banner Pattern', text = '&7Flower Charge'},
	['Banner Pattern Creeper Charge'] = { title = '&eBanner Pattern', name = 'Banner Pattern', text = '&7Creeper Charge'},
	['Banner Pattern Creeper'] = { title = '&eBanner Pattern', name = 'Banner Pattern', text = '&7Creeper Charge'},
	['Banner Pattern Bordure Indented'] = { title = 'Banner Pattern', name = 'Banner Pattern', text = '&7Bordure Indented'},
	['Banner Pattern Field Masoned'] = { title = 'Banner Pattern', name = 'Banner Pattern', text = '&7Field Masoned'},
	['Banner Pattern Skull Charge'] = { title = '&eBanner Pattern', name = 'Banner Pattern', text = '&7Skull Charge'},
	['Banner Pattern Skull'] = { title = '&eBanner Pattern', name = 'Banner Pattern', text = '&7Skull Charge'},
	['Banner Pattern Thing'] = { title = '&dBanner Pattern', name = 'Banner Pattern', text = '&7Thing'},
	['Banner Pattern Globe'] = { title = 'Banner Pattern', name = 'Banner Pattern', text = '&7Globe'},
	['Bouton en pierre'] = { title = 'Bouton en pierre', name = 'Bouton en pierre' },
	['Wooden Button'] = { title = 'Button', name = 'Oak Button'},
	['Arrow Loaded Crossbow'] = { title = 'Crossbow', name = 'Arrow Loaded Crossbow' },
	['Firework Loaded Crossbow'] = { title = 'Crossbow', name = 'Firework Loaded Crossbow' },
	['Illager Banner'] = { title = '&6&oIllager Banner', name = 'Illager Banner', text = 
		'&7Cyan Lozenge/&7Light Gray Base/&7Gray Pale/&7Light Gray Bordure/&7Black Fess/&7Light Gray Per Fess'},
	['Jigsaw Block'] = { title = '&dJigsaw Block', name = 'Jigsaw Block' },

	-- Weapons --
	['Trident'] = { name = 'Trident', text = '/&7 Dans la main principale :/&#160;&2 1.1 de vitesse d\'attaque/&#160;&2 9 de points d\'attaque'},

	-- Bedrock and Education Edition display names --
	['Elytra Wings'] = { title = 'Elytra Wings', name = 'Elytra' },
	['Cooked Beef'] = { title = 'Cooked Beef', name = 'Steak' },
	['Map (no markers)'] = { title = 'Map', name = 'Map', text = 'Display Markers: &cNo' },
	['Locator Map'] = { title = 'Map', name = 'Map', text = 'Display Markers: &aYes' },

	-- Chemistry --
	['Lead (element)'] = { title = 'Lead', name = 'Lead (element)' },
	['Water (compound)'] = { title = 'Water', name = 'Water (compound)' },
	['Chloride'] = { 'Calcium Chloride', 'Cerium Chloride', 'Mercuric Chloride', 'Potassium Chloride', 'Tungsten Chloride' },
	['Sparkler'] = { 'Orange Sparkler', 'Blue Sparkler', 'Red Sparkler', 'Purple Sparkler', 'Green Sparkler' },
	['Matching Chloride'] = { 'Cerium Chloride', 'Mercuric Chloride', 'Potassium Chloride', 'Tungsten Chloride' },
	['Matching Colored Torch'] = { 'Blue Torch', 'Red Torch', 'Purple Torch', 'Green Torch' },
	['Matching Glow Stick'] = { 'White Glow Stick', 'Orange Glow Stick', 'Magenta Glow Stick', 'Light Blue Glow Stick',
		'Yellow Glow Stick', 'Lime Glow Stick', 'Pink Glow Stick', 'Gray Glow Stick', 'Cyan Glow Stick',
		'Purple Glow Stick', 'Blue Glow Stick', 'Brown Glow Stick', 'Green Glow Stick', 'Red Glow Stick' },
}

-- 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 = {
	'Dragon Egg',
	'Structure Block',
}
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:/&#160;&2' .. toolProps[3] .. ' Attack Speed/&#160;&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 ),
	['Colored Dye'] = coloredDyes,
	['Dyed Wool'] = {
		'Orange Wool', 'Magenta Wool', 'Light Blue Wool', 'Yellow Wool', 'Lime Wool',
		'Pink Wool', 'Gray Wool', 'Light Gray Wool', 'Cyan Wool', 'Purple Wool',
		'Blue Wool', 'Brown Wool', 'Green Wool', 'Red Wool', 'Black Wool',
	},
	['Dyed Bed'] = {
		'Orange Bed', 'Magenta Bed', 'Light Blue Bed', 'Yellow Bed', 'Lime Bed',
		'Pink Bed', 'Gray Bed', 'Light Gray Bed', 'Cyan Bed', 'Purple Bed',
		'Blue Bed', 'Brown Bed', 'Green Bed',
		'Red Bed', 'Black Bed',
	},
	['Dyed Carpet'] = {
		'Orange Carpet', 'Magenta Carpet', 'Light Blue Carpet', 'Yellow Carpet', 'Lime Carpet',
		'Pink Carpet', 'Gray Carpet', 'Light Gray Carpet', 'Cyan Carpet', 'Purple Carpet',
		'Blue Carpet', 'Brown Carpet', 'Green Carpet',
		'Red Carpet', 'Black Carpet',
	},
	['Dyed Terracotta'] = {
		'White Terracotta', 'White Terracotta', 'Orange Terracotta', 'Magenta Terracotta', 'Light Blue Terracotta',
		'Yellow Terracotta', 'Lime Terracotta', 'Pink Terracotta', 'Gray Terracotta', 'Light Gray Terracotta',
		'Cyan Terracotta', 'Purple Terracotta', 'Blue Terracotta', 'Brown Terracotta',
		'Brown Terracotta', 'Green Terracotta', 'Red Terracotta', 'Black Terracotta',
	},
	['fleur'] = { 'Pissenlit', 'Coquelicot', 'Orchidée bleue', 'Allium', 'Houstonie bleue', 'Tulipe rouge', 'Tulipe orange', 'Tulipe blanche', 'Tulipe rose', 'Marguerite', 'Bleuet', 'Muguet', 'Rose de Wither' },
	['champignons'] = { { title = 'Champignons', name = 'Champignon rouge' }, { title = 'Champignons', name = 'Champignon brun' } },
	['Quartz Block'] = { 'Block of Quartz', 'Chiseled Quartz Block', 'Quartz Pillar' },
	['Red Sandstone'] = { 'Red Sandstone', 'Chiseled Red Sandstone', 'Smooth Red Sandstone' },
	['Sandstone'] = { 'Sandstone', 'Chiseled Sandstone', 'Smooth Sandstone' },
	['Stone Bricks'] = { 'Stone Bricks', 'Mossy Stone Bricks', 'Cracked Stone Bricks', 'Chiseled Stone Bricks' },
	['Stone Slab'] = { 'Smooth Stone Slab', 'Sandstone Slab', 'Cobblestone Slab', 'Brick Slab', 'Stone Brick Slab', 'Nether Brick Slab', 'Quartz Slab' },
	['Purpur Block'] = { 'Purpur Block', 'Purpur Pillar' },
	['Stone'] = { 'Stone', 'Andesite', 'Granite', 'Diorite', 'Polished Andesite', 'Polished Granite', 'Polished Diorite' },
	['Tulip'] = { 'Red Tulip', 'Orange Tulip', 'White Tulip', 'Pink Tulip' },
}
table.insert( itemVariants['colorant'], 1, 'White Dye' )
for aliasName, aliasItems in pairs( itemVariants ) do
	aliases['Any ' .. aliasName] = aliasItems
	aliases['Matching ' .. 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 = {
	'blanc',
	'blanc',
	'orange',
	'magenta',
	'bleu clair',
	'jaune',
	'vert clair',
	'rose',
	'gris',
	'gris clair',
	'cyan',
	'violet',
	'bleu',
	'bleu',
	'marron',
	'marron',
	'vert',
	'rouge',
	'noir',
	'noir'
}

-- 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['Tout ' .. item] = potionAliases
	aliases['Même ' .. item] = potionAliases
end

-- Wood --
local woods = {
	'de chêne',
	'de sapin',
	'de bouleau',
	'd\'acajou',
	'd\'acacia',
	'de chêne noir'
}
local woodItems = {
	'barrière en bois',
	'bateau',
	'bateau en bois',
	'bois',
	'bois $1 écorcé',
	'bouton en bois',
	'bûche',
	'bûche $1 écorcée',
	'dalle en bois',
	'escalier en bois',
	'escaliers en bois',
	'porte en bois',
	'pancarte en bois',
	'planches',
	'plaque de pression en bois',
	'portillon en bois',
	'trappe en bois',
}
-- "Tout" accordé différemment dans certains cas
local tout = {
	['barrière en bois'] = 'Toute',
	['bûche'] = 'Toute',
	['bûche écorcée'] = 'Toute',
	['dalle en bois'] = 'Toute',
	['escaliers en bois'] = 'Tous',
	['pancarte en bois'] = 'Toute',
	['planches'] = 'Toutes',
	['plaque de pression en bois'] = 'Toute',
	['porte en bois'] = 'Toute',
	['trappe en bois'] = 'Toute',
}
-- "Même" accordé différemment dans certains cas
local meme = {
	['escaliers en bois'] = 'Mêmes',
	['planches'] = 'Mêmes',
}

for _, item in ipairs( woodItems ) do
	local itemName = item
	local woodAliases = {}
	for _, wood in ipairs( woods ) do
		table.insert( woodAliases, mw.ustring.gsub( itemName, '^%a', mw.ustring.upper ) .. ' ' .. wood )
	end
	aliases[(tout[item] or 'Tout') .. ' ' .. item] = woodAliases
	aliases[(meme[item] or 'Même') .. ' ' .. 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