Commit Graph

143 Commits

Author SHA1 Message Date
Olof Larsson
f22ea3300f Move the temporary spout stuff to a temporary listener like we did with Econ. 2013-04-19 12:48:29 +02:00
Olof Larsson
61baf70ed1 Major messaround with the internal events and payForCommand logic. Not done just yet though. 2013-04-19 12:27:39 +02:00
Olof Larsson
d3488311de It makes no sense to charge for purely informational commands does it? If it does we can add them in later again. Also adding in a in progress listener to show how internal events should be used for integration with other plugins 2013-04-19 10:07:53 +02:00
Olof Larsson
9e6006e7d6 These should in no way be required anymore 2013-04-18 15:44:47 +02:00
Olof Larsson
1ee9f2bba3 Modernizing the Herochat integration, it may still be outdated with newer Herochat versions though. 2013-04-18 15:40:58 +02:00
Olof Larsson
5e481d4120 Only handle faction tags. No standard ones. 2013-04-18 15:31:05 +02:00
Olof Larsson
e9b2b4ee66 Adding in chat listener content. 2013-04-18 15:18:47 +02:00
Olof Larsson
170edc5811 Pass 1 at adding in better chat formating 2013-04-18 14:57:56 +02:00
Olof Larsson
c098171759 Decouple and put all exploit fixes in their own listener. 2013-04-18 14:02:39 +02:00
Olof Larsson
af094b6647 Make the recurring tasks non-tps-dependent. 2013-04-18 13:36:52 +02:00
Olof Larsson
bc0a8da76f Remove LazyLocation and declare that Tasks are not Utils. 2013-04-18 12:29:56 +02:00
Olof Larsson
3938c92740 Merged block listener into main listener 2013-04-17 16:21:25 +02:00
Olof Larsson
003afbf108 Add in some ASCII-art and make sure the adapters have premade instances. 2013-04-17 15:49:29 +02:00
Olof Larsson
109d6059ce Get rid of Essentials integrations, use MCore teleporter for now and PS homes. As for chat I need to rewrite the chat system. Essentials integration can be readded later if needed. 2013-04-17 11:47:48 +02:00
Olof Larsson
97a2ed1fd8 No More ZCore 2013-04-16 11:27:03 +02:00
Olof Larsson
c8d60a8298 Remove three commented out rows. 2013-04-13 11:28:14 +02:00
Olof Larsson
3036b0a157 Moved Faction entity to useage of MStore as well. 2013-04-12 09:47:43 +02:00
Olof Larsson
76f3f044ca Possible converted FPlayer 2013-04-12 08:56:26 +02:00
Olof Larsson
3e68c38861 Group up the transient FPlayer fields. 2013-04-12 08:11:11 +02:00
Olof Larsson
4a63d50cbb Use PS instead of FLocation in a few places. 2013-04-11 11:11:31 +02:00
Olof Larsson
4cc36b8d96 Creating a BoardMapAdapter as well to fix the GSON handling of Baord keys. 2013-04-11 10:11:14 +02:00
Olof Larsson
2c12fb7739 Make an adapter for the board to serialize the one and only inner map only 2013-04-11 09:38:08 +02:00
Olof Larsson
9d347715d5 Rename Board --> BoardOld 2013-04-11 07:01:30 +02:00
Olof Larsson
01585801b9 Rename command files 2013-04-10 13:12:22 +02:00
Olof Larsson
44493bbea3 Removing chached plugin refferences and got rid of another listener. 2013-04-10 12:32:21 +02:00
Olof Larsson
75ec92fb7d Add main listener and move the first listener content into it. 2013-04-10 12:25:46 +02:00
Olof Larsson
24270e7929 Geting rid of persist and prepare ConfServer for SimpleConfig usage. 2013-04-10 10:53:53 +02:00
Olof Larsson
433d45ae4c Add MCore as a dependency, remove CraftBukkit and use Bukkit. MCore and Bukkit libs should be manually maintained for now. 2013-04-10 10:18:34 +02:00
Olof Larsson
14715d1cfc Rename adapter classes. 2013-04-10 09:54:42 +02:00
Olof Larsson
363a63bf3a No outer API plox. The inner classes should be improved to be good enough. 2013-04-10 08:56:10 +02:00
Olof Larsson
6d75465938 Remove warning since it won't be required after MCore introduction. 2013-04-10 08:51:37 +02:00
Olof Larsson
56ae5b9c70 Move the adapter to the adapter folder. 2013-04-10 08:48:21 +02:00
Olof Larsson
a891fc8a0a Decouple TerritoryAccess and it's adapter. 2013-04-09 13:53:37 +02:00
Olof Larsson
936c28d5a9 Move all in the struct package to main package. 2013-04-09 13:24:55 +02:00
Olof Larsson
a726e1c49f Rename FPlayers --> FPlayerColl 2013-04-09 13:22:23 +02:00
Olof Larsson
1b0c0a4b72 Rename Conf --> ConfServer. 2013-04-09 13:15:25 +02:00
Olof Larsson
c8870d10d4 MCorify the MPlugin class Factions slightly. 2013-04-09 13:12:13 +02:00
Olof Larsson
ecefb44d10 Remove CAPI integration since that plugin is abandoned. 2013-04-09 13:03:47 +02:00
Olof Larsson
f119fbb6f6 Remove old Essentials chat integration features. 2013-04-09 13:02:40 +02:00
Olof Larsson
c88847bd3e Rename P --> Factions. 2013-04-09 13:00:09 +02:00
Olof Larsson
8a4b26cbd9 Rename Factions --> FactionColl 2013-04-09 12:58:39 +02:00
Brett Flannigan
5da296e8ca Merge pull request #207 from jastice/recruit-pr
Add recruit role for factions
2013-01-26 18:25:03 -08:00
Brettflan
8fdd07b08f minor cleanup; made econLandReward default to 0, disabled 2013-01-26 19:59:00 -06:00
Justin Kaeser
4743c1821a Add recruit role for factions
The recruit role's goal is to enable factions to invite new members without being afraid of getting griefed instantly.

