MyCommand
MyCommand
Donations
If you like this plugin, and want to offer me a coffee, consider to click the button on the top right corner of the navbar to donate! Thank you :D

Make your own, customized Minecraft commands
Features:
- Make new commands!. (Also registered command)
- Run others command in new one
- Perform several commands in one
- Delayed commands with custom pause, warmups and cooldowns
- Make Shortcut/alias commands or override commands.
- Run commands with any item , block, signs or even (villager) NPC's.
- Various functions for costumize commands, like placeholders, scripts (if-else) and more.
- Console support
- Economy support (Require Vault)
- All features are highly customizable
- No command limits with multiple file support
- Customizable IconMenu (ChestGUI), ActionBar, BossBar, Hover/ClickableText, Title and Scoreboard commands.
- Allow the execution of commands in various circumstances (per world, by worldguard regions and more.
- Custom players database where you can store anything you want to personalize even more your commands. SQL database supported.
- BungeeCord feature, Scheduler, Join/Quit/Death events, PHP/GET request ...
- ... And much, much more..!
Configuration and examples (Documentation)
Commands & permissions
Video Tutorial :
(French) Getting Started (TEXT and ALIAS commands) by Texier (MyCommand 5.5.0)
(English) by Koz4Christ. (MyCommand 5.1.8)
If you have to report an error in the chat, or just a command section, use pastebin or a similar website. Help with YML code error : http://yaml-online-parser.appspot.com/
This plugin uses bStats Metrics - MyCommand stats page
-
View User Profile
-
Send Message
Posted Jun 1, 2019This might be a noobish question, but is it possible to compare %playerdata% information between 2 different usernames within a script?
I also wanted to say I love this plugin. This is one of the main plugins the server I admin on has been using for the last couple of years. It adds a whole new dimension to the game.
Keep up the good work!
-
View User Profile
-
Send Message
Posted Jun 2, 2019In reply to Forge_User_90669409:
You can retrieve information with the placeholder "$PlayerDataFor%PlayerName%VarName%".
So, if you put them in a if condition, like :
you can compare them.
-
View User Profile
-
Send Message
Posted Jun 3, 2019In reply to ivanfromitaly:
Thank you for this!
-
View User Profile
-
Send Message
Posted May 30, 2019Version: 5.5.0
MC: 1.8.9
Hello!
I really like your plugin, it's very useful, I tried to use it to grant ranks replacing the pex command (pex user <user> group set <rank>) and it works really well with variables:
The problem is that when I use it in game it works but it doesn't tab names or variables, so I tried to add the tab option but it only works with ranks in the wrong place (e.g. /grant <it tabs the rank and not the player> <it doesn't tab anything>).
Is there a way to set the tabbing option on players for the first variable and defaults rank names for the second variable?
-
View User Profile
-
Send Message
Posted May 31, 2019In reply to Forge_User_42196809:
For now no. without tab_completer the list will return with the player list, with tab_completer it returns the custom list.
I need to work on it to make it flexible, but takes time and i've see how to maintain compatibility.
-
View User Profile
-
Send Message
Posted May 31, 2019In reply to Forge_User_42196809:
Considering it was something people already asked, i finaly made it out. Try it in the new dev version here
Link Removed: https://www.mediafire.com/file/7u5z8c32e0a43kc/MyCommand_v5.5.1dev_may31.zip/file
and tell me if it's all ok. I don't know if implement a way to have a list who return anyway when isn't the call one, or you exceeded the last list created How to use :
-
View User Profile
-
Send Message
Posted May 31, 2019In reply to ivanfromitaly:
Thank you so much! You read my mind, I wanted to ask you that :)
I can't try it right now but I will when it's published :D [I'm using aternos (which allows unlimited plugins but only selected plugins from here and the spigot website) to play with my friends and I download this plugin because I'm into IT :D]
Nevermind, I tried it on a localhost spigot 1.8 server and it worked perfectly, I can't wait to see this fantastic feature in future!
-
View User Profile
-
Send Message
Posted May 29, 2019Version : 5.5.0
MC : 1.13.2
Hey Ivan,
I am having problems with my scripts. I am making custom variables for items in the game.
2 of these are:
"buy_sand"
"buy_sandstone"
But in the script, it is replacing "buy_sand" before it even finishes reading "buy_sandSTONE"
- '$text$[Shop] Bought %mycommand_variables_amount_sandstone% sandstone for buy_sandstone Pure Gold.
Is returning in chat:
[Shop] Bought 32stone sandstone for 3stone Pure Gold.
Should be returning:
[Shop] Bought 32 sandstone for 3 Pure Gold.
I don't know if this issue is related, but it is replacing variables even when they're just text.
For example, if I have a variable named "stone" and set it to "10",
if I try:
- "$text$You just mined some stone!"
It would replace it with
- "$text$You just mined some 10!"
-
View User Profile
-
Send Message
Posted May 29, 2019In reply to Forge_User_98674312:
The mycmd-variables function works as a global placeholder storage. If you create a variable called stone, everytime a string contains stone it will replace it with it's content. Create variables with special character in it, like $stone or %_stone_% ecc to avoid that. Anyway, if you need to store data per player, you need to use /mycmd-playerdata. Variables is here if you want to create a variable who is global to show for everyone.
-
View User Profile
-
Send Message
Posted May 29, 2019In reply to ivanfromitaly:
Didn't think of creating it as $stone or %_stone_%, thank you.
-
View User Profile
-
Send Message
Posted May 28, 2019Hello Ivan.
I love your plugin. <3
My problem is itemset.
pls help, thank you. :)
(sorry i very bad english)
[09:36:14] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to MyCommand v5.5.1dev
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:520) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:505) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:423) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:390) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:386) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1704) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:32) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:9) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:13) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:135) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:114) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:895) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:888) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeAll(SourceFile:99) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:871) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:805) [server.jar:git-Spigot-8043ebc-f690957]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.NullPointerException
at it.mri.mycommand.itemset.LoadItems.CheckIfContainsThisMaterial(LoadItems.java:98) ~[?:?]
at it.mri.mycommand.listener.ItemsListener.onPlayerInteract(ItemsListener.java:52) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[server.jar:git-Spigot-8043ebc-f690957]
... 20 more
-
View User Profile
-
Send Message
Posted May 28, 2019In reply to Forge_User_73643943:
What version of Spigot/bukkit are you using? I guess you need to update the itemset.yml file with newer 1.13 item names... or i can see to implement something like the icon_menu to add a temporary compatibility. If you want make a fast fix, first make a backup of your itemset.yml file, then open the main one and add LEGACY_ prefix to every item name. That's should fix the null pointer.
-
View User Profile
-
Send Message
Posted May 28, 2019In reply to ivanfromitaly:
It works. But when you create an empty hand interaction, throw the error message.
Server version: 1.14
[11:41:09] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to MyCommand v5.5.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:520) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:505) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:423) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:390) ~[server.jar:git-Spigot-8043ebc-f690957]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:386) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1704) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:32) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:9) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:13) ~[server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:135) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:114) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:895) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:888) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(SourceFile:123) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:872) [server.jar:git-Spigot-8043ebc-f690957]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:805) [server.jar:git-Spigot-8043ebc-f690957]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.NullPointerException
at it.mri.mycommand.itemset.LoadItems.CheckIfContainsThisMaterial(LoadItems.java:98) ~[?:?]
at it.mri.mycommand.listener.ItemsListener.onPlayerInteract(ItemsListener.java:52) ~[?:?]
at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[server.jar:git-Spigot-8043ebc-f690957]
... 20 more
-
View User Profile
-
Send Message
Posted May 28, 2019In reply to Forge_User_73643943:
Are you adding items from in-game with the command /mycmd-itemset or you're directly editing the yml file? Because the intended usage is to use only the in-game command.
-
View User Profile
-
Send Message
Posted May 28, 2019In reply to ivanfromitaly:
I editing the .yml file all config ,i always do that and i like notepad++ configuration.
(config picture)
and the blockset also writes an error.
-
View User Profile
-
Send Message
Posted May 28, 2019In reply to Forge_User_73643943:
Still, the intended use to prevent error is to use the in-game command. The null pointer probably is the wrong item_name. Add them from the game, and then, if you want, edit the file manually.
-
View User Profile
-
Send Message
Posted Jun 21, 2019In reply to ivanfromitaly:
Hello Ivan.
Can we talk elsewhere?
-
View User Profile
-
Send Message
Posted May 26, 2019Hello Ivan:)
Or anyone else who is better at mycmd than me ;)
Im looking for a way to make a variable that counts the amount of unique players that join my server. But i cannot figure out a way to do it properly, i will post my idea below:
On a players first join, i run a command as the player: /first_join_message .
That command will then add +1 to a variable that is %unique_players_joined%.
But how can i make such a global variable? (one variable thats shared across all players?)
Also can i somehow use this to do something like:
%your_unique_number% = %unique_players_joined%
Without the %your_unique_number% updating when the %unique_players_joined% update?
My use for this is to make 2 messages: One will show how many players that have joined my server, and one to show what number the player was.
Thank you for an amazing plugin and support!
- Digi
-
View User Profile
-
Send Message
Posted May 27, 2019In reply to Digital_Beast:
If you already have a way to determinate if it is the player first join (i don't know essentialsX?) you just need to create a global variable with
"/mycmd-variables create $unique_players_joined" and then set it to 0 ->
"/mycmd-variables set $unique_players_joined 0".
In the main command /first_join_message you just need to increase that variable in someway, by the mycmd-variable command or the script "
Done this, the variable $unique_players_joined should be accesible from any part of mycommand, or you can use placeholderapi to get it on other plugins, with :
P.S. I used $unique_players_joined instead of %unique_players_joined% to prevent parsing error's in my plugin, maybe they works also with the %, not sure, but for the example here i used something i'm sure to be okay.
-
View User Profile
-
Send Message
Posted May 27, 2019In reply to ivanfromitaly:
Thank you Ivan!
I will determine a players first join from a command im running when they join, in which i will use the "$Script$%Variable%$unique_players_joined+1"
But for my second part of my question, can i somehow duplicate' the value of the "$Script$%Variable%$unique_players_joined+1" and make that unique for a player?
e.g:
Bob and Ross joins my server, Bob is number 205 and Ross is number 206 unique player. John_wick321 is an older player who got curious about the number of joins, after they joined so, John_wick321 run a command like '/totalplayersjoined' and he will receive:
"A total of 206 players joined. You was number 95!" Or something like that..
So The number that the players were when they joined somehow gets attached to them by from that point on, by copying the global variable and making it a playervariable?
If you want to help im very happy, and assuming you are very busy with 1.14.X updates i understand completely if you dont have time.. I want you to know your support is well appreciated!
Cheers - Digi
Its very difficult to explain, im sorry if something sounds stupid or stupifying.. I hope you understand :)