Coder Social home page Coder Social logo

armorstandtools's Introduction

ArmorStandTools

A full suite of Armor Stand tools for CraftBukkit/Spigot

Spigot resource page with plugin download: http://www.spigotmc.org/resources/armor-stand-tools.2237/

About

I wanted to create an armor stand for each kit in my mini-game, and I quickly became frustrated with trying to use commands and numeric values to position the legs, arms, body and head of each armor stand, so I created this plugin which allows you to do all of this with ease. Among other features you can create any pose you wish just by holding right click on the tools and moving your cursor up and down on the armor stand. The plugin can also generate a summon command that will re-create the armor stand at any time.

Compatibility

  • Armor Stand Tools v4.x.x - Spigot/CraftBukkit 1.17 and later
  • Armor Stand Tools v3.x.x - Spigot/CraftBukkit 1.13 - 1.16
  • Armor Stand Tools v2.4.3 - Spigot/CraftBukkit 1.8 - 1.12

Features

  • Summon armor stands.
  • Name armor stands.
  • Toggle: Gravity, Visibility, Arms, Base, Size, Invulnerability, Equipment Lock, Glow.
  • Manipulate the x/y/z rotations of the Head, Body, Arms and Legs. The value depends on how high up the armor stand's body you click with the tool (i.e. click near the feet is one extreme, near the top of the head is the other extreme).
  • Full control over armor stand's inventory (armor & items in hands).
  • Pick up and move armor stands.
  • Armor stand cloning tool.
  • Save tool: Automatically generate a summon command to summon the armor stand in its current state. This can be saved to a command block or logged.
  • Pick up as item: Convert an armor stand into an inventory item that when placed like a normal armor stand retains its inventory, pose and settings.
  • Player head tool: Give an armor stand the head of a specific player.
  • WorldGuard region support, including a custom WorldGuard flag. Setting the 'ast' flag for a region to deny turns off AST use in that region.
  • Customizable language config file.
  • Assign commands to armor stands that are run when a player right clicks that armor stand (see below).

Commands

  • /astools or /ast : Give yourself all the armor stand tools (Note: Saves & clears your inventory which is restored by running this command again)
  • /astools reload : Reload the config file
  • /ascmd add <priority> <delay> <player/console/bungee> <command/bungee_server_name> : Add an assigned command to the nearest armor stand. See the assigning commands section below for more info.
  • /ascmd remove <command_number> : Remove a command from to the nearest armor stand (use /ascmd list to find the command number)
  • /ascmd list : List the commands assigned to the nearest armor stand
  • /ascmd cooldown : Sets the cooldown (in ticks) for the command on nearest armor stand (Setting this overrides the default cooldown from config.yml)
  • /ascmd cooldown remove : Removes the cooldown for the command on nearest armor stand (Default cooldown set in config.yml will be used)

Permissions

  • astools.use : Permission for using any of the tools
  • astools.command : Permission for the /astools command
  • astools.reload : Permission to reload the plugin with /astools reload
  • astools.clone: Permission to use the clone tool
  • astools.head: Permission to use the player head tool (Ability to specify a player head for an armor stand)
  • astools.summon: Permission to use the summon tool (Summons an armor stand without requiring the materials)
  • astools.cmdblock: Permission to use the save tool (Create a summon command)
  • astools.glow: Permission to use the glow tool (Glow effect on armor stands)
  • astools.ascmd.add.console: Permission to add a console command to an armor stand (Previously astools.ascmd.assign.console)
  • astools.ascmd.add.player: Permission to add a player command to an armor stand (Previously astools.ascmd.assign.player)
  • astools.ascmd.add.bungee: Permission to add a bungee command to an armor stand (See below for details)
  • astools.ascmd.remove: Permission to remove a command from an armor stand
  • astools.ascmd.list: Permission to list the commands assigned to an armor stand (Previously astools.ascmd.view)
  • astools.ascmd.cooldown: Permission to add/remove a cooldown to commands assigned to an armor stand
  • astools.ascmd.execute: Permission to execute commands assigned to an armor stand by (on right click)
  • astools.bypass-wg-flag: Permission to bypass the WorldGuard ast flag, allowing the player to use AST even in regions that ast flag is set to deny.

Assigning Commands to Armor Stands

  • Stand close to the armor stand (The nearest armor stand within 4 blocks is selected) and use the command: /ascmd add <priority> <delay> <player/console/bungee> <command/bungee_server_name>
  • <priority>: When multiple commands are assigned, commands with the lowest priority number are executed first. Command with the same priority can be executed in any order.
  • <delay>: Delay in ticks before the command is executed.
  • <player/console/bungee>: Player commands are executed as if they were typed by the player. Console commands are executed by the console. Bungee commands are a special case (see below).
  • <command/bungee_server_name>: The command to be executed. To use the executing player's name in the command, use the placeholder %player% - it will be replaced with the players name at time of execution.
  • When a player with the astools.ascmd.execute permission right-clicks on an armor stand, commands assigned to that armor stand are executed.
  • Warning: Make sure you are careful when assigning console commands. Any player with the astools.ascmd.execute permission will be able to execute the command.
  • By default, any command assigned to an armor stand will use the default cooldown set in config.yml. This can be set on an individual basis using the /ascmd cooldown command.
  • Bungee commands: These are used to send the player to a different BungeeCord server. E.g. This will add a command to send the player to a server called server1: /ascmd add 0 0 bungee server1

