elBukkit/MagicPlugin

Using skull icons as an alternative to players not using ressource pack

Ferocimo opened this issue · 20 comments

Hello,

First of all I would like to take a moment to show you my appreciation for your plugin. I used it for years on my server which I stopped in 2020. I'm launching it again now and seeing Magic is still meticulously updated and upgraded is amazing, especially considering the bad experiences I've had with many other major plugins. The level of customization is simply not matched.

That said, to my "issue" which is either a support or a feature request :

I would like to use the Magic ressource pack on the server, however I know that some of my players will not use it. Therefore, I would like the spell icons to appear as the ones used in the ressource pack for the players that use it, while simultaneously having skull icons appear for the players that will not use the ressource pack (instead of the ordinary items that show up when you use ressource pack icons with users not using the RP).

I tried several options but did not manage to achieve this, it's either "always skull icons" or "RP icon but ordinary item for users not using the RP". Is there a way to do that ?

If not, I think it should, since on most servers there will always be some players who prefer their own ressource pack or simply decline the download prompt. I think it's a shame that these players see ordinary items show up instead of skull icons.

Thank you for your time.

Thank you for your kind words :)

I want to say players can use the command /getrp skulls to switch to skulls. The plugin will remember this setting so they only have to do it once.

But.. I'm trying to think of why that's not the default behavior when they decline the RP. I'm going to leave this open while I think about that, but please let me know if that command works as a stopgap for now.

Thank you, I tried that but this causes another issue : the /getrp skulls command doesn't apply right away, the player has to disconnect and reconnect in order for the skulls to appear in the wand. That means that new player who comes to test the server will, even if they type that command, not see the spells as they should, and might leave thinking it's ugly.

Another problem is that most players on my server who don't use the ressource pack won't, by themselves, use the /getrp skulls command. I would have liked that setting to be set automatically if they decline the RP, but I can't think of a way to efficiently and automatically detect server side that they have decline the RP and apply the Getrp skulls for them.

Ideally, the skulls themselves would be the items that the ressource pack recognizes as icons and displays as such. That would mean that someone who has the RP would see the icon where someone who hasn't the RP would see the skull.

I guess for now I'll just use the skulls for everyone by default, which is a preferrable option than having some players see random minecraft items instead of spells.

I haven't tried putting CustomModelData on a skull item, that would be an interesting approach.

It is worth noting though that skulls are missing several icons, and these are not easy to add. It's not something I planned on doing anymore.

So I'm not sure I'd want to switch to skull items by default, players missing the RP would also be missing several icons. I'd have to review and see which ones are missing and how important they are.

I'm running a heavily customized version of Magic where I specifically handpick obtainable existing spells and configure my own, so I'm already handpicking most skull icons for every spell ; fortunately there are enough skull icons for my ~70 spells.

I'd love for players to have the possibility to enjoy the RP icons though

If that's the case can you also make your own RP?

If you can just put CustomModelData on a skull item, this is all doable. But it would involve making a new RP.

This is actually doable, I'll look into this and if it's not too much trouble I'll proceed like that. Thanks for the idea !

First thing would be to test if it works at all before you go through the trouble- I can try to do that today if I find some time.

It may be I need to add some kind of support for making a skull item with both a url and some CMD.

Alright, I have to test several spells first anyway so if you find anything don't hesitate to let me know. I'll have a look too after that.

Well the good news is, it's totally doable! I'm now considering switching the plugin to this method ... it'd be a lot of work though.

Anyway, here is what I tested.

The spell.yml icon:

test_skull:
    icon: skull:http://textures.minecraft.net/texture/2ba95570c7b712713632d4c0d2fc66906613d3850a596a0267c6d763fe741ac{18001}
    inherit: missile

This makes the icon a skull with a player head texture that also has a CustomModelData value set.

Then in the RP you can show the icons by making a player_head.json like this:

{
  "parent": "minecraft:item/template_skull",
  "overrides": [
    {"predicate": { "custom_model_data": 18001}, "model": "magic:icons/spells/missile"},
    {"predicate": { "custom_model_data": 18002}, "model": "magic:icons_disabled/spells/missile"}
  ]
}

