BattlePunishments

BattlePunishments

Please put all bug reports on Github

BattlePunishments

An all around administration system that contains bans, mutes, IP tracking, watchlists, player help commands, and much more.

Check out the Website!

BattlePunishments Banner

To use the website compatibility, this plugin requires WebAPI

webapi

Intro

An all around minecraft player/admin management system that contains bans, mutes, IP tracking, watchlists, player help commands, and much, much more.

This plugin started out as a personal plugin for my server and has grown into a plugin full of amazing admin tools and cool features to help you run your server and handle player information. This plugin was released because I have experience in running large MineCraft communities and I could not imagine how difficult it would be to run them without these commands.

This plugin contains many features listed below. I am constantly reworking and adding features to the plugin.

What makes this plugin different than CommandBook/Essentials?

Well, that's a good question. I'm glad you asked.... Unlike CommandBook, BattlePunishments stores the data for player information even when the player is not online. BattlePunishments also has IP cross checking and saves every single player in their own data file. BattlePunishments has features that log when a player breaks blocks. We even have a command to allow players to request help from the staff and an admin watchlist. The best part about it, all features are completely configurable! You can chose what you want to use, why, and how you want to use it! Also, I am always looking to add new things to the plugin so any requests that you have may be implemented. The plugin has an API for people to be able to edit the player.yml files if they want to add or change something from and external plugin.

Please note, this plugin's goal is not to replace CommandBook or Essentials in any way. It is made to work along side and give extra abilities. Maybe one day I'll add all the commands from Essentials and CommandBook so that they are obsolete with this plugin but at the moment they are both perfectly good plugins. This plugin has different or improved features. I recommend running it along side CommandBook/Essentials

For Server Owners

When you first load up BattlePunishments, please go to the plugins/BattlePunishments directory and open the config.yml. Your config page should look like this. Edit the configuration to your specifications, and then enter the command "/bpreload" in game and the new config will be reloaded. If you edited the MySQL information, you'll need to restart the server. When you're in game you can type /bp <number> and you will get a list of all the commands. Report any bugs you have and make sure to keep updated with new versions.

For Developers

There isn't much to hook into for this plugin, however I've made it easy for a developer to hook into the BattlePlayer class. If you would like to use BattlePunishments in another plugin (to ban, mute, kick, to check IPs, and more) you can now do so by hooking into the BattlePlayer class.

Example:

BattlePlayer bp = BattlePunishments.createBattlePlayer(string);
if(bp.getPlayer() != null && !bp.getPlayer().hasPermission(BattlePerms.KICK))
bp.kickPlayer("Xraying");

Developer Docs

Features

  • Automated bans
  • Automated mutes
  • Kick players
  • Herochat compatibility
  • IP checking/comparing
  • Watchlist
  • Teleporting to random players
  • Server broadcasting tool
  • A command for player's to request help in game.
  • Strike system
  • Command blocker
  • Automated messages
  • IP Banning
  • Command Logging
  • Nicknames with TagAPI support
  • "Found diamonds" block logging messages
  • Player information logging
  • Welcome messages for new players
  • Lightweight chat format editing ability
  • Import bans from a txt file or other ban plugin.
  • Website!

Future Features (In order of priority)

N/A

Registering the Server

Unregistered Users:

  • Access to public ban and mute list
  • Access to basic information on player/server profiles

Registered Users:

  • Access to all information on player/server profiles
  • Access to public ban and mute list
  • Can register a server
  • Can sync information from server to the public lists
  • Can post support ticket support tickets

How to Register

  1. Download the latest version of the plugin
  2. Install the plugin on your server and edit the config.yml, set website to true
  3. Install the WebAPI plugin
  4. Go to BattlePunishments.net and register
  5. Click "Your Servers" then "Register Server" and fill out the form, save the key somewhere safe.
  6. Go to your server and enter /bp verify <THE KEY YOU WERE GIVEN>
  7. That's it!

Help

You can ask me questions in real time on irc when I'm on. You can usually find me in #battleplugins, #bukkit, or #bukkitdev in irc.esper.net. I will also answer any Bukkit related questions that may not have to do with BattlePunishments specifically. It is also perfectly fine to come online to chat. If you don't have an IRC client, you can use the in-browser one.

Another location where I can be found would be the Battlecraftpvp.net teamspeak. Just enter the IP battlecraftpvp.net and send a PM to "Ducks" .. If I don't reply in either location it would mean I am not at my computer. At that point you should just shoot me a private message.

Converting From Another Plugin?

Check out the guide on how to do conversions HERE.

BattlePunishments Website
BattlePlugins Website
Commands and Permissions
Change Log
Java Documentation
GitHub

Donate

