Flags
Flags is an interface plugin designed to bridge the gap between cuboid and other land management plugins and other plugins that would need to access them.
Based on similar concepts of Vault, Flags provides a single unified object or "Area" for developers to have basic access to the information it holds without the need to know which plugin created it. This allows developers to implement per-area features one time and have them work automatically with all the supported land management plugins.
Though it has grown far beyond it's original purpose, Flags gets it's name from it's ability to allow plugins to create "flags" or switches that change the behavior of the game or plugin in specific areas. Flags will automatically maintain the users choices and customizations, and the plugins that created the flags merely have to handle their behavior. Don't let the name fool you, plugins can use the API for hooking into areas without actually creating flags at all.
Features
- Multiple land area plugin support
- Modular flags allow you to choose only what you want.
- Developer API allows anyone to create flag plugins or interface with areas.
- Flags can be set for areas, the wilderness, or new area defaults.
- Trust lists allow you to choose players that can bypass flag effects in each area.
- Customizable player messages allow you to personalize all player flags per area.
- Customizable flag bundles allow you to set multiple flags in a single command.
- Multi-world support allows you to treat each world as a different area, including the wilderness and defaults.
- YAML and MySQL data storage options for flexible servers
- Vault economy support for purchasing flags and messages
Supported Area Plugins (optional)
Flags currently supports Factions, Factoid, Grief Prevention, InfinitePlots, PlotMe, PreciousStones, Residence, and WorldGuard. Flags also has an internal system it uses if no other system is detected. For more details on compatibility and feature sets, please visit the Area Plugins page.
Plug-ins and Modules
Included Modules
Included with Flags is a set of optional flag modules available that operate with just Bukkit. To install them, place the modules you want to use in your plugins folder, along with Flags.jar.
Module | Description |
Block Module | Adds flags based on block control. |
Border Patrol Module | Adds flags based on players moving into or out of an area. |
Core Module | Adds general flags that don't fit with any of the other included modules. |
Creature Spawn Module | Adds flags for stopping creatures from spawning. |
Damage Module | Adds flags for stopping types of player damage. |
Player Module | Adds flags based on player actions. |
Vehicle Module | Adds flags based on boats, minecarts, and horses. |
External Plugins and Modules
Below is a list of known plugins and modules not included with Flags that add their own flags. If you have developed a plugin with Flags support or a module and want it listed here, add a post to the developer forum!
Plugin | Description | Flags |
BlockNotif | Notifies moderators when players break certain blocks, logs it, and prevents it from occurring. | None. Flags is used to report the name or ID of the area defined by the system your using. |
FancyShop | Creates chest shops that trade in physical currencies. | Flags that allow shops to be restricted to specific areas. |
FlyNCreative | Allows server operators to set areas where creative mode and flight are enabled while maintaining inventories for those areas. | Flags to select Flight and/or Creative mode. |
HardcoreClaims | Grief Prevention extension that deletes claims and restores the land when a player dies. | Flags for choosing which claims get deleted and what areas players must die in to cause a deletion. |
PetStore | Manage ownership of tameable animals. | Flags for choosing where animals can be left for sale, give away, or released. |
RocketTeleport | Plugin that adds a new flare to warping/teleporting. | Flags for choosing where players can create rockets and landing zones. |
Flag Usage
NEW: Tutorial: Understanding Area, Wilderness, and Default
To set flags for an area, simply stand inside the area that you would like to set a flag for and issue the command /flag <action> <location> <flag> [value]. For more detailed information, consult the Commands page. Setting a default flag allows you to choose the behavior for all areas in the world that have not had a value previously set. Setting a wilderness flag allows you to choose the behavior for unclaimed areas.
The following examples can be used for the flag or bundle command and can be used with area, default, or wilderness. This is not an exhaustive list.
Command | Effect |
/flag get area Pvp | Retrieves the value of the flag |
/flag set wilderness NotifyExit true | Explicitly set the value of the flag. |
/flag set default SpawnMob | Toggle the current value of the flag. |
/flag help | Display a list of available flags |
Tools
Flags has the ability to use item based tools for some functionality. The items are configurable in config.yml. Below is a list of the tools available.
Tool | Default | Function |
FlagQuery | Feather | Right click in an area to view the flags currently set. Performs the same function as /flag get area or /flag get wilderness. |
Sector | Gold Hoe | If Sectors are enabled, use this tool to create a sector by right clicking to set the corners. Create subdivisions in the same manner inside an existing sector. |
Bundles
Bundles allow you to group flags together so you can set them with a single command. New bundles can be added by command or by the server operator editing the bundle.yml file. Bundles maintain their own permissions system, they do not require a flag permission even if the flag is in the bundle. Below is a list of default bundles which serve as examples and can be edited or removed. These bundles will only function if their respective modules are installed.
IMPORTANT: When adding new bundles by editing the file directly, the name should ALWAYS be lower case. Flag names are not case sensitive, and using or adding bundles with commands in-game are not case sensitive. You may use in-line YAML list format if you wish.
Bundle | Flags |
BuildCreature | BuildGolem, BuildSnowman, BuildWither |
Jail | AllowEntry, AllowLeave, AllowTpIn, AllowTpOut |
Notify | NotifyExit, NotifyEnter |
SpawnMonster | SpawnInvasion, SpawnJockey, SpawnLightning, SpawnMob, Spawner, SpawnChunk, SpawnOther |
Damage | DamageBlockExplode, DamageContact, DamageDrown, DamageFall, DamageBlockFall, DamageFire, DamageBurn, DamageLava, DamageLightning, DamageMagic, DamageMelting, DamagePoison, DamageStarve, DamageSuffocate, DamageSuicide, DamageThorns, DamageVoid, DamageWither, DamageOther |
Updater
Flags contains an automated updater feature that can check for updates and notify the console and players with permission when one is available. For more information on configuring or disabling the updater, click see the Configuration page.
Metrics
Flags reports non-identifying information about your server to MCStats.org. For more information on what is reported and how to disabled it if you would like to, please see the Questions page. To view the full set of data, click the graph below.
Discussion Forum
In order to provide more centralized and effective means of feedback and support for my growing list of plugins, a Discussion Forum has been provided. You don't even need a new account to use it! Please understand that I may not directly respond to comments on this page and I will not respond to plugin questions in the form of PM's. By posting on the forums you help others find answers to the same questions, and I don't have time to continually repeat the same answers if you want new features added! This forum is exclusively for plugins by Alshain01 and discussion of their use and development. For other concerns, please consult the Bukkit Forums.
I like this plugin.I hope you can make a sponge version.^ ^
I would love if this could be updated with spigot as spigot is the most well used server build out there and they are actually doing a great job keeping up with updates and such
I see that this works with GreifPrevention. I was reading through the documentation but I cannot seem to find anything. Does this also have the option to prevent people from right clicking while in a protected "claim" from GriefPrevention. I mainly ask this because I run a modded server and some items trigger on right click and can dislocate blocks and such.
@LGCMcLovin
Flags are not owned by anyone. There is really no good way to separate them into different files. At the point it becomes too large, it is time to look at SQL.
How about maybe fixing it so that flag data is stored per player, instead of 1 file for every single player/claim flag made on the server. using a single file for larger community servers causes crashes once the file becomes too large...
Some of you have been asking about a 1.8 version of Flags. However, with the collapse of Bukkit, there is not a 1.8 API. I've been (silently) following the Sponge development which looks promising and is the most likely move for this plugin but I don't feel that it is quite ready yet. Until that time, there really isn't anything I can update to.
Before you ask, no I will not be porting the plugin to Spigot. I simply do not like what I see in that project. While I wish no ill will against the people involved, I am not interested in becoming involved in it.
I hope you will update it to 1.8.3 :3
@Alshain01
When can we expect a 1.8 version of Flags? I want this, not WordEdit
Where is the version that works with the current 1.7.10 download for GriefPrevention?
please update to 1.8, I need to use this for a pvp arena
Update for 1.7.10
[Java ERROR] org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) [JavaPluginLoader$1.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [Java ERROR] java.lang.reflect.Method.invoke(Method.java:601) [?:1.7.0] [Java ERROR] sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0] [Java ERROR] sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) [?:?] [Java ERROR] io.github.alshain01.flagscreaturespawn.FlagsCreatureSpawn$CreatureSpawnListener.onCreatureSpawn(FlagsCreatureSpawn.java:147) [?:?] Caused by: java.lang.NoSuchMethodError: io.github.alshain01.flags.api.area.Area.getState(Lio/github/alshain01/flags/api/Flag;Z)Ljava/lang/Boolean; [Java ERROR] java.lang.Thread.run(Thread.java:722) [?:1.7.0] [Java ERROR] net.minecraft.server.MinecraftServer.run(MinecraftServer.java:658) [MinecraftServer.class:?] [Java ERROR] net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:798) [MinecraftServer.class:?] [Java ERROR] net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:423) [lt.class:?] [Java ERROR] net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:920) [MinecraftServer.class:?] [Java ERROR] net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:247) t.class:?] [Java ERROR] net.minecraft.world.SpawnerAnimals.func_77192_a(SpawnerAnimals.java:212) [aho.class:?] [Java ERROR] net.minecraft.world.World.addEntity(World.java:1734) [ahb.class:?] [Java ERROR] org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callCreatureSpawnEvent(CraftEventFactory.java:272) [CraftEventFactory.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [Java ERROR] org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [SimplePluginManager.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [Java ERROR] org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [SimplePluginManager.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [Java ERROR] org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [RegisteredListener.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [Java ERROR] org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:338) [JavaPluginLoader$1.class:git-Cauldron-MCPC-Plus-1.7.10-1.1231.04.209] [23:24:33] [Server thread/ERROR] : Could not pass event CreatureSpawnEvent to FlagsCreatureSpawn v2.0.0-ALPHA-1
@catprowler
It has nothing that prohibits placing of signs specifically.
Hi there, does this plugin allow a person to use signs in restricted areas? I have protected regions using worldguard, but I need players to use signs in those regions. Thank you
So this does not work with the latest Grief Prevention?
@LeeTheENTP
Flags (and GPFlags) are CraftBukkit plugins. There has been no official testing with any version of Spigot. If that should change I will be certain it is known.
Is the current version of the plugin compatible with Spigot 1.8 and GP v9.2.2? Every other plugin I run has, and I need something better than GPFlags (because GPFlags is no longer working).
@tomori_peti
BC_Programming and I worked together to add a great number of API calls to Grief Prevention 7.8. Those were reverted, so I would have to do significant amount re-writing which would be a backward step and likely break the other compatible systems. I'm not really very inclined to do that at this time. I have limited time as it is right now, and a rewrite isn't in the schedule.
So that, I hope that we will get an update for grief prevention soon. :D Please! :)
@sparts
Well it looks like they fixed the problem with the decompiler so approvals are going again. I wasn't aware of that.
http://forums.bukkit.org/threads/psa-decompiler-vulnerability.318878/
Oh, and Spigot is not Bukkit. Flags isn't developed for Spigot, it's developed for CraftBukkit. It may work, theoretically it should work, but there is no promise that it will.
How is bukkit dead if spigot says they are aiming for a full 1.8 release by the end of this month or mid December? Also GriefPrevention is updating and releasing new builds almost daily?