Plugin category: Ban Manager Minecraft version: 1.8.8 Suggested name: BanX What I want: Full UUID support Ability to view players' previous username(s) - date of change Full server lockdown - Prevent anyone from joining with a custom message (Such as bot attacks) Offline player name auto completion Duplicate IP detection Multiline kick messages (No more running off the screen!) Notifications when a banned/muted player tries to join/speak (permissions for that) Customize every color Block commands like /me and /msg when muted Both, relative times and not relative (egg. You are banned until 4:23 PM EST or for 6min and 3sec) Custom ban/kick messages in console (if possible, with placeholders). Example: ban-message: §cYou have been banned by §a%banner%\n§cReason: §a%ban-reason%\n§Appeal at: [Website Appeal page] Custom main/secondary colors (for chat) in config like: main-color: §3 second-color: §9 Custom mute/warn messages example: mute-message: §a%muted% §2has been muted by %muter/anonymous% Custom history command page layout in config (if possible, placeholders). Example: history-page-1: §3%player%\n§3Bans: §b%player's bans%\n§3Mutes: §b%player's mutes% In Config, you can choose how many warnings until a ban/mute/kick/tempban example: warn-tempban-3day-count: 5 Ideas for commands: There will be a aliases section <> = Required [] = Optional -s = silent (you probably know that one) -ss = Super Silent (even ppl with the see silent permission won't see) -a = anonymous (in chat it if not silent it will say the message made in the config but with anonymous instead of the sender (there is a permission to see the sender instead of anonymous)) Temp = Temporary/Temporarily (again, you know) s = second, m = minute, h = hour, d = day, w = week, M = month, y = yearAnything that has a -s on it means that if -s is not applied, it will be broadcasted! /ban <player | UUID> [reason] [-a] [-s/-ss] - Bans the player /tempban <player | UUID> <number, s|m|h|d|w|M|y> [reason] [-a] [-s/-ss] - TempBans the player /unban <player | UUID> [-a] [-s/-ss] - UnBans the player /ipban <player | UUID | IP> [reason] [-a] [-s/-ss] - Bans everyone using that Ip /tempipban <player | UUID | IP> <number, s|m|h|d|w|M|y> [reason] [-a] [-s/-ss] - TempIpBans everyone using that Ip /unipban <player | UUID | IP> [-a] [-s/-ss] - UnBans everyone using that Ip /clearbans <player | UUID | IP> [-a] [-s/-ss] - Clears the player's/everyone using that Ip's ban history /mute <player | UUID> [reason] [-a] [-s/-ss] - Mutes the player /tempmute <player | UUID> <number, s|m|h|d|w|M|y> [reason] [-s/-ss] - TempMutes the player /unmute <player | UUID> [-a] [-s/-ss] - UnMutes the player /ipmute <player | UUID | IP> [reason] [-a] [-s/-ss] - Mutes everyone using that Ip /tempipmute <player | UUID | IP> <number, s|m|h|d|w|M|y> [reason] [-a] [-s/-ss] - TempIpMutes everyone using that Ip /unipmute <player | UUID | IP> [-a] [-s/-ss] - UnMutes everyone using that Ip /clearmutes <player | UUID | IP> [-a] [-s/-ss] - Clears the player's/everyone using that Ip's mutes /warn <player | UUID> [reason] [-a] [-s/-ss] - Warns the player /tempwarn <player | UUID> [-a] <number, s|m|h|d|w|M|y> [reason] [-s/-ss] - TempWarns the player. /unwarn <player | UUID> [-a] [-s/-ss] UnWarns the player's last warning /ipwarn <player | UUID | IP> [reason] [-a] [-s/-ss] - Warns everyone using that Ip /tempipwarn <player | UUID | IP> <number, s|m|h|d|w|M|y> [reason] [-a] [-s/-ss] - TempWarns everyone using that Ip /unipwarns <player | UUID | IP> [-a] [-s/-ss] - UnWarns the last warnings of everyone using that Ip /clearwarns <player | UUID | IP> [-a] [-s/-ss] Clears the player's/everyone using that Ip's warnings /kick <player | UUID> [reason] [-a] [-s/-ss] - Kicks the player /ipkick <player | UUID | IP> [reason] [-a] [-s/-ss] - Kicks everyone using that Ip /kickall [!<player | UUID | IP>] [reason] - Kicks all players except those in the ! argumant /clearkicks <player | UUID | IP> [-a] [-s/-ss] - Clears the player's/everyone using that Ip's kicks /getip <player | UUID> - Sends the sender the player's Ip /forcespawn <player | UUID | Ip> - Teleports someone/every one using that Ip to the spawn (twice, so /back won't work) /lockdown <all | join> [!<player | UUID | IP>] [reason] - Locks down the server from either: kicks all players that are online except those players/everyone using that Ip in the ! argument or: players that join get kicked /history <player | UUID> <page-number (default = 1)> - Sends the ban/mute/kick history of a player as they set it in the config to the sender /getuuid <player> - Gives you the UUID of the player /whitelist <on | off | list | add | remove> [kick] [reason] - It whitelists the server and if they put in the "kick" argument, it even kicks everyone that is not whitelisted Aliases: YOU CHOSE THE PROPER ALIASES Ideas for permissions: banx.ban banx.ipban banx.clearbans banx.ban.bypass (lets the player join even after banned) banx.mute banx.ipmute banx.clearmutes banx.mute.bypass (lets the player talk even after muted) banx.warn banx.ipwarn banx.clearwarns banx.warn.bypass (lets the player ignore warns) banx.kick banx.ipkick banx.kickall banx.clearkicks banx.getip banx.forcespawn banx.forcespawn.bypass (doesn't teleport the player to spawn) banx.lockdown.use banx.lockdown.bypass (lets you join even when there is a lockdown) banx.history banx.getuuid banx.whitelist banx.whitelist.bypass banx.bypass (let's you bypass EVERYTHING egg. bans don't effect you - Useful for owners) banx.seesilent (lets you see a silent ban/mute/etc) banx.seejoin (see when a player tries to join when banned) banx.seemute (see when a player tries to speak when muted) banx.seeanonymous (see when a player puts -a in a command) When I'd like it by: Whenever possible Note: Not all the 'What I want:'s need to be fulfilled (especially the config stuff). (I would like it if they are fulfilled but if it's impossible/to hard you don't need to do it)
Sometimes people ban IP's over names to block off all accounts from a certain location, but yeah, they can be VPN-ed or whatever. Banning both names and IPs have their pros and cons... EDIT: Wait so the bypasses for things like mute allows others to think they muted them, but in truth don't actually mute them? Or do they just stop the muting from happening and send them a message "You cannot mute that player."
Slowly, but yes. Do it if you want though. Not my place to claim it if someone else can do it faster. That goes for all plugins I start, tbh.
I could do this. It'd take awhile as well... a few weeks to a month. If @insanj or @Eccentric_Gamer think they'll get it done faster I'll let them take it.
In his extremely long and descriptive description he was simply said that for some of the commands if you put -a as a tag after them it will make the resulting message that is broadcasted anonymous instead of using the name of the admin or player who used the command. For example, warning a player will just send a message similar to "You have been warned." instead of "You have been warned by _NAME_." EDIT: If the server is in lockdown and a player is banned, which message should appear, or should this be configurable?
@Eccentric_Gamer, I don't know what you are saying, but if you are asking if the server is on lockdown, and after it is in lockdown, some1 gets banned, it should display what it always displays
He was meaning that if the server was in lockdown when a banned player tried to join, would it either show the lockdown message or the banned message.
i'll be apart of this ... I can create the plugin over the next week, and will link to a either completely finished plugin once finished, or source if someone wants to continue where I left off/use code. @Google123 Questions: In the command '/tempban', in the time argument, do you want the unit connected to the duration? ie '5M' vs '5 M' Do you want the 'reason' argument to be a single word string, or other? Are the optional arguments (such as reason, '-a', '-ss'...) able to be added in any order, or able to miss arguments? ie '/tempban popbob -a' or '/unban bobpop -ss -a' (you see how some optional arguments are missing, and how -ss in in front of -a) Lastly, when ip-any-thinging a player, is the player punished specifically, along with the IP, or only users connected with the IP are punished? For instance, player Bob is muted with '/ipmute Bob'. Bob will be unable to chat now. If Bob changes his name to popbob, he'll still be muted. A user in the same household decides to join the server, with the name bobpop1. bobpop1 will be muted, due to the ip being muted, right? i think i am overthinking this. due to security issues with broadcasting ip punishments, those won't be broadcasted globally, only will be shown to users with a new permission `banx.seeippunish`. with the permission `banx.getip`. also since i dont feel like rebuilding my code, I will assume that only players will be able to run commands (unless you really want console tell me otherwise).
https://www.spigotmc.org/resources/banx.69106/ I have created a unfinished version of the plugin I am about 85% finished with the plugin, but it it still usable.