mcMMO TabSkillz
mcMMO TabSkillz v1.6.6
Tired of typing /mcstats over and over? Just press Tab!
This is my first plugin so far and I'll appreciate any feedback or constructive criticism.
This plugin is as of now discontinued. Its functionality has been taken over by my new plugin ProTab. Using the Addon ProTab-mcMMO you will be able to get the exact same character sheet as this plugin generated. For a player list on a second page you can use ProTab-Basic.
Features
- Modifies the standard player list called by tab to show your mcMMO-skills.
- Shows all information /mcstats would provide.
- Can also show the progress in a skill in form of a bar or percentages.
- Will only show a skill if the player has the mcmmo-permission-node for it.
- The usual player list will begin just below the skill tab.
- Can be disabled to allow viewing more of the player list.
- Can be fully configured to your liking (see default tabConfig.yml file).
Config
- EnabledOnFirstConnect: State the standard status for a newly joining player here.
- ThirdColumnContent: Specify what should show up in the third column.
- Possible values: xpbar, percentage, both, none
- 'none' will cause the second-column-info to be extended into the third column.
- This will only do anything if your server has a player limit higher than 40.
- XpbarPercentageInMiddle: You can control if the percentages are in the middle of the xpbars or if they should move according to the length of their respective xpbar.
- This will only do anything if using 'both' as ThirdColumnContent.
- Playerlist:
- UsePrefix: Wether the prefix (defined by a permission-plugin) should show up in the player list or not.
- PrioritySorting: Wether players in the player list should be sorted by their ranks (defined by a permission-plugin) or not.
- Language: The Language the plugin should use.
- Currently supported: en_US, de, fr.
- If you want more to be supported, PM me and create a new one for another language.
Commands
- /tstoggle: Toggles the skill-sheet in the tab.
- /tsreload: Reloads the plugin, recognizing changes in the config and the tabConfig.
Permission Nodes
- tabskillz.show - Allows a player to see and toggle his stats when pressing tab (Default: Everyone)
- tabskillz.admin - Allows a player to reload the plugin (Default: Op)
- tabskillz.* / tabskillz.all - Inherits all the above permissions (Default: No-one)
Screenshots
With xp-bar:
Without xp-bar:

FAQ
- What are all these underscores doing there?
- There is a problem with the width of a space in Minecraft. It's way thinner than a usual character and to get a fixed distance between everything I needed a character that's just as wide as the others while still being considerably "empty". I decided to use the underscore.
- What are these blocks and numbers in the right column supposed to be?
- In the right column I tried to create some kind of progress bar for your respective skill. The blocks are forming the bar and the underscores the empty space which is to fill. The numbers printed either between the blocks or underscores are giving you the exact percentage of how full the bar is.
- Why is smelting not shown in the tab?
- Smelting is a child skill that mcMMO itself does not list it in /mcstats, so I won't do it as well.
Installation
- Make sure you installed all the required plugins found below.
- Drop the mcMMO TabSkillz.jar into your plugin folder.
- Make sure you have your player limit high enough to get at least 2 columns when you press tab (minimum: 21, max-sized tab: 60+)
- Have fun!
Requirements
- mcMMO v1.4.07
- TabAPI v0.1.15
- ProtocolLib v 3.0.1
Optional / Supported Plugins
- VanishNoPacket v3.18.7
- Will not show vanished players in the player list.
- PermissionsEx v1.20.4
- Will use rankings and prefixes in the player list. (configurable)
- bPermissions v2.10.7c
- Will use priorities and prefixes in the player list. (configurable)
Incompatible Plugins
- Any other plugins using TabAPI.
- Only 1 tab modifying plugin will be visible.
- Health Bar
- Will break the tab list. To fix this please set the Health Bar config option 'fix-tab-names' to 'false'.
To-Do
Enable / Disable Command- DONEMake xp-bar togglable and switch to xp-points if disabled- DONEAdd disable options for every single skill in the config- DONEHook into Vanish, so that vanished players are not displayed in the player list.- DONEAdd support for mcMMO Localizations- DONEReduce Lag- DONE (hopefully)Localized messages for the plugin.- DONEMake headers customizable- DONERearrangement for servers with player limit 21-40- DONEOptions to rearrange the skill- DONEOption to activate "compressed mode" for saving space in the tab (no headers or empty tabs)- DONE (by configuration)Option to put the progress percentages into the middle of their respective bars- DONEOption to give priority to certain groups in the player list, maybe colors / tags for them- DONEOption to switch content of the third bar between percentage, bar and percentage + bar- DONE- Create my own Tab API to remove the dependency from an outdated plugin
- Any Suggestions?
Known Bugs
- Lagging on servers with high numbers on players - working on it over time - is fixed?
-
View User Profile
-
Send Message
Posted Apr 3, 2013I love it :D but can you add a option like "If you don't know mining, you can't mine" Please :)
-
View User Profile
-
Send Message
Posted Mar 30, 2013@CilyMe
That looks like you're missing TabAPI on your server, which would be necessary to run mcMMO TabSkillz. If you're missing it, could you please tell me if it works after you added it?
EDIT: Additionally mcMMO TabSkillz 1.4.2 does no work with the CraftBukkit Dev Builds for Minecraft 1.5.1. If you use these, please wait for mcMMO TabSkillz 1.4.3 which is already waiting for approval.
-
View User Profile
-
Send Message
Posted Mar 30, 2013Hey Tosh, mine isn't working either on a new server build that isn't fully configured yet, but maybe something here will catch your eye. Here's the startup log:
10:29:49 [INFO] Starting minecraft server version 1.5.1 10:29:49 [INFO] Loading properties 10:29:49 [INFO] Default game type: SURVIVAL 10:29:49 [INFO] Generating keypair 10:29:49 [INFO] Starting Minecraft server on *:25572 10:29:49 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.7-R1.0 -75-g7f25632-b2717jnks (MC: 1.5.1) (Implementing API version 1.5.1-R0.1-SNAPSHOT ) 10:29:49 [INFO] [TelePads] Loading TelePads v1.4.1 10:29:49 [INFO] [mcMMO TabSkillz] Loading mcMMO TabSkillz v1.4.2 10:29:49 [INFO] [ProtocolLib] Loading ProtocolLib v2.3.0 10:29:49 [INFO] [SafeCreeper] Loading SafeCreeper v1.3.6.9 10:29:49 [INFO] [mcMMO] Loading mcMMO v1.4.04-b1848 10:29:49 [INFO] [MultiHome] Loading MultiHome v0.4 10:29:49 [INFO] [SafeCreeper] Enabling SafeCreeper v1.3.6.9 10:29:49 [INFO] [SafeCreeper] Loading global config... 10:29:49 [INFO] [SafeCreeper] Global config loaded, took 73 ms! 10:29:49 [INFO] [SafeCreeper] Loading world configs... 10:29:49 [INFO] [SafeCreeper] 2 world configs loaded, took 3 ms! 10:29:49 [INFO] [SafeCreeper] Retrieving updates data... 10:29:50 [INFO] [SafeCreeper] Updates data received! 10:29:50 [INFO] [SafeCreeper] [SafeCreeper] Disabling TVNativeLib usage, TVNLib not found. 10:29:50 [INFO] [SafeCreeper] No supported permissions system found! Permissions disabled! 10:29:50 [INFO] [SafeCreeper] Disabling MobArena usage, plugin not found. 10:29:50 [INFO] [SafeCreeper] Disabling PVPArena usage, plugin not found. 10:29:50 [INFO] [SafeCreeper] Disabling Factions usage, plugin not found. 10:29:50 [INFO] [SafeCreeper] Disabling Likeaboss usage, plugin not found. 10:29:50 [INFO] [SafeCreeper] MCStats.org Statistics enabled. 10:29:50 [INFO] [SafeCreeper] Safe Creeper v1.3.6.9 enabled, took 529 ms! 10:29:50 [INFO] [mcMMO] Enabling mcMMO v1.4.04-b1848 10:29:50 [INFO] [mcMMO] Loading mcMMO config.yml File... 10:29:50 [INFO] [mcMMO] Loading mcMMO treasures.yml File... 10:29:50 [INFO] [mcMMO] Loading mcMMO advanced.yml File... 10:29:50 [INFO] [mcMMO] Loading mcMMO child.yml File... 10:29:50 [INFO] [mcMMO] Loading mcMMO repair.vanilla.yml File... 10:29:50 [INFO] [mcMMO] Version 1.4.04-b1848 is enabled! 10:29:50 [INFO]
-Bukkit Auto Updater-10:29:50 [INFO] It appears that you're running a Development Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds. 10:29:50 [INFO] If you would like to be kept informed about new Development Buil d releases, it is recommended that you change 'preferred-channel' in your bukkit .yml to 'dev'. 10:29:50 [INFO] With that set, you will be told whenever a new version is availa ble for download, so that you can always keep up to date and secure with the lat est fixes. 10:29:50 [INFO] If you would like to disable this warning, simply set 'suggest-c hannels' to false in bukkit.yml. 10:29:50 [INFO] 10:29:51 [INFO] Preparing level "world" 10:29:51 [INFO] Preparing start region for level 0 (Seed: -1060339409) 10:29:51 [INFO] Preparing start region for level 1 (Seed: -1060339409) 10:29:52 [INFO] Preparing start region for level 2 (Seed: -1060339409) 10:29:52 [INFO] [TelePads] Enabling TelePads v1.4.1 10:29:52 [INFO] TelePads v1.4.1 by wizzledonker is now enabled! 10:29:52 [INFO] [mcMMO TabSkillz] Enabling mcMMO TabSkillz v1.4.2 10:29:52 [INFO] [ProtocolLib] Enabling ProtocolLib v2.3.0 10:29:52 [INFO] [ProtocolLib] Started structure compiler thread. 10:29:52 [WARNING] [ProtocolLib] Version (MC: 1.5.1) has not yet been tested! Pr oceed with caution. 10:29:52 [INFO] [MultiHome] Enabling MultiHome v0.4 10:29:52 [INFO] Server permissions file permissions.yml is empty, ignoring it 10:29:52 [INFO] Done (0.982s)! For help, type "help" or "?" 10:29:52 [INFO] [ProtocolLib] The updater did not find an update, and nothing wa s downloaded.Here's what happens when I log in:
10:37:33 [SEVERE] Could not pass event PlayerLoginEvent to mcMMO TabSkillz v1.4. 2 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.v1_5_R2.PlayerList.attemptLogin(PlayerList.java: 328) at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.ja va:120) at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.ja va:44) at net.minecraft.server.v1_5_R2.DedicatedServerConnectionThread.a(Dedica tedServerConnectionThread.java:41) at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:2 9) at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:5 78) at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:2 25) at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:4 74) at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java :407) at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:5 73) Caused by: java.lang.NoClassDefFoundError: org/mcsg/double0negative/tabapi/TabAP I at de.mail.j94.bastian.mcMMOTabSkillz.ConfigManager.createEntry(ConfigMa nager.java:44) at de.mail.j94.bastian.mcMMOTabSkillz.TabListener.onPlayerLogin(TabListe ner.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:425) ... 13 more Caused by: java.lang.ClassNotFoundException: org.mcsg.double0negative.tabapi.Tab API at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader .java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader. java:53) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 20 more 10:37:33 [INFO] CilyMe[/192.168.1.131:64503] logged in with entity id 306 at ([w orld] 196.54664604895387, 68.0, 245.7796600725527)
And here's an error dump when executing the /tson command:
10:39:32 [INFO] CilyMe issued server command: /tson 10:39:32 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'tson ' in plugin mcMMO TabSkillz v1.4.2 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18 7) at org.bukkit.craftbukkit.v1_5_R2.CraftServer.dispatchCommand(CraftServe r.java:523) at net.minecraft.server.v1_5_R2.PlayerConnection.handleCommand(PlayerCon nection.java:966) at net.minecraft.server.v1_5_R2.PlayerConnection.chat(PlayerConnection.j ava:884) at net.minecraft.server.v1_5_R2.PlayerConnection.a(PlayerConnection.java :841) at net.minecraft.server.v1_5_R2.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_5_R2.NetworkManager.b(NetworkManager.java:292 ) at net.minecraft.server.v1_5_R2.PlayerConnection.d(PlayerConnection.java :110) at net.minecraft.server.v1_5_R2.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:3 0) at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:5 78) at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:2 25) at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:4 74) at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java :407) at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:5 73) Caused by: java.lang.NoClassDefFoundError: org/mcsg/double0negative/tabapi/TabAP I at de.mail.j94.bastian.mcMMOTabSkillz.TabBuilder.createSkillTab(TabBuild er.java:33) at de.mail.j94.bastian.mcMMOTabSkillz.McMMOTabSkillz.updatePlayerTab(McM MOTabSkillz.java:38) at de.mail.j94.bastian.mcMMOTabSkillz.TabCommandExecutor.applyCommand(Ta bCommandExecutor.java:63) at de.mail.j94.bastian.mcMMOTabSkillz.TabCommandExecutor.onCommand(TabCo mmandExecutor.java:20) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more Caused by: java.lang.ClassNotFoundException: org.mcsg.double0negative.tabapi.Tab API at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader .java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader. java:53) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 20 more
Hopefully this helps you out. If you need any other info please let me know.
CilyMe
-
View User Profile
-
Send Message
Posted Mar 30, 2013@user_238412
What do you mean with "doesn't work"? Which versions are you using? Are you getting an error message? Without information it's pretty hard fixing it, because on all my own test servers it works.
-
View User Profile
-
Send Message
Posted Mar 30, 2013Nice concept, too bad it doesn't work. Good luck fixing it.
-
View User Profile
-
Send Message
Posted Mar 25, 2013I mean besides the option to localize mcmmo skill names, changing the language of messages appearing after commands like /tson ;]
-
View User Profile
-
Send Message
Posted Mar 25, 2013@chlitto
You mean sending a message, when someone logs in? The commands should already give you messages.
-
View User Profile
-
Send Message
Posted Mar 25, 2013Can wait for the update :) (also remember about messages like 'You can see your skills in the tab':)
-
View User Profile
-
Send Message
Posted Mar 23, 2013@Lakeshadow0
To properly address the issue, I would need the exact error message, because just randomly searching for an ArrayOutOfBounds can take hours. Could you please post one of them?
@chlitto
I did not think about localizations to be honest. Added to To-Do-List. About the lags: I'm trying to find an alternative, but I have to learn some stuff about databases before I can improve that and I'm quite busy IRL right now [exams ;)]. That's also the reason why my updates are way less frequent right now.
-
View User Profile
-
Send Message
Posted Mar 22, 2013Could you add support for mcMMO localizations ;] ? Either use the ones from mcMMO or let us change the skill names in your config file.
btw won't the config cause lags when there will be 20k+ player entries in it? iConomy had that issue when using flatfile
-
View User Profile
-
Send Message
Posted Mar 22, 2013I was getting a lot of ArrayoutofBoundExceptions, spammed my console like crazy. What could it be?
-
View User Profile
-
Send Message
Posted Mar 20, 2013Please add Support for the Skillz Plugin
-
View User Profile
-
Send Message
Posted Mar 19, 2013@Waterworth12
I'm not totally sure about the exact capabilities of the scoreboard, but as far as I know you can only display a number next to a name. That would not be enough for all the information I want to provide. Additionally it's shown globally as the same for all players as far as I know. I could of course put all the information into the display name, but it would still be globally shown as statistic for that player.
EDIT: You could also use mcMMO Stats Gui, if you like it. I'll stay on the tab.
-
View User Profile
-
Send Message
Posted Mar 18, 2013How about porting this over to scoreboards the 1.5 feature? Would be better to visually see your skills go up without having to hit tab.
-
View User Profile
-
Send Message
Posted Mar 18, 2013@Toxic__Waste
Sorry, but I don't have a github, it's not possible to download the source code right now. I'll think about creating one for the next update.
-
View User Profile
-
Send Message
Posted Mar 18, 2013do you have a github for the source code so we can update ourselves with the 1.5 updates bukkit has alot on its plate to approve anything
-
View User Profile
-
Send Message
Posted Mar 18, 2013Sry for the late answer, I had no access to the internet this weekend. I'm working on an update right now and will upload a new version soon.
EDIT: Update for Bukkit 1.5-dev is waiting for approval and will be available in a few hours.
-
View User Profile
-
Send Message
Posted Mar 16, 2013Using latest 1.5 dev build:
org.bukkit.command.CommandException: Unhandled exception executing command 'tson' in plugin mcMMO TabSkillz v1.4.1-beta at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186) at org.bukkit.craftbukkit.v1_5_R1.CraftServer.dispatchCommand(CraftServer.java:514) at net.minecraft.server.v1_5_R1.PlayerConnection.handleCommand(PlayerConnection.java:967) at net.minecraft.server.v1_5_R1.PlayerConnection.chat(PlayerConnection.java:885) at net.minecraft.server.v1_5_R1.PlayerConnection.a(PlayerConnection.java:840) at net.minecraft.server.v1_5_R1.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_5_R1.NetworkManager.b(NetworkManager.java:292) at net.minecraft.server.v1_5_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_5_R1.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_5_R1.MinecraftServer.r(MinecraftServer.java:580) at net.minecraft.server.v1_5_R1.DedicatedServer.r(DedicatedServer.java:225) at net.minecraft.server.v1_5_R1.MinecraftServer.q(MinecraftServer.java:476) at net.minecraft.server.v1_5_R1.MinecraftServer.run(MinecraftServer.java:409) at net.minecraft.server.v1_5_R1.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_4_R1/entity/CraftPlayer at de.mail.j94.bastian.mcMMOTabSkillz.TabBuilder.getPing(TabBuilder.java:171) at de.mail.j94.bastian.mcMMOTabSkillz.TabBuilder.createPlayerList(TabBuilder.java:92) at de.mail.j94.bastian.mcMMOTabSkillz.McMMOTabSkillz.updatePlayerTab(McMMOTabSkillz.java:43) at de.mail.j94.bastian.mcMMOTabSkillz.TabCommandExecutor.applyCommand(TabCommandExecutor.java:63) at de.mail.j94.bastian.mcMMOTabSkillz.TabCommandExecutor.onCommand(TabCommandExecutor.java:20) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more
-
View User Profile
-
Send Message
Posted Mar 14, 2013CONSOLE: [WARNING] [mcMMO TabSkillz] Task #454416 for mcMMO TabSkillz v1.4.1-beta generated an exception 18:13:35 CONSOLE: [WARNING] [mcMMO TabSkillz] Task #454417 for mcMMO TabSkillz v1.4.1-beta generated an exception 18:13:35 CONSOLE: [WARNING] [mcMMO TabSkillz] Task #454418 for mcMMO TabSkillz v1.4.1-beta generated an exception 18:13:35 CONSOLE: [WARNING] [mcMMO TabSkillz] Task #454433 for mcMMO TabSkillz v1.4.1-beta generated an exception
-
View User Profile
-
Send Message
Posted Mar 13, 2013@Vincent1468
Try setting the limit to something high, and using a plugin to reject player logins when you're above 20 online players.