You would ultimately add all of your spell icons there each with their own CMD value.

Then the last step is building the RP and hosting it yourself somewhere.

I'll keep this open while I consider doing this for the plugin, can't decide if it's worth such a big change or not. I do think the skull icons are a better fallback, and arguably the RP would be a lot cleaner and simpler since all icons would use the same item. Hmm.

Great ! I'll try that as well the way you described, and I might put one my associate on a custom RP in a near future, unless of course you're considering doing such update in said near future ?

That would of course be great even if I realize the amount of work this would represent ; on most "big" servers, you unfortunately can't expect all players to have the ressource pack, I would say there's a range of 20-45% which either can't be bothered or prefer their own RP (especially on our PVP server since there are a lot of "pvp oriented" ressource packs used by the players).

Understood. I did go through a bunch of work a while back to give players unique items for each spell, which I think helped.

But the skulls do seem like a better option.

I am leaning towards switching if I can't think of any downside. Either way I can probably make the RP for you.

Items allow the player to memorize which item is which spell, and after that, to visually differentiate in the displays, though I would argue that the higher the number of spells a player has, the higher the chance of forgetting or getting lost in the display...

Also, for immersion, even though the RP is unquestionnably best, the items reminds more of a classic minecraft chest-like menu, where the skulls are at least specific to your plugin. I would think that a player gets more the "Magic vibe" with skulls than with ordinary items.

Anyway, that's just for my thoughts, you obviously know your plugin perfectly, but if I can help with some "admin / user" perspective, it's only due !

So you convinced me to make this change to the plugin's default behavior.

The current dev build has switched everything over to skulls, and uses a new RP.

If you update to the dev build and you've been using the default RP, and your custom spells use icons the same way as the builtin spells (e.g. icon: missile for instance, to use the missile spell's icon) then it should just work.

Let me know how it goes!

Thank you very much !

I've tried it, and it does show skulls for non-RP users. However, it also shows skulls for non-RP users !

I updated Magic, downloaded the new RP by using the /getrp download command, and made sure my spells where using builtin icons (I have not modified icons.yml so it's directly using default.icons.yml, which has been correctly updated with the new format of skull:url in each icon). Is there something I'm missing for it to work ? Since the work seems to be done correctly server-side, I would guess that would be a RP downloading issue, and my RP is not the newest one ?

It does sound like you have the wrong RP- can you use /getrp url and see what it says?
The new rp should be something like http://rp.elmakers.com/Magic-RP-1.20.4.zip (the 1.20.4 part is new)

Ok I saw where the issue was, my config.yml being heavily customized I pasted most of the default.config into the config.yml (which I know I'm not supposed to do for updates, but not doing so caused other issues). As a result the ressource pack link wasn't updated to the newest one.

It is now working as intended, thank you again !

However, if I may ask your help for one final detail : doing this update seems to have broken my wand appearance, and since I don't really understand how the migrate system works I have not succeeded in fixing this. As a customization, I had replaced the "stick" with a "wooden_hoe" on my wands, so the players without the ressource pack would see a wooden hoe (which I preferred).
Previously it worked as intended, showing ordinary wooden hoes without the RP and custom magic wands with the RP.

Now, all I see are wooden hoes with or without the RP. I tried changing back the icon to "stick" in the "wand:" section on the wands.yml, and it worked, it showed the correct appearance with the RP, but why can't I put a wooden_hoe anymore as an icon ?

This new RP doesn't have any of the weapons in it. It's basically just the skull, stick and blaze rod, and a few other random items I wanted to keep as non-RP icons. Everything else was removed to prevent interfering with other RPs.

Try this one perhaps?

http://rp.elmakers.com/Magic-vanilla-RR-1.20.4.zip

That is a combo RP I'm planning to turn into an example for people who upgrade but, for whatever reason, need all of the old item-based icons.

I see, it makes sense !
I'm verry sorry, the URL seems to be down ? I have an error 404 when I click on your link, or when I copy it into a private tab of my browser.

Oof 😅

I had a typo in the config- should be RP not RR

http://rp.elmakers.com/Magic-vanilla-RP-1.20.4.zip

Thanks, everything works now ! We'll be using that one from now on. That's great