Adds a configuration option "factionRankDefault" for default rank of newly joined faction members. By default this is RECRUIT, but it can be set to any supported rank.

Adds the /f promote and /f demote commands, which leaders and officers can use to increase or decrease the rank of a faction member by one level, up to officer, or down to recruit.
This version of the recruit feature preserves the /f officer command for backward compatibility.
2013-01-06 21:44:29 +01:00
ÆtherSurfer
2f883455ee Land Reward Task up and running.
Conflicts:
	src/com/massivecraft/factions/Conf.java
	src/com/massivecraft/factions/listeners/FactionsPlayerListener.java
2012-12-01 14:23:49 -05:00
ÆtherSurfer
ca219a1fb2 Reward faction members with money every day for every plot they control divided among all the players in the faction 2012-12-01 14:16:29 -05:00
Brettflan
28206b1c25 The latest CraftBukkit builds have changed their compiled-in GSON lib's package name. Rather than us switching back to using a separate GSON lib again (with two effectively identical copies of GSON ending up loaded and wasting server resources), I'm simply switching Factions to point to CraftBukkit's refactored GSON package name instead.
In line with that, I've removed the Bukkit and GSON libs and added in CraftBukkit as a lib.
2012-08-26 01:02:31 -05:00
Brettflan
af6c4952fa Add default permissions for all members of SafeZone/WarZone factions to use territory access commands; this way, players trusted enough to be added to either system faction will be able to grant access to their claims as desired 2012-08-07 21:58:04 -05:00
Brettflan
47ba56de9e Optimization: Factions (as objects) now maintain a list of FPlayers in the faction for faster lookup
INTEGRATION NOTE: getFPlayers() and getFPlayersWhereOnline(boolean online) now return Set<FPlayer> instead of ArrayList<FPlayer>, so other plugins which hook into those methods will probably need to be updated.
2012-01-13 03:46:31 -06:00
Olof Larsson
9c678965be The special factions must be closed. 2011-11-05 11:15:37 +01:00
Olof Larsson
f76311c492 Claiming now works again :P 2011-10-25 22:18:54 +02:00
Olof Larsson
451d9570e4 The friendlyfire flag now works 2011-10-24 14:54:37 +02:00
Olof Larsson
5f437b1862 Changed permission view. Bank withdraw permission in the works 2011-10-24 11:56:41 +02:00
Olof Larsson
46161f61db Started to implement special faction behavior 2011-10-24 02:33:30 +02:00
Brettflan
9710ec911e Further improved safe zone and war zone auto-rename process courtesy of Olof 2011-10-23 09:36:37 -05:00
Brettflan
2e34079a8e Fix for nonworking war zone and safe zone renaming 2011-10-23 09:11:37 -05:00
Brettflan
a9b1aad956 Existing safe zones and war zones are now renamed to remove the extra " " if they have it, mainly for better /f claim compatibility but also to comply with the modified default names 2011-10-23 08:12:09 -05:00
Olof Larsson
4f7fd6dd96 Possibly solved the faction creation issue. Changed the best id match to something more reasonable 2011-10-23 12:07:20 +02:00
Olof Larsson
a78a4dff98 Managed to get rid of some commands. This needs to be rethought even more though. 2011-10-22 17:03:49 +02:00
Olof Larsson
5bf38ab0aa Adding match mode for id search to MassiveCraftCore and improving the faction argument readers. 2011-10-22 14:39:01 +02:00
Olof Larsson
46f5849f9f Moving over to the use of describeTo. 2011-10-21 19:20:33 +02:00
Olof Larsson
0ce9cce9d3 In progress: Using MassiveCraftCore and Allman indentation style and minor refactoring. 2011-10-08 22:03:44 +02:00
Olof Larsson
61998f459d Merge branch 'master' of github.com:MassiveCraft/Factions 2011-10-08 18:45:08 +02:00
Olof Larsson
ba5d7a3981 Working on permissions handling 2011-10-08 18:44:47 +02:00
Brettflan
77a7b2d85c New Spout feature, for Spoutcraft client users only: current territory info will now be permanently shown at top of screen, instead of being echoed out to chat as you move around
New conf.json setting "spoutTerritoryDisplayPosition" to set the screen position at which the current territory is shown. 0 = disabled, 1 = top left, 2 = top center, 3 (default) = top right.
Moved all integration code to separate package, ofr better code organization. Also moved EssentialsChat integration code out to separate file in there, allowing us to safely remove our copy IEssentialsChatListener.java file (which is otherwise needed to prevent a nasty NoClassDefFoundError).
2011-10-05 05:13:54 -05:00
Brettflan
d64ed374f1 missed from last commit 2011-10-05 02:14:07 -05:00
Brettflan
7c249e1884 Added 3 new hookable functions to main Factions class, for use by other plugins:
boolean isPlayerAllowedToBuildHere(Player player, Location location)
boolean isPlayerAllowedToInteractWith(Player player, Block block)
boolean isPlayerAllowedToUseThisHere(Player player, Location location, Material material)
Also update Bukkit lib for new RB.
2011-10-04 22:46:11 -05:00
Brettflan
ce0559cda9 Autoclaim mode is now disabled when a player is removed from a faction (whether leaving, being kicked, or whatever)
Also the new permission I missed in the last commit
2011-10-01 06:10:49 -05:00
Brettflan
4cab42ec6e Merge branch 'banks' of git://github.com/eXeC64/Factions 2011-10-01 03:45:28 -05:00
Harry Jeffery
46abcadf93 Added alliance only chat mode. 2011-09-24 11:04:49 +01:00
Harry Jeffery
2b23f93fba Added faction banks. 2011-09-24 02:22:53 +01:00
Brettflan
34e4afee2c Four new conf.json settings to prevent Endermen from removing or placing blocks.
"territoryDenyEndermanBlocks" (default true) for claimed territory.
"safeZoneDenyEndermanBlocks" (default true) for Safe Zones.
"warZoneDenyEndermanBlocks" (default true) for War Zones.
"wildernessDenyEndermanBlocks" (default false) for unclaimed wilderness areas.
2011-09-22 06:22:01 -05:00
Brettflan
43fdc8ae14 New command to set a faction as permanent: /f permanent <faction tag> (requires new admin-level permission "factions.setPermanent"). Permanent factions will not be deleted if they have no members, and faction admins of such factions are allowed to leave without a replacement available. Faction admins are also unable to disband their own faction if it is Permanent; only those with the admin-level "factions.disband" permission can disband such a faction while it is set as Permanent. 2011-09-13 13:14:09 -05:00
Spathi
445d10afb7 Optional disabling of WG checks 2011-08-29 04:59:49 +01:00
Brettflan
9fd79d5588 more hookable functions for use by other plugins, these for getting a list of all factions and for listing players in a specified faction 2011-08-23 17:34:40 -05:00
Brettflan
697e0cf466 Added Spout features, with Spout client required for all: relation-colored faction tags over players' heads via option "spoutFactionTagsOverNames", player's faction title over their head via option "spoutFactionTitlesOverNames", and relation-colored capes shown on faction admins and/or moderators via "spoutFactionAdminCapes" and "spoutFactionModeratorCapes" (all new settings default to true)
When a faction is disbanded or has peaceful status added or removed, all online players are now notified
Added further debug output if an UnknownFormatConversionException is triggered during relational chat messages, to help track down cause
2011-08-19 20:36:23 -05:00
Brettflan
4e7aa893a3 Move economy plugin setup process over to the Econ class 2011-08-08 04:51:06 -05:00
Brettflan
68e1313776 New "peaceful" status for factions which can only be set by server admins/moderators. Members of peaceful factions cannot deal or receive PvP damage (unless in a war zone which has friendly fire enabled), cannot claim land from another faction and likewise can't have their land claimed, and cannot be considered as ally or enemy of any other faction. Faction admins and moderators of peaceful factions can enable/disable all explosions inside their faction's territory at will. The main purpose of this is to provide a way for more peaceful players who don't want to take part in faction wars (or just want to take a break from them) to still have fun on the server. It is also meant to allow groups of players to make protected buildings, monuments, grand constructions, and so forth without having to worry about another faction destroying them.
New conf.json settings:
"peacefulTerritoryDisablePVP" (default true) prevents PvP damage for anyone inside a peaceful faction's territory
"peacefulTerritoryDisableMonsters" (default false) provides protection against monsters spawning or attacking inside a peaceful faction's territory
"peacefulMembersDisablePowerLoss" (default true) which keeps members of peaceful factions from suffering power loss when they die.

