Invisible Armor
Invisible Armor
Show your skin without losing armor
Is a shame that while there are tons of cool skins everywhere you can't show it because mostly must be covered by the armor... all look the same, you cant express your individuality and style... now with this plugin you can proudly show your cool skin to everyone without lose armor benefits
General usage
- type "/ss" command (stands for "show skin" or "save suit")
- your currently equipped armor suit will store in a safe place
- when you recieve some mitigable damage, your armor will be re-equipped just to absorb it
- you will recieve chat messages on armor durability changes
- type "/ss" command to show your armor again and let it accesible
Features
- install plugin as usual, by copying .jar file to plugins folder and reload server, compatible with all server versions
- DAMAGE RECALCULATION on damage event before wear saved armor
- armor STATUS MESSAGES, to prevent unnoticed breaks and going unprotected
- some ENCHANTMENTS COMPATIBILITY, see note below
- plugin action customization (auto hide armor timeout, display messages, etc)
- armor saved in hidden chests, so are saved together with the worlds
- security against over equipping to avoid item loss or duplication
- localization support
How plugin works
- captures armor mitigable damages before they occurs
- check if player has a saved armor suit
- recalculates armor protection values
- look if there is some applicable enchantment and recalculate values too (see notes below)
- visibly equip armor for specified timeout
- on more damage coming timeout will update, until explicit equip or unequip
Armor and enchantments
all armor pieces, pumpkins and mob heads are compatible... but the only compatible armor enchantments are the "protection" ones (those that directly absorb some health loss when damage occurs, including fall protection)... falling anvils are also compatible
for "underwater" and other skill enchantments you must equip your armor explicitly according situation... durability and "thorns" enchantment are processed after damage and has nothing to do with this plugin, so things like item breaking, unbreaking and damage bounce work out of the box
Source code
can view source at GitHub... feel free to browse the code and see how plugin works, and do some contribution
Please report bugs
i worked hard making this plugin bug free, but in case you found some one i will appreciate if you report here to fix it, in that case please also include steps to reproduce the problem
More info
Formerly "ShowSkin", this is not really an "invisible armor" plugin, but a "hide armor while no damage" one
I decided to make it because i used to use "armorhider" plugin a lo,t but sometimes i got my armor broken without notice until my death (i suggested put warnings without beign heard)... moreover i noted is useless by now because damage reductions (armor, enchantments, etc.) are calculated BEFORE damage event occurs, so even though your armor were timely equipped it wont help and you will get full damage
i also saw some plugins that reach similar goals trough ProtocolLib, but the downside is as it works over the network you always see your armor equipped, you dont see your own skin regardless you are hiding for others or not
orgullosamente hecho en chile
not working in 1.18.2
please update it
THIS IS SUCH A UNDERATED PLUGIN!
My only request is you update it to 1.17
other than that, nice job!
1.16.5
BUGS:
-when in hell you are seen as not wearing golden armor so you are attacked
-passive armor enchantments (mainly from the boots), like breathing underwater , frost walker .... all are not working while without armor
In reply to ihelloway:
read the description full before posting
There is a bug in 1.16.5 when i did /ss, my brand new netherite armor just disapear.
Please give me back my netherite armor :(.
Saludos desde chile.
Found a bug in 1.16.4
If you put netherite armor and do /ss it just removes it without restoring it (either when taking damage or doing /ss again)
Pleaaase update to 1.15.2
In reply to wizirdi:
currently i have no time... help me a little, do some tests and....
- paste console messages (stack traces) if any, include versions
- if no stack trace and just dont work, descibe the problem in detail to be able to reproduce
i am searching a collaborator for my plugins, anybody wants?
In reply to atesin_dj:
I will be happy to help you!
In reply to Arva11:
just do it
does this still work? 1.14.2
Hey Atesin_dj,
Can you confirm if this plug-in should be working for 1.13.2? I am running a Spigot server but from what I have seen around, Bukkit plug-ins work fine on Spigot as well (correct me if I am wrong, I'm just getting into server admin stuff)
I installed the plug-in today to test it and am getting an error.
This error pops during the server boot.
[13:31:39] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to InvisibleArmor v4[13:31:39] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to InvisibleArmor v4org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:66) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [spigot.jar:git-Spigot-f09662d-7c395d4] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PlayerList.onPlayerJoin(PlayerList.java:343) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PlayerList.a(PlayerList.java:162) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.LoginListener.b(LoginListener.java:149) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.LoginListener.tick(LoginListener.java:53) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.NetworkManager.a(NetworkManager.java:230) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.ServerConnection.c(ServerConnection.java:119) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:994) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:831) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:729) [spigot.jar:git-Spigot-f09662d-7c395d4] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]Caused by: java.lang.NullPointerException at org.bukkit.Location.getBlock(Location.java:96) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at cl.netgamer.showskin.Functions.chestCreate(Functions.java:92) ~[?:?] at cl.netgamer.showskin.Functions.loadPlayerData(Functions.java:79) ~[?:?] at cl.netgamer.showskin.Events.onPlayerJoin(Events.java:40) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_212] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_212] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_212] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_212] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:312) ~[spigot.jar:git-Spigot-f09662d-7c395d4] ... 14 more
And then this comes up when up when trying to use /ss
[13:31:55] [Server thread/INFO]: bbdude101 issued server command: /ss[13:31:55] [Server thread/INFO]: bbdude101 issued server command: /ss[13:31:55] [Server thread/ERROR]: nullorg.bukkit.command.CommandException: Unhandled exception executing command 'ss' in plugin InvisibleArmor v4 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:48) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at org.bukkit.craftbukkit.v1_13_R2.CraftServer.dispatchCommand(CraftServer.java:704) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PlayerConnection.handleCommand(PlayerConnection.java:1620) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1460) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:9) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_212] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_212] at net.minecraft.server.v1_13_R2.SystemUtils.a(SourceFile:199) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:896) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:831) [spigot.jar:git-Spigot-f09662d-7c395d4] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:729) [spigot.jar:git-Spigot-f09662d-7c395d4] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]Caused by: java.lang.NullPointerException at org.bukkit.Location.getBlock(Location.java:96) ~[spigot.jar:git-Spigot-f09662d-7c395d4] at cl.netgamer.showskin.Functions.getTempInventory(Functions.java:100) ~[?:?] at cl.netgamer.showskin.Functions.toggleArmor(Functions.java:402) ~[?:?] at cl.netgamer.showskin.Commands.onCommand(Commands.java:44) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-f09662d-7c395d4] ... 15 more
Any idea whats going on here?
I'm trying to use this on a server running 1.13, but it throws an error running /ss. Any idea why? Does it need to be updated?
In reply to anxiety_onlinee:
could you be more specific so we could guess what happens?
I notice this seems to enable automatically when logging into the server. After every login the player will have to use /ss to show their armor, which can lead to forgetting and trying to fly without elytra, for example. Is there a way to stop that? If not, the next step will be to look into something that can simply "sudo [player] ss" whenever a player logs in.
Hello! Thank you for this awesome plugin.
I think we have a bug or a huge problem:
Two players put diamond armor on and used /ss. Then they forgot they were wearing these cause they were not used to see empty inventory slots and equipped iron armor. Then someone told them to hide it with /ss again. They remembered they had diamond armor before and used /ss to show it but it looks like the plugin deleted the armor when it was hidden because they set in invis mode new armor on it.
I think this is a very dangerous thing, especially if you use other plugins in extention like AutoEquip. You loot the armor and it gets automatically equipped, and if you forget that you already were hiding your real armor, your former armor just vanishes forever.
Is this already known and we can find the lost parts anywhere?
Thank you!
In reply to Forge_User_68927658:
i didnt realize there exist this page since i used bukkit one
jethrocraft contributed with a patch and now this plugin works ok with elytra and other equippable items
can you update to 1.11.2?
In reply to friiishon: