IPCompare[CodeEx]
IPCompare is CodeEx's second plugin publicly released on dev.bukkit.org. This plugin is meant to allow server owners and staff to check/compare player's ips, list every ip a user has logged in from and check if accounts have logged on from the same ip. It also limits the number of connections allowed from one ip and warns allowed players of connections from same ips. This is just a way to help stop griefers with multiple accounts.
Features:
- Check the ip of a player on line with a simple command
- Compare and see how many accounts use the same ip
- List all ip addresses associated with a player's account
- List all ip addresses that have connected to the server since the addition of the plugin
- Get warned of duplicate accounts on login
- Limit the number of accounts that can connect from an ip
- Excludes ops and players with granted permission from limitations of ip or account number
- Very lightweight
Commands and permissions:
- /compare [player ip] - Shows you all the players in the list with the specified ip.
- /iplist [page index] - Lists all the players in the IPCompare player list.
- /ip [player] - Shows you the ip of the player specified if he is online.
- /listips [player] - Lists the ips that the specified player has logged in from.
- /warntoggle [player] - Adds or removes the player to the list of player that are warned when people login with same ip as others.
- /purgeip [player] - Removes all entries of a player from the list.
Permission:
- ipcompare.admin - Gives permission to all commands from this plugin.
- ipcompare.warn - Warns the player of an account logging in from an ip that is already listed.
- ipcompare. nolimit - Exclude the player from any limitation of ips or account number.
- ipcompare.* - Gives the player all the above permissions.
Configuration
- limit-type: - The type of account limit to use. Parameters:
- none - (default value) Does not limit accounts per ip
- online - Limits the number of accounts that can be online at the same time per ip
- general - Limits the number of accounts that can join the server from one ip. Once you log in from one account, other accounts can't.
- max-number-connection-from-ip: - The limit of accounts per ip. (disconsidered if limit-type is none) Takes in a number
- Database: Still not implemented wont make any difference if you edit it.
- message-language: choose the language for the kick message. options: EN - english / DE - dutch / FR - french / GE - german / IT - italian
How to install:
Download the IPCompare.zip and extract it to you plugins folder if you do not already have the plugin. If you do have the plugin add the files that are missing from the IPCompare folder and overwrite the config.yml and IPCompare.jar with the ones in the zip file.
Changelog:
- Version 0.1- released by uruhax
- Initial release of plugin
- Version 0.2- released by uruhax
- Added pages to the /iplist command. New usage is /iplist <page_index>
- Version 0.3- released by uruhax
- Added a function that limits the number of account per ip based on configuration.
- Added a function that warns ops or players with permission node of accounts logged in on the same ip.
- Added Config file.
- Added new permission node "ipcompare.warn". Warns the player of accounts logged in on the same ip.
- Version 0.4- released by uruhax
- Added permission node ipcompare.nolimit - Let's the player login to the server without any limitations for ip or accounts.
- Added permission node ipcompare.* - Give the player ipcompare.admin ipcompare.warn and ipcompare.nolimit
- Version 0.5- released by uruhax
- Added /warntoggle command to remove/add a player to the list of players that are warned when two account from the same ip log in. Usage: /warntoggle [player name]
- Version 0.6- released by uruhax
- Fixed some bugs.
- Version 0.7- released by uruhax
- Added a /purgeip command that removes all entries of a player in the list usage: /purgeip <player_name>
- Fixed /warntoggle command errors
- Added an option in the config for language and database usage. (database usage is not functional yet)
- Language files must be added to the IPCompare folder in the plugins folder manually and the config must be switched with the one in the rar then changed as you want it.
To-do list:
- Give suggestions :D
Known bugs:
Everything that has been reported was fixed. If you find anything else be sure to tell :D
Any way to get an ip lookup on players who are not online??
Also if you could make it so i dont have to type the entire playername.... Some griefers have the longest playernames and by the time i am done typing /ip thegrieferwhotriedtofuckmyserver they are offline and i cant get their IP.
Thanks.
I have a suggestion, add a warning if the other account on the IP is on the ban list. I have a big server with multiple people dishing out bans and it would help us keep track in the situation where we forget to or have a reason not to IP ban.
I love this plugin, thanks.
@Royalgamer06
I can make a dutch version probably using a translator(wont be exact on ofcourse since its a translator) if you are intrested:D
@Crayder
yes, the /warntoggle command works correctly now.
Does this new version allow us to turn alternate account messages off? That's all I'm waiting for, don't want to see this and MCBans clashing!
@Royalgamer06
That's got nothing to do with my plugin. It doesn't even have a graphic user interface for you to click on a player in the list. And also there's no warning in that error message that even includes IPCompare's name, it's probably something wrong with your server console (i'm assuming you use a different interface for your console like MCMyAdmin).
And Deutsch is the german word for "german". Dutch is the language spoken in the netherlands and that is what's in the messages_de.properties file. At least what google translate gave me lol. xD
@Royalgamer06
On online limit-type only 1 player can use the 1 ip at the same time, that is if you set the limit to 1. And on general limit-type only the first player to login from 1 ip will be able to use that ip, what you want is probably the general limit-type.
@baemboo
Ahh i wasn't aware of that. It must be because the messages contained invalid characters for the file type or something like that. I used the name Frank while i was getting transalations on google translate, i thought i had changed taken every instance of that away, sorry for that xD
thats your original messages_ge:
i improved this:
btw i dont know what the name Frank does in these localizations :D
@uruhax
Thanks for keeping up this good plugin.
"Fetching addPacket" increases along to multiple attempts to join.
then.... bukkit can not clear these things properly..
I guess.
Could you make something like /compare [player name] which would work like /compare [player ip]?
any chance you can make a Hide Ip option so if two players have the same Ip it wont send a warning?
@goldseed
That doesn't cause any problems it's just the server logging messages. Those mean it's clearing unecessary stuff from the memory. Those messages would only be problems if instead of [ INFO ] at the start there was [ SEVERE ]. That stuff is from bukkit. Also i made a way to include different languages but i have no knowledge of korean language and google translate often translates it wrong so i couldn't make one for korean. But if you want you could leave the language option in the config.yml to english and change the kick message at the messages_en.properties file to make it what you want. If you didn't understand anything feel free to ask again.
when someone is blocked by this plugin, some strange lines are added. If he/she tries to connect many times, the line "fetching addpacket..." increases.
I dont know whether this causes problem.. but Will it alright???
@uruhax I am korean. I just want to edit messages. can you make another .yml which have collections of messages?
@MDragon2
I was not aware of that error. It will be fixed in the next release.
hello, if i want to use command /warntoggle
game say to me:
[WARNING] Unexpected exception while parsing console command org.bukkit.command.CommandException: Unhandled exception executing command 'warntoggle' in plugin IPCompare v0.3 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:386) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:382) at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:573) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:550) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:434) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.NullPointerException at net.insomniacraft.IPCompare.commands.WarnToggleCommandExecutor.onCommand(WarnToggleCommandExecutor.java:32) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 7 more
what can i do with it?
+ I welcomed command to show a list of people with warnings
@goldseed
Sure, what language do you want?
@Waizujin
I'll make a command to purge a players entries from the list and maybe add MySql database.
Can we get a pardon user command. Where it removes all entries of the players login and their IP's but only for that player? So they can start fresh please.
Also, mySQL database support would be EPIC! :D
can you support multi-language?
Players can not understand why they are blocked...
lol