Changelog

Changelog

Version 1.15.1

  • API: Package structure has changed to com.webkonsept.minecraft.lagmeter. If your plugin relies on this one as a dependency, make sure you warn users not to update LagMeter until you update your references to this project.
  • Fixed a bug where lag and memory watchers would fail to parse the command to run when the threshold is exceeded.
  • Fixed default configuration values to reasonable values (down from 101% memory and 21 TPS, whoops - those were testing values!)
  • Fixed silly error messages when an invalid timed command was set up.

Version 1.15.0

  • API: LagMeter#getTPS() has been deprecated. The method will not be removed, but developers should cast to double when using any methods involving TPS (I forgot to deprecate some others, such as the ones on the lag/mem watchers). In 1.16, the TPS will be converted to a double value, so as to get a more accurate (and often faster) representation than a float.
  • The /ping command now pings players instead of assuming google.com (unless performed from the console, where google.com will be used instead)
  • Polling for TPS has been staggered until 1 minute and 15 seconds after the plugin starts. This change is to prevent bad data collection.
  • Fixed an issue where the configuration would sometimes not load correctly.
  • Fixed an issue where, when reloaded by the server or another plugin, the plugin would often fail to load its configuration correctly.
  • Slight optimizations (removed a few unnecessary checks, etc).
  • Converted back to Maven (not really a change that effects the plugin, but it is a change to the repository nevertheless).

Version 1.14.1

  • Fixed an issue which caused /mem to throw an exception in the console.

