The "End" of Aliases #4164
Replies: 6 comments 2 replies
-
I always liked the aliases system but when I started contributing and saw how painful it is to keep up with the new items every update and fix aliases in some places that doesn't work, I think this is a good idea for the future of Skript but indeed it will be a bit pain at the beginning to keep testing the system until proven safe and for the users to convert. However, I like the idea. |
Beta Was this translation helpful? Give feedback.
-
I could see a route forward where the aliases system is removed or at least drastically simplified. My main two cents is that I've seen plenty of good suggestions denied or argued against because Skript is supposed to be plain-English. I don't see how The real main point of the aliases is not simply to create a way to refer to items; it's to allow players to refer to items, individually or categorically, more naturally. Stuff like At the end of the day it matters little to me, but if you guys actually care about allowing stuff to still be written in plain-English I don't think actually removing aliases is a viable option. Drastically slimming them down is another story though; I can certainly see them being reduced to only being used for item categories (i.e. |
Beta Was this translation helpful? Give feedback.
-
I think there are pros and cons to both approaches, and it may be possible to achieve a balance that gets the benefits of both. Counter-intuitively, I expect that using the block-data / item data formats (e.g. That said, for some people who have never touched commands, command-blocks, resource packs etc. and are not used to their format, the existing aliases system might be simpler (at least for basic aliases, the odd ones perhaps not.) The current aliases system could be maintained separately and offered as an alternative: users who feel they don't need it can switch it off in the config to make parsing, etc. faster, while users that benefit from it can leave it on. This would satisfy everybody and harm nobody - aliases could be switched on by default so no backwards compatibility issues. |
Beta Was this translation helpful? Give feedback.
-
Im going to make my reply short and sweet. As stated in your argument, since we now support block data (for quite some time now), THESE aliases are virtually useless, and really, they're the biggest headache of them all. I do feel some aliases are good to keep, ie: potions. Another note, in a recent release, we added "temp aliases", which basically loops Bukkit's Materials, and creates aliases for missing items. That said, we could theoretically remove 99% of the aliases, let Skript create these "temp" aliases, and let uses use block data.
On Spigot:
#OUCHIE On top of all this, each update (with the exception of 1.18), Mojang is adding a ton of new blocks/items, which makes aliases a LOT of work on the devs, as well as an insane growing time for alias parsing during server load. By cutting out all block state aliases, and the majority of aliases that match Material names, this would most likely not affect the majority of Skript users. Some will obviously need to update their scripts, while others wont even notice a difference. This could be a good step in the right direction to eventually remove Aliases all together. |
Beta Was this translation helpful? Give feedback.
-
Just my two cents as the one who wrote the majority of the baseline aliases for the new alias system, I'd be happy to see them gone in favor of a more automated system. I agree nobody really uses those extremely complex aliases, and even if they did the fact that the order matters is a ridiculous headache (if the alias is defined as |
Beta Was this translation helpful? Give feedback.
-
As a foreign language user, I think this is a good idea, but don't delete it completely. For some foreign language user, sometimes using aliases is even more difficult to understand than using NBT. After all, almost all foreign language users who will come into contact with Skript already have the most basic knowledge of NBT, it is a bit painful to switch to normal English at once (Well, this is our own problem :) ). It's even like I am the writer who switched from vanilla Datapack to Skript. Maybe we can make simple English and vanilla NBT parallel, and satisfy different users at the same time, and I think, the writers who know which blocks have directional, or the growth stages of crops should also understand block data. Then I noticed that we seem to have forgotten certain groups? (Or just because I am not familiar with English?) The above is an idea from a foreign language user who likes Skript very much, and I hope it will be helpful to the development team. |
Beta Was this translation helpful? Give feedback.
-
As Skript prepares to drop support for 1.12 and below after 2.6, the lack of a need for Skript's current alias and item/block handling system is becoming more and more apparent.
The idea of removing aliases, specifically classes in the aliases package such as ItemType and ItemData is nothing new. While these classes have been beneficial for managing items, blocks, and comparisons (even though it has not always worked so well), the modern API features are more than sufficient. These classes and comparisons have become little more than chore for maintainers to manage. The API already includes comparison methods for many of these things (blocks, items, etc.)
Features like block data, which continue to be integrated into Skript, are ideal replacements for this system. With block data, Skript does not need to worry about handling block comparisons or creating aliases for the different permutations/block states of a block. Plus, it makes it much easier on the end user. If we use Minecraft's own systems (e.g.
cobblestone_wall[north=true,south=true]
, many users may already be familiar, or can even learn how to work these systems with Minecraft and Skript simultaneously.With block data integrated, Skript can separate blocks and items, making things far easier to manage. Realistically, only the creation of basic item IDs would need to be handled by Skript. To make this even easier, we already have basic item IDs: The IDs provided by Minecraft itself for items. By expanding on PRs like #4034, we no longer have to worry about alias creation whatsoever.
The only thing that would really remain is data tags for items. We could handle that the way it's done in aliases or in game now:
Example:
This solution does have some cons though. See the table below for general pros/cons:
This "proposal" was just a place for me to put down my ideas. know this is something the community/devs have discussed before, but this would be a good place to keep thoughts. I would like to hear what everyone else thinks about this matter. I know we are already planning something similar to this with the replacement of the current string formatting system through the usage of MiniMessage.
Thanks for reading :D
Beta Was this translation helpful? Give feedback.
All reactions