WorldGuard Integration

  • If a player does not have build permission for the region, that player will also be denied the use of AST in that region.
  • Additionally, there is a custom region flag named 'ast' which defaults to Allow, this can be changed to Deny if you wish to have a region in which players have build permission, but not permission to use AST.
  • The ast worldguard flag is ignored for any player with the permission node 'astools.bypass-wg-flag'. This means that a player with this permission can use AST in worldguard regions even if the ast flag for that region is set to Deny.
  • The ast worldguard flag is also ignored for players that have op.

Config

  • config.yml - The main config file allows you to set the default starting settings for newly summoned armor stands. This is useful if you plan on creating a lot of armor stands with similar equipment.
  • language.yml - Contains all the strings of text that the player will see. Edit this file if you wish to change the text or translate it into a different language.

armorstandtools's People

Contributors

boy0001 avatar frumple avatar lordofpipes avatar manuelgu avatar mrkorvic avatar mrunic0rn0 avatar phanaticd avatar st3venau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

armorstandtools's Issues

1.13 and higher versions compatibility

I'm having an issue, not a big one but a troubling one

Using astools on 1.13 spams this error in the console

[00:00:05 ERROR]: Could not pass event BlockBreakEvent to ArmorStandTools v3.7.1 java.lang.NoSuchFieldError: OAK_SIGN at com.gmail.St3venAU.plugins.ArmorStandTools.MainListener.onBlockBreak(MainListener.java:427) ~[?:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor418.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.13.2.jar:git-Paper-653] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.13.2.jar:git-Paper-653] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:66) ~[patched_1.13.2.jar:git-Paper-653] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:520) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.PlayerInteractManager.breakBlock(PlayerInteractManager.java:299) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.PlayerInteractManager.a(PlayerInteractManager.java:129) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1271) ~[?:git-Paper-653] at net.minecraft.server.v1_13_R2.PacketPlayInBlockDig.a(SourceFile:40) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.PacketPlayInBlockDig.a(SourceFile:10) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:15) ~[patched_1.13.2.jar:git-Paper-653] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_275] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_275] at net.minecraft.server.v1_13_R2.SystemUtils.a(SystemUtils.java:108) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1018) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:940) ~[patched_1.13.2.jar:git-Paper-653] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:837) ~[patched_1.13.2.jar:git-Paper-653] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]

That is most likely because of some compatibility issues, but it's looking for Oak_Sign which is a 1.14+ item in a 1.13 server, i wouldn't have really cared if it didn't spam the console with it the entire time, but it's really hard to see anything in the console because of it

Thank you and have a nice day.

ascmd add

Hello, i'm trying to setup a bungee command to Armor stand and its not working.

I'm on 1.12.2 and using a Armor Stand Tools v2.4.3 as it's said on SpigotMC website.

Is this because the older versions of plugin is not supporting and not updating or what?

option to change gui items

Gui items like the nether star are overpowered and can be used in survival servers to make beacons easily. Would be nice to get an option to change the Gui items to custom ones.

Error AST 3.2.0 with PlotSquared v4.

[00:25:43 INFO]: [ArmorStandTools] Enabling ArmorStandTools v3.2.0
[00:25:43 INFO]: [ArmorStandTools] Loading support for v1_13_R2
[00:25:43 WARN]: java.lang.NoClassDefFoundError: com/intellectualcrafters/plot/api/PlotAPI
[00:25:43 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.PlotSquaredHook.<init>(PlotSquaredHook.java:17)
[00:25:43 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reloadMainConfig(Config.java:146)
[00:25:43 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reload(Config.java:57)
[00:25:43 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reload(Config.java:53)
[00:25:43 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Main.onEnable(Main.java:41)
[00:25:43 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:254)
[00:25:43 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:325)
[00:25:43 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
[00:25:43 WARN]: at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugin(CraftServer.java:441)
[00:25:43 WARN]: at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugins(CraftServer.java:355)
[00:25:43 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.l(MinecraftServer.java:613)
[00:25:43 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:575)
[00:25:43 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:435)
[00:25:43 WARN]: at net.minecraft.server.v1_13_R2.DedicatedServer.init(DedicatedServer.java:316)
[00:25:43 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:791)
[00:25:43 WARN]: at java.lang.Thread.run(Thread.java:748)
[00:25:43 WARN]: Caused by: java.lang.ClassNotFoundException: com.intellectualcrafters.plot.api.PlotAPI
[00:25:43 WARN]: at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[00:25:43 WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:158)
[00:25:43 WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:104)
[00:25:43 WARN]: at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[00:25:43 WARN]: at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[00:25:43 WARN]: ... 16 more
[00:25:43 WARN]: [ArmorStandTools] PlotSquared plugin was found, but there was an error initializing PlotSquared support enabled.
[00:25:43 INFO]: [ArmorStandTools] WorldGuard plugin found. WorldGuard support enabled.

Using:
Paper 1.13.2 build 488
ArmorStandTools-3.2.0
PlotSquared-Bukkit-4.18.12.28-3156741-2126

Equipment Lock

Using latest version and Equipment Lock stays untoggled no matter how many times its clicked. I noticed this for awhile but my players can't use armorstandcmd while I have the worldguard region turned off and have armorstands unlocked too. Any fix?

Invalid material name specifed (AIR 0)

[17:32:12] [Server thread/INFO]: [SimpleScore] Disabled scoreboards loaded.
[17:32:12] [Server thread/INFO]: [PlaceholderAPI] Successfully registered expansion: simplescore
[17:32:12] [Server thread/INFO]: [ArmorStandTools] Enabling ArmorStandTools v4.3.0
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed (AIR 0). Continuing using AIR instead.
[17:32:12] [Server thread/INFO]: [ArmorStandTools] PlotSquared plugin not found. Continuing without PlotSquared support.

Wrong plugin version at SpigotMC (4.4.2)

When downloading the plugin from SpigotMC, version 4.4.2 is loaded, although version 4.4.3 is specified in the description.
This leads to incorrect work of plugins that check all plugins for updates.
image

[Suggestion] Copy armorstand as item

The plugin Armor Stand Adjustor (https://www.spigotmc.org/resources/armor-stand-adjustor-1-13-1-16.63811/) has a nice feature where you can copy a armorstand to your inventory as an item (doesn't work in 1.17+). When you place the new armorstand with the item, the armorstand has the same equipment and pose as the armorstand you copied. This is a nice and easy way to create many clones of an armorstand.

It would be great if you could add this feature to your plugin. Considering that you already have "Generate Summon Command", "Generate Summon Item" should hopefully not be that much more work to do.

The translate in Spanish | Copy / Paste

Traducción.txt

Armor Stand Tools

by St3venAU

[email protected]

Language Config

File generated by: v4.4.4

(If this is not the version you are running, consider deleting this

config to allow it to be re-created. There may be new config options)

If you are looking for a translated version of this file, check here:

https://www.spigotmc.org/resources/armor-stand-tools.2237/

Edit these strings if you wish to customize the wording

or the language of the text used in this plugin.

IMPORTANT: Only edit the text that is between the single

quotation marks: 'like this'

If you change anything outside of the quotation marks,

errors will occur.

Do not use ' marks inside the string itself.

If you ever wish to return to the default language config,

delete this file and reload the plugin. A new default language

file will be generated.

####################

General Messages

####################
invReturned: 'Contenido del inventario devuelto'
asDropped: 'Soporte de armadura caído'
asVisible: 'Visible'
isTrue: 'Verdadero'
isFalse: 'Falso'
carrying: 'Has cogido el Soporte de armadura. Haga clic para soltar.'
generalNoPerm: 'Sin permiso para esta herramienta y/o región'
cbCreated: 'Bloque de comando creado'
size: 'Tamaño'
small: 'Pequeño'
normal: 'Normal'
basePlate: 'Placa base'
isOn: 'On'
isOff: 'Off'
gravity: 'Gravedad'
arms: 'Brazos'
invul: 'Invulnerable'
equip: 'Equipamiento'
locked: 'Bloqueado'
unLocked: 'Desbloqueado'
currently: 'Actualmente'
notConsole: 'Este comando no se puede ejecutar desde la consola'
giveMsg1: 'Dadas las herramientas del soporte de armadura. Haga clic izquierdo en cualquier herramienta para recorrerlas.'
giveMsg2: 'Ejecute este comando nuevamente para devolver su inventario.'
conReload: 'Configuración de Armor Stand Tools recargada'
noRelPerm: 'No tienes permiso para recargar este plugin'
invalidName: 'No es un nombre de usuario de Minecraft válido'
wgNoPerm: 'No hay permiso para alterar un soporte de armadura en esta región'
noCommandPerm: 'No tienes permiso para usar este comando'
armorStand: 'Soporte de armadura'
none: 'Ninguno'
guiInUse: 'La GUI de esta armadura está en uso'

New since v2.4.0:

noASNearBy: 'No se encontró ningún soporte de armadura cerca'
closestAS: 'Soporte de armadura más cercano'
type: 'Tipo'
command: 'Comando'

New since v3.2.0

creativeRequired: 'Se requiere el modo creativo para guardar un soporte de armadura como un bloque de comando'

New since v3.3.0

cmdOnCooldown: 'Este comando está en enfriamiento'
cooldownRemovedFrom: 'Enfriamiento eliminado de'
isAnInvalidCooldown: 'es un tiempo de enfriamiento inválido'
cooldownSetTo: 'Enfriamiento establecido en'
ticksFor: 'ticks por'
setCooldown: 'Establecer el tiempo de reutilización para el comando'
removeCooldown: 'Eliminar el enfriamiento del comando'

New since v3.4.1

glow: 'resplandor'
cmdNotAllowed: 'Ese comando no está permitido mientras se usan las herramientas de Armor Stand'
#New since v4.0.0
crouch: 'agacharse'
click: 'Click'
finish: 'Finalizar'
#New since v4.3.0
configuredArmorStand: 'Soporte de armadura configurado'
name: 'Nombre'
inventory: 'Inventario'
items: 'Items'
stacks: 'Stacks'
invisible: 'Invisible'
invuln: 'Invulnerable'
glowing: 'Resplandeciente'
attributes: 'Atributos'
hasTheseCmdsAssigned: 'tiene estos comandos asignados'
hasNoCmds: 'no tiene comandos asignados'
priority: 'Prioridad'
delay: 'Retraso'
errorExecutingCmd: 'Ocurrió un error al ejecutar el comando'
isNotValidNumber: 'no es un número válido'
removedFromAs: 'eliminado del soporte de la armadura'
listAssignedCmds: 'Lista de comandos asignados'
addACmd: 'Agregar un comando'
removeACmd: 'Eliminar un comando'
cmdHelp: 'Este comando se usa para agregar/eliminar comandos al soporte de armadura más cercano (dentro de 4 bloques). Los comandos se ejecutan cuando se hace clic derecho en el soporte de la armadura, primero la prioridad más baja.'
#New since v4.4.0
enterName: 'Ingrese el nombre del soporte de la armadura en el chat'
enterName2: 'Ingrese el nombre del soporte de la armadura en el chat, o para eliminar el nombre, ingrese:'
enterSkull: 'Ingrese el nombre de usuario para la cabeza del soporte de la armadura en el chat'
inputTimeout: 'Tiempo de espera de entrada. Inténtalo de nuevo.'
nameSet: 'Seleccionado nombre de soporte de armadura'
nameRemoved: 'Nombre de soporte de armadura eliminado'
skullSet: 'Seleccionada cabeza con soporte de armadura.'
#New since v4.4.1
enterNameC: 'Para configurar el nombre del soporte de la armadura'
enterNameC2: 'O para quitar el nombre'
enterSkullC: 'Para configurar el nombre de usuario de MC para la cabeza'
#############################

Tool names & descriptions

#############################
tool:
summon:
name: 'Soporte de armadura'
lore:
- 'Click derecho para invocar un soporte de armadura y recogerlo'
- 'Cualquier clic lo soltará'
gui:
name: 'Guía multiherramientas'
lore:
- 'Click derecho para abrir una GUI para modificar el Soporte de armadura.'
- 'los atributos de la armadura se mantienen o cambian'
- 'su armadura y artículos'
rotat:
name: 'Rotación'
lore:
- 'Click derecho en el para cambiar su rotación Soporte de armadura'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
headX:
name: 'Cabeza X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la cabeza X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
headY:
name: 'Cabeza Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Cabeza Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
headZ:
name: 'Cabeza Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Cabeza Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
lArmX:
name: 'Brazo izquierdo X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo izquierdo X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
lArmY:
name: 'Brazo izquierdo Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo izquierdo Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
lArmZ:
name: 'Brazo izquierdo Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo izquierdo Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rArmX:
name: 'Brazo derecho X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo derecho X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rArmY:
name: 'Brazo derecho Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo derecho Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rArmZ:
name: 'Brazo derecho Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Brazo derecho Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
moveX:
name: 'Movimiento X'
lore:
- 'Click derecho armor para mover +0.1 X'
- 'Shift + Click derecho para -0.1 X'
moveY:
name: 'Movimiento Y'
lore:
- 'Click derecho armor para mover +0.1 Y'
- 'Shift + Click derecho para -0.1 Y'
moveZ:
name: 'Movimiento Z'
lore:
- 'Click derecho armor para mover +0.1 Z'
- 'Shift + Click derecho para -0.1 Z'
lLegX:
name: 'Pierna izquierda X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna izquierda X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
lLegY:
name: 'Pierna izquierda Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna izquierda Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
lLegZ:
name: 'Pierna izquierda Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna izquierda Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rLegX:
name: 'Pierna derecha X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna derecha X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rLegY:
name: 'Pierna derecha Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna derecha Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
rLegZ:
name: 'Pierna derecha Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Pierna derecha Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
bodyX:
name: 'Cuerpo X'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Cuerpo X'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
bodyY:
name: 'Cuerpo Y'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Cuerpo Y'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
bodyZ:
name: 'Cuerpo Z'
lore:
- 'Click derecho en el Soporte de armadura para cambiar el valor de la Cuerpo Z'
- 'El valor depende de qué tan alto haga clic en el cuerpo'
gui_move:
name: 'Recoger (Mover)'
lore:
- 'Recoge este soporte de armadura para moverlo.'
gui_clone:
name: 'Clonar'
lore:
- 'Clona este soporte de armadura y recógelo.'
gui_gen_cmd:
name: 'Generar comando de invocación'
lore:
- 'Se creará un bloque de comando'
- 'Se registrará el comando de invocación'
gui_invis:
name: 'Alternar visibilidad'
lore:
gui_size:
name: 'Alternar tamaño'
lore:
gui_base:
name: 'Alternar base'
lore:
gui_grav:
name: 'Alternar gravedad'
lore:
gui_arms:
name: 'Alternar brazos'
lore:
gui_name:
name: 'Cambiar nombre'
lore:
gui_slots:
name: 'Alternar bloqueo de equipo'
lore:
gui_pHead:
name: 'Dar cabeza de jugador'
lore:
gui_invul:
name: 'Alternar invulnerabilidad'
lore:
gui_glow:
name: 'Alternar brillo'
lore:
gui_head:
name: 'Mover cabeza'
lore:
- 'Cambiar la posición de la cabeza'
gui_body:
name: 'Mover cuerpo'
lore:
- 'Cambiar la posición del cuerpo'
gui_larm:
name: 'Mover brazo izquierdo'
lore:
- 'Cambiar la posición del brazo izquierdo'
gui_rarm:
name: 'Mover brazo derecho'
lore:
- 'Cambiar la posición del brazo derecho'
gui_lleg:
name: 'Mover pierna izquierda'
lore:
- 'Cambiar la posición de la pierna izquierda'
gui_rleg:
name: 'Mover pierna derecha'
lore:
- 'Cambiar la posición de la pierna derecha'
gui_item:
name: 'Recoger como artículo'
lore:
- 'Crea un elemento de soporte de armadura para este soporte de armadura'
- 'Modo creativo: el soporte de la armadura permanece'
- 'Modo de supervivencia: se elimina el soporte de armadura'

Bad Head Loading

I have experienced extreme Head Loading Times on loading the Chunk for the first time.

I have tested it and it seems like this is the problem:
String cmd = "minecraft:give " + event.getPlayer().getName() + " minecraft:player_head{SkullOwner:\"" + input + "\"} 1";

The "Minecraft" way of doing it takes an extreme amount of performance for the client. With like 18 Heads it took about 40 Seconds to load into the world...(For the Client. The TPS is fine).

This should be replaced with a new ItemStack that has the SkullOwner in his ItemMeta.

Oh and by the way: Who came to the idea that it would be better to do this with commands????

Integrate a Residence

Hi,

I wants add permissions to my VIP but everybody can change name and other things ( when had permissions ).
Residence integration will be cool. When no, I must use else plugin :/

This plugin is on First Place 🥇

WorldGuard disable interaction.

Hello.

Using 1.12.2 with versions AST 2.4.3. World Guard 6.2.2.

I have enabled in my regions flags interaction and use, but player still cant click on armor stand to execute cmd binded on that armor stand. It just write "You cant change that here." Is it issue with integration with WorldGuard? Or whats the flag for enable this?

Can't move armor stands since 2.04 - teleported back

Hi,

As reported in a review on the plugin page:

"When I downloaded the latest version, when I tried to place an armor stand it kept teleporting to me, or teleporting me to it, even though I was just trying to move around. I had to download the version prior to 2.04 to get it to work, please fix."

I can confirm this is also affecting my server on Spigot 1.8. You can no longer move around with an armor stand as you keep being pulled back to the same spot.

1.16.5?

Hi,

Can this be used on Paper Spigot 1.16.5?

1.11 update

[10:06:50 ERROR]: Could not pass event PlayerInteractEvent to ArmorStandTools v2.1.4
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.11.jar:git-
Spigot-d60de0a-54450b7]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.11.jar:git-Sp
igot-d60de0a-54450b7]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.11.jar:git-
Spigot-d60de0a-54450b7]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.11.jar:git-
Spigot-d60de0a-54450b7]
at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.j
ava:231) [spigot-1.11.jar:git-Spigot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.PlayerInteractManager.a(PlayerInteractManager.java:440) [spigot-1.11.
jar:git-Spigot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:897) [spigot-1.11.jar:git-Sp
igot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:37) [spigot-1.11.jar:g
it-Spigot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:1) [spigot-1.11.jar:gi
t-Spigot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.11.jar:git-Spigo
t-d60de0a-54450b7]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_102]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_102]
at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) [spigot-1.11.jar:git-Spigot-d60de0a-5445
0b7]
at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:739) [spigot-1.11.jar:git-Spig
ot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.11.jar:git-Spig
ot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:675) [spigot-1.11.jar:git-Spig
ot-d60de0a-54450b7]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:574) [spigot-1.11.jar:git-Sp
igot-d60de0a-54450b7]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
Caused by: java.lang.IllegalArgumentException: Can not set boolean field net.minecraft.server.v1_11_R1.EntityA
rmorStand.bz to java.lang.Integer
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) [?:1.8.0_102]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) [?:1.8.0_102]
at sun.reflect.UnsafeBooleanFieldAccessorImpl.set(Unknown Source) ~[?:1.8.0_102]
at java.lang.reflect.Field.set(Unknown Source) ~[?:1.8.0_102]
at com.gmail.St3venAU.plugins.ArmorStandTools.NBT.setSlotsDisabled(NBT.java:64) ~[?:?]
at com.gmail.St3venAU.plugins.ArmorStandTools.MainListener.spawnArmorStand(MainListener.java:378) ~[?:
?]
at com.gmail.St3venAU.plugins.ArmorStandTools.MainListener.onPlayerInteract(MainListener.java:322) ~[?
:?]
at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_102]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.11.jar:git-
Spigot-d60de0a-54450b7]
... 17 more

Deny commands while in editing mode

Players can use commands like "/sell all" and sell items that are given by them from ASTools.
Can you implement option to deny other commands while they are in editing mode?

mousewheel

can you please add the mousewheel to rotate arm/leg/body? that is mutch smoother to handle

The permission system does not work in version 4.3.0

In the latest version you always get the message No permission for this tool and/or region when you want to edit an armor stand. This happens even though the OP + * permissions are granted, lp verbose doesn't find any denied permissions, the worldguard integration is disabled in config, the ast and the build flag are set to true.

With version 4.2.0 everything works fine.

git-Paper-327 (MC: 1.17.1)
WorldGuard version 7.0.7-SNAPSHOT+2156-9b66513
ArmorStandTools version 4.3.0

v4.1.1 error

Executing the base command /ast leads to an error

[21:53:25 INFO]: Player123abc issued server command: /ast
[21:53:25 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'ast' in plugin ArmorStandTools v4.0.2
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.17.1.jar:git-Purpur-1283]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[patched_1.17.1.jar:git-Purpur-1283]
at org.bukkit.craftbukkit.v1_17_R1.CraftServer.dispatchCommand(CraftServer.java:821) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2319) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2130) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2111) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundChatPacket.handle(ServerboundChatPacket.java:46) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundChatPacket.handle(ServerboundChatPacket.java:6) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1422) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.server.MinecraftServer.shouldRun(MinecraftServer.java:190) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1400) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1393) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1369) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1280) ~[patched_1.17.1.jar:git-Purpur-1283]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Purpur-1283]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at com.gmail.st3venau.plugins.armorstandtools.Commands.onCommand(Commands.java:47) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.17.1.jar:git-Purpur-1283]
... 21 more

Default skull on create Command Block

Hi, i've a problem with latest version of the plugin on spigot 1.10.2 server.
When i want create commandBlock to spawn armorstand created with the plugin, skull is replaced by default skull :/

Add support for Towny

Add the following code:

TownyAPI.getInstance().isWilderness(Location)

To add support for towny please!

Summoned Heads stay if taken off of stand?

Some Quick Info:
PaperMC v1.16.5 - Paper build 777
AST - 3.7.2

###Issue
So doing /ast enables the plugin, using the nether star opens up the GUI
Adding the user's name, gets you the user's head.

However, if you place the player head into your inventory, or drop it outside of the inventory, it doesn't despawn when the user does /ast to stop using the GUI tools.

I would like to see something like one of the options below:
NBT stating where the item came from (cannot be changed)
Lore stating where the item came from (cannot be changed)
Item disappearing if taken away from armour stand so people cannot abuse this to get all heads in-game.

PlotSquared support does not work in 1.16

[01:05:55 INFO]: [ArmorStandTools] Enabling ArmorStandTools v3.7.1
[01:05:55 INFO]: [ArmorStandTools] Loading support for v1_16_R3
[01:05:55 WARN]: [ArmorStandTools] Error in config.yml: Invalid material name specifed. Continuing using AIR instead.
[01:05:55 WARN]: java.lang.NoClassDefFoundError: com/plotsquared/core/api/PlotAPI
[01:05:55 WARN]:        at com.gmail.St3venAU.plugins.ArmorStandTools.PlotSquaredHook.<init>(PlotSquaredHook.java:18)
[01:05:55 WARN]:        at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reloadMainConfig(Config.java:177)
[01:05:55 WARN]:        at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reload(Config.java:66)
[01:05:55 WARN]:        at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reload(Config.java:62)
[01:05:55 WARN]:        at com.gmail.St3venAU.plugins.ArmorStandTools.Main.onEnable(Main.java:69)
[01:05:55 WARN]:        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
[01:05:55 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[01:05:55 WARN]:        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500)
[01:05:55 WARN]:        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518)
[01:05:55 WARN]:        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432)
[01:05:55 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:596)
[01:05:55 WARN]:        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:311)
[01:05:55 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074)
[01:05:55 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293)
[01:05:55 WARN]:        at java.base/java.lang.Thread.run(Thread.java:831)
[01:05:55 WARN]: Caused by: java.lang.ClassNotFoundException: com.plotsquared.core.api.PlotAPI
[01:05:55 WARN]:        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:153)
[01:05:55 WARN]:        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:114)
[01:05:55 WARN]:        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
[01:05:55 WARN]:        ... 15 more

