Inactive [ADMN] HeroicRebuke v1.2.7 - Warn Players and Track Warnings [211~1060]

Discussion in 'Inactive/Unsupported Plugins' started by SquallSeeD31, Feb 13, 2011.

  1. Offline

    SquallSeeD31

    HeroicRebuke - Warn Players and Track Warnings (v1.2.7)
    Download HeroicRebuke 1.2.7 [CraftBukkit 561+]
    Download HeroicRebuke 1.2.4 [CraftBukkit 560-]
    SQLite | MySQL

    Latest Jar Only

    COMPATIBILITY UPDATE: Due to recent changes in CraftBukkit version 561, all server admins upgrading to this version of CraftBukkit or higher will need to download HeroicRebuke 1.0.5 or higher. Server admins running CraftBukkit 560 and below should download HeroicRebuke 1.0.4, thank you for your understanding.

    HeroicRebuke allows the server admin and his designated moderators to Warn players for misbehaving and persistently track the warnings issued. This project was originally developed for the HeroCraft SMP server based on demand for a port of the "Warn" hey0 plugin by bootswithdefer. HeroicRebuke is an original creation extending that design with optional (but emphatically recommended) support for a lightweight SQLite database.

    Features
    • Warn players for lesser infractions not meriting a kick or ban
    • List a player's previous actions to track chronic violators
    • Supports partial name matching! (Squall, ed3, and LLSEE all match SquallSeeD31)
    • Supports SQLite or MySQL
    • Warnings can optionally root players, preventing all movement (including teleports)
    • Acknowledging your warning can optionally require a randomly-generated code, preventing automation and encouraging thorough review of the message
    • Commands can also be issued from the server console
    • Support for Permissions plugin, defining your own list of admins or just using Server Ops
    • Configurable display colors for messages, names, and key information
    Screenshots


    Help Interface
    [​IMG]

    Warning List for a Given Player
    [​IMG]

    Player Receiving a Warning
    [​IMG]

    Active Warnings List
    [​IMG]


    Installation

    HeroicRebuke works best with a database (SQLite or MySQL). The plugin is configured to look for the database connector "sqlitejdbc-v056.jar" (SQLite) or "mysql-connector-java-bin.jar" (MySQL) in the "/lib" directory of your server root. If you already have these files, you do not need to re-download them.
    1. Download latest .ZIP archive from the link at the top
    2. Extract the archive into your main server directory (archive contains directory mapping)
    3. Open /plugins/HeroicRebuke/config.yml and configure to taste
    4. Save configuration file and reload your server
    Using MySQL
    1. Check to be sure "mysql-connector-java-bin.jar" is in /lib (from server root)
    2. Set options.database to "mysql" in your config.yml
    3. Set options.mysql.location to the path (IP:port/DatabaseName) to your MySQL server
      1. It is not necessary to create a new Database for HeroicRebuke, but is recommended. The only table created currently is "warnings"
    4. Set options.mysql.username to a username that has access to the named Database on your MySQL server
    5. Set options.mysql.password to that user's password
    6. Save config.yml and reload your server
    Configuration

    config.yml
    The config file contains default text colors, options, and designated HeroicRebuke admins (if not using the Permissions plugin).

    This file is saved in the YAML format, so please be sure to maintain the formatting and change only the element values.
    Default configuration:

    Show Spoiler
    Code:
    # HeroicRebuke Configuration
    ## Color options
    ## message: Text color of all notifications, wrapped around info and names.
    ## name: Color for player names.
    ## info: Color for informational elements to make them "pop", such as command usage
    #Color is defined according to the Bukkit enum ChatColor
    #Acceptable entries:
    ##BLACK
    ##DARK_BLUE
    ##DARK_GREEN
    ##DARK_AQUA
    ##DARK_RED
    ##DARK_PURPLE
    ##GOLD
    ##GRAY
    ##DARK_GRAY
    ##BLUE
    ##GREEN
    ##AQUA
    ##RED
    ##LIGHT_PURPLE
    ##YELLOW
    ##WHITE
    #
    #If color entered is inappropriate, HeroicRebuke will default to the following values:
    ##message: RED
    ##name: DARK_AQUA
    ##info: GOLD
    colors:
        message: RED
        name: DARK_AQUA
        info: GOLD
    
    #Options:
    ##database:
    ##ACCEPTABLE VALUES:
    ###sqlite - Expects "sqlitejdbc-v056.jar" in the "/lib" directory of your server root, and uses SQLite.
    ###mysql - Expects "mysql-connector-java-bin.jar" in the "/lib" directory of your server root, and uses MySQL. MUST configure options.mysql section for this to work
    ###<anything else> - HeroicRebuke will not use a database and no data will persist
    ##permissions: String containing which permissions system to use.  Acceptable values:
    ###Permissions - Nijikokun's Permissions plugin
    ###Config - Define your own HeroicRebuke admins below under the "admins:" property
    ###Ops - Only Server Ops can use HeroicRebuke (Ops can use HeroicRebuke anyway regardless of setting)
    ##code:
    ###use: If true, a random alphanumeric code will be generated on warning, preventing users from automating the /warn acknowledge command.
    ###length: Length of random code string to use
    ##server_name: Name to display when warnings are issued from the server console
    ##block_move: Whether or not to restrict a user from moving (and teleporting) when being warned.  Move block is aggressive.
    ##only_warn_online: If true, you can only warn players who are online (enables partial matching)
    ##lines_per_page: How many warnings to display when using /warn active and /warn list commands
    ##timeformat: Uses format strings from Java SimpleDateFormat.  Read all here: http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
    ##MySQL - If using "database: mysql", you must define the location, username and password to your MySQL server
    ###location: IP:PORT/DATABASE
    ###username: Self-explanatory
    ###password: Self-explanatory
    options:
        database: sqlite
        permissions: permissions
        code:
            use: true
            length: 6
        server_name: SERVER
        block_move: true
        only_warn_online: true
        lines_per_page: 4
        timeformat: MM/dd/yyyy HH:mm:ss z
        mysql:
            location: localhost:3306/HeroicRebuke
            username: root
            password:
    
    #If you want to use the "Config" permissions system, define your admins here
    #Each line below "admins:" *MUST* be formatted as such-> "    - 'username'"
    #Four spaces, hyphen, space, single quote, name of the admin, single quote
    admins:


    Admin Definition Example:
    Show Spoiler
    Code:
    admins:
        - 'SquallSeeD31'
        - 'DThielke'
        - 'Kainzo'
    


    Permissions
    Code:
    heroicrebuke.add (use /warn add)
    heroicrebuke.clear (use /warn clear)
    heroicrebuke.delete (use /warn delete)
    heroicrebuke.active (use /warn active)
    heroicrebuke.info (use /warn info)
    heroicrebuke.list (use /warn list - Displays only YOUR previous warnings)
    heroicrebuke.list.others (use /warn list <name> to display OTHER players' warnings)
    Recommended Settings:
    Admins:
    - 'heroicrebuke.*'

    Players:
    - 'heroicrebuke.list'

    Moderators:
    - 'heroicrebuke.add'
    - 'heroicrebuke.clear'
    - 'heroicrebuke.active'
    - 'heroicrebuke.info'
    - 'heroicrebuke.list.others'

    Changelog (Download Full Changelog)

    Version 1.2.7
    • Updated listener to use PlayerMoveEvent.setTo for the "bind" effect.
    Version 1.2.6
    • Updated to 617, added author to plugin.yml
    Version 1.2.5
    • Updated to Recommended Build 600/602
    • Changed type of code column to TEXT
    Version 1.2.4
    • Bugfix: Fixed potential NullPointerException in /warn clear command.
     
    wassilij, Killie01 and dark_hunter like this.
  2. Offline

    crysis992

    It doesnt work for some reason :/
    I set the limit to 3 and enabled it. It tells me every time "the player is already warned by:nickname"
    I aslso tried to clear the warnings and warn him again, doesnt work.
     
  3. Offline

    SquallSeeD31

    If you clear a warning, you're taking it back. The warned player must acknowledge the warning for it to count against him.
     
  4. Offline

    crysis992

    hmm okay dont want it like that way :/
    Any chance you could change that? :)

    ,
    crysis992
     
  5. Offline

    SquallSeeD31

    This was the specification of the original server I wrote this port for; the source is open if you want to make a modification for personal use. I could consider making an optional feature if you explain a request thoroughly and there's demand for it.
     
  6. Offline

    PatrickFreed

    how do you unban someone?
     
  7. Offline

    SquallSeeD31

    If you're using the auto-ban option of HeroicRebuke, it just uses the default vanilla ban list. Either remove the name from banned-players.txt manually, or type "unban <name>" from your server console.
     
  8. Offline

    PatrickFreed

    ok I got it.
    Could you add a config option that lets you choose which list it adds it to? Or is there a way to write a little program that copies banned-names.txt automatically to a separate ban file?
     
  9. Offline

    SquallSeeD31

    Well, what exactly were you thinking of?

    The Minecraft server software only maintains one internal ban-by-name list, called banned-players.txt in the server folder; it is the same functionality you get when you type "ban <name>" in the console. If you're asking me to add support for an external plugin's ban list, like mcbans or whatnot, you'd have to explain exactly what sort of support you're looking for.
     
  10. Offline

    PatrickFreed

    Well I use command book bans sytems at the moment.
    Maybe, like a default config option like:
    ban list: /banned-players.txt
    and you could change it to say
    ban list: /plugins/commandbook/banlist.txt
     
  11. Offline

    SquallSeeD31

    You have to understand it's not that simple though; I'm not manually opening a file, editing it and saving it, I'm calling the proper server method that manages the server's ban list automatically.

    If you want support for CommandBook's ban list, I'd have to add support for CommandBook's ban method, which I'm not familiar with and would have to research. And that's fine, that's a valid feature request, just understand that it's not as simple as defining what file gets saved to.
     
  12. Offline

    PatrickFreed

    honestly, I wouldn't bother.
    If you add one plugin compatible, people'll be all over your ass about the other ban plugins.
    Oh and I have no knowledge of java other than the "Hello world" code, so expect suggestions that don't quite make sense. :p (I'm working on learning to code, so maybe I'll be able to understand the Plugin Devs' ways soon though)
     
  13. Offline

    Pythros

    Can anyone confirm/deny that this works with cb 700?
     
  14. Offline

    Nipper

    @SquallSeeD31
    Bug: It seems even if I give my mods those permissions they still can't warn people.

    Using 733 with permissions 2.7


    Edit:
    I went and redownloaded it all seems to be working now.
     
  15. Offline

    kahlilnc

    Can you add a number next to there name for how many times they have been warned? Please.
     
  16. Offline

    SquallSeeD31

    Next to their name where?
     
  17. Offline

    kahlilnc

    Kinda like in the prefix. Example: When ever a warned player talks. He has 2 warnings.
    [Citizen][2]Kahlilnc: Why have I been warned?
    Or some where else that allows others to know that they are warned and how many they have to being banned.
     
  18. Offline

    ntwitch

    Love this plugin, and it helps multiple admins keep track of who has been warned for rule violations.

    I have one problem though... sometimes when a player logs on, it is easy for them to miss the notification that they are warned, because of chat scroll. They keep asking "Why can't I move?" and it never tells them again.

    So could you have it notify a player of their warning when they try to move? Maybe limit it to 1/second or something to avoid spam.
     
  19. Offline

    PatrickFreed

    Permissions Config

    Only Me (* permissions) can warn people. For the moderators it just says "/warn help" when they do /warn add. /warn help just brings up "/warn acknowledge code"
     
  20. Offline

    GmK

    You did *of course* make sure you have set "permissions: permissions" in the config?
     
  21. Offline

    PatrickFreed

    oops I guess not XD
     
  22. Offline

    Krownz

    Really good plugin! But i have 2 proposition/request.

    first example/explanation ;) :
    I have jail in my town (second plugin).. and I employ few game masters to take eye on new users.. and We use Your warning system to have quick access to 'personal warn files'.. and then We know what long punish should We use on that player (I mean .. if he has clear warn list - jail isnt long.. but if is, his time spend in jail are much longer). Because all of that I dont need to inform players about add some warn on his list... and I dont need use acknowledge command or codes (in fact it cause so much problem). But! Everytime when some player, who already has warn on his 'warn files', did someting wrong.. We had to clear his record and wrote it again + wrote new violecne. Because I cant add new warn on same player (plugin sends info 'player is already warned').

    So:
    1. Can You add option to swith off info for players, that informs about recieve new warn ?
    2. Can You add option to give multiple warn on same players (by multiple persons) without banning them, and without demand use '/warn ack' to do that?

    .... or can You suggest me some plugin what gives me that options? :p

    Sorry for my not so good English
     
  23. Offline

    noahjk

    I think a really cool feature for the 'I have read and accepted this warning' part, instead of them just being able to skip down, should be something like 'If you agree with this warning, enter the 4th word on the 2nd line.'
     
  24. Offline

    Kainzo

    Tested on 839 - works.
     
  25. Offline

    Ratchet

    if a player recieves X amount of warnings do they get a kick/ban? is that configurable?
     
  26. Offline

    untergrundbiber

    I become following on server-shutdown:

    Code:
    09:09:19 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
    09:09:19 [SEVERE]       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    09:09:19 [SEVERE]       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    09:09:19 [SEVERE]       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    09:09:19 [SEVERE]       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    09:09:19 [SEVERE]       at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    09:09:19 [SEVERE]       at com.mysql.jdbc.Util.getInstance(Util.java:382)
    09:09:19 [SEVERE]       at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
    09:09:19 [SEVERE]       at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    09:09:19 [SEVERE]       at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    09:09:19 [SEVERE]       at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    09:09:19 [SEVERE]       at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4751)
    09:09:19 [SEVERE]       at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4345)
    09:09:19 [SEVERE]       at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1564)
    09:09:19 [SEVERE]       at com.herocraftonline.squallseed31.heroicrebuke.HeroicRebuke.onDisable(HeroicRebuke.java:698)
    09:09:19 [SEVERE]       at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:128)
    09:09:19 [SEVERE]       at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:878)
    09:09:19 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:269)
    09:09:19 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:262)
    09:09:19 [SEVERE]       at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:146)
    09:09:19 [SEVERE]       at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:312)
    09:09:19 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:391)
    09:09:19 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    
    CB928


    any suggestions?
     
  27. Offline

    GmK

    Yes. But only banning, not kicking.
     
  28. Offline

    thernztrom

    Anyone that can confirm it working on RB935? :)
     
  29. Offline

    c0mp

    I've been plagued by the following message in the server console when using HR for a few weeks now. It's quite intermittent, and a server restart usually fixes it for some time, then it breaks again. I haven't been able to pinpoint any particular action that causes it and I cannot reproduce it manually, unfortunately. Hoping that someone else has already encountered or is familiar with the issue may be able to chime in and point me in the right direction? Any assistance is greatly appreciated!

    Code:
    13:17:22 [SEVERE] [HeroicRebuke] Warning count error: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 47,665,756 milliseconds ago.  The last packet sent successfully to the server was 47,665,856 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
     
  30. Offline

    Pythros

    I warned a player when he was offline and when they signed in, the following crashed the server by adding ~14mb of lines to my server log, going from ~1.5mb to a ~15mb server log. It spammed roughly 179707 lines :mad:

    I only copy/paste the part that it repeated.

    Code:
    2011-07-17 19:39:05 [INFO] <player> [/<ip>] logged in with entity id 1442541 at ([world] 145.30000001192093, 67.0, 13.600978372988099)
    2011-07-17 19:39:10 [SEVERE] Could not pass event PLAYER_TELEPORT to HeroicRebuke
    java.lang.StackOverflowError
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.PrintWriter.<init>(PrintWriter.java:116)
        at java.io.PrintWriter.<init>(PrintWriter.java:100)
        at org.bukkit.craftbukkit.util.ShortConsoleLogFormatter.format(ShortConsoleLogFormatter.java:54)
        at java.util.logging.StreamHandler.publish(StreamHandler.java:196)
        at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:105)
        at java.util.logging.Logger.log(Logger.java:503)
        at java.util.logging.Logger.doLog(Logger.java:524)
        at java.util.logging.Logger.log(Logger.java:613)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:341)
        at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:212)
        at com.herocraftonline.squallseed31.heroicrebuke.HeroicRebukeListener.onPlayerTeleport(HeroicRebukeListener.java:45)
        at org.bukkit.plugin.java.JavaPluginLoader$8.execute(JavaPluginLoader.java:293)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
        at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:212)
    HR: 1.2.7
    CB: 990
     
  31. Offline

    DooBLER

    HR: 1.2.7
    CB: 1000
    DB engine - mysql

    Periodic message:
    Code:
    2011-07-22 11:28:37 [SEVERE] [HeroicRebuke] Warning load error: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    The last packet successfully received from the server was 54,779,051 milliseconds ago.  The last packet sent successfully to the server was 269,598 milliseconds ago.
    When I stop server:
    Code:
    2011-07-22 11:35:28 [SEVERE] [HeroicRebuke] Error closing database:
    2011-07-22 11:35:28 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
    2011-07-22 11:35:28 [SEVERE]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    2011-07-22 11:35:28 [SEVERE]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    2011-07-22 11:35:28 [SEVERE]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    2011-07-22 11:35:28 [SEVERE]     at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.Util.getInstance(Util.java:382)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4751)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4345)
    2011-07-22 11:35:28 [SEVERE]     at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1564)
    2011-07-22 11:35:28 [SEVERE]     at com.herocraftonline.squallseed31.heroicrebuke.HeroicRebuke.onDisable(HeroicRebuke.java:720)
    2011-07-22 11:35:28 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:128)
    2011-07-22 11:35:28 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:899)
    2011-07-22 11:35:28 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:288)
    2011-07-22 11:35:28 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:281)
    2011-07-22 11:35:28 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:157)
    2011-07-22 11:35:28 [SEVERE]     at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:312)
    2011-07-22 11:35:28 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:391)
    2011-07-22 11:35:28 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-07-22 11:35:28 [INFO] [HeroicRebuke] 1.2.7.87 disabled.
     

Share This Page