General mod configuration (/config/cases.cfg)
Default configuration: # Configuration file drops { # [range: 0 ~ 2147483647, default: 3] I:"Maximum case types at once"=3 # [range: 1 ~ 2147483647, default: 5] I:"Maximum cases at once"=5 # [range: 0.0 ~ 1.0, default: 0.1] S:"Mob drop chance"=0.1 # [default: true] B:"Mobs drop cases on death"=true # [default: true] B:"Regular case drops"=true # [range: 0 ~ 2147483647, default: 60000] I:"Regular cases timeout (in ticks)"=60000 } opening { # [default: true] B:"Announce case opening in chat"=true # [default: true] B:"Item content info on tooltip"=true # [range: 0 ~ 2147483647, default: 3] I:"Item rarity factor"=3 # [range: 50 ~ 2147483647, default: 200] I:"Maximum spin length"=200 }
Cases configuration (custom json files in /config/cases/)
Example configuration (/config/cases/pickaxes.json) { "displayName": { "en_us": "Pickaxe Case", "ru_ru": "Кейс с кирками" }, "contents": [ {"action": "collect", "type": "pickaxe"}, {"action": "extended", "type": "minecraft:wool", "rarity": 1} ], "color": "#555555" }
Important note: Json file name (your_case.json) is an internal name of your case that’s being used for mod’s internal purposes. It should only contain latin letters, numbers, dots and underscores.
Let’s look closer at our example:
- The “displayName” property is a display name for your case. It coud be either a string or a json object:
“Pickaxe case” <– default value for every language
OR
{
“en_us”: “Pickaxe case”, <– default value for every language except those listed below
“ru_ru”: “Кейс с кирками”
}
- The “color” property defines item overlay color
- The “contents” property is the most hardest part here. It consists of a multiple json objects where each one represents a so-called ‘action’ that can add/remove single/multiple items to a case. There are six different actions:
- “single” – adds a single item. It has several extra properties such as:
- “type” – contains item id (e.g. minecraft:apple),
- “meta” – an item’s metadata (for items like colored wool where meta defines wool color or planks where meta defines tree type. Defaults to ‘0’),
- “amount” [Could be either a single number or a range (for random item amount. e.g. ‘1-10’ will drop from one to ten items] Defaults to ‘1’),
- “nbt” – an item’s extra data (so-called ‘Named Binary Tag’ which is moustly used for items that store energy or mana, etc.)
- “enchant” – a chance for a tool to have a random enchantment (minimal (and default) value: 0, maximal: 1)
- “rarity”- an integer value from 0 to 4 that says how rare the item is.
- “extended” – works the same way as “single” but has no “meta” property because it adds all the item’s variants to the case at once.
- “oredict” – this one is similar to “extended” but it finds item by their ‘oredict name’ instead of item id. It also has several builtin values such as ‘ingos’ for every ingot, ‘gems’ for every gem, ‘ores’ for every ore and ‘ingotBlocks’ for every ingot block. (e.g. “type”: “ingot”)
- “collect” – this one is similar to “extended” and “oredict” but can only add equipment, foodstuffs and enchantment books. Possible values: ‘hoe’, ‘pickaxe’, ‘sword’, ‘shovel’, ‘axe’, ‘boots’ (boot), ‘leggings’ (legs), ‘chestplate’ (chest), ‘helmet’ (helm), ‘food’, ‘enchantBooks’
- “extract” – extract contents from another case. (“case”: “your_case_name_here”). This one is useful when you want to create a case that contains all the tools and armors, etc.
- “exclude” – this one is opposite to “single” because it removes specified item from the list.
- “single” – adds a single item. It has several extra properties such as:
Important note: Your cases’ configuration will be synchronized between your server and players’ clients so you only need to put it on a server side.