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.
@Alshain01
Alright, Ill hold off for a bit. I keep getting users seeing /flags in their /help pages and running commands, they don't have permissions to run them, but how can I stop players from seeing the flags/flag entries in help?
@GodsDead
Feature wise (the stuff the end user notices), there is little or no change at all. 10% of the changes are to support UUID's for trust list. 90% is an API overhaul, the API has been consolidated to allow developers to find what they want a little easier and it also support better expansion. This of course breaks plugins, hence the major revision number change. However, I wouldn't put it on a live server at this time as I haven't done much testing on it yet and in some cases I may change my mind and provide no upgrade path like I did with Alpha 1 to Alpha 2, 1.4.1 will work fine until Mojang allows user name changes. Right now 2.0.0 is kind of waiting on the dependencies to catch up a little more on UUID changes.
Hey Alshain01!
Do you have a changelog from 1.4.1 to 2.0.0? So I can see what's new :) I updated to 1.7.9 yesterday, Is it worth updating to 2.0.0? Or waiting for now?
@killje
I think I found another way around this issue. The long and the short of it is, something changed in the API since I developed that (I think it was 1.5.2 originally). I already uploaded a change that's waiting on approval so it's not going to be in 1.3.1, but the next patch should have it.
The plugin BlockNotif is now using the plugin Flags for Land/Region/Residence/etc report! ;-)
@Alshain01
i mean snow accumulation, it still occurs no matter what i set my flags to be
@killje
Not snow fall, snow accumulation. The snow fall is an animation that occurs in snowy areas when it rains. I can't really affect that. The snow flag stops the accumulation on the ground.
The GP problem is because he changed the was sub claim ID's are handled. It's experimental and I'm not going to make a change for it until it at least goes to beta.
i dont know if i am the only one but snow is able to fall in a area where snow is disabled, i tryed to put if on true as wall with no result
also this plugin gives a bunch of event errors with grief prevention 270 as they have removed the getClaim() function!
@GodsDead
No new module, just a few new flags in this build. The old coming soon page is still there if you want to see it. There are several plugins & modules in development though. PetStore and RocketTeleport will have flags soon, those are mine. I believe ryan_the_leach is working on a way to choose where the plugin CreeperHeal is allowed to function. There is one other developer working on modules but I'm not sure if he wants me to announce it yet.
Re: Update system. No, that would be very much against the BukkitDev rules. There is a very specific method for updating. It can only download data from CurseForge. The message you get is not coming from there server, it's actually hard coded in the plugin. It's really that way for safety. They have to ensure you can't download a virus.
No, I didn't find the group trust on GP, I work with so many systems now it must have been another one, but it is in Flags 1.3. You can trust any permission node as long as it has at least 1 period (how it knows it's not a user name). There is also a permission node for who can view permission node trusts. Details are on the permissions page.
@Alshain01
People underestimate how importatnt decent clean documentation is, It frustrates me into oblivion having to try and find out commnds/permissions/features. Was a new module added to the flags collection?
Also, no sweat about the bug, I was wrackign my brians to try and figure out what the hell was causing it though! Happy I managed to track it down by myself haha Could you not use the update system to push a message to OP's of the server for something like this in the future? I mean, hopefully it wont happen again, but it could be an option.
We talked about setting groups trust for claims, did you manage to find this on GP? I didnt get a reply from anyone on the GP page, If not that would be a very handy feature request.
You may notice I've redesigned the main page. I'm trying to reduce the amount of different pages you have to click through and decrease walls of text to make it a lot more user friendly. I've brought more of the important information for users to the front page and reduced more of the "server operator only" information to sub-pages.
I should have a bug fix build ready by late next week. If you have any known bugs, no matter how small they seem, please let me know ASAP.
For those concerned about the bug in the core module, I want you to know I am working on a solution to prevent this in the future. The problem I had was my testing environment was using a particular anti-grief plugin at the time that decided to "hide" the bug for me. In 1.4.0 I will be adding a very VERY VERY rudimentary cuboid system directly into Flags. This will serve as the fall back system if none are detected. I want to stress I am not interested in making an anti-grief plugin. It will not have visualizations, ownership, or anti-grief. It will simply be "Make a rectangle, put a flag in it." While I don't expect many people to use this system, it will allow me to test without other plugins installed so I can check flag functionality unimpeded.
@GodsDead
It's the core module, there was a notice on the download page and I think newfization reposted it below. It has an easy work around, but it will be fixed. Sorry for the inconvenience, I tried to get the word out as soon as possible, I put it up there before Bukkit even finished the review process.
Hey Alshain01, Updated the Flags modules, A day later and my players are flipping out that items despawn instantly after death, Took some trial and error and a bunch of restarts, But I think its either block-module, core-module causing this. Disabled both and the problem disapered, this is quite game breaking....
@newfization
Fixed the text on the download page, thanks for the heads up.
Known caveats
A bug in the core module for the build has been discovered only after it went up for review. The functionality of the DropItemsOnDeath flag is backward. Either do not install the Core module on your server or immediately perform the following commands after installing it.
/flag s w DropItemsOnDeath /flag s d DropItemsOnDeath
If you choose the latter, remember to invert the setting back after the next update.
You have the flag misspelled on the other page so I'm posting this here. :)
Flags v1.3.0 is finally released!
A few highlights, MySQL support! Quite possibly one of the most requested features I've ever had is finally here! In addition there is new support for PreciousStones fields, a new permission node trust feature, a small collection of new flags in the core module, and a host of other small changes for an all around better experience. The "Coming Soon" page will remain for a while if you want the full list.
If you plan on using MySQL, I suggest you read the Configuration page thoroughly for information on how that works. Most of the pages have now been updated for 1.3 already.
Some things I had planned did not make the cut. First, Regios support is technically in the plugin but does not work due to an issue with retrieving regions by location. I've reported this issue to the developer and he has corrected it, but not yet released a new version. Second, Microsoft SQL and PostgreSQL gave me some trouble regarding drivers. Again, the code is there so if you think you can make it work, feel free to try it out, but I spent a few days on it and decided it was delaying the other fully working features too much.
Finally, I've re-enabled the forums (tab at the top of this page). Because of the way the comments section here works (pushing everything down where it gets lost), I'm seriously considering disabling comments here and using only the forums. But for now, everything is turned on.
@mblanchet75
Yes, this way if the plugin developer desires they can ignore subdivisions.
@Alshain01
Ok, it is because you make a difference between area and subarea. Good, I will try this.
@mblanchet75
I've fixed the default trust messages to be more generic. I added a permission for viewing permission node trusts. It's "flags.view.permtrust" and it defaults to op.
For the other issue it's working as intended. getSystemID() gets the parent name, getSystemSubID() gets the subdivision name, but you have to cast it to an instance of Subdivision to see that method.
@Alshain01
Example : I add a Permission Trust, and the message is "For player". When I list trust, the permission trust (group.vip) is not here, but is working.
An other issue with 1.3.0, when I get the name of the Land on a subzone with Residence, I get only the parent zone. It should be someting like : parent.child
This should give you the correct name :