Open queer opened 5 years ago
This would basically be what makes custom items actually work in a nice manner. The main problem with creating custom items is that the Minecraft server is pretty potato when it comes to things like updating an item's name / lore. It WORKS, but it's not always immediately updated on the client, among other potential issues. This is further complicated by wanting to rebalance custom items later on down the road, as suddenly every existing item's lore needs to be updated to have new "stats" or whatever.
To solve this, you can use admittedly-hacky "virtual items." Rather than editing an item's name/lore/... in-place, you can instead just give it a special name or lore line (think something like §7box:item:item-name-goes-here
or whatever), you can use ProtocolLib to replace an item's name/lore/... on-the-fly as players view things in inventories or whatever. That way, an item's name/lore/enchantments/... can be updated server-side (via config file or whatever) and otherwise be dynamic without the item itself changing.
Here's some (bad) code I wrote for this ~a year ago that you can copy from if you want to implement it yourself:
As @SamOphis has realized for the rest of us, vanilla Minecraft automation can be an annoying issue at times, for reasons of lag or dumb mechanics or otherwise generally being inconvenient. Rather than put up with this, it would be better to implement a more generic system that allows for more-automated farming of items without needing to deal with potentially very high entity counts. I've not thought too much on what form this might take; the most I've gotten so far is just a chest that's marked as "special" by the plugin, given a nametag when it's placed in the world, ... and is just slowly filled over time. Perhaps having some sort of upgrade mechanism or similar in place for faster production would also be useful.
As suggested in #5 and #7, it would be nice to have stats for both players and factions about things that happen to them over time. Member count, blocks broken / placed / ..., food eaten, messages sent in chat, mobs killed (by type?), and so on. Generally this would be per-player stats and then aggregated into a total for faction-level stats, I think.
Would rely on the virtual items thing above, so that balancing etc. is easier. I'm not sure if we'd want to be as granular as using the traditional F/E/D/C/B/A/S-tiers or something else. Either way, it would probably be best for things like item rarity to be indicated by display name colour.
For the items themselves, I'm not sure if RNG or just having a config'd list of available items would be best. I'm in favour of the latter, personally, as it's easier to not have to deal with RNG items on top of config-based items. Custom items like this could have things like enchantments beyond vanilla levels, custom enchantments, maybe stats of their own, ...
Custom enchantments would effectively have to be a lore-based extension of the vanilla enchanting system, as forcing in our own enchantments wouldn't really work nicely since the vanilla MC client wouldn't be aware of them.
Pretty obvious, I would think. If we give beyond-vanilla-endgame items, we'd need to have mobs capable of challenging the players. Think mobs with their own special equipment or skills or ... It'd also be cool if we could have special bosses that could be summoned by players to fight in a group or something like that.
Also relevant to #5/#7.
I'm sure we all know and love / hate mcMMO, so this wouldn't be exactly the same as that. I was thinking more along the lines of having a few super-basic stats -- something like HP/Armour/Mana or something like that, and those can affect gameplay in various ways. Maybe an item boosts your HP, maybe a mob can debuff your armour, maybe an item can't be used without enough mana, that sort of thing. Overall the idea is that these would be beneficial to players, rather than being a debuff to them for no real reason.
This can also relate back to the "custom items" thing by, say, having a crafting recipe that requires players to have certain stats to be able to craft a special item, or something like that.
The problem with automating certain aspects of Minecraft is that you need to pay close attention to the state of balance in the game. Sure it would be great to be able to automatically farm food and wool and such, but that removes the "grindy" aspect of vanilla Minecraft that shapes the intention of the game. For example in modded versions of Minecraft automation is practically mandatory to do anything since the recipes required to craft are extremely expensive. Automating mundane farming tasks in the vanilla game beyond what can be achieved w/ redstone could erase the grind that, while seems only inconvienient, is in my opinion integral to the base game. Aspects like high entity counts and tricky mechanics are things that are mitigated by well-designed mob farms (with the exception of like, chickens).
I like this, how exactly would you want this information stored? Up to you.
My only objection would be trying to dynamically adjust enchanted items would be that the overhead won't be worth it. Given the sheer lack of PvP on the server at present I don't expect there will need to be much balance change, anyways. I think setting up a system where mobs like the Wither have a 50-70% chance of dropping a very high-tier currency (the End Item in this example), and you can use these End Items at a server shop to buy armour and weapon pieces. These End Items should be able to be purchased at a very high premium (64 diamonds?). Like you said I don't think the endgame items themselves should be randomly dropped, but perhaps players can farm and grind endgame bosses like Withers (or the hypothetical endgame bosses) for the End Item. Again, it's your plugin so it's your call, but...
i don't agree with the item production automation. me as well as quite a few of my faction members play minecraft largely because we like putting in the effort to make something nice and then getting the rewards from our hard work. it's already boring as hell right now because no one else plays and there's literally nothing to do
item automating just gets rid of the last big reason we even play non vanilla items wouldnt be fair because of the current state of affairs regarding faction size and activity endgame bosses would be cool but none of us are designers which means someone's going to have to either say no or just add a plugin stats is meh, it just adds more stuff to worry about in pvp (but that doesnt matter because none of us pvp in the server)
non vanilla items wouldnt be fair because of the current state of affairs regarding faction size and activity
Collecting endgame items is proportional to group size and activity. The same is true for base-game endgame items
endgame bosses would be cool but none of us are designers which means someone's going to have to either say no or just add a plugin
Nobody's a designer until they try to be, nothing really stopping us from creating a boss and testing how hard it is to kill said boss until a fair balance is reached
Supersedes #4.
Once you make it to / through the vanilla endgame, there's not much of a point to doing things on the server, to an extent. I've been thinking this through for the last few weeks, and have a couple ideas / systems / ... that can be added. I'll probably work on actually implementing these slowly over time, but if you want to open a PR to add one or more of these then go ahead.