I code these plugins as a hobby, however every donation helps to keep me motivated. If you like what I'm doing feel free to send me a donation.

donate

Stats



Please put all bug reports on Github

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of xDowsey xDowsey May 08, 2013 at 02:28 UTC - 0 likes

    @lDucks: Go

    When will the update be out? :)

  • Avatar of lDucks lDucks May 07, 2013 at 01:15 UTC - 0 likes

    @xDowsey: Go

    It should be fixed.

    You can ask me questions in real time on irc when I'm on. You can usually find me in #battleplugins, #bukkit, or #bukkitdev in irc.esper.net.

  • Avatar of xDowsey xDowsey May 06, 2013 at 17:07 UTC - 0 likes

    I noticed you added my previous post to your issues list on Github.

    Any further updates on this issue?

  • Avatar of xDowsey xDowsey May 01, 2013 at 21:56 UTC - 0 likes

    Hi. For some reason when we try to mute or ban a player, we're getting these error messages.

    Mute:

    2013-05-01 14:53:20 [INFO] Dowsey issued server command: /mute blobefish 0 1s Test
    2013-05-01 14:53:21 [SEVERE] [BattlePunishments] Creating error file: 'editStrikes'. Error converting laststrike to long
    2013-05-01 14:53:21 [SEVERE] java.lang.reflect.InvocationTargetException
    2013-05-01 14:53:21 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2013-05-01 14:53:21 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2013-05-01 14:53:21 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2013-05-01 14:53:21 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.commands.CustomCommandExecutor.onCommand(CustomCommandExecutor.java:184)
    2013-05-01 14:53:21 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    2013-05-01 14:53:21 [SEVERE] at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:334)
    2013-05-01 14:53:21 [SEVERE] at com.earth2me.essentials.Essentials.onCommand(Essentials.java:319)
    2013-05-01 14:53:21 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    2013-05-01 14:53:21 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    2013-05-01 14:53:21 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.dispatchCommand(CraftServer.java:546)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.handleCommand(PlayerConnection.java:980)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.chat(PlayerConnection.java:896)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.a(PlayerConnection.java:841)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.Packet3Chat.handle(Packet3Chat.java:44)
    2013-05-01 14:53:21 [SEVERE] at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:180)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.d(PlayerConnection.java:110)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.ServerConnection.b(SourceFile:35)
    2013-05-01 14:53:21 [SEVERE] at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:67)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:582)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:229)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:471)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:403)
    2013-05-01 14:53:21 [SEVERE] at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    2013-05-01 14:53:21 [SEVERE] Caused by: java.lang.NoClassDefFoundError: mc/battleplugins/webapi/controllers/encoding/EncodingType
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.util.webrequests.WebConnections.sendErrorReport(WebConnections.java:168)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.util.webrequests.WebConnections.sendErrorReport(WebConnections.java:157)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.debugging.DumpFile.<init>(DumpFile.java:45)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.battleplayer.SQLBattlePlayer.getStrikes(SQLBattlePlayer.java:180)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.util.webrequests.UpdateDatabase.updateStrikes(UpdateDatabase.java:67)
    2013-05-01 14:53:21 [SEVERE] at com.lducks.battlepunishments.commands.mute.MuteExecutor.onMute(MuteExecutor.java:120)
    2013-05-01 14:53:21 [SEVERE] ... 24 more
    

    Ban:

    2013-05-01 14:54:40 [INFO] Dowsey executed command: /ban blobefish 0 1s Test
    2013-05-01 14:54:40 [INFO] Dowsey issued server command: /ban blobefish 0 1s Test
    2013-05-01 14:54:40 [SEVERE] [BattlePunishments] Creating error file: 'editStrikes'. Error converting laststrike to long
    2013-05-01 14:54:40 [SEVERE] java.lang.reflect.InvocationTargetException
    2013-05-01 14:54:40 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2013-05-01 14:54:40 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2013-05-01 14:54:40 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2013-05-01 14:54:40 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.commands.CustomCommandExecutor.onCommand(CustomCommandExecutor.java:184)
    2013-05-01 14:54:40 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    2013-05-01 14:54:40 [SEVERE] at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:334)
    2013-05-01 14:54:40 [SEVERE] at com.earth2me.essentials.Essentials.onCommand(Essentials.java:319)
    2013-05-01 14:54:40 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    2013-05-01 14:54:40 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    2013-05-01 14:54:40 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.dispatchCommand(CraftServer.java:546)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.handleCommand(PlayerConnection.java:980)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.chat(PlayerConnection.java:896)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.a(PlayerConnection.java:841)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.Packet3Chat.handle(Packet3Chat.java:44)
    2013-05-01 14:54:40 [SEVERE] at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:180)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.PlayerConnection.d(PlayerConnection.java:110)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.ServerConnection.b(SourceFile:35)
    2013-05-01 14:54:40 [SEVERE] at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:67)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:582)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:229)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:471)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:403)
    2013-05-01 14:54:40 [SEVERE] at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    2013-05-01 14:54:40 [SEVERE] Caused by: java.lang.NoClassDefFoundError: mc/battleplugins/webapi/controllers/encoding/EncodingType
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.util.webrequests.WebConnections.sendErrorReport(WebConnections.java:168)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.util.webrequests.WebConnections.sendErrorReport(WebConnections.java:157)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.debugging.DumpFile.<init>(DumpFile.java:45)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.battleplayer.SQLBattlePlayer.getStrikes(SQLBattlePlayer.java:180)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.util.webrequests.UpdateDatabase.updateStrikes(UpdateDatabase.java:67)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.commands.ban.BanExecutor.banPlayer(BanExecutor.java:166)
    2013-05-01 14:54:40 [SEVERE] at com.lducks.battlepunishments.commands.ban.BanExecutor.onBan(BanExecutor.java:125)
    2013-05-01 14:54:40 [SEVERE] ... 24 more
    
    Last edited May 01, 2013 by xDowsey
  • Avatar of lDucks lDucks Apr 13, 2013 at 17:58 UTC - 0 likes

    @Mortalsinn: Go

    Will be fixed in next version - problem is someone has a nickname over 16 characters.

  • Avatar of Mortalsinn Mortalsinn Apr 12, 2013 at 16:28 UTC - 0 likes

    Going off the latest version I get this error when the server is white listed and someone tries to log in. Probably not a big deal but you know me... Mr. Bug Report lol

    2013-04-12 09:26:28 [SEVERE] Could not pass event PlayerLoginEvent to BattlePunishments v2.9.3.9
    org.bukkit.event.EventException
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:26)
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
    	at net.minecraft.server.v1_5_R2.PlayerList.attemptLogin(PlayerList.java:330)
    	at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.java:125)
    	at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.java:49)
    	at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:72)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:582)
    	at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:229)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:471)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:403)
    	at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.IllegalArgumentException: Player list names can only be a maximum of 16 characters long
    	at org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer.setPlayerListName(CraftPlayer.java:170)
    	at com.lducks.battlepunishments.listeners.LoginListener.onPlayerLogin(LoginListener.java:50)
    	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.java:425)
    	... 13 more
    
  • Avatar of lDucks lDucks Apr 03, 2013 at 18:28 UTC - 0 likes

    @Mortalsinn: Go

    Hm, for some reason it is still trying to call the WebAPI class.. A quick fix would be to add it for now but I need to just go through and try to remove all the calls that I must have missed that are trying to call in the wrong places. Thanks for reporting the bugs!

  • Avatar of Mortalsinn Mortalsinn Apr 03, 2013 at 14:10 UTC - 0 likes

    Updated to the latest version, deleted my config, let it regen.........now I am getting this error lol.......any ideas now???

    2013-04-03 07:07:28 [SEVERE] Could not pass event PlayerLoginEvent to BattlePunishments v2.9.3.6
    org.bukkit.event.EventException
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:26)
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
    	at net.minecraft.server.v1_5_R2.PlayerList.attemptLogin(PlayerList.java:328)
    	at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.java:125)
    	at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.java:49)
    	at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:71)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:580)
    	at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:229)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:469)
    	at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:401)
    	at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.lducks.battlepunishments.util.webrequests.UpdateDatabase
    	at com.lducks.battlepunishments.battleplayer.FileBattlePlayer.addIP(FileBattlePlayer.java:389)
    	at com.lducks.battlepunishments.listeners.LoginListener.onPlayerLogin(LoginListener.java:55)
    	at sun.reflect.GeneratedMethodAccessor393.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.java:425)
    	... 13 more
    
    Last edited Apr 03, 2013 by Mortalsinn
  • Avatar of lDucks lDucks Apr 02, 2013 at 15:53 UTC - 0 likes

    @Mortalsinn: Go

    Edit your config.yml and add

    timezone: "America/New_York"
    
  • Avatar of Mortalsinn Mortalsinn Apr 02, 2013 at 12:47 UTC - 0 likes

    Crap - sorry that was a lot longer than I planned.

    Once you review the errors please delete that comment so it doesn't look all crappy in your comment section. I just wanted you to see whats going on with the latest version

Facts

Date created
Aug 29, 2012
Categories
Last update
May 04, 2013
Development stage
Mature
Language
  • enUS
License
GNU Lesser General Public License version 3 (LGPLv3)
Curse link
BattlePunishments
Downloads
3,870
Recent files

Authors