New commands:
/f peaceful [faction tag] - toggle the indicated faction's "peaceful" status
/f noboom - enable/disable explosions inside your faction's territory; only available to faction admin and faction moderators for peaceful factions

New permission nodes:
factions.setPeaceful - ability to use the /f peaceful command (admins)
factions.peacefulExplosionToggle - ability to use /f noboom (everyone)
2011-08-05 03:50:47 -05:00
Brettflan
4ad9829fd4 Removing /f worldnoclaim and /f worldnopowerloss commands; they're redundant now that you can use /f config worldsnoclaim [world name] and /f config worldsnopowerloss [world name] respectively to set those options. Also removing factions.worldOptions permission node since it was only used for those commands. 2011-08-04 02:35:48 -05:00
Brettflan
e6ac1c0f98 Economy integration now works for EssentialsEco as well 2011-08-04 02:25:12 -05:00
Brettflan
699c22f655 New conf.json settings "territoryNeutralDenyCommands" and "territoryEnemyDenyCommands", which can have lists of commands added to them that will be denied while in the territory of a neutral or enemy faction. It is recommended you use /f config to add/remove such commands, for example /f config territoryEnemyDenyCommands spawn would prevent players from using /spawn in enemy territory. You can add the slash to the command string or not, it will work either way. If the used command starts with one of your denied commands, it will be prevented. For example, if you deny "time", both "/time night" and "/time day" will be prevented. However, if you deny "time n", /time night will be prevented but /time day won't. (thanks for some code contribution from Cal27) 2011-08-04 00:07:38 -05:00
Brettflan
2900bf372f changed findFactions() method to try matching faction tags before trying to match player names, instead of the other way around 2011-08-03 21:49:11 -05:00
Brettflan
2154b89005 Added basic support for iConomy, where most Factions commands can be made to cost (or give) money. For claiming land, there are some extra features. Each additional land claimed by default costs more than the last, with the multiplier being configurable. For example, the first claim might cost $30, the 2nd $45, the third $60, and so forth. When land is claimed from a weakened faction, there is a configurable bonus amount of money deducted from the cost of claiming the land, as an incentive; this number can be changed to a negative value to instead make it cost more to claim such land. When land is unclaimed, a configurable percentage of the cost of claiming the land can be refunded (defaults to 70% of the cost). The total value of a faction's claimed land is now shown in the info given by /f who [faction tag], along with the depreciated (refund) value. 2011-08-01 18:05:01 -05:00
Brettflan
508f953ce9 Faction admins can now mark already claimed areas as owned by specific faction members. Ownership can include multiple members. New command /f owner *[player name], to set/remove ownership. This command is only available to the faction admin and optionally the faction moderators. If no player name is specified, it will either set ownership to the player running the command (if no owner is currently set) or completely clear ownership of the territory. New command /f ownerlist, to view a list of owners for the current area. Only works inside your own faction's territory. New conf.json options "ownedAreasEnabled", "ownedAreasModeratorsCanSet", "ownedAreaModeratorsBypass", "ownedAreaDenyBuild", "ownedAreaProtectMaterials", and "ownedAreaDenyUseage" (all defaulting to true) to determine whether faction moderators can set or bypass ownership (faction admin always can), and what sort of protection these owned areas have against normal members of the faction (members other than the owner(s), faction admin, and probably faction moderators). New conf.json option "ownedAreasLimitPerFaction" to limit how many owned areas can be set. New permission node "factions.ownershipBypass" which allows a player to bypass ownership protection, but only within the person's own faction.
various little tweaks and improvements to other code
moderate speed boost to FLocation code
made commandDisable permissions work for any command alias of a command, instead of just the first one
2011-07-30 20:17:00 -05:00
Olof Larsson
6e9fd72612 Soon to be used JarLoader. 2011-07-27 22:56:45 +02:00
Brettflan
080ea3363b New command /f power [player name] to check either your own power (if no name is specified) or another player's power (if a player name is specified). The ability for a player to view their own power is based on the standard factions.participate permission, but to check the power of other players, the new permission node factions.viewAnyPower needs to be granted. If you aren't using a Permissions plugin (instead defaulting to the built-in Bukkit permission system), the factions.viewAnyPower permission is granted by default. Otherwise, you'll need to configure your Permissions plugin to grant the new permission as needed. 2011-07-25 13:16:14 -05:00
Brettflan
c3f57d5105 added a secondary low priority event listener for chat events, to try and make sure Factions is able to handle slashless commands and faction chat before other plugins do anything 2011-07-24 06:09:58 -05:00
Brettflan
c818ddff99 New command /f config [setting] [value] which can be used to change any conf.json setting. This is mainly for people who have trouble editing the file manually, for whatever reason. It even fixes any capitalization errors, and saves the conf.json file immediately after an option is changed. Can be run by player or from server console. Uses new permission node "factions.config". 2011-07-22 07:25:12 -05:00
Brettflan
bd5d7e185e Well, this is an odd and kludgy fix... only thing I can find that allows the integration to work correctly and not give an error whether EssentialsChat is present or not 2011-07-20 19:31:28 -05:00
Brettflan
1e9c83decc New permission nodes to disable any command, factions.disableCommand.<command>, along with factions.disableCommand.none node which forcibly makes none disabled (for * permission users or similar); for <command>, you must use the first command alias given in the /f help information (for example, "show" instead of "who" for that particular command) 2011-07-20 16:22:54 -05:00
Brettflan
5686c4db9d Piston movement is now prevented if it encroaches across into territories which have the relevant DenyBuild option set (whether faction territory, safe zone, or war zone). This covers piston extension if it pushes across unacceptable borders or even if the piston head itself would cross over, and also prevents sticky pistons from pulling blocks back across such borders.
There is also a new conf.json option "pistonProtectionThroughDenyBuild" (default true) which can be disabled to turn off piston protection. This option is available due to the (untested) potential that a world with many pistons constantly repeatedly firing could result in additional lag from these piston protection events
2011-07-20 12:22:03 -05:00
Brettflan
c79692940e Update to new integration method for EssentialsChat; needs up-to-date Essentials (2.5.1 or newer)
NOTE: if Essentials is too old, this error will occur at server startup (sadly impossible to catch or otherwise handle due to how Bukkit loads plugins):
java.lang.NoClassDefFoundError: com/earth2me/essentials/chat/IEssentialsChatListener
2011-07-20 08:48:14 -05:00
Olof Larsson
8aefae5679 changed namespace to com.massivecraft 2011-07-18 22:06:02 +02:00