This tool is a graphical user application (although very ugly) that is needed to configure my custom items plug-in (which items you want, which textures to give them, and many other features).
The Editor.jar file can be found here (on Spigot). If you have a working Java installation on your home computer, you should be able to run it by downloading Editor.jar and double-clicking it. If not, you can either install Java or grab a native Editor version from
Adding new textures to a minecraft server isn't really possible without a resourcepack. Writing resourcepacks is generally a nasty task, and is even more terrifying when you need to work with custom items.
Spoiler: Example of such a resourcepack file
{
"parent": "item/handheld",
"textures": {
"layer0": "item/stone_hoe"
},
"overrides": [
{ "predicate": {"damaged": 0, "damage": 0.007633587786259542}, "model": "customitems/steel_bar"},
{ "predicate": {"damaged": 0, "damage": 0.015267175572519083}, "model": "customitems/iron_bar"},
{ "predicate": {"damaged": 0, "damage": 0.022900763358778626}, "model": "customitems/iron_scrap"},
{ "predicate": {"damaged": 0, "damage": 0.030534351145038167}, "model": "customitems/steel_scrap"},
{ "predicate": {"damaged": 0, "damage": 0.03816793893129771}, "model": "customitems/withered_iron_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.04580152671755725}, "model": "customitems/withered_iron_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.05343511450381679}, "model": "customitems/mithril_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.061068702290076333}, "model": "customitems/mithril_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.06870229007633588}, "model": "customitems/aetherium_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.07633587786259542}, "model": "customitems/aetherium_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.08396946564885496}, "model": "customitems/enderite_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.0916030534351145}, "model": "customitems/enderite_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.09923664122137404}, "model": "customitems/steel_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.10687022900763359}, "model": "customitems/lead_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.11450381679389313}, "model": "customitems/lead_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.12213740458015267}, "model": "customitems/withered_bone"},
{ "predicate": {"damaged": 0, "damage": 0.1297709923664122}, "model": "customitems/powered_metheorite"},
{ "predicate": {"damaged": 0, "damage": 0.13740458015267176}, "model": "customitems/titanium_ingot"},
{ "predicate": {"damaged": 0, "damage": 0.1450381679389313}, "model": "customitems/titanium_scraps"},
{ "predicate": {"damaged": 0, "damage": 0.15267175572519084}, "model": "customitems/iron_plate"},
{ "predicate": {"damaged": 0, "damage": 0.16030534351145037}, "model": "customitems/steel_plate"},
{ "predicate": {"damaged": 0, "damage": 0.16793893129770993}, "model": "customitems/lead_plate"},
{ "predicate": {"damaged": 0, "damage": 0.17557251908396945}, "model": "customitems/mithril_plate"},
{ "predicate": {"damaged": 0, "damage": 0.183206106870229}, "model": "customitems/withered_iron_plate"},
{ "predicate": {"damaged": 0, "damage": 0.19083969465648856}, "model": "customitems/aetherium_plate"},
{ "predicate": {"damaged": 0, "damage": 0.1984732824427481}, "model": "customitems/enderite_plate"},
{ "predicate": {"damaged": 0, "damage": 0.20610687022900764}, "model": "customitems/titanium_plate"},
{ "predicate": {"damaged": 0, "damage": 0.21374045801526717}, "model": "customitems/netherite_plate"},
{ "predicate": {"damaged": 0, "damage": 0.22137404580152673}, "model": "customitems/withered_iron_bar"},
{ "predicate": {"damaged": 0, "damage": 0.22900763358778625}, "model": "customitems/mithril_bar"},
{ "predicate": {"damaged": 0, "damage": 0.2366412213740458}, "model": "customitems/lead_bar"},
{ "predicate": {"damaged": 0, "damage": 0.24427480916030533}, "model": "customitems/netherite_bar"},
{ "predicate": {"damaged": 0, "damage": 0.25190839694656486}, "model": "customitems/enderite_bar"},
{ "predicate": {"damaged": 0, "damage": 0.2595419847328244}, "model": "customitems/aetherium_bar"},
{ "predicate": {"damaged": 0, "damage": 0.26717557251908397}, "model": "customitems/titanium_bar"},
{ "predicate": {"damaged": 0, "damage": 0.2748091603053435}, "model": "customitems/steel_handgrip"},
{ "predicate": {"damaged": 0, "damage": 0.2824427480916031}, "model": "customitems/enchanted_handgrip"},
{ "predicate": {"damaged": 0, "damage": 0.2900763358778626}, "model": "customitems/guardian_plated_handgrip"},
{ "predicate": {"damaged": 0, "damage": 0.29770992366412213}, "model": "customitems/vorpal_handgrip"},
{ "predicate": {"damaged": 0, "damage": 0.3053435114503817}, "model": "customitems/aetherium_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.31297709923664124}, "model": "customitems/enderite_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.32061068702290074}, "model": "customitems/lead_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.3282442748091603}, "model": "customitems/mithril_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.33587786259541985}, "model": "customitems/netherite_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.3435114503816794}, "model": "customitems/steel_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.3511450381679389}, "model": "customitems/titanium_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.35877862595419846}, "model": "customitems/withered_iron_axehead"},
{ "predicate": {"damaged": 0, "damage": 0.366412213740458}, "model": "customitems/comp_block_lapis"},
{ "predicate": {"damaged": 0, "damage": 0.37404580152671757}, "model": "customitems/comp_block_gold"},
{ "predicate": {"damaged": 0, "damage": 0.3816793893129771}, "model": "customitems/comp_block_redstone"},
{ "predicate": {"damaged": 0, "damage": 0.3893129770992366}, "model": "customitems/comp_block_coal"},
{ "predicate": {"damaged": 0, "damage": 0.3969465648854962}, "model": "customitems/comp_block_iron"},
{ "predicate": {"damaged": 0, "damage": 0.40458015267175573}, "model": "customitems/comp_block_diamond"},
{ "predicate": {"damaged": 0, "damage": 0.4122137404580153}, "model": "customitems/comp_block_emerald"},
{ "predicate": {"damaged": 0, "damage": 0.4198473282442748}, "model": "customitems/comp_block_cobblestone"},
{ "predicate": {"damaged": 0, "damage": 0.42748091603053434}, "model": "customitems/comp_block_andesite"},
{ "predicate": {"damaged": 0, "damage": 0.4351145038167939}, "model": "customitems/comp_block_granite"},
{ "predicate": {"damaged": 0, "damage": 0.44274809160305345}, "model": "customitems/comp_block_diorite"},
{ "predicate": {"damaged": 0, "damage": 0.45038167938931295}, "model": "customitems/comp_block_stone"},
{ "predicate": {"damaged": 0, "damage": 0.4580152671755725}, "model": "customitems/comp_block_blackstone"},
{ "predicate": {"damaged": 0, "damage": 0.46564885496183206}, "model": "customitems/comp_block_basalt"},
{ "predicate": {"damaged": 0, "damage": 0.4732824427480916}, "model": "customitems/comp_block_sand"},
{ "predicate": {"damaged": 0, "damage": 0.48091603053435117}, "model": "customitems/comp_block_netherrack"},
{ "predicate": {"damaged": 0, "damage": 0.48854961832061067}, "model": "customitems/comp_block_gravel"},
{ "predicate": {"damaged": 0, "damage": 0.4961832061068702}, "model": "customitems/comp_block_obsidian"},
{ "predicate": {"damaged": 0, "damage": 0.5038167938931297}, "model": "customitems/comp_block_crying"},
{ "predicate": {"damaged": 1, "damage": 0}, "model": "item/stone_hoe"}
]
}
When I would have forgotten a single quote or curly bracket in the example file above, it wouldn't work at all. This GUI will write the entire resourcepack, so that you don't need to do it yourself.
First of all, designing and implementing a good GUI takes a lot of time. Big companies have an entire art team for this. But, this plug-in is primarily maintained by a college student in this spare time, so time is limited. Also, I used this project to try my own GUI library, and... well... I discovered some flaws while doing so. Improving it would require rewriting it all in a better GUI library, which would probably take more than 100 hours.