leather-colorizer's People
leather-colorizer's Issues
Cleaned Leather Amor cannot be dyed again
Kleiner Interessanter Bugreport: Wenn man eine Lederrüstung die bereits gefärbt ist in einem Kessel entfärbt, kann man sie nicht beim Lederfärber umfärben, die Rüstung hat 2 Tags auf sich, normale gecraftete haben nur einen Tag. Wenn man dann hingeht und die Lederrüstung einmal in einen Armorstand reinpackt, das Inventar schließt und wieder in den Armorstand geht, hat die Rüstung nur noch einen Tag und kann über den Lederfärber gefärbt werden.
Add Enchantments
Add two config options:
allowEnchantments:
true: Allow the colorization of enchanted items
false: do not
keepEnchantments: (only used if allowEnchantments is true)
true: Keep ENchantments and Repaircost
false: remove it and just colorize
Leather Items which were cleaned on the Cauldron cannot be dyed
Humpalumpa — Today at 8:05 PM
ist ein bestimmter nbt tag auf der rüstung,wenn der im cauldron gewaschen wurde?
oder ist da die farbe anders?
Humpalumpa — Today at 8:19 PM
jo, der hat ein weiteren nbt tag
ich denke mal: HIDE_DYE
Setting to show/hide dyes from coloured leather armour
Implement Permission
Permission Check is missing yet.
New Lines are printed within the compile / deploy of language files
File within Repo:
error_invalid_command_sender: "Leather Coloriser can only be used by players!"
error_invalid_color: "§aInvalid Argument - please enter a HEX Color:\n/lc <HEX Color Code>\n§3https://htmlcolorcodes.com/"
File within Minecraft:
error_invalid_command_sender: Leather Coloriser can only be used by players!
error_invalid_color: |-
§aInvalid Argument - please enter a HEX Color:
/lc <HEX Color Code>
§3https://htmlcolorcodes.com/
The new lines \n
are printed and the quotes disappear for the language files. It still works, but this should still be fixed.
Final TODOs
- Remove deprecated Version
- Generic Language file reader
Items are renamed to the chosen language
Add Options to keep Lore and to Keep the Title
Implement "Load Plugin" functionality for Initial Loading and Reload
Add LICENSE file
Add license file.
CC: @LordRazen & @bmack94, do you agree to license your contributions under the GPLv3 license?
Allow Color Change on damaged Items
Option in Config: Allow Color Change on damaged Items
If allowed: Color Change on damaged Items is possible, the item is not repaired - damage stays.
Version Support
Check since when HEX Colors are allowed for Leather Armors and since when the Horse Armor exists.
Min Version is the beginning of the HEX Support.
Horse Armor was added with 1.14
https://minecraft.fandom.com/wiki/Horse_Armor
Allow to move items in the inventory
Right now, you cannot move items in the inventory. Reason: If you can move them, you can drop them in the LCP-Inventory, but you cannot move them out. So the items will be gone as soon as the Inventory closes.
Find a solution to block this.
As soon as this solution is found, the Color Picker can be improved:
If player picks:
- Regular item: Allow movement
- Colored Item and the color is different from the one shown in the Colorizer: Block Movement, take over the color
- Colored Item and the color is the same from the one shown in the Colorizer: Allow movement
Add Config Updater to all Language files
Releasetests
- Added Reset-Icon again
- Added German Language files
- Some Tiny Fixes
- Fix Saturation Bug
- Add "Add ...." to Colors
Unify Documentation / Rename
- Unify: Coloriser => Colorizer!
- Docs? Needed this way?
- Docs for Plugin Utils is in the docs folder
- Remove "Pro"
- Add Images
- Add every needed info to the doc
Color Storage for Players
There should be a way to print the color to the chat:
Usecase: In case you would like to colorize the armor and made the color, but dont have an armorpiece in the inventory, you have to close, get a new piece of armor and setup the color again.
So maybe we create a button for this - but there's not much room.
So the other idea would be: If you close the shop, the last used color is printed to chat as HEX.
Another idea would be a player storage, so the last used color is used if you reopen the tool.
But since a player storage requires a bit more work, this might be an idea for later.
Implement Plugin Utils
Implement the plugin utils and remove all classes which are available in the utils.
https://github.com/LordRazen/plugin-utils
support 1.20.4
[22:35:11] [Server thread/INFO]: Player issued server command: /leathercolorizer:/lc
[22:35:11] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'leathercolorizer:/lc' in plugin LeatherColorizer v1.1
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999) ~[paper-1.20.4.jar:git-Paper-430]
at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.4.jar:git-Paper-430]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:32) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:101) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2230) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2190) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1455) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1432) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1355) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1333) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1222) ~[paper-1.20.4.jar:git-Paper-430]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-430]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ExceptionInInitializerError
at com.minecraftheads.leathercolorizer.data.InventoryMapping.<clinit>(InventoryMapping.java:15) ~[Leather-Colorizer-1.1.jar:?]
at com.minecraftheads.leathercolorizer.utils.InventoryCreatorBridge.<init>(InventoryCreatorBridge.java:18) ~[Leather-Colorizer-1.1.jar:?]
at com.minecraftheads.leathercolorizer.commands.CommandLeatherColorizer.onCommandPlayer(CommandLeatherColorizer.java:66) ~[Leather-Colorizer-1.1.jar:?]
at com.minecraftheads.leathercolorizer.commands.CommandLeatherColorizer.onCommand(CommandLeatherColorizer.java:37) ~[Leather-Colorizer-1.1.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
... 29 more
the plugin cannot be compiled either
for project com.minecraftheads:Leather-Colorizer:jar:1.2: com.minecr
aftheads:plugin-utils:jar:1.7-SNAPSHOT was not found in https://hub.spigotmc.org
/nexus/content/repositories/snapshots/ during a previous attempt.
1.19 Compatible
Language Files are saved every time
[16:08:35] [Server thread/WARN]: [LC] Could not save en.yml to plugins/LeatherColorizer/languages/en.yml because en.yml already exists.
[16:08:35] [Server thread/WARN]: [LC] Could not save de.yml to plugins/LeatherColorizer/languages/de.yml because de.yml already exists.
[16:08:35] [Server thread/WARN]: [LC] Could not save it.yml to plugins/LeatherColorizer/languages/it.yml because it.yml already exists.
[16:08:35] [Server thread/WARN]: [LC] Could not save ru.yml to plugins/LeatherColorizer/languages/ru.yml because ru.yml already exists.
[16:08:35] [Server thread/WARN]: [LC] Could not save tr.yml to plugins/LeatherColorizer/languages/tr.yml because tr.yml already exists.
LC Bug on Command Execute
[14:32:14 INFO]: Stilora issued server command: /leathercolorizer:/leathercolorizer
[14:32:14 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'leathercolorizer:/leathercolorizer' in plugin LeatherColorizer v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R2.CraftServer.dispatchCommand(CraftServer.java:989) ~[paper-1.20.2.jar:git-Paper-223]
at org.bukkit.craftbukkit.v1_20_R2.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.2.jar:git-Paper-223]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[paper-1.20.2.jar:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:330) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:314) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2207) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$19(ServerGamePacketListenerImpl.java:2167) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1324) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-223]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-223]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.minecraftheads.leathercolorizer.data.InventoryMapping
at com.minecraftheads.leathercolorizer.utils.InventoryCreatorBridge.<init>(InventoryCreatorBridge.java:18) ~[Leather-Colorizer-1.0.jar:?]
at com.minecraftheads.leathercolorizer.commands.CommandLeatherColorizer.onCommand(CommandLeatherColorizer.java:46) ~[Leather-Colorizer-1.0.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
... 23 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.ExceptionInInitializerError [in thread "Server thread"]
at com.minecraftheads.leathercolorizer.data.InventoryMapping.<clinit>(InventoryMapping.java:15) ~[Leather-Colorizer-1.0.jar:?]
at com.minecraftheads.leathercolorizer.utils.InventoryCreatorBridge.<init>(InventoryCreatorBridge.java:18) ~[Leather-Colorizer-1.0.jar:?]
at com.minecraftheads.leathercolorizer.commands.CommandLeatherColorizer.onCommand(CommandLeatherColorizer.java:46) ~[Leather-Colorizer-1.0.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
... 23 more
Add additional commands
/reload
=> Reload the plugin: Re-Read the config and the language file
/version
=> Print out the version
/info
=> Print out the Minecraft-Heads Info
=> The click on the Pufferfish Icon in the bottom right corner shold trigger this command / generate the same output.
Additional thought: Add those commands to a util class so it can be exported to a general util library which can be reused in other plugins?
- Permissions
Add Tab Complete for Commands
CommandExecutor
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/command/CommandExecutor.html
TabExecutor includes CommandExecutor
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/command/TabExecutor.html
Undo-Button
Think about adding an undo-button <-> might be useful for adding colors. For Hue / Saturation / Brightness, the contrary button is the same as an undo...
- Position? Bottom left or Last line below the Water Bucket?
- Think about amount of possible undos: 1, X or any untill the inventory is closed?
Fix Language File Warnings on Startup
[09:37:10 WARN]: Could not save en.yml to plugins\LeatherColorizer\languages\en.yml because en.yml already exists.
[09:37:10 WARN]: Could not save de.yml to plugins\LeatherColorizer\languages\de.yml because de.yml already exists.
[09:37:10 WARN]: Could not save it.yml to plugins\LeatherColorizer\languages\it.yml because it.yml already exists.
[09:37:10 WARN]: Could not save ru.yml to plugins\LeatherColorizer\languages\ru.yml because ru.yml already exists.
[09:37:10 WARN]: Could not save tr.yml to plugins\LeatherColorizer\languages\tr.yml because tr.yml already exists.
mission artifact
Failed to execute goal on project Leather-Colorizer: Could not resolve dependencies for project com.minecraftheads:Leather-Colorizer:jar:1.1: Could not find artifact com.minecraftheads:plugin-utils:jar:1.6-SNAPSHOT in spigotmc-repo (https://hub.spigotmc.org/nexus/content/repositories/snapshots/)
Update Plugin Main Command?
I've modified all the plugin repositories:
There's one repository for each plugin without a "pro" or "light" in the name.
If there're different versions for the plugin, we can manage this through branches.
With this in mind, we might wanna rethink the main command of the plugin / plugin name in general.
- Gonna talk to Kiaria about the plugin name to see if it's a good one
- Main command should maybe be changed to
/lc
, without thep
which stands for the pro version...
Improve Color Controls with Custom Head Icons
Implement the Heads as Icons, design good controls for those icons.
A good head for the randomizer might be this one:
https://minecraft-heads.com/custom-heads/decoration/37517-rainbow-dice
Implement Item Cost per Action
Implement Item Cost per Action.
Main question: fix item like an emerald or variable dye costs? How to determine the item dye cost?
Hide NBT Tags with the Leather Icons
Colorizing multiple Armors
If you click on "Colorize" quickly and you have multiple armors in the inventory, you colorize more items then you click on.
Implement Vault Costs per Action
Implement a configurable amount of money which is taken per color action.
Update MCHeads Credits to the new Plugin Area
As soon as the plugin area is done, update the URL to this one:
www.minecraft-heads.com/plugin
Also change the icon to a globe? (optional)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.