Giter Club home page Giter Club logo

leather-colorizer's People

Contributors

bmack94 avatar lordrazen avatar

Watchers

 avatar  avatar  avatar

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

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

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.

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

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.

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.

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

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.

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.

  1. Gonna talk to Kiaria about the plugin name to see if it's a good one
  2. Main command should maybe be changed to /lc, without the p which stands for the pro version...

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?

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.