AntiGuest
AntiGuest
Description
AntiGuest prevents players from doing specific things like building and fighting, which can be used to grief.
Every prevention has its own configurable message which will be printed to the player. This message supports color codes (&0, &1, ..., &e, &f, &k)
How does this work?
AntiGuest uses permissions to determine whether a player is allowed to do a specific action. So you should (not necessarily needed, but recommended) install a permission manager like bPermissions or GroupManager along with AntiGuest. Usually you only want to prevent your guests from doing things like breaking and placing blocks (griefing), so you should not give your guests' group the permission to do so. However your accepted players should by able to do these actions. That can be achieved by adding the permission "antiguest.preventions.*" or a action specific permission to the player or his group.
As you might see, this system allows more than just "guests can nothing, members everything". You could for example stagger the permissions like "guests can nothing but chat; trails can chat, place and break blocks; members can everything" and even more complex setups, it's completely up to you.
Watch out! Tips for common mistakes
- All preventions are disabled by default since version 3.0 (3.2 changes that, see the table below)
- All preventions have their own configuration file since 3.1, since 3.2 the old configurations will be converted
- The permissions are all lowercase, check that before you report AntiGuest not working
Preventions
| Name | Prevents from ... | On by default | Filterable | Punishable | Loggable |
|---|---|---|---|---|---|
| ad | posting server addresses (also enables link, see below) | yes | no | yes | yes |
| afk | idling players by kicking them after a configured time | no | no | no | yes |
| anvil | using anvils | no | no | yes | yes |
| beacon | opening beacon inventories | yes | no | yes | yes |
| bed | sleeping | no | no | yes | yes |
| bow | shooting bows | yes | no | yes | yes |
| breakblock | breaking blocks | yes | yes | yes | yes |
| brew | brewing | no | no | yes | yes |
| button | pushing buttons | no | no | yes | yes |
| cake | eating cakes | no | no | yes | yes |
| caps | writing all-caps messages | no | no | yes | yes |
| changesign | changing signs | yes | no | yes | yes |
| chat | chatting | no | no | yes | yes |
| chest | accessing chests | yes | no | yes | yes |
| command | using specific commands | no | yes | yes | yes |
| damage | getting damaged | no | yes | no | no |
| dispenser | accessing dispensers | yes | no | yes | yes |
| door | opening or closing doors (including fence gates) | yes | yes | yes | yes |
| dropper | opening dropper inventories | yes | no | yes | yes |
| drop | dropping specific items | no | yes | yes | yes |
| enchant | accessing enchantment tables | no | no | yes | yes |
| fight | damaging other players | yes | no | yes | yes |
| fish | fishing | no | no | yes | yes |
| furnace | accessing furnaces | no | no | yes | yes |
| guestlimit | getting too many guests | no | no | no | no |
| hopper | opening hopper inventories | yes | no | yes | yes |
| horse | interacting with horses/mules/donkeys | no | no | yes | yes |
| hotbar | changing the selected hotbar slot | no | no | yes | yes |
| hunger | starvation | yes | no | no | no |
| itemframe | changing item frames | yes | no | yes | yes |
| item | using specific items | no | yes | yes | yes |
| jukebox | using jukeboxes | no | no | yes | yes |
| lavabucket | using lava buckets | yes | no | yes | yes |
| lead | using a leash | no | no | yes | yes |
| lever | using levers | no | no | yes | yes |
| link | posting clickable links | yes | no | yes | yes |
| milking | milking cows | no | no | yes | yes |
| monster | getting targeted by monsters | yes | yes | yes | no |
| move | moving too far | yes | no | yes | no |
| noteblock | using note blocks | no | no | yes | yes |
| pickup | picking up specific items | no | yes | no | no |
| placeblock | placing blocks | yes | yes | yes | yes |
| pressureplate | triggering pressure plates | no | no | yes | yes |
| repeater | changing the repeater delays | no | no | yes | yes |
| shear | shearing animals | no | no | yes | yes |
| sneak | sneaking (hiding the name above his head) | no | no | yes | yes |
| spam | spam | yes | no | yes | yes |
| spawnegg | using spawn eggs | no | yes | yes | yes |
| swear | swearing | yes | no | yes | yes |
| tame | taming animals | no | no | yes | yes |
| trading | trading with villagers | no | no | yes | yes |
| trample | trampling crops | no | no | yes | yes |
| tripwire | triggering trip wires | yes | no | yes | yes |
| vehicle | using vehicles (entering, placing, destroying, pushing) | no | no | yes | yes |
| waterbucket | using water buckets | yes | no | yes | yes |
| workbench | accessing workbenches | no | no | yes | yes |
Filtering
How does filtering work?
Filtered prevention allow you to filter the action which will be prevented.
For example the command preventions which can either prevent the usage of all commands or just a specific set of commands based on a whitelist or blacklist
Filter configuration
- mode:
- none: everything will be prevented (aliases: -1, nolist, all)
- whitelist: the listed entries are NOT prevented (aliases: 0, white)
- blacklist: only the listed entries will be prevented (aliases: 1, black)
- list:
- the list of entries. this might be commands, item names or anything else depending on what the prevention does
- this list will be ignored if the mode is set to none
Punishments
Since version 3.3, AntiGuest allows to automatically punish players. These punishments are configurable per prevention.
You can specify multiple punishments per violation, you can look at the default punishment values in the configs
| Punishment | Description | Configuration |
|---|---|---|
| ban | Bans the player | reason: the ban reason |
| burn | Sets the player on fire | duration: the burn duration in seconds |
| dropitem | Drops the held item | pickupDelay: the pickup delay in seconds |
| explosion | Creates a fake explosion and damages | damage: the damage to deal |
| kick | Kicks the player | reason: the kick reason |
| kill | Kills the player | none |
| lightning | Strikes a fake lightning on the player | damage: the damage to deal |
| message | Makes the player send an awkward message | message: the message to send |
| potion | Poisons the player | duration: effect duration, effect: type |
| rocket | Shoots the player in the air | height: the number of blocks |
| slap | Slaps the player | damage: the damage to deal |
| starvation | Lets the player starve | none |
No configuration is specified as {}
Commands
General syntax: /antiguest <command> or /ag <command>
| Command | Description |
|---|---|
| help | prints a help text |
| can [player] <preventionname> | checks whether the player (or another player) passes a prevention |
| list [-a] | lists the active or all registered preventions |
| reload [prevention] | reloads the plugin |
| setmessage <prevention> <message> | sets the message of a prevention |
| language [language] | shows or sets the language |
| badword <word> | adds a bad word to the swear prevention |
disable <prevention|*> [-t] | disables a specific prevention or all at once |
enable <prevention|*> [-t] | enables a specific prevention or all at once |
| reset | resets all configurations |
Installation
AntiGuest 3 needs at least Bukkit 1.1-R5!
Steps
- Just put the AntiGuest Jar-File into your plugins folder
- If you're upgrading from an older version you might remove your config to get a fresh one
- restart/reload your server
- The configuration files will be generated/updated as soon as the plugin gets enabled
Permissions
| Permission node | Description | Default |
|---|---|---|
| antiguest,violation-notification | The player will receive violation notifications | not assigned |
| antiguest.* | Allows the player to do everything | operators |
| antiguest.commands.* | Allows the player to run all commands | operators |
| antiguest.commands.<command> | Allows the player to run the specific command | operators |
| antiguest.preventions.* | Allows the player to pass all preventions | operators |
| antiguest.preventions.<prevention> | Allows the player to pass the specific prevention | operators |
Base configuration
| Entry | Default value | Description |
|---|---|---|
| debug | false | Enables or disables debug output |
| language | system value | Sets the language of all texts |
| punishments | true | Globally disables or enables punishing |
| log-violations | false | Globally enables violation logging |
| prevent-npc | false | Enables the preventions for NPCs |
Developer Notice
Plugin developed by Quick_Wango - Cube Island
- You want new features?
- You want the plugin to be always up to date?
- You want good support?
I'm doing this for literally nothing in my free time, so keep me interested in my plugins and help pay my bills by simply donating a few bucks.
Thanks in advance!
Talk to the developers (#cubeisland-dev on EsperNet)
-
View User Profile
-
Send Message
Posted Apr 10, 2012@QuickWango
yes i did =)
-
View User Profile
-
Send Message
Posted Apr 9, 2012How do you discriminate between who is able to pass a permission?
-
View User Profile
-
Send Message
Posted Apr 7, 2012@Rowtag87
Have you checked the new configurations?
but anyway there will be a new version in the next days
-
View User Profile
-
Send Message
Posted Apr 6, 2012I have Problems since update, ppl can roun out of Spawn area and can build now .. what did u change that this is possible now? :S
It works well with 3.0.3 :S
Nah im Blind ;) I think it needs to be updated to 1.2.5 .. but it works fine with 3.0.3 on the latest bukkit RB
idk why your new Verison 3.1.0 is not working well.
-
View User Profile
-
Send Message
Posted Apr 6, 2012What 3.2.0 will bring so far:
- translations (english and german)
- a converter (old config -> new configs)
- 5 new commands to manage the preventions ingame
- some bug fixes
-
View User Profile
-
Send Message
Posted Apr 4, 2012@TnTBass
I disabled them by default for performance reasons and to force people to actually look into the config(s). I'll enable a few (the basic ones) by default.
@Belgaric
the internal design doesn't allows this.
@kilorat2
I'll check that, it will most likely be added to the breakblock prevention
-
View User Profile
-
Send Message
Posted Apr 4, 2012Not sure if this was requested before, but if its even possible I'd like to request that it can prevent people from putting out fires (such as on top of a netherrack).
-
View User Profile
-
Send Message
Posted Apr 4, 2012Maybe you could divide those 43 config files in to 3 or 4 sections (files). like sleep, hunger as a player aspect. Interactions with the world as world for example.
Sometimes commands are useful for little changes but for larger i do them directly in those files. Less typos during writing the command in Minecraft.
Sorry for my english. It's not my native language.
-
View User Profile
-
Send Message
Posted Apr 3, 2012Umm... whoa. Just noticed this change.
I really like this plugin, once I can get it fully configured. In previous versions, you had everything enabled by default (WOO - that's the intent of this plugin). You went and changed that to having all prevention off by default, which I didn't understand, as this plugins entire purpose is to block events.
Oh well, I thought, I can make this one time change and away we go.
Now you split it up into 43 files. I swear you hate me with a passion. Do you hate me? I must know, cause I'm all sorts of confused why I ever need to worry about a drastic config file change (like 43 files to update) with a plugin of this nature. Especially since it reverted my preventions back to default values - everything allowed.
*sigh At least this isn't game killing for me, just defeats my greylisting.
-
View User Profile
-
Send Message
Posted Apr 3, 2012@Belgaric
Hmm, I thought the huge config (almost 200 lines) was quite confusing.
This allowed me to do some internal stuff much better.
I think it will be better in the long term as more preventions get added and you have to edit all of them only once. Maybe I can find a few to make it more comfortable for you.
what about more prevention management options via commands? enableall, setmessage, ....
-
View User Profile
-
Send Message
Posted Apr 3, 2012@WoodenAxeServer
I agree, its a pain in the ass. Will not update until this is fixed.
-
View User Profile
-
Send Message
Posted Apr 2, 2012Is this an april fools joke? Do we really have to edit 43 files now to enable these protections? 1 file was so much nicer, imo.
-
View User Profile
-
Send Message
Posted Apr 2, 2012drool... :P
Awesome Quickwango!
Best regards,
- ThisUsernameIsMine
-
View User Profile
-
Send Message
Posted Apr 1, 2012released a new version!
http://dev.bukkit.org/server-mods/antiguest/files/10-anti-guest-v3-1-0-1-2-4-r1-0/
-
View User Profile
-
Send Message
Posted Mar 26, 2012Just wanted to say Thank You again, for creating this wonderful plugin! ;-)
-
View User Profile
-
Send Message
Posted Mar 25, 2012@Wormstrum
1. open a issue on github
2. that's a bug of you permission plugin
3. yep, I considered it and dropped the idea. open a issue on github for it, maybe next version
-
View User Profile
-
Send Message
Posted Mar 24, 2012I'm having 2 issues with the plugin (I'm running on build 2117):
First, I am unable to get the damage filter list to work. Here is part of my config for it:
As a test I jumped into the void and received the protected message and fell forever.
Second, I noticed if you demote someone back to guest while they are logged out, the plugin will not recognize them as a guest until a server restart.
Also, have you considered adding a filtered list to the breakblock protection. I could see this plugin being used to prevent cheating on an smp adventure map.
-
View User Profile
-
Send Message
Posted Mar 18, 2012Updated the description!
Chat with me: #code-infection on EsperNet
-
View User Profile
-
Send Message
Posted Mar 18, 2012@Gnintendo
Come on! No stackstaces in comments, that's shit!
The exception gets thrown in nms-Code (net.minecraft.server), there is nothing I can do to fix this. I could only supress the exception stacktrace, but that doesn't solve anything.
If you want this fixed, report this to http://leaky.bukkit.org
-
View User Profile
-
Send Message
Posted Mar 17, 2012I get this every couple minutes or so:
09:38:54 [SEVERE] Could not pass event InventoryOpenEvent to AntiGuest org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:441) at org.bukkit.craftbukkit.event.CraftEventFactory.callInventoryOpenEvent(CraftEventFactory.java:474) at net.minecraft.server.EntityPlayer.startCrafting(EntityPlayer.java:477) at net.minecraft.server.BlockWorkbench.interact(SourceFile:24) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:294) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:723) at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:96) at net.minecraft.server.Packet15Place.handle(SourceFile:39) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:116) at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:60) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at net.minecraft.server.InventoryCrafting.getOwner(InventoryCrafting.java:47) at org.bukkit.craftbukkit.inventory.CraftInventory.getHolder(CraftInventory.java:413) at de.codeinfection.quickwango.AntiGuest.Preventions.Bukkit.DispenserPrevention.handle(DispenserPrevention.java:37) at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ... 16 more