I am using PlotSquared v6, it used to work with v5, but I updated and it stopped working :( and the newest ArmorStandTools version only works with 1.17, so I am stuck.

WorldGuard exclude regions

I am using PlotSquared and WorldGuard with your plugin on a server.
The problem is that we have Plots where all players are marked as Trusted/Added so they can place ArmorStands in them.

It would be great if we have a WorldGuard flag or config list of regions that ArmorStandTools will not work in.

Thank you in advance!

DB Support (MySQL, MongoDB...)

Hi, is it possible to add support for DB for network servers please ?

Because I want to sync across-servers all my armor stands on my maps ? :)

Remove

Is there any command to remove the stand?

"Pick Up As Item" doesn't add the armor stand to inventory

After our server upgraded to Paper 1.18.1 (build 145) and ArmorStandTools 4.4.2, the "Pick Up As Item" tool no longer adds the armor stand to your inventory. This happens in either creative or survival mode (armor stand is removed from the world in survival as normal). When using the tool, the console reports the following error:

[16:56:04 INFO]: CONSOLE issued server command: /give Frumple minecraft:armor_stand{Enchantments:[{id:unbreaking,lvl:1}],HideFlags:1,display:{Name:"\"Configured Armor Stand\"",Lore:["\"Inventory: 4 Items (4 Stacks)\"","\"Attributes: Gravity Off, Arms\""]},EntityTag:{NoBasePlate:1,NoGravity:1,ShowArms:1,Rotation:[357.45f],Pose:{Body:[0.0f,0.0f,0.0f],Head:[0.0f,0.0f,0.0f],LeftLeg:[-1.0f,0.0f,-1.0f],RightLeg:[1.0f,0.0f,1.0f],LeftArm:[-10.0f,0.0f,-10.0f],RightArm:[-15.0f,0.0f,10.0f]}}}
[16:56:04 INFO]: Error: Unknown item name: minecraft:armor_stand{enchantments:[{id:unbreaking,lvl:1}],hideflags:1,display:{name:"\"configured.

I suspect there's something going wrong with the double quotes, since the /give command cuts off as soon as it encounters a space character. But other than that, I'm not sure what the cause is.

Suggestion: Add option to add colored leather armor

You can currently add custom head through an option in the Multitool-GUI.
My suggestion now is to add another tool that allows you to add colored leather armor to the armor stand.

How it works

The GUI would contain an additional column of different armor pieces. Clicking on one would similiar to the name and head option open a Sign GUI with which you can then set the colour as hexadeciaml (or rgb?) code.
When this is possible, add a placeholder text already to the sign like #000000
Closing the sign will give the armor stand the leather armor with the set color (Leaving the sign blank would cancel this or just give the uncolored variation.)

Images

New GUI (Maybe increase size of the inv to make it look a bit better... Like with this example chest)
2019-09-18_11 07 44

The Sign GUI with pre-defined color (if possible)
2019-09-18_11 07 32

Can't move armorstand in negative direction with crouchRightClickOpensGUI

When you have crouchRightClickOpensGUI enabled in the config, you can't move an amorstand in a negative direction anymore. You have to crouch + right click with the shears to move an armorstand in the negative x/y/z direction. But this now opens the GUI rather than moving the armorstand.

Also since I don't know how well comments are visible in closed issues, it would be nice if you could look at this suggestion ^^ #53 (comment)

PlotSquared Api Update needed

With recent and premium version of PlotSquared (v5), link is broken, could you fix it ? Thanks :)

Involved stacktrace :
`>.... [10:27:34 WARN]: java.lang.NoClassDefFoundError: com/github/intellectualsites/plotsquared/api/PlotAPI

.... [10:27:34 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.PlotSquaredHook.(PlotSquaredHook.java:19)
.... [10:27:34 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reloadMainConfig(Config.java:177)
.... [10:27:34 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Config.reload(Config.java:66)
.... [10:27:34 WARN]: at com.gmail.St3venAU.plugins.ArmorStandTools.Main.onEnable(Main.java:68)
.... [10:27:34 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
.... [10:27:34 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:364)
.... [10:27:34 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483)
.... [10:27:34 WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:471)
.... [10:27:34 WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:385)
.... [10:27:34 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:488)
.... [10:27:34 WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:298)
.... [10:27:34 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:895)
.... [10:27:34 WARN]: at java.lang.Thread.run(Thread.java:748)
.... [10:27:34 WARN]: Caused by: java.lang.ClassNotFoundException: com.github.intellectualsites.plotsquared.api.PlotAPI
.... [10:27:34 WARN]: at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
.... [10:27:34 WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:171)
.... [10:27:34 WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:100)
.... [10:27:34 WARN]: at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
.... [10:27:34 WARN]: at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
.... [10:27:34 WARN]: ... 14 more
.... [10:27:34 WARN]: [ArmorStandTools] PlotSquared plugin was found, but there was an error initializing PlotSquared support.`

NullPointer and crash on any action

Whenever I try and interact with the armor stand in any way, I get kicked of the server.
Whenever I relog the change was applied, but the kicking is very inconvenient

Using latest version of ArmorStandTools on Paper-344

2021-11-16.14-52-26.mp4

1.16 support

Hey !

Just a small issue to inform you that your plugin needs an update to fully support 1.16 version of MineCraft. Issues are caused by NMS changes.

Thanks :)