Version 1.14.0

  • API: Created a listener system for both Lag (TPS) and Memory watchers. Developers: to use this, see the API page. Listeners exist for asynchronous and synchronous execution.
  • API: Created getters for most of LagMeter's API, and made a few more methods public. I will be encapsulating LagMeter's classes even more in the future, so that the entire plugin will eventually comply with java standards.
  • API: Many of LagMeter's methods (most of them, actually) are now public and are available for developers to harness the powers of. This includes the new methods with 1.14.0.
  • Lag/mem listener command times can now have delays in the format that uptime commands do.
  • Log outputs will now have digit grouping and two decimal places (i.e. 3,635,252.55 and for everywhere that uses a full-stop as a digit grouping character, 3.645.211.755,15) when refering to TPS and memory.
  • Fixed (on accident) a NullPointerException which would occur when the plugin was disabled with logging disabled.
  • Added 'uptime commands' - commands to be run after a certain amount of time the server has run for. Can be set to recur. To use, add to your config (a command, followed by <>, followed by the time (w: weeks; d: days; h: hours; m: minutes; s: seconds):
UptimeCommands:
    commandList:
        - /stop<>7d12h
  • Fixed the ping command: it will no longer create massive tonnes of lag, but instead, the response will be a bit delayed instead of delaying the entire server thread if a high value is entered for the hops. In other words, you might use the command /ping 500 and it'll respond in about 20 minutes or so, but the server won't lag.
  • Fixed ping on Linux. Again. Or, at least, I hope.

Version 1.13.0

  • Built with Bukkit for Minecraft 1.5.1 (R0.1).
  • Added /ping and /lping commands, where the server will ping google.com and thereafter return the resulting ping time in milliseconds to the player or console which used it. You may specify, if you have the necessary permission node, the amount of hops (packets) to send to google.com to test your ping, to get a better average result of ping time. Typing /ping 10 will check if the player has the necessary permission node, and if so, will ping google.com with 10 packets, averaging the times together, and returning that. This has a maximum of 10, as it becomes server-intensive soon after 3 or 4 hops. Pinging the player instead is possible, create a ticket if you'd like this to happen (it was deemed too expensive as far as memory goes for now).
  • Fixed a bug where LagMeter might display its tag twice.
  • Removed an unnecessary message telling the player they had no commands besides the help command, where that was already obvious.
  • Paginated support. You can now use /lm help, /lm help 1, or /lm help 2.
  • Fixed a bug where LagMeter's permission checks could have ignored lagmeter.*
  • Added permission node lagmeter.commands.ping, in correspondence to the /ping and /lping commands.
  • Added permission node lagmeter.commands.ping.unlimited, in correspondence to the packet hop specification of the /ping command.
  • Fixed a bug where commands sometimes didn't fire from lag/memory watchers.
  • When entities and/or chunks are output, if the amount shown would be 0, it is not displayed (should help MCPC users who have Mystcraft installed from getting spammed with tons of 0s).
  • Added more documentation to default configuration.
  • Fixed a bug where an exception would be thrown by the plugin if the configuration was invalid, where the it was intended to just show a message saying that there was an invalidity in the configuration.
  • Fixed a rare NoClassDefFoundException where the plugin's main class was instantiated before it was passed a Bukkit instance by the JVM, causing the plugin to try to find Bukkit classes where they were not yet visible to the plugin.
  • Added colours to console messages, at the cost of the [WARNING] and [SEVERE] tags.

Version 1.12.0

  • Built with CB1.4.7-R1.0
  • Removed Vault depenency: Vault is no longer required for using permissions!
  • New command: /uptime
    • Keeps uptime of the server in weeks, days, hours, minutes, and seconds
  • Users can now use multiple commands with the low tps/mem watchers, separate commands with ;
  • Remove ugly characters that should not be in console messages (which were supposed to be console colouring)

Version 1.11.1

  • Fixed a bug with console commands.
  • Fixed a bug with /lm help where it would show nothing unless you were an op, even if you had the necessary permissions to see other commands.
  • Added missing permission nodes for the new base command.
  • Fixed lag and mem watchers completely for all users. This has been a frequent request, so have fun.
  • Added a fix for CButD compatibility.

Version 1.11.0

  • Built with CB1.4.5-R0.2
  • Added a new command: /lmobs - Shows how many entities are currently alive in each world, then shows a total.
  • Added a new command: /lchunks - Shows how many entities are currently loaded in each world, then shows a total.
  • Added a new command: /lmp - Works the same as /lm with no arguments, but shows players too.
  • Added a base command: /lagmeter - Shows the current version and available sub-commands (/lagmeter help and /lagmeter reload").
  • Changed a command: /lm - If no arguments are added, it will work the same as before, but if help or reload are added, it will perform such a function.
  • Added the ability to make all of the log information appear on one line. Users should add this configuration node to their settings.yml, under the log: section and change it depending on their preference:
    #Should the plugin put each statistic (TPS, memory, players) on a separate line?
    #Default: true
    newLinePerStatistic: true
  • Added the ability to make an extra space appear between each block of log data. Users should add this configuration node to their settings.yml, under the log: section and change it depending on their preference:
    #Should the plugin have an empty line between each log tick to make the log file neater?
    #Default: true
    newBlockPerLog: true
  • Added the ability to add loaded chunks per world or only total, or not at all. The same goes for entities alive. Users should add these lines to their configuration under the log: section and then edit them based on their preference.
    #Should LagMeter log how many entities are present on the server?
    #Default: true
    logEntities: true
    #Should LagMeter only display total entities, and not those for each world?
    #Default: true
    logTotalEntitiesOnly: true
    #Should LagMeter log how many chunks are currently loaded on the server?
    #Default: true
    logChunks: true
    #Should LagMeter only display total chunks, and not those for each world?
    #Default: true
    logTotalChunksOnly: true
  • Added the ability to show chunks and/or entities on plugin (re)load. Displays per-world and total. Users should add the following configuration nodes to the base of their config, then edit accordingly:
#Display chunks loaded on plugin (re)load?
#Default: true
LoadedChunksOnLoad: true
#Should LagMeter display all of the entities that exist at the time of plugin (re)load?
#Default: true
displayEntitiesOnLoad: true
  • Fixed a bug where the log interval would never be loaded.
  • Fixed a bug where default values for configuration would not load the correct values if the file did not exist, or the node was missing.
  • Fixed a bug where if a bug is found in the plugin, Bukkit won't tell you to nag Demmy, but rather, me (TheLunarFrog).
  • A bit of optimization of code pathing.
  • Largely optimized memory usage.
  • Added a check to make sure there's not a divide by 0 error.
  • Changed the descriptions for the lag notification permissions (they were copied and pasted before)
  • Users must use vault if they want users to have /lag - reverted commit, meaning all permissions are default op-only, so for anyone to have /lag, they must have the lagmeter.command.lag permission.
  • Added ability to see entities per world and total, same with loaded chunks, when using /lag. Users should add this section to their configuration:
Commands:
    Lag:
        #Should the commands which show the TPS meter also display entities in each world?
        #Default: false 
        displayEntities: false
        #Should the commands which show the TPS meter also display loaded chunks in each world?
        displayChunks: false
  • Added a percentage value to the memory when it is logged, so now it will show something like "Memory free: 1000/1337 (74%)."
  • Re-structured the default configuration. To make sure users aren't missing anything, it now looks like this:
#################
##     General      ##
#################
#Whether or not to use the average for TPS. If set to false, the server will always return the value at the last poll.
#Default: true
useAverage: true
#How many polls to keep in LagMeter's memory.
#Default: 10
averageLength: 10
#How often LagMeter should poll the server.
#Default: 40
interval: 40
#Display chunks loaded on plugin (re)load?
#Default: true 
LoadedChunksOnLoad: true
#Should LagMeter display all of the entities that exist at the time of plugin (re)load?
#Default: true
displayEntitiesOnLoad: true
#################
##   Commands  ##
#################
Commands:
    Lag:
        #Should the commands which show the TPS meter also display entities in each world?
        #Default: false 
        displayEntities: false
        #Should the commands which show the TPS meter also display loaded chunks in each world?
        displayChunks: false
#################
##     Logging      ##
#################
log:
    #How often the plugin should log information to its log file.
    #Default: 150
    interval: 150
    #Should LagMeter log information to a file?
    #Default: true
    enable: true
    #Should LagMeter use a folder called 'logs' and use 'Day-Month-Year-Lag.log' format for each day's logs?
    #Default: false
    useLogsFolder: false
    #Should LagMeter log how many players are online as well?
    #Default: true
    logPlayersOnline: true
    #Should LagMeter log how many entities are present on the server?
    #Default: true
    logEntities: true
    #Should LagMeter only display total entities, and not those for each world?
    #Default: true
    logTotalEntitiesOnly: true
    #Should LagMeter log how many chunks are currently loaded on the server?
    #Default: true
    logChunks: true
    #Should LagMeter only display total chunks, and not those for each world?
    #Default: true
    logTotalChunksOnly: true
    #Should the plugin have an empty line between each log tick to make the log file neater?
    #Default: true
    newBlockPerLog: true
    #Should the plugin put each statistic (TPS, memory, players) on a separate line?
    #Default: true
    newLinePerStatistic: true
#################
#    Notifications    #
#################
Notifications:
    Lag:
        #Enables low TPS notifications.
        #Default: true
        Enabled: true
        #If the server is at or below this value for memory free, it will notify OPs and anyone with the permission node lagmeter.notify.lag
        #Default: 17
        Threshold: 17
        #How often LagMeter should check on the TPS, in minutes.
        #Default: 5
        CheckInterval: 5
        #Specify a command to use when the plugin notices that the TPS is low. Must be usable from console.
        #Default: /lag
        ConsoleCommand: /lag
    Memory:
        #Enables/disables low memory free notifications.
        #Default: true
        Enabled: true
        #If the server is at or below this value for memory free, it will notify OPs and anyone with the permission node lagmeter.notify.mem
        #Default: 25
        Threshold: 25
        #How often LagMeter should check on the free memory, in minutes.
        #Default: 10
        CheckInterval: 10
        #Specify a command to use when the plugin notices that the free memory is low. Must be usable from console.
        #Default: /mem
        ConsoleCommand: /mem

Developers:

  • Made nothing in LagMeter static - now, the LagMeter instance must be used if LagMeter is to be hooked into. There is a static accessor variable, however: LagMeter.p.
  • Added API: double[] getMemory() - Returns: 0 - used memory; 1 - max memory; 2 - memory free; 3 - percentage of memory free (un-truncated).

Version 1.10.0

  • Built with CB 1.3.2-R1.0.
  • Now displays entities in each world, along with the combined total when using a command that includes the TPS meter.
  • Displaying entity amounts can be configured by pasting this into your configuration under any line at the very top, but it must be grouped with
useAverage: true
averageLength: 10
interval: 40

The node is:

displayEntitiesInLagCmds: false

So it should look like

useAverage: true
averageLength: 10
interval: 40
displayEntitiesInLagCmds: false

With no space indentation at all. Note that it will default automatically to true.

  • Fully implemented TPS and memory watchers. These can be configured, and the default is:
Notifications:
    Lag:
        Enabled: true
        Threshold: 17
        CheckInterval: 5
        ConsoleCommand: lag
    Memory:
        Enabled: true
        Threshold: 25
        CheckInterval: 10
        ConsoleCommand: mem

The check interval is in minutes. It will only alert you if they are enabled, and the threshold is a "less than or equal to" relationship. Memory is memory REMAINING. Only OPs or those with the permission node

lagmeter.notify.mem

will be notified of memory shortages, likewise with

lagmeter.notify.lag

for tps notifications.

The command must be runnable from console, and you may need to add a slash (/) in front of it.

  • Bugfix: setting the timer for the logging now works (with thanks to Southpaw018 for his pull request - I didn't even know this bug existed).

Version 1.9.3

  • Should fix logs folder issue for Linux.

Version 1.9.2

  • Fix logs folder issue. 1.9.1 (removed) fixed it for Windows; this fixes it for others.

Version 1.9.0

  • Built with RB 1.3.1-R1.0.
  • Early-stage alert system. If you set the plugin to do so, it should alert you when the server falls below this threshold. Might break. Will broadcast every log tick. settings.yml modifications for this, if the plugin doesn't do it automatically:
adminNotifications:
    #Should LagMeter notify Ops and players with the permission node "bukkit.broadcast.admin"?
    #Don't give this node to people you wouldn't like seeing administration broadcast, such as opping, de-opping, etc.
    #Default: true
    Lag: true
    #After this TPS, start notifying the aforementioned groups that the tps is below this setting:
    #(Default: 16) - This makes it notify when the TPS hits 15. It's less than, not less-than-or-equal-to.
    tpsThreshold: 16
    #Same deal as "Lag:" but memory notifications instead.
    Memory: true
    #Same deal as with tpsThreshold; however, this one is a percentage. It is not less than or equal to, it is only less than.
    #Default: 26 (This makes it announce as the memory hits 25%, as it is < 26%, 26% wouldn't start it notifying such)
    memoryThreshold: 99

Version 1.8

  • Built with RB 1.2.4-R1.0.

Version 1.7

  • Fixed player logging.

Version 1.6

  • Updated configuration methods, so now it will not break upon use of Bukkit 1.1-R5.

Version 1.5

  • Updated to latest RB. Will say in server console, "LagMeter 1.4" - I was in a rush when compiling this and never changed the version, sorry. Still 1.5, though.

Version 1.4

  • Fixed player count logging. It will now properly log players online.

Version 1.3

  • Changed "Old permissions system found. Using it." From a [SEVERE] tag to an [INFO] tag.
  • Changed the messages for under 20 tick-check interval from [SEVERE] to [WARNING].
  • Fixed an exception where if logging isn't enabled, it throws an NPE upon disabling.

Version 1.2

  • Made the player-online count configurable.

Version 1.1

  • Brought back printing of player-online count in the log, per this request

Version 1.0

  • Fixed /lm command
  • Updated for Bukkit RB 1597 (CB1.0.0-R1)

Version 0.9

(thanks to TheLunarFrog for help with code)

  • Fixed return No Permissions
  • Fixed /lagmem
  • Added new shortcut for /lagmem as /lm

Version 0.8

  • tested to be working with no errors
  • reduced size 17.9 KB

Version 0.7

  • No major changes

Version 0.6

  • No major changes
  • Updated Library's and Code for 1337

Version 0.5

  • Re-implemented logging in a way that should not prevent Windows-users from opening it while the server is running.
  • Implemented number of players online logging.

Version 0.4.1

Version 0.4

  • Implemented optional logging

Version 0.3

  • Added optional support for the old-style Permissions back in.

Version 0.2

  • b1k-style permissions support, PermissionsBukkit or compatible assumed.
  • Added /mem command to check current memory availability
  • Added /lagmem command to do both in one go.
  • Improved responses for when commands are issues from console.

Version 0.1

  • Initial release

Comments

Posts Quoted:
Reply
Clear All Quotes