[INACTIVE][ADMIN] MCStats v2.7 - Minecraft player statistics [868]

Discussion in 'Inactive/Unsupported Plugins' started by deltahat, Mar 15, 2011.

  1. Offline

    deltahat

    MCStats - Minecraft player statistics:
    Version: v2.7

    MCStats is a statistics plugin for the bukkit. MCStats periodically generates xml,
    json, js, and html files containing server statistics. Optionally, MCStats can also serve these files using an embedded web server. Using the embedded web server, the html stats report can be served directly from your Minecraft server. No need for messy apache installs.

    For group support to work you must also install and configure the Permissions plugin v2.5.4+.

    Please read the README - https://github.com/rmichela/MCStats2

    Features:
    • Tracks many player statistics
    • Built in web server
    • Integrates with external systems using raw data feeds
    • Supports reading group affiliation from Permissions
    • Supports reporting iConomy account balances
    Download: https://github.com/rmichela/MCStats2/downloads
    Source: https://github.com/rmichela/MCStats2

    Changelog (open)

    Version 2.1
    • Initial port to bukkit
    Version 2.2
    • Fixed initial startup config issues. Now generates meaningful config when first initialized.
    • Fixed directory problems that forced files under Plugins directory
    Version 2.3
    Version 2.4
    • Added ignoreGroups config option
    Version 2.5
    • Fixed group name case problems
    • Created Ops group based on ops.txt
    • Only show groups player is explicitly assigned to
    • Embedded web server can now serve customized html report
    Version 2.5.1
    • Bukkit 602 support
    Version 2.6
    • Fixed bug where players in default group were erroneously ignored.
    • Fixed incompatibility with GroupManager FakePermission
    • Verified support with CB612, MC2.4, and Permissions 2.5.5
    Version 2.6.1
    • Fixed strange incompatibility with iConomy.
    Version 2.7
    • Fixed Permissions group loading bug
    • Fixed inaccurate step count bug
    • Added proper iConomy support
     
  2. Offline

    CorneliousJD

    Sorry, yes, everything is working flawlessly right now, thank you so much!
     
  3. Offline

    derchris

    I get a lot of these errors:

    Code:
    2011-04-07 17:40:48 [SEVERE] Could not pass event PLAYER_MOVE to MCStats2
    java.lang.NullPointerException
    
    Same with BLOCK_MOVE/DESTROY
     
  4. Offline

    deltahat

    Please provide the entire stack trace.
     
  5. Offline

    derchris

    Here are 2 good examples:

    Code:
    2011-04-04 18:30:20 [SEVERE] Could not pass event BLOCK_PLACE to MCStats2
    java.lang.NullPointerException
            at com.nijiko.permissions.Control.inSingleGroup(Control.java:545)
            at com.ryanmichela.MCStats2.service.GroupService.getGroups(GroupService.java:60)
            at com.ryanmichela.MCStats2.controller.StatsController.ignorePlayer(StatsController.java:168)
            at com.ryanmichela.MCStats2.controller.StatsController.placeABlock(StatsController.java:82)
            at com.ryanmichela.MCStats2.controller.StatsBlockListener.onBlockPlace(StatsBlockListener.java:33)
            at org.bukkit.plugin.java.JavaPluginLoader$22.execute(JavaPluginLoader.java:297)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:84)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:68)
            at net.minecraft.server.ItemBlock.a(ItemBlock.java:75)
            at net.minecraft.server.ItemStack.a(ItemStack.java:56)
            at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:217)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    2011-04-04 18:30:20 [SEVERE] Could not pass event PLAYER_MOVE to MCStats2
    java.lang.NullPointerException
            at com.nijiko.permissions.Control.inSingleGroup(Control.java:545)
            at com.ryanmichela.MCStats2.service.GroupService.getGroups(GroupService.java:60)
            at com.ryanmichela.MCStats2.controller.StatsController.ignorePlayer(StatsController.java:168)
            at com.ryanmichela.MCStats2.controller.StatsController.travelAMeter(StatsController.java:74)
            at com.ryanmichela.MCStats2.controller.StatsPlayerListener.onPlayerMove(StatsPlayerListener.java:54)
            at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:205)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:128)
            at net.minecraft.server.Packet10Flying.a(SourceFile:126)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    
     
  6. Offline

    deltahat

    Is this happening in the Neither and are you using GroupManager instead of Permissions?
     
  7. Offline

    derchris

    I can't tell where this is happening, but we have a Nether world with access via Stargate Portals.
    We are using the Permissions plugin, no GroupManager.
     
  8. Offline

    deltahat

    My guess is that it is happening in the Neither. Try the permissions work around found above and see if that helps.
     
  9. Offline

    Alori

    Craftbukkit version git-Bukkit-0.0.0-646-gb61ef8c-b670jnks
    MCStats v2.6.1
    Permissions version [2.5.5]
    Normal World ( NOT nether )
    Code:
    2011-04-08 21:46:20 [SEVERE] Could not pass event PLAYER_MOVE to MCStats2
    java.lang.NullPointerException
        at com.nijiko.permissions.Control.getGroups(Control.java:652)
        at com.ryanmichela.MCStats2.service.GroupService.getGroups(GroupService.java:58)
        at com.ryanmichela.MCStats2.controller.StatsController.ignorePlayer(StatsController.java:168)
        at com.ryanmichela.MCStats2.controller.StatsController.travelAMeter(StatsController.java:74)
        at com.ryanmichela.MCStats2.controller.StatsPlayerListener.onPlayerMove(StatsPlayerListener.java:54)
        at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:240)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:128)
        at net.minecraft.server.Packet10Flying.a(SourceFile:126)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    2011-04-08 21:46:21 [INFO] Connection reset
    2011-04-08 21:46:21 [INFO] Player lost connection: disconnect.quitting
    2011-04-08 21:46:21 [SEVERE] Could not pass event PLAYER_QUIT to MCStats2
    java.lang.NullPointerException
        at com.nijiko.permissions.Control.getGroups(Control.java:652)
        at com.ryanmichela.MCStats2.service.GroupService.getGroups(GroupService.java:58)
        at com.ryanmichela.MCStats2.controller.StatsController.ignorePlayer(StatsController.java:168)
        at com.ryanmichela.MCStats2.controller.StatsController.logOut(StatsController.java:56)
        at com.ryanmichela.MCStats2.controller.StatsPlayerListener.onPlayerQuit(StatsPlayerListener.java:40)
        at org.bukkit.plugin.java.JavaPluginLoader$2.execute(JavaPluginLoader.java:210)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:119)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:503)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:202)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    i got a lot more of these but i hope they are representative
     
  10. Offline

    deltahat

    Mojang just released a preview video of their new first-party stats/achievements system. Looks pretty sweet but completely overlaps with MCStats. Once first-party stats are adapted to SMP and bukkit has adapted, expect MCStats to stop being developed unless there is a very compelling reason.

    http://www.youtube.com/watch?v=qy882ILYJMM
     
  11. Offline

    fuzzycut

    What about keeping track of other players stats on the server?
     
  12. Offline

    Sacul

    And what about showing it online?
     
  13. Offline

    deltahat

    I'll only stop developing MCStats when Mojang has replicated all of it's functionality. Proper SMP support is one of these. For now MCStats will continue to be developed.
     
  14. Something I've just noticed. When I point my web browser to the mcstats.html file and click the column headers to order them, they all order correctly except the two date columns.
    Aside from that slight issue, all working great :)
     
  15. Offline

    Skadar

    Purging player data is quite difficult at the moment. To remove a ton of non-players I had to open the web page, copy out records for everyone with less that 0.25 hours of play time. Then I pasted that into Excel. Copied and pasted that column into Notepad++. Formatted every name so that it had a space between it and the next. Dropped that formatted line of names into the playersToPurge section of the config file... and reloaded my server. Phew!

    It would be super nice to have a command that would purge players with less than X Total Play Time on demand.

    This plugin is loved my my mods, who use it to know which players are serious members of the community.
     
  16. Offline

    deltahat

    You can use groups to separate serious from non-serious players. Just add the non-serious group to the groupsToIgnore attribute.
     
  17. Offline

    Bonta-kun1981

    Hey deltahat,
    I would like to know how i can change the stats.
    I have changed the HTML-File here "LINK" but when i am refreshing the Page it looks the same as yours "LINK"
    Do i have a look at some other things in the File, or what should i change in it?
     
  18. Offline

    Skadar

    Yep! I'm getting this non stop as well in a normal world.

    I FOUND A SOLUTION!

    I only receive these errors with the NEWEST version of the config file. If you want to avoid these errors... and still have everything work (apparently)... use this config file:

    Code:
    # Check README for more settings
    # https://github.com/rmichela/MCStats2
    
    resourceSaveDirectory: plugins/MCStats2/stats
    statsBaseResource: mcstats
    # ignoreGroups: default
    # ignoreGrouplessPlayers: true
    webserverEnabled: true
    With this file, everything appears to work fine.
     
  19. Offline

    deltahat

    What was your config.yml before?

    Are you planning on using the built in web server or an external web server?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  20. Offline

    Skadar

    I know. I wanted to include it in my post, but I overwrote it in order to fix my server. Ugh. I have a feeling that it might reappear if I stopped an started my server. It was very similar to the one I posted, but it had a few more config options and nothing was commented out.
     
  21. Offline

    Bonta-kun1981

    Made in the external web server then into the minecraft Server loaded.
     
  22. Offline

    deltahat

    Think you can isolate it down to the one option that is causing the problem?

    Set overwriteHtmlReport: false in the config.yml file and then apply your changes to the mcstats.html file in your bukkit plugins directory.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  23. Offline

    Bonta-kun1981

    Code:
    # Check README for more settings
    # https://github.com/rmichela/MCStats2
    overwriteHtmlReport: false
    resourceSaveDirectory: plugins/MCStats2/stats
    statsBaseResource: mcstats
    # ignoreGroups: default
    # ignoreGrouplessPlayers: true
    webserverEnabled: true
    I have it changed - without success!
     
  24. Offline

    deltahat

    It keeps overwriting the file in plugins/MCStats2/stats? Are you using the latest version of MCStats?
     
  25. Offline

    Bonta-kun1981

    I just uploaded the new - is now nothing more! Link
     
  26. Offline

    deltahat

    Any error in the console?
     
  27. Offline

    Bonta-kun1981


    Code:
    >
    04:28:30 [INFO] Starting minecraft server version Beta 1.4
    >
    04:28:30 [INFO] Loading properties
    >
    04:28:30 [INFO] Starting Minecraft server on 85.131.148.237:25565
    >
    04:28:30 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-646-gb61ef8c-b670jnks (MC: 1.4)
    >
    04:28:30 [INFO] Preparing level "world"
    >
    04:28:30 [INFO] Preparing start region
    >
    04:28:30 [INFO] 144 recipes
    >
    04:28:31 [INFO] [MCStats] Loading MCStats
    >
    04:28:31 [INFO] [MCStats] Restoring player statistics.
    >
    04:28:31 [INFO] [MCStats] Permissions plugin not detected, disabling group support.
    >
    
    >
    04:28:31 [INFO] [MCStats] Enabling MCStats
    >
    04:28:31 [INFO] [MCStats] Starting internal web server.
    >
    04:28:31 [INFO] [MCStats] Server stats available at http://[hostname]:8080/mcstats.xml, mcstats.json, mcstats.js, and mcstats.html
    >
    
    >
    04:28:31 [INFO] Done (0.114s)! For help, type "help" or "?"
    >
    04:28:34 [INFO] Bontakun1981 logged in 
    no
     
  28. Offline

    Mikor

    I continue to have [SEVERE] errors in console with MCStats2. Going to have to disable for now until I can get them worked out. Here's the relevant console text, along with config.yml:

    CONSOLE TEXT
    Code:
    06:38:40 [SEVERE] [MCStats] Error writing stats user files.
    java.io.FileNotFoundException: plugins/MCStats2/stats/mcstats.html (Permission denied)
            at java.io.FileOutputStream.open(Native Method)
            at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
            at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
            at java.io.PrintWriter.<init>(PrintWriter.java:146)
            at com.ryanmichela.MCStats2.model.StatsModel.saveUserFile(StatsModel.java:154)
            at com.ryanmichela.MCStats2.model.StatsModel.saveUserFiles(StatsModel.java:130)
            at com.ryanmichela.MCStats2.model.StatsModel$StatsTimerTask.run(StatsModel.java:182)
            at java.util.TimerThread.mainLoop(Timer.java:512)
            at java.util.TimerThread.run(Timer.java:462)
    06:38:46 [INFO] [HeroChat] [g] USERNAME: mhm
    06:39:40 [SEVERE] [MCStats] Error writing stats user files.
    java.io.FileNotFoundException: plugins/MCStats2/stats/mcstats.html (Permission denied)
            at java.io.FileOutputStream.open(Native Method)
            at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
            at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
            at java.io.PrintWriter.<init>(PrintWriter.java:146)
            at com.ryanmichela.MCStats2.model.StatsModel.saveUserFile(StatsModel.java:154)
            at com.ryanmichela.MCStats2.model.StatsModel.saveUserFiles(StatsModel.java:130)
            at com.ryanmichela.MCStats2.model.StatsModel$StatsTimerTask.run(StatsModel.java:182)
            at java.util.TimerThread.mainLoop(Timer.java:512)
            at java.util.TimerThread.run(Timer.java:462)
    
    CONFIG.YML
    Code:
    # Check README for more settings
    # https://github.com/rmichela/MCStats2
    
    resourceSaveDirectory: plugins/MCStats2/stats
    statsBaseResource: mcstats
    # ignoreGroups: false
    # ignoreGrouplessPlayers: true
    webserverEnabled: true
    secondsBetweenPageRefreshes: 60
    
     
  29. Offline

    deltahat

    Thanks for all the data - Makes it much easier to debug.

    The error says that MCStats does not have permission to write to your plugins/MCStats2/stats directory.
    Please verify that the account you are using to run the server has read/write permissions to this directory.
     
  30. Offline

    Mikor

    Ah, that would explain it. I have a second admin with his own account on the server, and he was the last one to launch the server. The directory would have only have had permissions to my account, as I am the one who created the folder/plugin/etc.

    Thanks for the prompt response! My players LOVE this plugin, once I get it back integrated I'll be happy to show it to you in action.
     
  31. Offline

    imaxorz

    I am getting error when moving around in the nether.


    2011-04-12 14:02:44 [INFO] imaxorz used a portal and used an existing exit portal.
    2011-04-12 14:02:44 [INFO] Loaded world: nether
    2011-04-12 14:02:44 [SEVERE] Could not pass event PLAYER_MOVE to MCStats2
    java.lang.NullPointerException
    at com.nijiko.permissions.Control.getGroups(Control.java:625)
    at com.ryanmichela.MCStats2.service.GroupService.getGroups(GroupService.java:58)
    at com.ryanmichela.MCStats2.controller.StatsController.ignorePlayer(StatsController.java:168)
    at com.ryanmichela.MCStats2.controller.StatsController.travelAMeter(StatsController.java:74)
    at com.ryanmichela.MCStats2.controller.StatsPlayerListener.onPlayerMove(StatsPlayerListener.java:54)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:240)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:128)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283) at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
     

Share This Page