1.17 UPDATE

AS you know minecraft had an update, the plugin works well apart from the fact the NMS version is unsupported so the plugin has disabled the locking of the stands.

ASTools and PlotSquared 3.1.3

ASTools appears to have broken with the most recent PlotSquared update.

[Server thread/ERROR]: Could not pass event PlayerInteractAtEntityEvent to ArmorStandTools v2.03
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1315) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:52) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:11) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_51]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:714) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556) [Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Caused by: java.lang.NoClassDefFoundError: com/intellectualcrafters/plot/util/bukkit/BukkitUtil
at com.gmail.St3venAU.plugins.ArmorStandTools.PlotSquaredHook.checkPermission(PlotSquaredHook.java:34) ~[?:?]
at com.gmail.St3venAU.plugins.ArmorStandTools.Main.checkBlockPermission(Main.java:190) ~[?:?]
at com.gmail.St3venAU.plugins.ArmorStandTools.Main.playerHasPermission(Main.java:207) ~[?:?]
at com.gmail.St3venAU.plugins.ArmorStandTools.MainListener.onPlayerInteractAtEntity(MainListener.java:69) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[Creative-1.8.8.jar:git-Spigot-6abac0c-9935adc]
... 15 more

Bskyblock

Hello, it would be nice to implement bskyblock support so player can only modify armorstand on their island,
regards.

Suggestion: Add Head Database support

I like the option in the Multitool, to set a head on the armor stand.
But it's sad that it doesn't work with custom heads (yet).

I want to suggest to implement support for Head Database, which when installed, would allow to use custom textured heads by providing the ID of it.

How it works

When Head Database is installed and running could you click on the "Give Player head" option to open the Sign GUI.
There instead of typing a name, could you f.e. type id:<id> to tell AST to get a head from Head Database using the provided ID.
This would open up a lot more ways to customize armor stands and also reduce times when you had to do /hdb, get the head you want and then add it to the armor stand.

Use placeholders for language file

Right now are all messages, which have some sort of changing value in it either split up into a before and after section, or written in such a way, that the value would be at the start or end of the text.

The issue with this is, that especially for translators of the language file, there is lacking context or it's very restrictive on how you can format the text for your language. Not every language can support the syntax the current files use, so a setup with placeholders for (constantly) changing values would help a lot.
It would also reduce the amount of lines in the language file for all those strings that come before and after a value, because you now don't have to use two strings.

Example:

# Currently used setup

## single line with a value before it:
invalidName: 'is not a valid minecraft username'

## multiple lines. This case "Cooldown set to <ticks> ticks for <command?>"
cooldownSetTo: 'Cooldown set to'
ticksFor: 'ticks for'

# New setup
invalidName: '{name} is not a valid minecraft username'

cooldownSet: 'Cooldown set to {ticks} ticks for {command}'

This could help translators a lot in formatting their translation in a proper way that fits their language's speech pattern and similar.

[Towny] Armor Stands can be opened by users not in a town

Version: 3.7.2

Armor Stands in town claims can be opened by users that are not in the town. Thus, if the town has some armor or weapons on display they can be stolen by anyone on the server.

Is there a way of fixing this bug?

Armor Stands can be destroyed when being moved

I'd like to cancel the event of destroying an Armor Stand (PvE) when it's being moved around the world. (Fixed in 2.1.3)
In a PlotWorld this also means when you're moving an Armor Stand to another plot, the plot owner can destroy and modify it.

Also, in a PlotWorld, if you TP into another world when you're in a road, it will drop the Armor Stand where you were before TPing. This is fixed if you set Armor Stands to follow you on World Change, but I would like to disable it. World changing should work just like disconnecting.

Also, still in a PlotWorld, you can move the armor stand to a point in the border, where you can't edit it anymore, but you can destroy it.

Dupe glitch with offhand and /hat

When Essentials and ASTools are both installed, the player can do /ast to enter armor stand editing mode, then do /hat with any of the items (most likely the nether star for the GUI tool), and then do /ast again to recover their inventory. After that, the GUI tool (or any other item from the ast kit that was used with /hat) will appear in the player's inventory, and they will be able to use it without problems. The same can be achieved by putting the item in the offhand

Suggestions to fix the problem:

  • Allow changing the items of the kit in the config.
  • Look for kit items in the player's armor slots

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.