From 8e238e2b4846a1cbda9fd1714f14d112a60de82d Mon Sep 17 00:00:00 2001 From: DroppingAnvil Date: Sun, 15 Sep 2019 03:14:15 -0500 Subject: [PATCH] Merging branches 1 new mission type --- classes/artifacts/Factions_jar/Factions.jar | Bin 3012500 -> 0 bytes javadoc/com/massivecraft/factions/P.html | 2 +- pom.xml | 29 +- .../java/com/massivecraft/factions/Conf.java | 8 +- .../factions/{P.java => FactionsPlugin.java} | 136 +++-- .../factions/cmd/BrigadierManager.java | 92 ++++ .../factions/cmd/BrigadierProvider.java | 9 + .../massivecraft/factions/cmd/CmdAHome.java | 26 +- .../massivecraft/factions/cmd/CmdAdmin.java | 59 +-- .../factions/cmd/CmdAnnounce.java | 39 +- .../factions/cmd/CmdAutoHelp.java | 22 +- .../com/massivecraft/factions/cmd/CmdBan.java | 59 +-- .../massivecraft/factions/cmd/CmdBanlist.java | 28 +- .../massivecraft/factions/cmd/CmdBanner.java | 45 +- .../massivecraft/factions/cmd/CmdBoom.java | 25 +- .../massivecraft/factions/cmd/CmdBypass.java | 29 +- .../massivecraft/factions/cmd/CmdChat.java | 56 +- .../massivecraft/factions/cmd/CmdChatSpy.java | 27 +- .../factions/cmd/CmdCheckpoint.java | 47 +- .../factions/cmd/CmdColeader.java | 49 +- .../massivecraft/factions/cmd/CmdConfig.java | 60 +-- .../massivecraft/factions/cmd/CmdConvert.java | 20 +- .../massivecraft/factions/cmd/CmdCoords.java | 21 +- .../massivecraft/factions/cmd/CmdCreate.java | 70 +-- .../factions/cmd/CmdDeinvite.java | 66 ++- .../factions/cmd/CmdDelFWarp.java | 29 +- .../factions/cmd/CmdDescription.java | 32 +- .../massivecraft/factions/cmd/CmdDisband.java | 79 ++- .../massivecraft/factions/cmd/CmdFGlobal.java | 28 +- .../massivecraft/factions/cmd/CmdFWarp.java | 61 +-- .../com/massivecraft/factions/cmd/CmdFly.java | 97 ++-- .../massivecraft/factions/cmd/CmdFocus.java | 41 +- .../factions/cmd/CmdGetVault.java | 38 +- .../massivecraft/factions/cmd/CmdHelp.java | 208 ++++---- .../massivecraft/factions/cmd/CmdHome.java | 123 ++--- .../massivecraft/factions/cmd/CmdInspect.java | 26 +- .../factions/cmd/CmdInventorySee.java | 36 +- .../massivecraft/factions/cmd/CmdInvite.java | 59 +-- .../massivecraft/factions/cmd/CmdJoin.java | 89 ++-- .../massivecraft/factions/cmd/CmdKick.java | 80 ++- .../factions/cmd/CmdKillHolograms.java | 20 +- .../massivecraft/factions/cmd/CmdLeave.java | 22 +- .../massivecraft/factions/cmd/CmdList.java | 36 +- .../massivecraft/factions/cmd/CmdLock.java | 22 +- .../massivecraft/factions/cmd/CmdLogins.java | 15 +- .../factions/cmd/CmdLowPower.java | 24 +- .../com/massivecraft/factions/cmd/CmdMap.java | 43 +- .../factions/cmd/CmdMapHeight.java | 20 +- .../com/massivecraft/factions/cmd/CmdMod.java | 48 +- .../factions/cmd/CmdModifyPower.java | 20 +- .../massivecraft/factions/cmd/CmdNear.java | 34 +- .../factions/cmd/CmdNotifications.java | 37 -- .../massivecraft/factions/cmd/CmdOpen.java | 39 +- .../massivecraft/factions/cmd/CmdOwner.java | 62 +-- .../factions/cmd/CmdOwnerList.java | 44 +- .../factions/cmd/CmdPaypalSee.java | 49 +- .../factions/cmd/CmdPaypalSet.java | 48 +- .../factions/cmd/CmdPeaceful.java | 18 +- .../massivecraft/factions/cmd/CmdPerm.java | 57 +- .../factions/cmd/CmdPermanent.java | 23 +- .../factions/cmd/CmdPermanentPower.java | 23 +- .../massivecraft/factions/cmd/CmdPower.java | 22 +- .../factions/cmd/CmdPowerBoost.java | 38 +- .../massivecraft/factions/cmd/CmdReload.java | 27 +- .../massivecraft/factions/cmd/CmdRules.java | 76 ++- .../com/massivecraft/factions/cmd/CmdSB.java | 20 +- .../massivecraft/factions/cmd/CmdSaveAll.java | 19 +- .../factions/cmd/CmdSeeChunk.java | 38 +- .../factions/cmd/CmdSetBanner.java | 22 +- .../factions/cmd/CmdSetDefaultRole.java | 22 +- .../factions/cmd/CmdSetFWarp.java | 59 +-- .../factions/cmd/CmdSetMaxVaults.java | 24 +- .../massivecraft/factions/cmd/CmdSethome.java | 55 +- .../massivecraft/factions/cmd/CmdShow.java | 48 +- .../factions/cmd/CmdShowClaims.java | 25 +- .../factions/cmd/CmdShowInvites.java | 14 +- .../massivecraft/factions/cmd/CmdSpam.java | 33 -- .../massivecraft/factions/cmd/CmdStatus.java | 17 +- .../massivecraft/factions/cmd/CmdStealth.java | 29 +- .../massivecraft/factions/cmd/CmdStrike.java | 52 -- .../factions/cmd/CmdStrikeSet.java | 86 --- .../massivecraft/factions/cmd/CmdStrikes.java | 41 ++ .../factions/cmd/CmdStrikesGive.java | 37 ++ .../factions/cmd/CmdStrikesInfo.java | 37 ++ .../factions/cmd/CmdStrikesSet.java | 37 ++ .../factions/cmd/CmdStrikesTake.java | 38 ++ .../massivecraft/factions/cmd/CmdStuck.java | 67 +-- .../com/massivecraft/factions/cmd/CmdTag.java | 55 +- .../massivecraft/factions/cmd/CmdTitle.java | 45 +- .../factions/cmd/CmdToggleAllianceChat.java | 25 +- .../com/massivecraft/factions/cmd/CmdTop.java | 25 +- .../factions/cmd/CmdTpBanner.java | 34 +- .../massivecraft/factions/cmd/CmdUnban.java | 45 +- .../factions/cmd/CmdUpgrades.java | 24 +- .../massivecraft/factions/cmd/CmdVault.java | 57 +- .../massivecraft/factions/cmd/CmdVersion.java | 22 +- .../factions/cmd/CmdViewChest.java | 26 +- .../factions/cmd/CommandContext.java | 418 +++++++++++++++ .../factions/cmd/CommandRequirements.java | 155 ++++++ .../massivecraft/factions/cmd/FCmdRoot.java | 95 ++-- .../massivecraft/factions/cmd/FCommand.java | 499 +++++++----------- .../factions/cmd/alts/CmdAlts.java | 29 +- .../factions/cmd/alts/CmdAltsList.java | 30 +- .../factions/cmd/alts/CmdInviteAlt.java | 60 +-- .../factions/cmd/check/CheckHistoryFrame.java | 6 +- .../cmd/check/CheckSettingsFrame.java | 24 +- .../factions/cmd/check/CheckTask.java | 6 +- .../factions/cmd/check/CmdCheck.java | 85 ++- .../factions/cmd/check/CmdWeeWoo.java | 36 +- .../factions/cmd/check/WeeWooTask.java | 6 +- .../factions/cmd/chest/CmdChest.java | 37 +- .../factions/cmd/claim/CmdAutoClaim.java | 50 +- .../factions/cmd/claim/CmdClaim.java | 45 +- .../factions/cmd/claim/CmdClaimAt.java | 35 +- .../factions/cmd/claim/CmdClaimLine.java | 46 +- .../factions/cmd/claim/CmdCorner.java | 33 +- .../factions/cmd/claim/CmdSafeunclaimall.java | 26 +- .../factions/cmd/claim/CmdUnclaim.java | 123 ++--- .../factions/cmd/claim/CmdUnclaimall.java | 61 ++- .../factions/cmd/claim/CmdWarunclaimall.java | 34 +- .../CmdConvertConfig.java | 18 +- .../ConvertConfigHandler.java | 11 +- .../factions/cmd/econ/CmdMoney.java | 25 +- .../factions/cmd/econ/CmdMoneyBalance.java | 26 +- .../factions/cmd/econ/CmdMoneyDeposit.java | 28 +- .../factions/cmd/econ/CmdMoneyTransferFf.java | 40 +- .../factions/cmd/econ/CmdMoneyTransferFp.java | 34 +- .../factions/cmd/econ/CmdMoneyTransferPf.java | 32 +- .../factions/cmd/econ/CmdMoneyWithdraw.java | 44 +- .../factions/cmd/grace/CmdGrace.java | 32 +- .../factions/cmd/logout/CmdLogout.java | 25 +- .../factions/cmd/logout/LogoutHandler.java | 6 +- .../factions/cmd/points/CmdPoints.java | 25 +- .../factions/cmd/points/CmdPointsAdd.java | 32 +- .../factions/cmd/points/CmdPointsRemove.java | 32 +- .../factions/cmd/points/CmdPointsSet.java | 32 +- .../cmd/relational/FRelationCommand.java | 77 +-- .../factions/cmd/roles/FPromoteCommand.java | 59 +-- .../massivecraft/factions/cmd/tnt/CmdTnt.java | 125 ++--- .../factions/cmd/tnt/CmdTntFill.java | 260 +++++---- .../factions/integration/Econ.java | 14 +- .../factions/integration/Worldguard.java | 6 +- .../integration/dynmap/EngineDynmap.java | 2 +- .../listeners/EssentialsHomeHandler.java | 4 +- .../listeners/FactionsBlockListener.java | 48 +- .../listeners/FactionsChatListener.java | 8 +- .../listeners/FactionsEntityListener.java | 8 +- .../listeners/FactionsExploitListener.java | 4 +- .../listeners/FactionsPlayerListener.java | 62 +-- .../factions/missions/CmdMissions.java | 25 +- .../factions/missions/MissionGUI.java | 6 +- .../factions/missions/MissionHandler.java | 31 +- .../factions/scoreboards/FScoreboard.java | 6 +- .../scoreboards/FSidebarProvider.java | 4 +- .../factions/scoreboards/FTeamWrapper.java | 16 +- .../scoreboards/sidebar/FDefaultSidebar.java | 8 +- .../scoreboards/sidebar/FInfoSidebar.java | 4 +- .../massivecraft/factions/shop/CmdShop.java | 22 +- .../factions/shop/ShopClickPersistence.java | 4 +- .../massivecraft/factions/shop/ShopGUI.java | 12 +- .../factions/struct/Permission.java | 14 +- .../factions/struct/Relation.java | 4 +- .../massivecraft/factions/struct/Role.java | 6 +- .../massivecraft/factions/tag/FactionTag.java | 135 +++++ .../massivecraft/factions/tag/FancyTag.java | 178 +++++++ .../massivecraft/factions/tag/GeneralTag.java | 58 ++ .../massivecraft/factions/tag/PlayerTag.java | 56 ++ .../com/massivecraft/factions/tag/Tag.java | 80 +++ .../factions/util/AutoLeaveProcessTask.java | 4 +- .../factions/util/AutoLeaveTask.java | 6 +- .../util/ClipPlaceholderAPIManager.java | 6 +- .../factions/util/FactionWarpsFrame.java | 25 +- .../factions/util/LocationTypeAdapter.java | 6 +- .../util/MapFLocToStringSetTypeAdapter.java | 6 +- .../massivecraft/factions/util/MiscUtil.java | 10 +- .../factions/util/MyLocationTypeAdapter.java | 6 +- .../factions/util/Particles/Particles.java | 10 +- .../util/PermissionsMapTypeAdapter.java | 4 +- .../factions/util/QuadFunction.java | 6 + .../factions/util/SpiralTask.java | 8 +- .../massivecraft/factions/util/UtilFly.java | 18 +- .../factions/util/WarmUpUtil.java | 4 +- .../massivecraft/factions/zcore/MCommand.java | 4 +- .../massivecraft/factions/zcore/MPlugin.java | 2 +- .../zcore/MPluginSecretPlayerListener.java | 2 +- .../factions/zcore/fperms/Access.java | 4 +- .../zcore/fperms/PermissableAction.java | 12 +- .../fperms/gui/PermissableActionFrame.java | 24 +- .../fperms/gui/PermissableRelationFrame.java | 20 +- .../zcore/fupgrades/CropUpgrades.java | 8 +- .../factions/zcore/fupgrades/EXPUpgrade.java | 8 +- .../zcore/fupgrades/FUpgradesGUI.java | 176 +++--- .../zcore/fupgrades/RedstoneUpgrade.java | 6 +- .../zcore/fupgrades/SpawnerUpgrades.java | 8 +- .../factions/zcore/persist/MemoryBoard.java | 18 +- .../factions/zcore/persist/MemoryFPlayer.java | 88 +-- .../zcore/persist/MemoryFPlayers.java | 4 +- .../factions/zcore/persist/MemoryFaction.java | 30 +- .../zcore/persist/json/FactionsJSON.java | 4 +- .../zcore/persist/json/JSONBoard.java | 16 +- .../zcore/persist/json/JSONFPlayers.java | 8 +- .../zcore/persist/json/JSONFactions.java | 8 +- .../factions/zcore/util/DiscUtil.java | 4 +- .../massivecraft/factions/zcore/util/TL.java | 43 +- .../factions/zcore/util/TagReplacer.java | 22 +- .../factions/zcore/util/TagUtil.java | 24 +- .../factions/zcore/util/TextUtil.java | 2 +- src/main/resources/config.yml | 29 +- src/main/resources/lang/it_IT.yml | 2 +- src/main/resources/plugin.yml | 3 +- 210 files changed, 4507 insertions(+), 4013 deletions(-) delete mode 100644 classes/artifacts/Factions_jar/Factions.jar rename src/main/java/com/massivecraft/factions/{P.java => FactionsPlugin.java} (83%) create mode 100644 src/main/java/com/massivecraft/factions/cmd/BrigadierManager.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/BrigadierProvider.java delete mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdNotifications.java delete mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdSpam.java delete mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrike.java delete mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikeSet.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikes.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikesGive.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikesInfo.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikesSet.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdStrikesTake.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CommandContext.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/CommandRequirements.java rename src/main/java/com/massivecraft/factions/cmd/{config => configsf}/CmdConvertConfig.java (51%) rename src/main/java/com/massivecraft/factions/cmd/{config => configsf}/ConvertConfigHandler.java (95%) create mode 100644 src/main/java/com/massivecraft/factions/tag/FactionTag.java create mode 100644 src/main/java/com/massivecraft/factions/tag/FancyTag.java create mode 100644 src/main/java/com/massivecraft/factions/tag/GeneralTag.java create mode 100644 src/main/java/com/massivecraft/factions/tag/PlayerTag.java create mode 100644 src/main/java/com/massivecraft/factions/tag/Tag.java create mode 100644 src/main/java/com/massivecraft/factions/util/QuadFunction.java diff --git a/classes/artifacts/Factions_jar/Factions.jar b/classes/artifacts/Factions_jar/Factions.jar deleted file mode 100644 index 53c4e0db33147ec86e2384c6c69b50c378c8d926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3012500 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%0D+bLyhc{)d@q~X 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
yCgLc7RO;WVKOpNPK7 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 ?q*lq361DZxPB& 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�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
-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

+<9A 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 NwuR+zN7A1qH~j=-7u=n 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

}V6(T3gWw?i|wJpbkDS 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

2;Pd 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 %6LfiQ4e^qk&M)%e%k_M>OEWTqs*<{zAR?ls~ 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

C>Ops0Ws+L zYBu5tg_d4@hnV9};&Hi#Pij5Uq%R%OAd z(I2bImfs7UlEgWRM3bkGrTsrG$nApA?UO!lR+$aS>#OlJF0K7TPcPa5latNyko2Xr zrK0*J`%oRm3j%7fam@riY-SLyMmJ@szyvYsdwY<6;>r}d0% z_K?dkdgr6kF_y3W_jLBlXEtwsOYxXZoL6pL8zUCxAWBgfV5~{$&18H}bwy~*9QSz$ zR)3Hd7J5N#P^U;J|Don;4PpJ`rCwCxSqd^0Y24p!5DAq5&}aRerWJyMq^2w*w2!lz zIlILS#TD)AW8r@lek7m*om+|7P8OCDN4hBCuO`kJo2>tXWnmN4(E2QD(MRNc@C;0( zO*K94*gqX4wIBITGKlesevOIuH`JU5U1T>J<9Ug-rFbYdrWom&F5qa?pvXr0xO%fA z7vvaHDf%t-ArImvmCSt-j_V6eDYmOtYbCRo`0gaS?f5TrSF{|-8lsk5Z5Ojifzz6+M3AGYAS z^6)YU>GwY3(M!w~=*W-^{`y}vvtX&3pTQUz>yTrF&KF5lNci~C^HK9(^m6K)tn)d8 zFtA~pRq zGj=UtVy@}iCKyTxSe5-TK!>B@o2$v(S!yeR{g32`uG>XQ^Sm=iFlE#zuHx7umi?Q@ zCQ0vjXwFq5Hk+L!tDSmNVO-ZGLCPSNAyA-l3v|<|wi6p=04Wp-aAywkGI!+)tz?=v2+ewBa*9=1bd)n zG*(9Lp9J@|+~?b5wHk{=J3@y_z9VhK5i9sGhZm1|EYue7J3@SNExKORizjCw?82G4 zNKZ4QNU6ng9>UzEKjGg6EFicZGSm)DR4Cd$>r_C5FK!|ddME-yS}i5;`ArmVZdwu=`|BuI8Dl1hLLI!b1~EIek$B(1me%SEqmfF0@&&2VFzswZ&nx~+B z{I`Pgbv@49Rp~Zd!+o$(ubIET5@XYCD?9R0SdmJ`EzRRz>A{h$;cceqL)>k1ZzbW$ zpYj({VE!aRO7h?GT#Gm|1IB?s$G+(Q{4N2Ru&@Cd9_fA27OBLS9*f(<+vyZ zYQuZFm0JX$K(<{ga+@DHCAuMaO2G@HN;-`z3&}?|5J(^S{|SB5KE?_%&?%ewGU*R# z>nc8T6qoj5539F#DOF+oASmDSJ*vlV{{1`8Fzz1@K2lL@SHw2v^o?+6=DP;H%w#SZ z>78g^l*q23@-UxdasxEBo1s_lwu>ICrtx;$sZb9#;@T)JSCt| z{?vS&YJN}q36}hjBeZq2p*mQJ-Hb~CT56&5Dua|1c_}h|mSq5)Q@6PMYO^ft4FcNi zjz_pkRxAFZip~eA*r&ddp1RYNq#BNkw!;pUejT0Ui)|794qgfA3jopXghdcRXYmhW zOo_6!Iw;LjmdxQ`YGWdWj3&`_iI65u5cMGo!3!NE_&aaZ-k_Fj`8Ld?*756@@2<#K++6=bYW`g;aq z^~f6Reus`Xwvyi1zAZHL??;GOTWcN=p-lz+rTrvgRR^DGuT4@|6_cPF2)X) z|1Ff@$U2R$8T(e9W~e^{BJ{~A$(Es!MJx}+1;F{8J^C_uoO($fXUR8at zl5KfqeDr+GW-!|+oibdp9NNXPR;A6}tyRam-Azihm6kNN&6-C4dN7bwNHILWza1%R zRX@vHeY>Fh%kRQxUD_1W`crk0&UTx$G2Pa~uGQPDC4XegFa3BQ?q6ssZVXdiXG$KQ zUaQ`l%=-zpClW(>Jie*5E1`#ugWiWjRGi+o(t*l2)>>DKkzzT^-Ayog+FJLpX^rst z#3noY*QV;6-u{K&gsh*#H(JHM!Dlh)Q|cW?l_O)`)lJy#m;YxkvaLCfz*BaNbNzyE z$$h_-I`?2YSa&b6^>K-M9);t}=jpHh@y4&oe94}2O%&SJv!fN4|45lo3KE2ns_~>8 z`8^joj_fQA+SbdgT6opg`Ylp_@#)#ymg{6IyG{9w3r>$1hH4zsh6&_jDCN8lrY&2O zA*c}Q(C8Ga`p$cwHs4kzX*sygG<@4Oz$kRI&MLw@{x&)0t$z=z$|{}@Zd~aeZ*(tD zQJt;kajKoWK7BJNw1H*Slo=s$7VZt3)qaDi-j|J=jc;ugYv$S$IUZo0DVm%USsq{R zMiI^y`Jyzg0_`<|>Xy0~g_jF4)@lLt(xaHEt$%g$IGj9;Tn}D*QA#=LB z=*bLqvwXxk59;IjJFb&Su7CYn2Q*g>z&8WXhC7$dn40xDtmTDmTvIn*6{EOyI7O%ylJeSyrP)nKFPp*o;rwQz@HYPG4F*FAnM zZg7JnWK9W~OgY9#G;Y#?n&lg=`l{Mi7?)J<;;@;uR6$sX&JK39b#Cy0bcdYr?PIbC z*GD(q{<`FL{q^yj#zK;3=0rsi5ID*Voq)y@8QFA zqqzVl6H$`7i!1Ms1x}W0`35`7SP-piP!OPQHwJ_{u6XeUtK7Ej->Z`5%w~k?eD!F0 zb9_g91vz@wsi|!5dmR>lv2i@;NoRmd?0n$ACbLV$KsEL_6^alv_hImpt+t=9d2t)Y ziJ!h7`hmt+vD@p9NX&@?wBTs1FHH(kotGPI=lRsB@Km3$)2)={Iq*@GGu;Z@FBEhz+FxMq;J7i3*|EKz=*c`|>Q}WbeR`xG zRf-*cHeL8Yn$}SVTb#nTk%k|w#b$|ro5A~?SZRKe%lQplkhZfP4wslMQ>UC}WT!$p zMF+sSrhj=<-TDp4|?OYX7DN3*~TKt>TQC;wRhukikv{4~_`QKy#0P zq|vlQ)6ZQllta|7p(H|sfRcksIkIW88dehfb>-J@ARN@U0Oo>nmLqQ_@76qjJWyH` z=|nKDLOu0lB5W}|GA&yCoC+dhJh%ixawAqIDUVFv8Y(E7gZ7rIkyPies6f4nY4guF z7EnM`(eAloN}=56MMa*75Ez%52O!bbHX$pxm#$P(ZudAT#GU5}0VIIrW`az{Heu&n zXh_)!ma*me@6t=t5RoIBmkaAP(lXF=Y3G8qh4&ack77KlAv--d5SM=B=+woPP-+G_ z!qy2_ObZ^TmO!6`lQdZm-wUHfrJ-r?&C$@>jAW(~`js}~Ue> zx#ccN{Ej3oVTCeDn0AqN`LROas?mUfl`^+H4052Es8@-;7e32Pfgg2`JPhtLGb2Ob zJ2r$WC3VRv-iWkW^9bBeY_@&$SbRAK2tojEQ_NDKSQaBO_XuhV2NaKO)6Xwcp>fr@ z3=qcqM-{%QHHy?mW=HlPbWhI9p-Qu(G;G?U%q=P_F|}uS1+yC{Fo2+^vqE?wBwa&} zoVE=HAk!7CP4s;rqCEN`+pp-TODz5!ZJs6gQkqiL@BjoK&4t7wGjC@&L2EJ=ymRR@ znau)wiGd_MSgOqNRt&~<2$@jp0F)1}Jt%@S?}Q`yj2cmH%v+BZ1ocC5h!fY;5JiL3 zg~vgu^9+(A-xC+la~CY5sf%{Wo+OlDZa2qm0rA5t07e})V^9wkuUp}|Aq3?CW3HN# zQMSlazGKUPMO-#cj9m-#+j0H5hMo|ynY9Gl-s?F)?(GynXVhY=#WRkg3=OAsdkrs~ zoJII=n^)EnOSp>e?aTK=@1(-5XYyFM`Kow)1>tvj-vl;m&Cy;|#gaarT7yTe`P+~D z@dlyq1!zSnNuwq3fc3nq?iqc<{i#|EPQcvwsolaETYYUmZ)VN-Ef@Vgk+FE3Q&4GY z5LcK5N%}Ozb%(XURv8Di6W1NsegVW=I0Wk4oYDF}c(B3&1?k$pip0mhuwBTx1Dzc- zDtR4m^&0U!HpHEY_Ax1e_=CAe!`-$o{n&N?5IcPjuH7sqgCZK`AnYNxWQ5(WW3NYF>s1W@16ReKUg6M4mI77#N)gKNED9DsN!#jH?ap`!{Aj;l4#JM} zO6P{vDhfFD#af!ms3M}}k7k2^;FSP+-Nk^j>o&oBH)-1r|o#CPEiXDgRR zcM=LsEO5k$nfE0|`Zt7Jgu$U{!Teb^BmF@9Gym@iM*~7p+Mxh zB_k4&PNfXZ$x*k~*}B2Obdv=}@@uTO=b3kD1lTtsPpp=G#{vpwgP zPZ1{Kt&^uV!rG76x6;tb%rtI&X=%bCG6z~9;+(^bTn57LTaNbl`fr;gJM6fEpztVq zHoG;(ZSaeTxOT|(Ww>7ho6|^6GKC#bB+*~`$iQm$O(!SQ!-5J8K88*E*D*lrI`~nfAdbMh$8D z)ID9wMhy<0Fp`H`69uR!(|D=n;us)qC0%j49m-cf`6MAqJ!EW(BQk#t;6Nl>8LZ_P z%R}D=L!Ov!Y#A-?Zop!zBuv*@0q>2sr0b83UVq{n_4?lfN{UB_3r44;J^zfEGv0Twr$(CZQHipecHBd+c=HWwr$(C?Y{laOz!-+$(Q@TQah==vs1Nd zt!Ig~lV`qgg#xHDrKJqN)hTt6^6;ajCz1*IyOnj|JN*c(>)Rsn5BHpjY(Yk|+P#+tq7rg-UdVJtUX`I978@RLZ1+9JmWbOndm=<-x3nRY6qjegQ^E) z?-Xfvzbg=`*#TSdIVM(ic-v0O-&NAs4wTOHE@jG)P>)V$z=>o6x7MH2u+vUJ1 zr1#62xQQ9v18yRyL+kBPl#HWyWW><;^n#Q0K>By?m2(4}@C(}jOmCDbl6bX%t%_W$ zOr{iNDJGOaEE9=$40F7@PseY|dwO%Y<;DU??Q6iE3dtaxNL%{!=RUxXkAO9R^r09K zb&pj=DD^FR(K`-Ph`U#iizRh~n;IE^_Bskzyp4(!l~sJWU|01$FxdJfXS}g=bhXc6)OJnV;gQ8ih6pwfhqmmkD|yxe#~Ilr3lfm+e94Bk zXQ1=On$I>EZA&<2s9sgbZWIq4q>6?4i zCHH(GP<)i18;+MqDj`e|oEE$*ZddkFU1f$-wt%==&x=kejhⅈqr6zG@0k4!oZ6xkP{G49Hfb1^0 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

!C!`if6XmcNq=_8JKQWr9Mxi}ZHvb0E; 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

diff --git a/pom.xml b/pom.xml index 3b6ca9ea..09591c4a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.massivecraft Factions - 1.6.9.5-U0.2.1-1.8.1-BETA + 1.6.9.5-U0.2.1-1.9.0-BETA jar SaberFactions @@ -81,6 +81,18 @@ + + me.lucko + commodore + 1.3 + compile + + + com.mojang + brigadier + 1.0.14 + compile + com.github.stefvanschie.inventoryframework IF @@ -352,7 +364,11 @@ - + + org.codemc.worldguardwrapper + worldguardwrapper + 1.1.6-SNAPSHOT + @@ -360,6 +376,10 @@ net.coreprotect http://maven.playpro.com/ + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + ess-repo http://ci.ender.zone/plugin/repository/everything/ @@ -393,6 +413,11 @@ jitpack.io https://jitpack.io + + minecraft-libraries + Minecraft Libraries + https://libraries.minecraft.net + diff --git a/src/main/java/com/massivecraft/factions/Conf.java b/src/main/java/com/massivecraft/factions/Conf.java index 37300043..637d0e86 100644 --- a/src/main/java/com/massivecraft/factions/Conf.java +++ b/src/main/java/com/massivecraft/factions/Conf.java @@ -386,7 +386,7 @@ public class Conf { territoryDenyUseageMaterials.add(Material.BUCKET); territoryDenyUseageMaterials.add(Material.WATER_BUCKET); territoryDenyUseageMaterials.add(Material.LAVA_BUCKET); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { territoryDenyUseageMaterials.add(Material.ARMOR_STAND); } @@ -398,7 +398,7 @@ public class Conf { territoryDenyUseageMaterialsWhenOffline.add(Material.BUCKET); territoryDenyUseageMaterialsWhenOffline.add(Material.WATER_BUCKET); territoryDenyUseageMaterialsWhenOffline.add(Material.LAVA_BUCKET); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { territoryDenyUseageMaterialsWhenOffline.add(Material.ARMOR_STAND); } safeZoneNerfedCreatureTypes.add(EntityType.BLAZE); @@ -426,11 +426,11 @@ public class Conf { } public static void load() { - P.p.persist.loadOrSaveDefault(i, Conf.class, "conf"); + FactionsPlugin.getInstance().persist.loadOrSaveDefault(i, Conf.class, "conf"); } public static void save() { - P.p.persist.save(i); + FactionsPlugin.getInstance().persist.save(i); } public enum Backend { diff --git a/src/main/java/com/massivecraft/factions/P.java b/src/main/java/com/massivecraft/factions/FactionsPlugin.java similarity index 83% rename from src/main/java/com/massivecraft/factions/P.java rename to src/main/java/com/massivecraft/factions/FactionsPlugin.java index 9289ce54..1379db16 100644 --- a/src/main/java/com/massivecraft/factions/P.java +++ b/src/main/java/com/massivecraft/factions/FactionsPlugin.java @@ -5,7 +5,9 @@ import ch.njol.skript.SkriptAddon; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.cmd.CmdAutoHelp; +import com.massivecraft.factions.cmd.CommandContext; import com.massivecraft.factions.cmd.FCmdRoot; +import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.cmd.check.CheckTask; import com.massivecraft.factions.cmd.check.WeeWooTask; import com.massivecraft.factions.cmd.chest.ChestLogsHandler; @@ -17,16 +19,18 @@ import com.massivecraft.factions.missions.MissionHandler; import com.massivecraft.factions.shop.ShopClickPersistence; import com.massivecraft.factions.shop.ShopConfig; import com.massivecraft.factions.struct.ChatMode; +import com.massivecraft.factions.struct.Relation; +import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.*; import com.massivecraft.factions.util.Particles.ReflectionUtils; import com.massivecraft.factions.zcore.CommandVisibility; -import com.massivecraft.factions.zcore.MCommand; import com.massivecraft.factions.zcore.MPlugin; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.Permissable; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.fupgrades.*; import com.massivecraft.factions.zcore.util.TextUtil; +import me.lucko.commodore.CommodoreProvider; import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.permission.Permission; import org.bukkit.*; @@ -52,11 +56,10 @@ import java.util.logging.Level; import java.util.stream.Collectors; -public class P extends MPlugin { - +public class FactionsPlugin extends MPlugin { // Our single plugin instance. // Single 4 life. - public static P p; + public static FactionsPlugin instance; public static Permission perms = null; // This plugin sets the boolean true when fully enabled. // Plugins can check this boolean while hooking in have @@ -85,8 +88,12 @@ public class P extends MPlugin { private Listener[] eventsListener; - public P() { - p = this; + public FactionsPlugin() { + instance = this; + } + + public static FactionsPlugin getInstance() { + return instance; } public boolean getLocked() { @@ -139,29 +146,29 @@ public class P extends MPlugin { // Vault dependency check. if (getServer().getPluginManager().getPlugin("Vault") == null) { log("Vault is not present, the plugin will not run properly."); - getServer().getPluginManager().disablePlugin(p); + getServer().getPluginManager().disablePlugin(instance); return; } int version = Integer.parseInt(ReflectionUtils.PackageType.getServerVersion().split("_")[1]); switch (version) { case 7: - P.p.log("Minecraft Version 1.7 found, disabling banners, itemflags inside GUIs, and Titles."); + FactionsPlugin.instance.log("Minecraft Version 1.7 found, disabling banners, itemflags inside GUIs, and Titles."); mc17 = true; break; case 8: - P.p.log("Minecraft Version 1.8 found, Title Fadeouttime etc will not be configurable."); + FactionsPlugin.instance.log("Minecraft Version 1.8 found, Title Fadeouttime etc will not be configurable."); mc18 = true; break; case 12: mc112 = true; break; case 13: - P.p.log("Minecraft Version 1.13 found, New Items will be used."); + FactionsPlugin.instance.log("Minecraft Version 1.13 found, New Items will be used."); mc113 = true; break; case 14: - P.p.log("Minecraft Version 1.14 found."); + FactionsPlugin.instance.log("Minecraft Version 1.14 found."); mc114 = true; break; } @@ -206,7 +213,6 @@ public class P extends MPlugin { // Add Base Commands this.cmdBase = new FCmdRoot(); this.cmdAutoHelp = new CmdAutoHelp(); - this.getBaseCommands().add(cmdBase); Econ.setup(); setupPermissions(); @@ -230,7 +236,7 @@ public class P extends MPlugin { } if (getServer().getPluginManager().getPlugin("Skript") != null) { - log("Skript was found! Registering P Addon..."); + log("Skript was found! Registering FactionsPlugin Addon..."); skriptAddon = Skript.registerAddon(this); try { skriptAddon.loadClasses("com.massivecraft.factions.skript", "expressions"); @@ -272,13 +278,13 @@ public class P extends MPlugin { for (Listener eventListener : eventsListener) getServer().getPluginManager().registerEvents(eventListener, this); - // since some other plugins execute commands directly through this command interface, provide it - getCommand(this.refCommand).setExecutor(this); - getCommand(this.refCommand).setTabCompleter(this); + this.getCommand(refCommand).setExecutor(cmdBase); + + if (!CommodoreProvider.isSupported()) this.getCommand(refCommand).setTabCompleter(this); - RegisteredServiceProvider rsp = P.this.getServer().getServicesManager().getRegistration(Economy.class); - P.econ = rsp.getProvider(); + RegisteredServiceProvider rsp = FactionsPlugin.this.getServer().getServicesManager().getRegistration(Economy.class); + FactionsPlugin.econ = rsp.getProvider(); if (getDescription().getFullName().contains("BETA")) { divider(); @@ -292,7 +298,7 @@ public class P extends MPlugin { this.postEnable(); this.loadSuccessful = true; // Set startup finished to true. to give plugins hooking in a greenlight - P.startupFinished = true; + FactionsPlugin.startupFinished = true; } public SkriptAddon getSkriptAddon() { @@ -455,14 +461,14 @@ public class P extends MPlugin { public ItemStack createLazyItem(Material material, int amount, short datavalue, String name, String lore) { ItemStack item = new ItemStack(material, amount, datavalue); ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(color(P.p.getConfig().getString(name))); - meta.setLore(colorList(P.p.getConfig().getStringList(lore))); + meta.setDisplayName(color(FactionsPlugin.instance.getConfig().getString(name))); + meta.setLore(colorList(FactionsPlugin.instance.getConfig().getStringList(lore))); item.setItemMeta(meta); return item; } public Economy getEcon() { - RegisteredServiceProvider rsp = P.p.getServer().getServicesManager().getRegistration(Economy.class); + RegisteredServiceProvider rsp = FactionsPlugin.instance.getServer().getServicesManager().getRegistration(Economy.class); return rsp.getProvider(); } @@ -488,48 +494,62 @@ public class P extends MPlugin { return handleCommand(sender, cmd + " " + TextUtil.implode(Arrays.asList(split), " "), false); } + // This method must stay for < 1.12 versions @Override public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - FPlayer fPlayer = FPlayers.getInstance().getByPlayer((Player) sender); - List completions = new ArrayList<>(); + // Must be a LinkedList to prevent UnsupportedOperationException. + List argsList = new LinkedList<>(Arrays.asList(args)); + CommandContext context = new CommandContext(sender, argsList, alias); String cmd = Conf.baseCommandAliases.isEmpty() ? "/f" : "/" + Conf.baseCommandAliases.get(0); - List argsList = new ArrayList<>(Arrays.asList(args)); - argsList.remove(argsList.size() - 1); - String cmdValid = (cmd + " " + TextUtil.implode(argsList, " ")).trim(); - MCommand commandEx = cmdBase; - List> commandsList = cmdBase.subCommands; +// String cmdValid = (cmd + " " + TextUtil.implode(context.args, " ")).trim(); + List commandsList = cmdBase.subCommands; + FCommand commandsEx = cmdBase; + List completions = new ArrayList<>(); - for (; !commandsList.isEmpty() && !argsList.isEmpty(); argsList.remove(0)) { - String cmdName = argsList.get(0).toLowerCase(); - MCommand commandFounded = commandsList.stream() - .filter(c -> c.aliases.contains(cmdName)) - .findFirst().orElse(null); - - if (commandFounded != null) { - commandEx = commandFounded; - commandsList = commandFounded.subCommands; - } else break; - } - - if (argsList.isEmpty()) { - for (MCommand subCommand : commandEx.subCommands) { - subCommand.setCommandSender(sender); - if (handleCommand(sender, cmdValid + " " + subCommand.aliases.get(0), true) - && subCommand.visibility != CommandVisibility.INVISIBLE - && subCommand.validSenderType(sender, false) - && subCommand.validSenderPermissions(sender, false)) + // Check for "" first arg because spigot is mangled. + if (context.args.get(0).equals("")) { + for (FCommand subCommand : commandsEx.subCommands) { + if (subCommand.requirements.playerOnly && sender.hasPermission(subCommand.requirements.permission.node) && subCommand.visibility != CommandVisibility.INVISIBLE) completions.addAll(subCommand.aliases); } - } + return completions; + } else if (context.args.size() == 1) { + for (; !commandsList.isEmpty() && !context.args.isEmpty(); context.args.remove(0)) { + String cmdName = context.args.get(0).toLowerCase(); + boolean toggle = false; + for (FCommand fCommand : commandsList) { + for (String s : fCommand.aliases) { + if (s.startsWith(cmdName)) { + commandsList = fCommand.subCommands; + completions.addAll(fCommand.aliases); + toggle = true; + break; + } + } + if (toggle) break; + } + } + String lastArg = args[args.length - 1].toLowerCase(); - String lastArg = args[args.length - 1].toLowerCase(); - for (Player player : Bukkit.getServer().getOnlinePlayers()) { - completions.add(player.getName()); + completions = completions.stream() + .filter(m -> m.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + + return completions; + + } else { + String lastArg = args[args.length - 1].toLowerCase(); + + for (Role value : Role.values()) completions.add(value.nicename); + for (Relation value : Relation.values()) completions.add(value.nicename); + // The stream and foreach from the old implementation looped 2 times, by looping all players -> filtered -> looped filter and added -> filtered AGAIN at the end. + // This loops them once and just adds, because we are filtering the arguments at the end anyways + for (Player player : Bukkit.getServer().getOnlinePlayers()) completions.add(player.getName()); + for (Faction faction : Factions.getInstance().getAllFactions()) + completions.add(ChatColor.stripColor(faction.getTag())); + completions = completions.stream().filter(m -> m.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); + return completions; } - completions = completions.stream() - .filter(m -> m.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - return completions; } public void createTimedHologram(final Location location, String text, Long timeout) { @@ -537,11 +557,11 @@ public class P extends MPlugin { as.setVisible(false); //Makes the ArmorStand invisible as.setGravity(false); //Make sure it doesn't fall as.setCanPickupItems(false); //I'm not sure what happens if you leave this as it is, but you might as well disable it - as.setCustomName(P.p.color(text)); //Set this to the text you want + as.setCustomName(FactionsPlugin.instance.color(text)); //Set this to the text you want as.setCustomNameVisible(true); //This makes the text appear no matter if your looking at the entity or not final ArmorStand armorStand = as; - Bukkit.getScheduler().scheduleSyncDelayedTask(P.p, () -> { + Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.instance, () -> { armorStand.remove(); getLogger().info("Removing Hologram."); } diff --git a/src/main/java/com/massivecraft/factions/cmd/BrigadierManager.java b/src/main/java/com/massivecraft/factions/cmd/BrigadierManager.java new file mode 100644 index 00000000..ecd4851b --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/BrigadierManager.java @@ -0,0 +1,92 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.FactionsPlugin; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import me.lucko.commodore.Commodore; +import me.lucko.commodore.CommodoreProvider; + +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class BrigadierManager { + + public Commodore commodore; + public LiteralArgumentBuilder brigadier = LiteralArgumentBuilder.literal("factions"); + + public BrigadierManager() { + commodore = CommodoreProvider.getCommodore(FactionsPlugin.getInstance()); + } + + public void build() { + commodore.register(brigadier.build()); + + // Add factions children to f alias + LiteralArgumentBuilder fLiteral = LiteralArgumentBuilder.literal("f"); + for (CommandNode node : brigadier.getArguments()) fLiteral.then(node); + commodore.register(fLiteral.build()); + } + + public void addSubCommand(FCommand subCommand) { + // Register brigadier to all command aliases + for (String alias : subCommand.aliases) { + LiteralArgumentBuilder literal = LiteralArgumentBuilder.literal(alias); + + if (subCommand.requirements.brigadier != null) { + // If the requirements explicitly provide a BrigadierProvider then use it + Class brigadierProvider = subCommand.requirements.brigadier; + + try { + Constructor constructor = brigadierProvider.getDeclaredConstructor(subCommand.getClass()); + brigadier.then(constructor.newInstance(subCommand).get(literal)); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + // Generate our own based on args - quite ugly + + // We create an orderly stack of all args, required and optional, format them differently + List> stack = new ArrayList<>(); + for (String required : subCommand.requiredArgs) { + // Simply add the arg name as required + stack.add(RequiredArgumentBuilder.argument(required, StringArgumentType.word())); + } + + for (Map.Entry optionalEntry : subCommand.optionalArgs.entrySet()) { + RequiredArgumentBuilder optional; + + // Optional without default + if (optionalEntry.getKey().equalsIgnoreCase(optionalEntry.getValue())) { + optional = RequiredArgumentBuilder.argument(":" + optionalEntry.getKey(), StringArgumentType.word()); + // Optional with default, explain + } else { + optional = RequiredArgumentBuilder.argument(optionalEntry.getKey() + "|" + optionalEntry.getValue(), StringArgumentType.word()); + } + + stack.add(optional); + } + + // Reverse the stack and apply .then() + RequiredArgumentBuilder previous = null; + for (int i = stack.size() - 1; i >= 0; i--) { + if (previous == null) { + previous = stack.get(i); + } else { + previous = stack.get(i).then(previous); + } + } + + if (previous == null) { + brigadier.then(literal); + } else { + brigadier.then(literal.then(previous)); + } + } + } + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/BrigadierProvider.java b/src/main/java/com/massivecraft/factions/cmd/BrigadierProvider.java new file mode 100644 index 00000000..455b3877 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/BrigadierProvider.java @@ -0,0 +1,9 @@ +package com.massivecraft.factions.cmd; + +import com.mojang.brigadier.builder.ArgumentBuilder; + +public interface BrigadierProvider { + + ArgumentBuilder get(ArgumentBuilder parent); + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdAHome.java b/src/main/java/com/massivecraft/factions/cmd/CmdAHome.java index 2e305f66..a7763eea 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdAHome.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdAHome.java @@ -12,23 +12,17 @@ public class CmdAHome extends FCommand { super(); this.aliases.add("ahome"); - this.requiredArgs.add("player name"); + this.requiredArgs.add("player"); - this.permission = Permission.AHOME.node; - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.AHOME).noDisableOnLock().build(); } + @Override - public void perform() { - FPlayer target = argAsBestFPlayerMatch(0); + public void perform(CommandContext context) { + FPlayer target = context.argAsBestFPlayerMatch(0); if (target == null) { - msg(TL.GENERIC_NOPLAYERMATCH, argAsString(0)); + context.msg(TL.GENERIC_NOPLAYERMATCH, context.argAsString(0)); return; } @@ -36,13 +30,13 @@ public class CmdAHome extends FCommand { Faction faction = target.getFaction(); if (faction.hasHome()) { target.getPlayer().teleport(faction.getHome(), PlayerTeleportEvent.TeleportCause.PLUGIN); - msg(TL.COMMAND_AHOME_SUCCESS, target.getName()); + context.msg(TL.COMMAND_AHOME_SUCCESS, target.getName()); target.msg(TL.COMMAND_AHOME_TARGET); } else { - msg(TL.COMMAND_AHOME_NOHOME, target.getName()); + context.msg(TL.COMMAND_AHOME_NOHOME, target.getName()); } } else { - msg(TL.COMMAND_AHOME_OFFLINE, target.getName()); + context.msg(TL.COMMAND_AHOME_OFFLINE, target.getName()); } } @@ -50,4 +44,4 @@ public class CmdAHome extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_AHOME_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java b/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java index 26be8ede..3af1ef18 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java @@ -8,7 +8,6 @@ import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; public class CmdAdmin extends FCommand { @@ -19,52 +18,39 @@ public class CmdAdmin extends FCommand { this.aliases.add("leader"); this.aliases.add("setleader"); - this.requiredArgs.add("player name"); + this.requiredArgs.add("player"); - this.permission = Permission.ADMIN.node; - this.disableOnLock = true; - this.disableOnSpam = true; - - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.ADMIN).build(); } @Override - public void perform() { - FPlayer fyou = this.argAsBestFPlayerMatch(0); - if (fyou == null || fyou.getFaction().isWarZone() || fyou.getFaction().isWilderness() || fyou.getFaction().isSafeZone()) { + public void perform(CommandContext context) { + // Allows admins bypass this. + if (!context.fPlayer.isAdminBypassing() && !context.fPlayer.getRole().equals(Role.LEADER)) { + context.msg(TL.COMMAND_ADMIN_NOTADMIN); + return; + } + FPlayer fyou = context.argAsBestFPlayerMatch(0); + if (fyou == null) { return; } - boolean permAny = Permission.ADMIN_ANY.has(sender, false); + boolean permAny = Permission.ADMIN_ANY.has(context.sender, false); Faction targetFaction = fyou.getFaction(); - if (fyou.isAlt()) { - msg(ChatColor.RED + "You can not promote alt accounts."); + if (targetFaction != context.faction && !permAny) { + context.msg(TL.COMMAND_ADMIN_NOTMEMBER, fyou.describeTo(context.fPlayer, true)); return; } - if (targetFaction != myFaction && !permAny) { - msg(TL.COMMAND_ADMIN_NOTMEMBER, fyou.describeTo(fme, true)); - return; - } - - if (fme != null && fme.getRole() != Role.LEADER && !permAny) { - msg(TL.COMMAND_ADMIN_NOTADMIN); - return; - } - - if (fyou == fme && !permAny) { - msg(TL.COMMAND_ADMIN_TARGETSELF); + if (fyou == context.fPlayer && !permAny) { + context.msg(TL.COMMAND_ADMIN_TARGETSELF); return; } // only perform a FPlayerJoinEvent when newLeader isn't actually in the faction if (fyou.getFaction() != targetFaction) { - FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(me), targetFaction, FPlayerJoinEvent.PlayerJoinReason.LEADER); + FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), targetFaction, FPlayerJoinEvent.PlayerJoinReason.LEADER); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return; @@ -73,16 +59,11 @@ public class CmdAdmin extends FCommand { FPlayer admin = targetFaction.getFPlayerAdmin(); - if (fyou == admin && fyou.getFaction().getSize() == 1) { - msg(TL.COMMAND_ADMIN_NOMEMBERS); - return; - } - // if target player is currently admin, demote and replace him if (fyou == admin) { targetFaction.promoteNewLeader(); - msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(fme, true)); - fyou.msg(TL.COMMAND_ADMIN_DEMOTED, senderIsConsole ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fyou, true)); + context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true)); + fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true)); return; } @@ -91,11 +72,11 @@ public class CmdAdmin extends FCommand { admin.setRole(Role.COLEADER); } fyou.setRole(Role.LEADER); - msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(fme, true)); + context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true)); // Inform all players for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - fplayer.msg(TL.COMMAND_ADMIN_PROMOTED, senderIsConsole ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fplayer, true), fyou.describeTo(fplayer), targetFaction.describeTo(fplayer)); + fplayer.msg(TL.COMMAND_ADMIN_PROMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true), fyou.describeTo(fplayer), targetFaction.describeTo(fplayer)); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdAnnounce.java b/src/main/java/com/massivecraft/factions/cmd/CmdAnnounce.java index 6924fcf2..91378e95 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdAnnounce.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdAnnounce.java @@ -3,6 +3,9 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -15,30 +18,27 @@ public class CmdAnnounce extends FCommand { this.aliases.add("announce"); this.requiredArgs.add("message"); - this.errorOnToManyArgs = false; - this.permission = Permission.ANNOUNCE.node; - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; + this.requirements = new CommandRequirements.Builder(Permission.ANNOUNCE) + .playerOnly() + .memberOnly() + .brigadier(AnnounceBrigadier.class) + .noErrorOnManyArgs() + .build(); } @Override - public void perform() { - String prefix = ChatColor.GREEN + myFaction.getTag() + ChatColor.YELLOW + " [" + ChatColor.GRAY + me.getName() + ChatColor.YELLOW + "] " + ChatColor.RESET; - String message = StringUtils.join(args, " "); + public void perform(CommandContext context) { + String prefix = ChatColor.GREEN + context.faction.getTag() + ChatColor.YELLOW + " [" + ChatColor.GRAY + context.player.getName() + ChatColor.YELLOW + "] " + ChatColor.RESET; + String message = StringUtils.join(context.args, " "); - for (Player player : myFaction.getOnlinePlayers()) { + for (Player player : context.faction.getOnlinePlayers()) { player.sendMessage(prefix + message); } // Add for offline players. - for (FPlayer fp : myFaction.getFPlayersWhereOnline(false)) { - myFaction.addAnnouncement(fp, prefix + message); + for (FPlayer fp : context.faction.getFPlayersWhereOnline(false)) { + context.faction.addAnnouncement(fp, prefix + message); } } @@ -47,4 +47,11 @@ public class CmdAnnounce extends FCommand { return TL.COMMAND_ANNOUNCE_DESCRIPTION; } -} + protected class AnnounceBrigadier implements BrigadierProvider { + @Override + public ArgumentBuilder get(ArgumentBuilder parent) { + return parent.then(RequiredArgumentBuilder.argument("message", StringArgumentType.greedyString())); + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdAutoHelp.java b/src/main/java/com/massivecraft/factions/cmd/CmdAutoHelp.java index 22b7653d..87884a5c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdAutoHelp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdAutoHelp.java @@ -1,16 +1,14 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.CommandVisibility; -import com.massivecraft.factions.zcore.MCommand; import com.massivecraft.factions.zcore.util.TL; import java.util.ArrayList; -public class CmdAutoHelp extends MCommand

{ +public class CmdAutoHelp extends FCommand { public CmdAutoHelp() { - super(P.p); this.aliases.add("?"); this.aliases.add("h"); this.aliases.add("help"); @@ -21,22 +19,22 @@ public class CmdAutoHelp extends MCommand

{ } @Override - public void perform() { - - if (this.commandChain.size() == 0) { + public void perform(CommandContext context) { + if (context.commandChain.size() == 0) { return; } - MCommand pcmd = this.commandChain.get(this.commandChain.size() - 1); + FCommand pcmd = context.commandChain.get(context.commandChain.size() - 1); ArrayList lines = new ArrayList<>(pcmd.helpLong); - for (MCommand scmd : pcmd.subCommands) { - if (scmd.visibility == CommandVisibility.VISIBLE || (scmd.visibility == CommandVisibility.SECRET && scmd.validSenderPermissions(sender, false))) { - lines.add(scmd.getUseageTemplate(this.commandChain, true)); + for (FCommand scmd : pcmd.subCommands) { + if (scmd.visibility == CommandVisibility.VISIBLE) { + lines.add(scmd.getUseageTemplate(context, true)); } + // TODO deal with other visibilities } - sendMessage(p.txt.getPage(lines, this.argAsInt(0, 1), TL.COMMAND_AUTOHELP_HELPFOR.toString() + pcmd.aliases.get(0) + "\"")); + context.sendMessage(FactionsPlugin.getInstance().txt.getPage(lines, context.argAsInt(0, 1), TL.COMMAND_AUTOHELP_HELPFOR.toString() + pcmd.aliases.get(0) + "\"")); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBan.java b/src/main/java/com/massivecraft/factions/cmd/CmdBan.java index 80cdd283..f9158d10 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBan.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBan.java @@ -1,12 +1,10 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.event.FPlayerLeaveEvent; import com.massivecraft.factions.struct.BanInfo; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -21,78 +19,63 @@ public class CmdBan extends FCommand { this.requiredArgs.add("target"); - this.permission = Permission.BAN.node; - this.disableOnLock = true; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.BAN) + .playerOnly() + .withAction(PermissableAction.BAN) + .build(); } @Override - public void perform() { - - // Adds bypass to admins and clean permission check - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.BAN); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "ban"); - return; - } - } - + public void perform(CommandContext context) { // Good on permission checks. Now lets just ban the player. - FPlayer target = argAsFPlayer(0); + FPlayer target = context.argAsFPlayer(0); if (target == null) { return; // the above method sends a message if fails to find someone. } - if (fme == target) { + if (context.fPlayer == target) { // You may not ban yourself - fme.msg(TL.COMMAND_BAN_SELF); + context.msg(TL.COMMAND_BAN_SELF); return; - } else if (target.getFaction() == myFaction && target.getRole().value >= fme.getRole().value) { + } else if (target.getFaction() == context.faction && target.getRole().value >= context.fPlayer.getRole().value) { // You may not ban someone that has same or higher faction rank - fme.msg(TL.COMMAND_BAN_INSUFFICIENTRANK, target.getName()); + context.msg(TL.COMMAND_BAN_INSUFFICIENTRANK, target.getName()); return; } - for (BanInfo banInfo : myFaction.getBannedPlayers()) { + for (BanInfo banInfo : context.faction.getBannedPlayers()) { if (banInfo.getBanned().equals(target.getId())) { - msg(TL.COMMAND_BAN_ALREADYBANNED); + context.msg(TL.COMMAND_BAN_ALREADYBANNED); return; } } // Ban the user. - myFaction.ban(target, fme); - myFaction.deinvite(target); // can't hurt + context.faction.ban(target, context.fPlayer); + context.faction.deinvite(target); // can't hurt // If in same Faction, lets make sure to kick them and throw an event. - if (target.getFaction() == myFaction) { + if (target.getFaction() == context.faction) { - FPlayerLeaveEvent event = new FPlayerLeaveEvent(target, myFaction, FPlayerLeaveEvent.PlayerLeaveReason.BANNED); + FPlayerLeaveEvent event = new FPlayerLeaveEvent(target, context.faction, FPlayerLeaveEvent.PlayerLeaveReason.BANNED); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { // if someone cancels a ban, we'll get people complaining here. So lets log it. - P.p.log(Level.WARNING, "Attempted to ban {0} but someone cancelled the kick event. This isn't good.", target.getName()); + FactionsPlugin.getInstance().log(Level.WARNING, "Attempted to ban {0} but someone cancelled the kick event. This isn't good.", target.getName()); return; } // Didn't get cancelled so remove them and reset their invite. - myFaction.removeFPlayer(target); + context.faction.removeFPlayer(target); target.resetFactionData(); } // Lets inform the people! - target.msg(TL.COMMAND_BAN_TARGET, myFaction.getTag(target.getFaction())); - myFaction.msg(TL.COMMAND_BAN_BANNED, fme.getName(), target.getName()); + target.msg(TL.COMMAND_BAN_TARGET, context.faction.getTag(target.getFaction())); + context.faction.msg(TL.COMMAND_BAN_BANNED, context.fPlayer.getName(), target.getName()); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBanlist.java b/src/main/java/com/massivecraft/factions/cmd/CmdBanlist.java index c5586b35..41efc743 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBanlist.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBanlist.java @@ -21,35 +21,31 @@ public class CmdBanlist extends FCommand { this.optionalArgs.put("faction", "faction"); - this.permission = Permission.BAN.node; - this.disableOnLock = true; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.BAN) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - Faction target = myFaction; - if (!args.isEmpty()) { - target = argAsFaction(0); + public void perform(CommandContext context) { + Faction target = context.faction; + if (!context.args.isEmpty()) { + target = context.argAsFaction(0); } if (target == Factions.getInstance().getWilderness()) { - sender.sendMessage(TL.COMMAND_BANLIST_NOFACTION.toString()); + context.sender.sendMessage(TL.COMMAND_BANLIST_NOFACTION.toString()); return; } if (target == null) { - sender.sendMessage(TL.COMMAND_BANLIST_INVALID.format(argAsString(0))); + context.sender.sendMessage(TL.COMMAND_BANLIST_INVALID.format(context.argAsString(0))); return; } List lines = new ArrayList<>(); - lines.add(TL.COMMAND_BANLIST_HEADER.format(target.getBannedPlayers().size(), target.getTag(myFaction))); + lines.add(TL.COMMAND_BANLIST_HEADER.format(target.getBannedPlayers().size(), target.getTag(context.faction))); int i = 1; for (BanInfo info : target.getBannedPlayers()) { @@ -62,7 +58,7 @@ public class CmdBanlist extends FCommand { } for (String s : lines) { - fme.sendMessage(s); + context.fPlayer.getPlayer().sendMessage(s); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java b/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java index a52cb6e2..d4578676 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.util.TL; @@ -20,50 +20,45 @@ public class CmdBanner extends FCommand { this.aliases.add("banner"); this.aliases.add("warbanner"); - this.permission = Permission.BANNER.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.BANNER) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fbanners.Enabled")) { - msg(TL.COMMAND_BANNER_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) { + context.msg(TL.COMMAND_BANNER_DISABLED); return; } - if (!fme.hasMoney(P.p.getConfig().getInt("fbanners.Banner-Cost", 5000))) { - msg(TL.COMMAND_BANNER_NOTENOUGHMONEY); + if (!context.fPlayer.hasMoney(FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000))) { + context.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY); return; } - takeMoney(fme, P.p.getConfig().getInt("fbanners.Banner-Cost", 5000)); + takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000)); - //ItemStack warBanner = P.p.createItem(Material.BANNER, 1, (short) 1, P.p.getConfig().getString("fbanners.Item.Name"), P.p.getConfig().getStringList("fbanners.Item.Lore")); + //ItemStack warBanner = FactionsPlugin.getInstance().createItem(Material.BANNER, 1, (short) 1, FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name"), FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore")); //BannerMeta bannerMeta = (BannerMeta) warBanner.getItemMeta(); - ItemStack warBanner = fme.getFaction().getBanner(); + ItemStack warBanner = context.fPlayer.getFaction().getBanner(); if (warBanner != null) { ItemMeta warmeta = warBanner.getItemMeta(); - warmeta.setDisplayName(P.p.color(P.p.getConfig().getString("fbanners.Item.Name"))); - warmeta.setLore(P.p.colorList(P.p.getConfig().getStringList("fbanners.Item.Lore"))); + warmeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name"))); + warmeta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore"))); warBanner.setItemMeta(warmeta); } else { - warBanner = P.p.createItem(XMaterial.BLACK_BANNER.parseMaterial(), 1, (short) 1, P.p.getConfig().getString("fbanners.Item.Name"), P.p.getConfig().getStringList("fbanners.Item.Lore")); + warBanner = FactionsPlugin.getInstance().createItem(XMaterial.BLACK_BANNER.parseMaterial(), 1, (short) 1, FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name"), FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore")); } - fme.msg(TL.COMMAND_BANNER_SUCCESS); + context.msg(TL.COMMAND_BANNER_SUCCESS); warBanner.setAmount(1); - me.getInventory().addItem(warBanner); + context.player.getInventory().addItem(warBanner); } public boolean hasMoney(FPlayer fme, int amt) { - Economy econ = P.p.getEcon(); + Economy econ = FactionsPlugin.getInstance().getEcon(); if (econ.getBalance(fme.getPlayer()) >= amt) { return true; } else { @@ -74,7 +69,7 @@ public class CmdBanner extends FCommand { public void takeMoney(FPlayer fme, int amt) { if (hasMoney(fme, amt)) { - Economy econ = P.p.getEcon(); + Economy econ = FactionsPlugin.getInstance().getEcon(); econ.withdrawPlayer(fme.getPlayer(), amt); fme.sendMessage(TL.COMMAND_BANNER_MONEYTAKE.toString().replace("{amount}", amt + "")); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBoom.java b/src/main/java/com/massivecraft/factions/cmd/CmdBoom.java index fcbe859f..26a06943 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBoom.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBoom.java @@ -15,34 +15,29 @@ public class CmdBoom extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("on/off", "flip"); - this.permission = Permission.NO_BOOM.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.NO_BOOM) + .playerOnly() + .build(); } @Override - public void perform() { - if (!myFaction.isPeaceful()) { - fme.msg(TL.COMMAND_BOOM_PEACEFULONLY); + public void perform(CommandContext context) { + if (!context.faction.isPeaceful()) { + context.msg(TL.COMMAND_BOOM_PEACEFULONLY); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostNoBoom, TL.COMMAND_BOOM_TOTOGGLE, TL.COMMAND_BOOM_FORTOGGLE)) { + if (!context.payForCommand(Conf.econCostNoBoom, TL.COMMAND_BOOM_TOTOGGLE, TL.COMMAND_BOOM_FORTOGGLE)) { return; } - myFaction.setPeacefulExplosionsEnabled(this.argAsBool(0, !myFaction.getPeacefulExplosionsEnabled())); + context.faction.setPeacefulExplosionsEnabled(context.argAsBool(0, !context.faction.getPeacefulExplosionsEnabled())); - String enabled = myFaction.noExplosionsInTerritory() ? TL.GENERIC_DISABLED.toString() : TL.GENERIC_ENABLED.toString(); + String enabled = context.faction.noExplosionsInTerritory() ? TL.GENERIC_DISABLED.toString() : TL.GENERIC_ENABLED.toString(); // Inform - myFaction.msg(TL.COMMAND_BOOM_ENABLED, fme.describeTo(myFaction), enabled); + context.faction.msg(TL.COMMAND_BOOM_ENABLED, context.fPlayer.describeTo(context.faction), enabled); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBypass.java b/src/main/java/com/massivecraft/factions/cmd/CmdBypass.java index 6c7ea644..b95a30a8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBypass.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBypass.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -13,27 +13,22 @@ public class CmdBypass extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("on/off", "flip"); - this.permission = Permission.BYPASS.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.BYPASS) + .playerOnly() + .build(); } @Override - public void perform() { - fme.setIsAdminBypassing(this.argAsBool(0, !fme.isAdminBypassing())); + public void perform(CommandContext context) { + context.fPlayer.setIsAdminBypassing(context.argAsBool(0, !context.fPlayer.isAdminBypassing())); // TODO: Move this to a transient field in the model?? - if (fme.isAdminBypassing()) { - fme.msg(TL.COMMAND_BYPASS_ENABLE.toString()); - P.p.log(fme.getName() + TL.COMMAND_BYPASS_ENABLELOG.toString()); + if (context.fPlayer.isAdminBypassing()) { + context.fPlayer.msg(TL.COMMAND_BYPASS_ENABLE.toString()); + FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_ENABLELOG.toString()); } else { - fme.msg(TL.COMMAND_BYPASS_DISABLE.toString()); - P.p.log(fme.getName() + TL.COMMAND_BYPASS_DISABLELOG.toString()); + context.fPlayer.msg(TL.COMMAND_BYPASS_DISABLE.toString()); + FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_DISABLELOG.toString()); } } @@ -41,4 +36,4 @@ public class CmdBypass extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_BYPASS_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdChat.java b/src/main/java/com/massivecraft/factions/cmd/CmdChat.java index 983868c0..d23946f5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdChat.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdChat.java @@ -5,6 +5,8 @@ import com.massivecraft.factions.struct.ChatMode; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.util.TL; +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; public class CmdChat extends FCommand { @@ -16,33 +18,29 @@ public class CmdChat extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("mode", "next"); - this.permission = Permission.CHAT.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHAT) + .playerOnly() + .memberOnly() + .brigadier(ChatBrigadier.class) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { if (!Conf.factionOnlyChat) { - msg(TL.COMMAND_CHAT_DISABLED.toString()); + context.msg(TL.COMMAND_CHAT_DISABLED.toString()); return; } - String modeString = this.argAsString(0); - ChatMode modeTarget = fme.getChatMode().getNext(); + String modeString = context.argAsString(0); + ChatMode modeTarget = context.fPlayer.getChatMode().getNext(); if (modeString != null) { modeString = modeString.toLowerCase(); // Only allow Mods and higher rank to switch to this channel. if (modeString.startsWith("m")) { - if (!fme.getRole().isAtLeast(Role.MODERATOR)) { - msg(TL.COMMAND_CHAT_MOD_ONLY); + if (!context.fPlayer.getRole().isAtLeast(Role.MODERATOR)) { + context.msg(TL.COMMAND_CHAT_MOD_ONLY); return; } else modeTarget = ChatMode.MOD; } else if (modeString.startsWith("p")) { @@ -54,28 +52,28 @@ public class CmdChat extends FCommand { } else if (modeString.startsWith("t")) { modeTarget = ChatMode.TRUCE; } else { - msg(TL.COMMAND_CHAT_INVALIDMODE); + context.msg(TL.COMMAND_CHAT_INVALIDMODE); return; } } - fme.setChatMode(modeTarget); + context.fPlayer.setChatMode(modeTarget); - switch (fme.getChatMode()) { + switch (context.fPlayer.getChatMode()) { case MOD: - msg(TL.COMMAND_CHAT_MODE_MOD); + context.msg(TL.COMMAND_CHAT_MODE_MOD); break; case PUBLIC: - msg(TL.COMMAND_CHAT_MODE_PUBLIC); + context.msg(TL.COMMAND_CHAT_MODE_PUBLIC); break; case ALLIANCE: - msg(TL.COMMAND_CHAT_MODE_ALLIANCE); + context.msg(TL.COMMAND_CHAT_MODE_ALLIANCE); break; case TRUCE: - msg(TL.COMMAND_CHAT_MODE_TRUCE); + context.msg(TL.COMMAND_CHAT_MODE_TRUCE); break; default: - msg(TL.COMMAND_CHAT_MODE_FACTION); + context.msg(TL.COMMAND_CHAT_MODE_FACTION); break; } } @@ -84,4 +82,16 @@ public class CmdChat extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_CHAT_DESCRIPTION; } + + protected class ChatBrigadier implements BrigadierProvider { + @Override + public ArgumentBuilder get(ArgumentBuilder parent) { + return parent.then(LiteralArgumentBuilder.literal("public")) + .then(LiteralArgumentBuilder.literal("mod")) + .then(LiteralArgumentBuilder.literal("alliance")) + .then(LiteralArgumentBuilder.literal("faction")) + .then(LiteralArgumentBuilder.literal("truce")); + } + } + } \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdChatSpy.java b/src/main/java/com/massivecraft/factions/cmd/CmdChatSpy.java index 97231e66..7e56bbc4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdChatSpy.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdChatSpy.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -12,26 +12,21 @@ public class CmdChatSpy extends FCommand { this.optionalArgs.put("on/off", "flip"); - this.permission = Permission.CHATSPY.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHATSPY) + .playerOnly() + .build(); } @Override - public void perform() { - fme.setSpyingChat(this.argAsBool(0, !fme.isSpyingChat())); + public void perform(CommandContext context) { + context.fPlayer.setSpyingChat(context.argAsBool(0, !context.fPlayer.isSpyingChat())); - if (fme.isSpyingChat()) { - fme.msg(TL.COMMAND_CHATSPY_ENABLE); - P.p.log(fme.getName() + TL.COMMAND_CHATSPY_ENABLELOG.toString()); + if (context.fPlayer.isSpyingChat()) { + context.msg(TL.COMMAND_CHATSPY_ENABLE); + FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_ENABLELOG.toString()); } else { - fme.msg(TL.COMMAND_CHATSPY_DISABLE); - P.p.log(fme.getName() + TL.COMMAND_CHATSPY_DISABLELOG.toString()); + context.msg(TL.COMMAND_CHATSPY_DISABLE); + FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_DISABLELOG.toString()); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdCheckpoint.java b/src/main/java/com/massivecraft/factions/cmd/CmdCheckpoint.java index da55d25b..20e08ad6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdCheckpoint.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdCheckpoint.java @@ -14,46 +14,45 @@ public class CmdCheckpoint extends FCommand { this.optionalArgs.put("set", ""); - this.permission = Permission.CHECKPOINT.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHECKPOINT) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("checkpoints.Enabled")) { - fme.msg(TL.COMMAND_CHECKPOINT_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("checkpoints.Enabled")) { + context.msg(TL.COMMAND_CHECKPOINT_DISABLED); return; } - if (args.size() == 1) { - FLocation myLocation = new FLocation(fme.getPlayer().getLocation()); + if (context.args.size() == 1) { + FLocation myLocation = new FLocation(context.player.getLocation()); Faction myLocFaction = Board.getInstance().getFactionAt(myLocation); - if (myLocFaction == Factions.getInstance().getWilderness() || myLocFaction == fme.getFaction()) { - fme.getFaction().setCheckpoint(fme.getPlayer().getLocation()); - fme.msg(TL.COMMAND_CHECKPOINT_SET); + if (myLocFaction == Factions.getInstance().getWilderness() || myLocFaction == context.faction) { + context.faction.setCheckpoint(context.player.getLocation()); + context.msg(TL.COMMAND_CHECKPOINT_SET); return; } else { - fme.msg(TL.COMMAND_CHECKPOINT_INVALIDLOCATION); + context.msg(TL.COMMAND_CHECKPOINT_INVALIDLOCATION); return; } } - if (fme.getFaction().getCheckpoint() == null) { - fme.msg(TL.COMMAND_CHECKPOINT_NOT_SET); + if (context.faction.getCheckpoint() == null) { + context.msg(TL.COMMAND_CHECKPOINT_NOT_SET); return; } - FLocation checkLocation = new FLocation(fme.getFaction().getCheckpoint()); + FLocation checkLocation = new FLocation(context.faction.getCheckpoint()); Faction checkfaction = Board.getInstance().getFactionAt(checkLocation); - if (checkfaction.getId().equals(Factions.getInstance().getWilderness().getId()) || checkfaction.getId().equals(fme.getFaction().getId())) { - fme.msg(TL.COMMAND_CHECKPOINT_GO); - this.doWarmUp(WarmUpUtil.Warmup.CHECKPOINT, TL.WARMUPS_NOTIFY_TELEPORT, "Checkpoint", () -> fme.getPlayer().teleport(fme.getFaction().getCheckpoint()), this.p.getConfig().getLong("warmups.f-checkpoint", 0)); + if (checkfaction.getId().equals(Factions.getInstance().getWilderness().getId()) || checkfaction.getId().equals(context.faction.getId())) { + context.msg(TL.COMMAND_CHECKPOINT_GO); + + context.doWarmUp(WarmUpUtil.Warmup.CHECKPOINT, TL.WARMUPS_NOTIFY_TELEPORT, "Checkpoint", () -> { + context.player.teleport(context.faction.getCheckpoint()); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-checkpoint", 0)); } else { - fme.msg(TL.COMMAND_CHECKPOINT_CLAIMED); + context.msg(TL.COMMAND_CHECKPOINT_CLAIMED); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdColeader.java b/src/main/java/com/massivecraft/factions/cmd/CmdColeader.java index 0a16ab94..d19f84a3 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdColeader.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdColeader.java @@ -18,61 +18,51 @@ public class CmdColeader extends FCommand { this.aliases.add("setco"); this.optionalArgs.put("player name", "name"); - //this.optionalArgs.put("", ""); - this.permission = Permission.COLEADER.node; - this.disableOnLock = true; - - - senderMustBePlayer = false; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = true; + this.requirements = new CommandRequirements.Builder(Permission.COLEADER) + .memberOnly() + .withRole(Role.LEADER) + .build(); } @Override - public void perform() { - FPlayer you = this.argAsBestFPlayerMatch(0); + public void perform(CommandContext context) { + FPlayer you = context.argAsBestFPlayerMatch(0); if (you == null) { FancyMessage msg = new FancyMessage(TL.COMMAND_COLEADER_CANDIDATES.toString()).color(ChatColor.GOLD); - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.NORMAL)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s); } - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.MODERATOR)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s); } - sendFancyMessage(msg); + context.sendFancyMessage(msg); return; } - boolean permAny = Permission.COLEADER_ANY.has(sender, false); + boolean permAny = Permission.COLEADER_ANY.has(context.sender, false); Faction targetFaction = you.getFaction(); - if (you.isAlt()) { - msg(ChatColor.RED + "You can not promote alt accounts."); + if (targetFaction != context.faction && !permAny) { + context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true)); return; } - if (targetFaction != myFaction && !permAny) { - msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(fme, true)); + if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) { + context.msg(TL.COMMAND_COLEADER_NOTADMIN); return; } - if (fme != null && fme.getRole() != Role.LEADER && !permAny) { - msg(TL.COMMAND_COLEADER_NOTADMIN); - return; - } - - if (you == fme && !permAny) { - msg(TL.COMMAND_COLEADER_SELF); + if (you == context.fPlayer && !permAny) { + context.msg(TL.COMMAND_COLEADER_SELF); return; } if (you.getRole() == Role.LEADER) { - msg(TL.COMMAND_COLEADER_TARGETISADMIN); + context.msg(TL.COMMAND_COLEADER_TARGETISADMIN); return; } @@ -80,12 +70,12 @@ public class CmdColeader extends FCommand { // Revoke you.setRole(Role.MODERATOR); targetFaction.msg(TL.COMMAND_COLEADER_REVOKED, you.describeTo(targetFaction, true)); - msg(TL.COMMAND_COLEADER_REVOKES, you.describeTo(fme, true)); + context.msg(TL.COMMAND_COLEADER_REVOKES, you.describeTo(context.fPlayer, true)); } else { // Give you.setRole(Role.COLEADER); targetFaction.msg(TL.COMMAND_COLEADER_PROMOTED, you.describeTo(targetFaction, true)); - msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(fme, true)); + context.msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(context.fPlayer, true)); } } @@ -94,3 +84,4 @@ public class CmdColeader extends FCommand { return TL.COMMAND_COLEADER_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java index 8cf6179e..ea1a9824 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.ChatColor; @@ -24,20 +24,14 @@ public class CmdConfig extends FCommand { this.requiredArgs.add("setting"); this.requiredArgs.add("value"); - this.errorOnToManyArgs = false; - this.permission = Permission.CONFIG.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CONFIG) + .noErrorOnManyArgs() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // store a lookup map of lowercase field names paired with proper capitalization field names // that way, if the person using this command messes up the capitalization, we can fix that if (properFieldNames.isEmpty()) { @@ -47,22 +41,22 @@ public class CmdConfig extends FCommand { } } - String field = this.argAsString(0).toLowerCase(); + String field = context.argAsString(0).toLowerCase(); if (field.startsWith("\"") && field.endsWith("\"")) { field = field.substring(1, field.length() - 1); } String fieldName = properFieldNames.get(field); if (fieldName == null || fieldName.isEmpty()) { - msg(TL.COMMAND_CONFIG_NOEXIST, field); + context.msg(TL.COMMAND_CONFIG_NOEXIST, field); return; } String success; - StringBuilder value = new StringBuilder(args.get(1)); - for (int i = 2; i < args.size(); i++) { - value.append(' ').append(args.get(i)); + StringBuilder value = new StringBuilder(context.args.get(1)); + for (int i = 2; i < context.args.size(); i++) { + value.append(' ').append(context.args.get(i)); } try { @@ -70,7 +64,7 @@ public class CmdConfig extends FCommand { // boolean if (target.getType() == boolean.class) { - boolean targetValue = this.strAsBool(value.toString()); + boolean targetValue = context.strAsBool(value.toString()); target.setBoolean(null, targetValue); if (targetValue) { @@ -87,7 +81,7 @@ public class CmdConfig extends FCommand { target.setInt(null, intVal); success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + intVal + "."; } catch (NumberFormatException ex) { - sendMessage(TL.COMMAND_CONFIG_INTREQUIRED.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_INTREQUIRED.format(fieldName)); return; } } @@ -99,7 +93,7 @@ public class CmdConfig extends FCommand { target.setLong(null, longVal); success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + longVal + "."; } catch (NumberFormatException ex) { - sendMessage(TL.COMMAND_CONFIG_LONGREQUIRED.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_LONGREQUIRED.format(fieldName)); return; } } @@ -111,7 +105,7 @@ public class CmdConfig extends FCommand { target.setDouble(null, doubleVal); success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + doubleVal + "."; } catch (NumberFormatException ex) { - sendMessage(TL.COMMAND_CONFIG_DOUBLEREQUIRED.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_DOUBLEREQUIRED.format(fieldName)); return; } } @@ -123,7 +117,7 @@ public class CmdConfig extends FCommand { target.setFloat(null, floatVal); success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + floatVal + "."; } catch (NumberFormatException ex) { - sendMessage(TL.COMMAND_CONFIG_FLOATREQUIRED.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_FLOATREQUIRED.format(fieldName)); return; } } @@ -143,7 +137,7 @@ public class CmdConfig extends FCommand { } if (newColor == null) { - sendMessage(TL.COMMAND_CONFIG_INVALID_COLOUR.format(fieldName, value.toString().toUpperCase())); + context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLOUR.format(fieldName, value.toString().toUpperCase())); return; } target.set(null, newColor); @@ -157,7 +151,7 @@ public class CmdConfig extends FCommand { // not a Set, somehow, and that should be the only collection we're using in Conf.java if (targSet.getRawType() != Set.class) { - sendMessage(TL.COMMAND_CONFIG_INVALID_COLLECTION.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLLECTION.format(fieldName)); return; } @@ -170,7 +164,7 @@ public class CmdConfig extends FCommand { } if (newMat == null) { - sendMessage(TL.COMMAND_CONFIG_INVALID_MATERIAL.format(fieldName, value.toString().toUpperCase())); + context.sendMessage(TL.COMMAND_CONFIG_INVALID_MATERIAL.format(fieldName, value.toString().toUpperCase())); return; } @@ -210,31 +204,31 @@ public class CmdConfig extends FCommand { // Set of unknown type else { - sendMessage(TL.COMMAND_CONFIG_INVALID_TYPESET.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_INVALID_TYPESET.format(fieldName)); return; } } // unknown type else { - sendMessage(TL.COMMAND_CONFIG_ERROR_TYPE.format(fieldName, target.getClass().getName())); + context.sendMessage(TL.COMMAND_CONFIG_ERROR_TYPE.format(fieldName, target.getClass().getName())); return; } } catch (NoSuchFieldException ex) { - sendMessage(TL.COMMAND_CONFIG_ERROR_MATCHING.format(fieldName)); + context.sendMessage(TL.COMMAND_CONFIG_ERROR_MATCHING.format(fieldName)); return; } catch (IllegalAccessException ex) { - sendMessage(TL.COMMAND_CONFIG_ERROR_SETTING.format(fieldName, value.toString())); + context.sendMessage(TL.COMMAND_CONFIG_ERROR_SETTING.format(fieldName, value.toString())); return; } if (!success.isEmpty()) { - if (sender instanceof Player) { - sendMessage(success); - P.p.log(success + TL.COMMAND_CONFIG_LOG.format((Player) sender)); - } else // using P.p.log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log + if (context.sender instanceof Player) { + context.sendMessage(success); + FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format((Player) context.sender)); + } else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log { - P.p.log(success); + FactionsPlugin.getInstance().log(success); } } // save change to disk diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdConvert.java b/src/main/java/com/massivecraft/factions/cmd/CmdConvert.java index f2b780c9..b7a55a2e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdConvert.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdConvert.java @@ -11,26 +11,26 @@ public class CmdConvert extends FCommand { public CmdConvert() { this.aliases.add("convert"); - - this.permission = Permission.CONVERT.node; - this.requiredArgs.add("[MYSQL|JSON]"); + + this.requirements = new CommandRequirements.Builder(Permission.CONVERT) + .build(); } @Override - public void perform() { - if (!(this.sender instanceof ConsoleCommandSender)) { - this.sender.sendMessage(TL.GENERIC_CONSOLEONLY.toString()); + public void perform(CommandContext context) { + if (!(context.sender instanceof ConsoleCommandSender)) { + context.sender.sendMessage(TL.GENERIC_CONSOLEONLY.toString()); } - Backend nb = Backend.valueOf(this.argAsString(0).toUpperCase()); + Backend nb = Backend.valueOf(context.argAsString(0).toUpperCase()); if (nb == Conf.backEnd) { - this.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_RUNNING.toString()); + context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_RUNNING.toString()); return; } if (nb == Backend.JSON) { FactionsJSON.convertTo(); } else { - this.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_INVALID.toString()); + context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_INVALID.toString()); return; } Conf.backEnd = nb; @@ -41,4 +41,4 @@ public class CmdConvert extends FCommand { return TL.COMMAND_CONVERT_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdCoords.java b/src/main/java/com/massivecraft/factions/cmd/CmdCoords.java index e6b3bad3..33aae200 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdCoords.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdCoords.java @@ -12,23 +12,18 @@ public class CmdCoords extends FCommand { this.aliases.add("coords"); this.aliases.add("coord"); - this.permission = Permission.COORD.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.COORD) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - Location location = fme.getPlayer().getLocation(); - String message = TL.COMMAND_COORDS_MESSAGE.toString().replace("{player}", fme.getPlayer().getDisplayName()).replace("{x}", (int) location.getX() + "") + public void perform(CommandContext context) { + Location location = context.player.getLocation(); + String message = TL.COMMAND_COORDS_MESSAGE.toString().replace("{player}", context.player.getDisplayName()).replace("{x}", (int) location.getX() + "") .replace("{y}", (int) location.getY() + "").replace("{z}", (int) location.getZ() + "").replace("{world}", location.getWorld().getName()); - for (FPlayer fPlayer : fme.getFaction().getFPlayers()) { + for (FPlayer fPlayer : context.faction.getFPlayers()) { fPlayer.sendMessage(message); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java index 85513e51..a38b5833 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java @@ -20,58 +20,46 @@ public class CmdCreate extends FCommand { this.aliases.add("create"); this.requiredArgs.add("faction tag"); - //this.optionalArgs.put("", ""); - this.permission = Permission.CREATE.node; - this.disableOnLock = true; - this.disableOnSpam = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CREATE) + .playerOnly() + .build(); } @Override - public void perform() { - String tag = this.argAsString(0); + public void perform(CommandContext context) { + String tag = context.argAsString(0); - if (fme.hasFaction()) { - msg(TL.COMMAND_CREATE_MUSTLEAVE); - return; - } - - if (!fme.isCooldownEnded("create")) { - fme.msg(TL.COMMAND_ONCOOOLDOWN, fme.getCooldown("create")); + if (context.fPlayer.hasFaction()) { + context.msg(TL.COMMAND_CREATE_MUSTLEAVE); return; } if (Factions.getInstance().isTagTaken(tag)) { - msg(TL.COMMAND_CREATE_INUSE); + context.msg(TL.COMMAND_CREATE_INUSE); return; } ArrayList tagValidationErrors = MiscUtil.validateTag(tag); if (tagValidationErrors.size() > 0) { - sendMessage(tagValidationErrors); + context.sendMessage(tagValidationErrors); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay - if (!canAffordCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE.toString())) { + if (!context.canAffordCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE.toString())) { return; } // trigger the faction creation event (cancellable) - FactionCreateEvent createEvent = new FactionCreateEvent(me, tag); + FactionCreateEvent createEvent = new FactionCreateEvent(context.player, tag); Bukkit.getServer().getPluginManager().callEvent(createEvent); if (createEvent.isCancelled()) { return; } // then make 'em pay (if applicable) - if (!payForCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE, TL.COMMAND_CREATE_FORCREATE)) { + if (!context.payForCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE, TL.COMMAND_CREATE_FORCREATE)) { return; } @@ -79,7 +67,7 @@ public class CmdCreate extends FCommand { // TODO: Why would this even happen??? Auto increment clash?? if (faction == null) { - msg(TL.COMMAND_CREATE_ERROR); + context.msg(TL.COMMAND_CREATE_ERROR); return; } @@ -87,39 +75,29 @@ public class CmdCreate extends FCommand { faction.setTag(tag); // trigger the faction join event for the creator - FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(me), faction, FPlayerJoinEvent.PlayerJoinReason.CREATE); + FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.CREATE); Bukkit.getServer().getPluginManager().callEvent(joinEvent); // join event cannot be cancelled or you'll have an empty faction // finish setting up the FPlayer - fme.setFaction(faction, false); + context.fPlayer.setFaction(faction, false); // We should consider adding the role just AFTER joining the faction. // That way we don't have to mess up deleting more stuff. // And prevent the user from being returned to NORMAL after deleting his old faction. - fme.setRole(Role.LEADER); - if (P.p.getConfig().getBoolean("faction-creation-broadcast", true)) { + context.fPlayer.setRole(Role.LEADER); + if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-creation-broadcast", true)) { for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) { - follower.msg(TL.COMMAND_CREATE_CREATED, fme.describeTo(follower, true), faction.getTag(follower)); + follower.msg(TL.COMMAND_CREATE_CREATED, context.fPlayer.getName(), faction.getTag(follower)); } } - msg(TL.COMMAND_CREATE_YOUSHOULD, p.cmdBase.cmdDescription.getUseageTemplate()); - - if (Conf.econEnabled) - Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance); - - + context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context)); + if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance); if (Conf.logFactionCreate) - P.p.log(fme.getName() + TL.COMMAND_CREATE_CREATEDLOG.toString() + tag); - - if (P.p.getConfig().getBoolean("fpaypal.Enabled")) - this.fme.msg(TL.COMMAND_PAYPALSET_CREATED); - + FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CREATE_CREATEDLOG.toString() + tag); + if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) + context.msg(TL.COMMAND_PAYPALSET_CREATED); if (Conf.useCustomDefaultPermissions) faction.setDefaultPerms(); - if (Conf.usePermissionHints) fme.msg(TL.COMMAND_HINT_PERMISSION); - - - fme.setCooldown("create", System.currentTimeMillis() + (P.p.getConfig().getInt("fcooldowns.f-create") * 1000)); - + if (Conf.usePermissionHints) context.msg(TL.COMMAND_HINT_PERMISSION); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java b/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java index 62c2b72e..284e5283 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; @@ -19,51 +20,59 @@ public class CmdDeinvite extends FCommand { this.aliases.add("deinv"); this.optionalArgs.put("player name", "name"); - //this.optionalArgs.put("", ""); - this.permission = Permission.DEINVITE.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.DEINVITE) + .memberOnly() + .build(); } @Override - public void perform() { - FPlayer you = this.argAsBestFPlayerMatch(0); - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.INVITE); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); - return; - } - } - if (you == null) { + public void perform(CommandContext context) { + + // Check if arg 0 == null do you don't have + // `No player "null" could be found.` message. + if (context.args.get(0) == null) { FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); - for (String id : myFaction.getInvites()) { + for (String id : context.faction.getInvites()) { FPlayer fp = FPlayers.getInstance().getById(id); String name = fp != null ? fp.getName() : id; msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); } - sendFancyMessage(msg); + context.sendFancyMessage(msg); return; } - if (you.getFaction() == myFaction) { - msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), myFaction.getTag()); - msg(TL.COMMAND_DEINVITE_MIGHTWANT, p.cmdBase.cmdKick.getUseageTemplate(false)); + FPlayer you = context.argAsBestFPlayerMatch(0); + if (!context.fPlayer.isAdminBypassing()) { + Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE); + if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) { + context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); + return; + } + } + + if (you == null) { + FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); + for (String id : context.faction.getInvites()) { + FPlayer fp = FPlayers.getInstance().getById(id); + String name = fp != null ? fp.getName() : id; + msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); + } + context.sendFancyMessage(msg); return; } - myFaction.deinvite(you); + if (you.getFaction() == context.faction) { + context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag()); + context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context)); + return; + } - you.msg(TL.COMMAND_DEINVITE_REVOKED, fme.describeTo(you), myFaction.describeTo(you)); + context.faction.deinvite(you); - myFaction.msg(TL.COMMAND_DEINVITE_REVOKES, fme.describeTo(myFaction), you.describeTo(myFaction)); + you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you)); + + context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction)); } @Override @@ -72,3 +81,4 @@ public class CmdDeinvite extends FCommand { } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java index 3103fef2..7f9f2b4f 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -13,29 +13,29 @@ public class CmdDelFWarp extends FCommand { this.aliases.add("dw"); this.aliases.add("deletewarp"); this.requiredArgs.add("warp name"); - this.senderMustBeMember = true; - this.senderMustBeModerator = true; - this.senderMustBePlayer = true; - this.permission = Permission.SETWARP.node; + this.requirements = new CommandRequirements.Builder(Permission.SETWARP) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - String warp = argAsString(0); - if (myFaction.isWarp(warp)) { - if (!transact(fme)) { + public void perform(CommandContext context) { + String warp = context.argAsString(0); + if (context.faction.isWarp(warp)) { + if (!transact(context.fPlayer, context)) { return; } - myFaction.removeWarp(warp); - fme.msg(TL.COMMAND_DELFWARP_DELETED, warp); + context.faction.removeWarp(warp); + context.msg(TL.COMMAND_DELFWARP_DELETED, warp); } else { - fme.msg(TL.COMMAND_DELFWARP_INVALID, warp); + context.msg(TL.COMMAND_DELFWARP_INVALID, warp); } } - private boolean transact(FPlayer player) { - return !P.p.getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || payForCommand(P.p.getConfig().getDouble("warp-cost.delwarp", 5), TL.COMMAND_DELFWARP_TODELETE.toString(), TL.COMMAND_DELFWARP_FORDELETE.toString()); + private boolean transact(FPlayer player, CommandContext context) { + return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.delwarp", 5), TL.COMMAND_DELFWARP_TODELETE.toString(), TL.COMMAND_DELFWARP_FORDELETE.toString()); } @Override @@ -43,3 +43,4 @@ public class CmdDelFWarp extends FCommand { return TL.COMMAND_DELFWARP_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDescription.java b/src/main/java/com/massivecraft/factions/cmd/CmdDescription.java index a0e6d00a..c8142268 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDescription.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDescription.java @@ -15,41 +15,35 @@ public class CmdDescription extends FCommand { this.aliases.add("description"); this.requiredArgs.add("desc"); - this.errorOnToManyArgs = false; - //this.optionalArgs - this.permission = Permission.DESCRIPTION.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.DESCRIPTION) + .playerOnly() + .memberOnly() + .noErrorOnManyArgs() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostDesc, TL.COMMAND_DESCRIPTION_TOCHANGE, TL.COMMAND_DESCRIPTION_FORCHANGE)) { + if (!context.payForCommand(Conf.econCostDesc, TL.COMMAND_DESCRIPTION_TOCHANGE, TL.COMMAND_DESCRIPTION_FORCHANGE)) { return; } // since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up // And replace all the % because it messes with string formatting and this is easy way around that. - myFaction.setDescription(TextUtil.implode(args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2")); + context.faction.setDescription(TextUtil.implode(context.args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2")); if (!Conf.broadcastDescriptionChanges) { - fme.msg(TL.COMMAND_DESCRIPTION_CHANGED, myFaction.describeTo(fme)); - fme.sendMessage(myFaction.getDescription()); + context.msg(TL.COMMAND_DESCRIPTION_CHANGED, context.faction.describeTo(context.fPlayer)); + context.sendMessage(context.faction.getDescription()); return; } // Broadcast the description to everyone for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - fplayer.msg(TL.COMMAND_DESCRIPTION_CHANGES, myFaction.describeTo(fplayer)); - fplayer.sendMessage(myFaction.getDescription()); // players can inject "&" or "`" or "" or whatever in their description; &k is particularly interesting looking + fplayer.msg(TL.COMMAND_DESCRIPTION_CHANGES, context.faction.describeTo(fplayer)); + fplayer.sendMessage(context.faction.getDescription()); // players can inject "&" or "`" or "" or whatever in their description; &k is particularly interesting looking } } @@ -58,4 +52,4 @@ public class CmdDescription extends FCommand { return TL.COMMAND_DESCRIPTION_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java index 4c113bec..68b783cd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java @@ -9,6 +9,7 @@ import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; +import org.bukkit.command.ConsoleCommandSender; import java.util.HashMap; @@ -23,87 +24,71 @@ public class CmdDisband extends FCommand { super(); this.aliases.add("disband"); - //this.requiredArgs.add(""); this.optionalArgs.put("faction tag", "yours"); - this.permission = Permission.DISBAND.node; - this.disableOnLock = true; - this.disableOnSpam = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.DISBAND) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // The faction, default to your own.. but null if console sender. - Faction faction = this.argAsFaction(0, fme == null ? null : myFaction); - if (faction == null) { - return; - } + Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : context.faction); + if (faction == null) return; + boolean isMyFaction = context.fPlayer != null && faction == context.faction; - if (!fme.isCooldownEnded("disband")) { - fme.msg(TL.COMMAND_ONCOOOLDOWN, fme.getCooldown("disband")); - return; - } - - boolean isMyFaction = fme != null && faction == myFaction; - - if (isMyFaction) { - if (!assertMinRole(Role.LEADER)) { - return; - } - } else { - if (!Permission.DISBAND_ANY.has(sender, true)) { + if (!isMyFaction) { + if (!Permission.DISBAND_ANY.has(context.sender, true)) { return; } } - if (fme != null && !fme.isAdminBypassing()) { - Access access = faction.getAccess(fme, PermissableAction.DISBAND); - if (fme.getRole() != Role.LEADER && faction.getFPlayerLeader() != fme && access != Access.ALLOW) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "disband " + faction.getTag()); + if (context.fPlayer != null && !context.fPlayer.isAdminBypassing()) { + Access access = faction.getAccess(context.fPlayer, PermissableAction.DISBAND); + if (context.fPlayer.getRole() != Role.LEADER && faction.getFPlayerLeader() != context.fPlayer && access != Access.ALLOW) { + context.msg(TL.GENERIC_FPERM_NOPERMISSION, "disband " + faction.getTag()); return; } } if (!faction.isNormal()) { - msg(TL.COMMAND_DISBAND_IMMUTABLE.toString()); + context.msg(TL.COMMAND_DISBAND_IMMUTABLE.toString()); return; } if (faction.isPermanent()) { - msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString()); + context.msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString()); + return; + } + + // THis means they are a console command sender. + if (context.player == null) { + faction.disband(null, PlayerDisbandReason.PLUGIN); return; } // check for tnt before disbanding. - - if ((fme != null && !disbandMap.containsKey(me.getUniqueId().toString())) && faction.getTnt() > 0) { - msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + "")); - disbandMap.put(me.getUniqueId().toString(), faction.getId()); - Bukkit.getScheduler().scheduleSyncDelayedTask(P.p, () -> disbandMap.remove(me.getUniqueId().toString()), 200L); - } else if (faction.getId().equals(disbandMap.get(me.getUniqueId().toString())) || faction.getTnt() == 0) { - if (P.p.getConfig().getBoolean("faction-disband-broadcast", true)) { + if (!disbandMap.containsKey(context.player.getUniqueId().toString()) && faction.getTnt() > 0) { + context.msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + "")); + disbandMap.put(context.player.getUniqueId().toString(), faction.getId()); + Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> disbandMap.remove(context.player.getUniqueId().toString()), 200L); + } else if (faction.getId().equals(disbandMap.get(context.player.getUniqueId().toString())) || faction.getTnt() == 0) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-disband-broadcast", true)) { for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) { - String amountString = senderIsConsole ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(follower); - UtilFly.checkFly(this.fme, Board.getInstance().getFactionAt(new FLocation(follower))); + String amountString = context.sender instanceof ConsoleCommandSender ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(follower); + UtilFly.checkFly(context.fPlayer, Board.getInstance().getFactionAt(new FLocation(follower))); if (follower.getFaction() == faction) { follower.msg(TL.COMMAND_DISBAND_BROADCAST_YOURS, amountString); - fme.setCooldown("disband", System.currentTimeMillis() + (P.p.getConfig().getInt("fcooldowns.f-disband") * 1000)); } else { follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower)); } } - faction.disband(me, PlayerDisbandReason.COMMAND); + faction.disband(context.player, PlayerDisbandReason.COMMAND); } else { - faction.disband(me, PlayerDisbandReason.COMMAND); - me.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER)); + faction.disband(context.player, PlayerDisbandReason.COMMAND); + context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER)); } } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFGlobal.java b/src/main/java/com/massivecraft/factions/cmd/CmdFGlobal.java index 1a796ebb..8fee8817 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFGlobal.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFGlobal.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -12,36 +12,28 @@ public class CmdFGlobal extends FCommand { public static List toggled = new ArrayList<>(); public CmdFGlobal() { - super(); this.aliases.add("gchat"); this.aliases.add("global"); this.aliases.add("globalchat"); - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.GLOBALCHAT) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - - Player p = (Player) sender; - + public void perform(CommandContext context) { // /f global - if (toggled.contains(p.getUniqueId())) { - toggled.remove(p.getUniqueId()); + if (toggled.contains(context.player.getUniqueId())) { + toggled.remove(context.player.getUniqueId()); } else { - toggled.add(p.getUniqueId()); + toggled.add(context.player.getUniqueId()); } - fme.msg(TL.COMMAND_F_GLOBAL_TOGGLE, toggled.contains(p.getUniqueId()) ? "disabled" : "enabled"); + context.msg(TL.COMMAND_F_GLOBAL_TOGGLE, toggled.contains(context.player.getUniqueId()) ? "disabled" : "enabled"); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java index 8f3b5ec8..19c38699 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java @@ -1,12 +1,10 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.FactionWarpsFrame; import com.massivecraft.factions.util.WarmUpUtil; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -23,63 +21,56 @@ public class CmdFWarp extends FCommand { this.optionalArgs.put("warpname", "warpname"); this.optionalArgs.put("password", "password"); - - this.permission = Permission.WARP.node; - this.senderMustBeMember = true; - this.senderMustBeModerator = false; + this.requirements = new CommandRequirements.Builder(Permission.WARP) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.WARP) + .build(); } @Override - public void perform() { - //TODO: check if in combat. - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.WARP); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "use warps"); - return; - } - } + public void perform(CommandContext context) { - - if (args.size() == 0) { - new FactionWarpsFrame(fme.getFaction()).buildGUI(fme); - } else if (args.size() > 2) { - fme.msg(TL.COMMAND_FWARP_COMMANDFORMAT); + if (context.args.size() == 0) { + new FactionWarpsFrame(context.faction).buildGUI(context.fPlayer); + } else if (context.args.size() > 2) { + context.msg(TL.COMMAND_FWARP_COMMANDFORMAT); } else { - final String warpName = argAsString(0); - final String passwordAttempt = argAsString(1); + final String warpName = context.argAsString(0); + final String passwordAttempt = context.argAsString(1); - if (myFaction.isWarp(argAsString(0))) { + if (context.faction.isWarp(context.argAsString(0))) { // Check if requires password and if so, check if valid. CASE SENSITIVE - if (myFaction.hasWarpPassword(warpName) && !myFaction.isWarpPassword(warpName, passwordAttempt)) { - fme.msg(TL.COMMAND_FWARP_INVALID_PASSWORD); + if (context.faction.hasWarpPassword(warpName) && !context.faction.isWarpPassword(warpName, passwordAttempt)) { + context.faction.msg(TL.COMMAND_FWARP_INVALID_PASSWORD); return; } // Check transaction AFTER password check. - if (!transact(fme)) return; - final FPlayer fPlayer = fme; - final UUID uuid = fme.getPlayer().getUniqueId(); - this.doWarmUp(WarmUpUtil.Warmup.WARP, TL.WARMUPS_NOTIFY_TELEPORT, warpName, () -> { + if (!transact(context.fPlayer, context)) return; + + final FPlayer fPlayer = context.fPlayer; + final UUID uuid = context.player.getUniqueId(); + context.doWarmUp(WarmUpUtil.Warmup.WARP, TL.WARMUPS_NOTIFY_TELEPORT, warpName, () -> { Player player = Bukkit.getPlayer(uuid); if (player != null) { player.teleport(fPlayer.getFaction().getWarp(warpName).getLocation()); fPlayer.msg(TL.COMMAND_FWARP_WARPED, warpName); } - }, this.p.getConfig().getLong("warmups.f-warp", 0)); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-warp", 0)); } else { - fme.msg(TL.COMMAND_FWARP_INVALID_WARP, warpName); + context.msg(TL.COMMAND_FWARP_INVALID_WARP, warpName); } } } - private boolean transact(FPlayer player) { - return !P.p.getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || payForCommand(P.p.getConfig().getDouble("warp-cost.warp", 5), TL.COMMAND_FWARP_TOWARP.toString(), TL.COMMAND_FWARP_FORWARPING.toString()); + private boolean transact(FPlayer player, CommandContext context) { + return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.warp", 5), TL.COMMAND_FWARP_TOWARP.toString(), TL.COMMAND_FWARP_FORWARPING.toString()); } @Override public TL getUsageTranslation() { return TL.COMMAND_FWARP_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java index 529ba870..a5df7056 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java @@ -4,14 +4,12 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.*; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; -import com.massivecraft.factions.util.Particles.ParticleEffect; import com.massivecraft.factions.util.WarmUpUtil; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.GameMode; -import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -28,52 +26,27 @@ public class CmdFly extends FCommand { public CmdFly() { super(); this.aliases.add("fly"); - this.optionalArgs.put("on/off", "flip"); - - this.permission = Permission.FLY.node; - this.senderMustBeMember = true; - this.senderMustBeModerator = false; + this.requirements = new CommandRequirements.Builder(Permission.FLY) + .playerOnly() + .memberOnly() + .build(); } public static void startParticles() { - // Just a secondary check. - if (!P.p.getConfig().getBoolean("ffly.Particles.Enabled")) { - return; - } - id = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { + id = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { for (String name : flyMap.keySet()) { Player player = Bukkit.getPlayer(name); - if (player == null) { - continue; - } - if (!player.isFlying()) { - continue; - } - if (!P.p.mc17) { - if (player.getGameMode() == GameMode.SPECTATOR) { - continue; - } + if (player == null) continue; + if (!player.isFlying()) continue; + if (!FactionsPlugin.getInstance().mc17) { + if (player.getGameMode() == GameMode.SPECTATOR) continue; } - if (FPlayers.getInstance().getByPlayer(player).isVanished()) { - // Actually, vanished players (such as admins) should not display particles to prevent others from knowing their vanished assistance for moderation. - // But we can keep it as a config. - if (P.p.getConfig().getBoolean("ffly.Particles.Enable-While-Vanished")) { - return; - } - continue; - } - if (P.p.useNonPacketParticles) { - // 1.9+ based servers will use the built in particleAPI instead of packet based. - // any particle amount higher than 0 made them go everywhere, and the offset at 0 was not working. - // So setting the amount to 0 spawns 1 in the precise location - player.getWorld().spawnParticle(Particle.CLOUD, player.getLocation().add(0, -0.35, 0), 0); - } else { - ParticleEffect.CLOUD.display((float) 0, (float) 0, (float) 0, (float) 0, 3, player.getLocation().add(0, -0.35, 0), 16); - } + FPlayer fplayer = FPlayers.getInstance().getByPlayer(player); + fplayer.isVanished(); } if (flyMap.keySet().size() == 0) { @@ -84,7 +57,7 @@ public class CmdFly extends FCommand { } public static void startFlyCheck() { - flyid = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { //threw the exception for now, until I recode fly :( Cringe. + flyid = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { //threw the exception for now, until I recode fly :( Cringe. checkTaskState(); if (flyMap.keySet().size() != 0) { for (String name : flyMap.keySet()) { @@ -95,7 +68,7 @@ public class CmdFly extends FCommand { if (player == null || !player.isFlying() || player.getGameMode() == GameMode.CREATIVE - || !P.p.mc17 && player.getGameMode() == GameMode.SPECTATOR) { + || !FactionsPlugin.getInstance().mc17 && player.getGameMode() == GameMode.SPECTATOR) { continue; } FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player); @@ -105,7 +78,7 @@ public class CmdFly extends FCommand { flyMap.remove(name); continue; } - if (fPlayer.checkIfNearbyEnemies()) { + if (player.hasPermission("factions.fly.bypassnearbyenemycheck") || fPlayer.checkIfNearbyEnemies()) { continue; } FLocation myFloc = new FLocation(player.getLocation()); @@ -174,57 +147,53 @@ public class CmdFly extends FCommand { } @Override - public void perform() { + public void perform(CommandContext context) { // Disabled by default. - if (!P.p.getConfig().getBoolean("enable-faction-flight", false)) { - fme.msg(TL.COMMAND_FLY_DISABLED); + if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) { + context.fPlayer.msg(TL.COMMAND_FLY_DISABLED); return; } - FLocation myfloc = new FLocation(me.getLocation()); + FLocation myfloc = new FLocation(context.player.getLocation()); Faction toFac = Board.getInstance().getFactionAt(myfloc); - if (!checkBypassPerms(fme, me, toFac)) return; - List entities = this.me.getNearbyEntities(16.0D, 256.0D, 16.0D); + if (!checkBypassPerms(context.fPlayer, context.player, toFac)) return; + List entities = context.player.getNearbyEntities(16.0D, 256.0D, 16.0D); for (int i = 0; i <= entities.size() - 1; ++i) { if (entities.get(i) instanceof Player) { Player eplayer = (Player) entities.get(i); FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer); - if (efplayer.getRelationTo(this.fme) == Relation.ENEMY && !efplayer.isStealthEnabled()) { - this.fme.msg(TL.COMMAND_FLY_CHECK_ENEMY); + if (efplayer.getRelationTo(context.fPlayer) == Relation.ENEMY && !efplayer.isStealthEnabled()) { + context.msg(TL.COMMAND_FLY_CHECK_ENEMY); return; } } } - if (args.size() == 0) { - toggleFlight(fme.isFlying(), me); - } else if (args.size() == 1) { - toggleFlight(argAsBool(0), me); + if (context.args.size() == 0) { + toggleFlight(context.fPlayer.isFlying(), context.fPlayer, context); + } else if (context.args.size() == 1) { + toggleFlight(context.argAsBool(0), context.fPlayer, context); } } - private void toggleFlight(final boolean toggle, final Player player) { + private void toggleFlight(final boolean toggle, final FPlayer fme, CommandContext context) { if (toggle) { fme.setFlying(false); - flyMap.remove(player.getName()); + flyMap.remove(fme.getPlayer().getName()); return; } + if (fme.canFlyAtLocation()) - this.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> { + context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> { fme.setFlying(true); - flyMap.put(player.getName(), true); - if (id == -1) { - if (P.p.getConfig().getBoolean("ffly.Particles.Enabled")) { - startParticles(); - } - } + flyMap.put(fme.getPlayer().getName(), true); if (flyid == -1) { startFlyCheck(); } - }, this.p.getConfig().getLong("warmups.f-fly", 0)); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0)); } @Override @@ -232,4 +201,4 @@ public class CmdFly extends FCommand { return TL.COMMAND_FLY_DESCRIPTION; } -} \ No newline at end of file +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFocus.java b/src/main/java/com/massivecraft/factions/cmd/CmdFocus.java index e17b5661..56ce1f18 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFocus.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFocus.java @@ -1,49 +1,45 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.scoreboards.FTeamWrapper; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; -public class CmdFocus - extends FCommand { +public class CmdFocus extends FCommand { public CmdFocus() { aliases.add("focus"); requiredArgs.add("player"); - permission = Permission.FOCUS.node; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.FOCUS) + .playerOnly() + .memberOnly() + .build(); } - public void perform() { - if (!P.p.getConfig().getBoolean("ffocus.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); + @Override + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } - FPlayer target = argAsFPlayer(0); + FPlayer target = context.argAsFPlayer(0); if (target == null) { return; } - if (target.getFaction().getId().equalsIgnoreCase(myFaction.getId())) { - fme.msg(TL.COMMAND_FOCUS_SAMEFACTION); + if (target.getFaction().getId().equalsIgnoreCase(context.faction.getId())) { + context.msg(TL.COMMAND_FOCUS_SAMEFACTION); return; } - if ((myFaction.getFocused() != null) && (myFaction.getFocused().equalsIgnoreCase(target.getName()))) { - myFaction.setFocused(null); - myFaction.msg(TL.COMMAND_FOCUS_NO_LONGER, target.getName()); + if ((context.faction.getFocused() != null) && (context.faction.getFocused().equalsIgnoreCase(target.getName()))) { + context.faction.setFocused(null); + context.faction.msg(TL.COMMAND_FOCUS_NO_LONGER, target.getName()); FTeamWrapper.updatePrefixes(target.getFaction()); return; } - myFaction.msg(TL.COMMAND_FOCUS_FOCUSING, target.getName()); - myFaction.setFocused(target.getName()); + context.faction.msg(TL.COMMAND_FOCUS_FOCUSING, target.getName()); + context.faction.setFocused(target.getName()); FTeamWrapper.updatePrefixes(target.getFaction()); } @@ -51,4 +47,3 @@ public class CmdFocus return TL.COMMAND_FOCUS_DESCRIPTION; } } - diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java b/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java index 937b4dc9..eaf6c798 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Location; @@ -11,48 +11,42 @@ import org.bukkit.inventory.ItemStack; public class CmdGetVault extends FCommand { public CmdGetVault() { super(); - this.aliases.add("getvault"); - this.permission = Permission.GETVAULT.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.GETVAULT) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fvault.Enabled")) { - fme.sendMessage("This command is disabled!"); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) { + context.fPlayer.sendMessage("This command is disabled!"); return; } - Location vaultLocation = fme.getFaction().getVault(); - ItemStack vault = P.p.createItem(Material.CHEST, 1, (short) 0, P.p.color(P.p.getConfig().getString("fvault.Item.Name")), P.p.colorList(P.p.getConfig().getStringList("fvault.Item.Lore"))); + Location vaultLocation = context.faction.getVault(); + ItemStack vault = FactionsPlugin.getInstance().createItem(Material.CHEST, 1, (short) 0, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fvault.Item.Name")), FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fvault.Item.Lore"))); //check if vault is set if (vaultLocation != null) { - fme.msg(TL.COMMAND_GETVAULT_ALREADYSET); + context.msg(TL.COMMAND_GETVAULT_ALREADYSET); return; } //has enough money? - int amount = P.p.getConfig().getInt("fvault.Price"); - if (!fme.hasMoney(amount)) { + int amount = FactionsPlugin.getInstance().getConfig().getInt("fvault.Price"); + if (!context.fPlayer.hasMoney(amount)) { return; } //success :) - fme.takeMoney(amount); - me.getInventory().addItem(vault); - fme.msg(TL.COMMAND_GETVAULT_RECEIVE); + context.fPlayer.takeMoney(amount); + context.player.getInventory().addItem(vault); + context.fPlayer.msg(TL.COMMAND_GETVAULT_RECEIVE); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java index ad4f741f..e1081b04 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -24,14 +24,8 @@ public class CmdHelp extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("page", "1"); - this.permission = Permission.HELP.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.HELP) + .build(); } //----------------------------------------------// @@ -39,80 +33,80 @@ public class CmdHelp extends FCommand { //----------------------------------------------// @Override - public void perform() { - if (P.p.getConfig().getBoolean("use-old-help", true)) { + public void perform(CommandContext context) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("use-old-help", true)) { if (helpPages == null) { - updateHelp(); + updateHelp(context); } - int page = this.argAsInt(0, 1); - sendMessage(p.txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")")); + int page = context.argAsInt(0, 1); + context.sendMessage(FactionsPlugin.getInstance().txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")")); page -= 1; if (page < 0 || page >= helpPages.size()) { - msg(TL.COMMAND_HELP_404.format(String.valueOf(page))); + context.msg(TL.COMMAND_HELP_404.format(String.valueOf(page))); return; } - sendMessage(helpPages.get(page)); + context.sendMessage(helpPages.get(page)); return; } - ConfigurationSection help = P.p.getConfig().getConfigurationSection("help"); + ConfigurationSection help = FactionsPlugin.getInstance().getConfig().getConfigurationSection("help"); if (help == null) { - help = P.p.getConfig().createSection("help"); // create new help section + help = FactionsPlugin.getInstance().getConfig().createSection("help"); // create new help section List error = new ArrayList<>(); error.add("&cUpdate help messages in config.yml!"); error.add("&cSet use-old-help for legacy help messages"); help.set("'1'", error); // add default error messages } - String pageArg = this.argAsString(0, "1"); + String pageArg = context.argAsString(0, "1"); List page = help.getStringList(pageArg); if (page == null || page.isEmpty()) { - msg(TL.COMMAND_HELP_404.format(pageArg)); + context.msg(TL.COMMAND_HELP_404.format(pageArg)); return; } for (String helpLine : page) { - sendMessage(P.p.txt.parse(helpLine)); + context.sendMessage(FactionsPlugin.getInstance().txt.parse(helpLine)); } } - public void updateHelp() { + public void updateHelp(CommandContext context) { helpPages = new ArrayList<>(); ArrayList pageLines; pageLines = new ArrayList<>(); - pageLines.add(p.cmdBase.cmdHelp.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdList.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdShow.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdPower.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdJoin.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdLeave.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdChat.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdToggleAllianceChat.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdHome.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_NEXTCREATE.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHelp.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdList.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdShow.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPower.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdJoin.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChat.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdToggleAllianceChat.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_NEXTCREATE.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.cmdBase.cmdCreate.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdDescription.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdTag.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_INVITATIONS.toString())); - pageLines.add(p.cmdBase.cmdOpen.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdInvite.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdDeinvite.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_HOME.toString())); - pageLines.add(p.cmdBase.cmdSethome.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdCreate.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTag.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_INVITATIONS.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOpen.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdInvite.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDeinvite.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_HOME.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context)); helpPages.add(pageLines); if (Econ.isSetup() && Conf.econEnabled && Conf.bankEnabled) { pageLines = new ArrayList<>(); pageLines.add(""); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_BANK_1.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_BANK_2.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_BANK_3.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_1.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_2.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_3.toString())); pageLines.add(""); - pageLines.add(p.cmdBase.cmdMoney.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMoney.getUseageTemplate(context)); pageLines.add(""); pageLines.add(""); pageLines.add(""); @@ -120,94 +114,94 @@ public class CmdHelp extends FCommand { } pageLines = new ArrayList<>(); - pageLines.add(p.cmdBase.cmdClaim.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdAutoClaim.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdUnclaim.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdUnclaimall.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdKick.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdMod.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdAdmin.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdTitle.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdSB.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdSeeChunk.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdStatus.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PLAYERTITLES.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdClaim.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAutoClaim.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaimall.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMod.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAdmin.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTitle.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSB.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSeeChunk.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdStatus.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PLAYERTITLES.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.cmdBase.cmdMap.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdBoom.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdOwner.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdOwnerList.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_OWNERSHIP_1.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_OWNERSHIP_2.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_OWNERSHIP_3.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMap.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBoom.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwner.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwnerList.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_1.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_2.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_3.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.cmdBase.cmdDisband.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDisband.getUseageTemplate(context)); pageLines.add(""); - pageLines.add(p.cmdBase.cmdRelationAlly.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdRelationNeutral.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdRelationEnemy.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_1.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_2.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_3.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_4.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationAlly.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationNeutral.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationEnemy.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_1.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_2.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_3.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_4.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_5.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_6.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_7.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_5.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_6.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_7.toString())); pageLines.add(TL.COMMAND_HELP_RELATIONS_8.toString()); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_9.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_10.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_11.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_12.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_RELATIONS_13.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_9.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_10.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_11.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_12.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_13.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_1.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_2.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_3.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_1.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_2.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_3.toString())); pageLines.add(TL.COMMAND_HELP_PERMISSIONS_4.toString()); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_5.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_6.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_7.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_8.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_PERMISSIONS_9.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_5.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_6.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_7.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_8.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_9.toString())); helpPages.add(pageLines); pageLines = new ArrayList<>(); pageLines.add(TL.COMMAND_HELP_MOAR_1.toString()); - pageLines.add(p.cmdBase.cmdBypass.getUseageTemplate(true)); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_ADMIN_1.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_ADMIN_2.toString())); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_ADMIN_3.toString())); - pageLines.add(p.cmdBase.cmdSafeunclaimall.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdWarunclaimall.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBypass.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_1.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_2.toString())); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_3.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSafeunclaimall.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdWarunclaimall.getUseageTemplate(context)); //TODO:TL - pageLines.add(p.txt.parse("Note: " + p.cmdBase.cmdUnclaim.getUseageTemplate(false) + P.p.txt.parse("") + " works on safe/war zones as well.")); - pageLines.add(p.cmdBase.cmdPeaceful.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().txt.parse("Note: " + FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context) + FactionsPlugin.getInstance().txt.parse("") + " works on safe/war zones as well.")); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPeaceful.getUseageTemplate(context)); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_MOAR_2.toString())); - pageLines.add(p.cmdBase.cmdChatSpy.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdPermanent.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdPermanentPower.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdPowerBoost.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdConfig.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_2.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChatSpy.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanent.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanentPower.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPowerBoost.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdConfig.getUseageTemplate(context)); helpPages.add(pageLines); pageLines = new ArrayList<>(); - pageLines.add(p.txt.parse(TL.COMMAND_HELP_MOAR_3.toString())); - pageLines.add(p.cmdBase.cmdLock.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdReload.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdSaveAll.getUseageTemplate(true)); - pageLines.add(p.cmdBase.cmdVersion.getUseageTemplate(true)); + pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_3.toString())); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLock.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdReload.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSaveAll.getUseageTemplate(context)); + pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdVersion.getUseageTemplate(context)); helpPages.add(pageLines); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdHome.java b/src/main/java/com/massivecraft/factions/cmd/CmdHome.java index 0379f4b4..36d838ad 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdHome.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdHome.java @@ -1,6 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.*; +import com.massivecraft.factions.integration.Essentials; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Role; @@ -23,106 +24,68 @@ public class CmdHome extends FCommand { super(); this.aliases.add("home"); - this.optionalArgs.put("faction", "yours"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.HOME.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.HOME) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.HOME) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // TODO: Hide this command on help also. - - if (!Conf.homesEnabled) { - fme.msg(TL.COMMAND_HOME_DISABLED); + context.msg(TL.COMMAND_HOME_DISABLED); return; } if (!Conf.homesTeleportCommandEnabled) { - fme.msg(TL.COMMAND_HOME_TELEPORTDISABLED); + context.msg(TL.COMMAND_HOME_TELEPORTDISABLED); return; } - Faction factionArg; - - if (args.isEmpty()) - factionArg = myFaction; - else - factionArg = argAsFaction(0); - - - if (factionArg.isSystemFaction()) { - fme.msg(TL.GENERIC_NOPERMISSION, "teleport to system faction home"); + if (!context.faction.hasHome()) { + context.msg(TL.COMMAND_HOME_NOHOME.toString() + (context.fPlayer.getRole().value < Role.MODERATOR.value ? TL.GENERIC_ASKYOURLEADER.toString() : TL.GENERIC_YOUSHOULD.toString())); + context.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context)); return; } - myFaction = factionArg; - - - if (myFaction.isWilderness()) + if (!Conf.homesTeleportAllowedFromEnemyTerritory && context.fPlayer.isInEnemyTerritory()) { + context.msg(TL.COMMAND_HOME_INENEMY); return; + } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.HOME); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "teleport home"); + if (!Conf.homesTeleportAllowedFromDifferentWorld && context.player.getWorld().getUID() != context.faction.getHome().getWorld().getUID()) { + context.msg(TL.COMMAND_HOME_WRONGWORLD); + return; + } + + if (!context.fPlayer.isAdminBypassing()) { + Access access = context.faction.getAccess(context.fPlayer, PermissableAction.HOME); + if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) { + context.fPlayer.msg(TL.GENERIC_FPERM_NOPERMISSION, "teleport home"); return; } } - if (!myFaction.hasHome()) { - fme.msg(TL.COMMAND_HOME_NOHOME.toString() + (fme.getRole().value < Role.MODERATOR.value ? TL.GENERIC_ASKYOURLEADER.toString() : TL.GENERIC_YOUSHOULD.toString())); - fme.sendMessage(p.cmdBase.cmdSethome.getUseageTemplate()); - return; - } - - - if (!Conf.homesTeleportAllowedFromEnemyTerritory && fme.isInEnemyTerritory()) { - fme.msg(TL.COMMAND_HOME_INENEMY); - return; - } - - if (!Conf.homesTeleportAllowedFromDifferentWorld && me.getWorld().getUID() != myFaction.getHome().getWorld().getUID()) { - fme.msg(TL.COMMAND_HOME_WRONGWORLD); - return; - } - - if (!fme.isAdminBypassing()) { - Access access = fme.getFaction().getAccess(fme, PermissableAction.HOME); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "teleport home"); - return; - } - } - - Faction faction = Board.getInstance().getFactionAt(new FLocation(me.getLocation())); - final Location loc = me.getLocation().clone(); + Faction faction = Board.getInstance().getFactionAt(new FLocation(context.player.getLocation())); + final Location loc = context.player.getLocation().clone(); // if player is not in a safe zone or their own faction territory, only allow teleport if no enemies are nearby - if (Conf.homesTeleportAllowedEnemyDistance > 0 && !faction.isSafeZone() && (!fme.isInOwnTerritory() || !Conf.homesTeleportIgnoreEnemiesIfInOwnTerritory)) { + if (Conf.homesTeleportAllowedEnemyDistance > 0 && !faction.isSafeZone() && (!context.fPlayer.isInOwnTerritory() || !Conf.homesTeleportIgnoreEnemiesIfInOwnTerritory)) { World w = loc.getWorld(); double x = loc.getX(); double y = loc.getY(); double z = loc.getZ(); - for (Player p : me.getServer().getOnlinePlayers()) { - if (p == null || !p.isOnline() || p.isDead() || p == me || p.getWorld() != w) { + for (Player p : context.player.getServer().getOnlinePlayers()) { + if (p == null || !p.isOnline() || p.isDead() || p == context.player || p.getWorld() != w) { continue; } FPlayer fp = FPlayers.getInstance().getByPlayer(p); - if (fme.getRelationTo(fp) != Relation.ENEMY || fp.isVanished()) { + if (context.fPlayer.getRelationTo(fp) != Relation.ENEMY || fp.isVanished()) { continue; } @@ -137,37 +100,33 @@ public class CmdHome extends FCommand { continue; } - fme.msg(TL.COMMAND_HOME_ENEMYNEAR, String.valueOf(Conf.homesTeleportAllowedEnemyDistance)); + context.msg(TL.COMMAND_HOME_ENEMYNEAR, String.valueOf(Conf.homesTeleportAllowedEnemyDistance)); return; } } - // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostHome, TL.COMMAND_HOME_TOTELEPORT.toString(), TL.COMMAND_HOME_FORTELEPORT.toString())) { + if (!context.payForCommand(Conf.econCostHome, TL.COMMAND_HOME_TOTELEPORT.toString(), TL.COMMAND_HOME_FORTELEPORT.toString())) { return; } - // TODO: Need to document this better confusing everyone, removed for now. -// // if Essentials teleport handling is enabled and available, pass the teleport off to it (for delay and cooldown) -// if (Essentials.handleTeleport(me, myFaction.getHome())) { -// return; -// } + // if Essentials teleport handling is enabled and available, pass the teleport off to it (for delay and cooldown) + if (Essentials.handleTeleport(context.player, context.faction.getHome())) { + return; + } - - this.doWarmUp(WarmUpUtil.Warmup.HOME, TL.WARMUPS_NOTIFY_TELEPORT, "Home", () -> { + context.doWarmUp(WarmUpUtil.Warmup.HOME, TL.WARMUPS_NOTIFY_TELEPORT, "Home", () -> { // Create a smoke effect if (Conf.homesTeleportCommandSmokeEffectEnabled) { List smokeLocations = new ArrayList<>(); smokeLocations.add(loc); smokeLocations.add(loc.add(0, 1, 0)); - smokeLocations.add(CmdHome.this.myFaction.getHome()); - smokeLocations.add(CmdHome.this.myFaction.getHome().clone().add(0, 1, 0)); + smokeLocations.add(context.faction.getHome()); + smokeLocations.add(context.faction.getHome().clone().add(0, 1, 0)); SmokeUtil.spawnCloudRandom(smokeLocations, Conf.homesTeleportCommandSmokeEffectThickness); } - - CmdHome.this.me.teleport(CmdHome.this.myFaction.getHome()); - }, this.p.getConfig().getLong("warmups.f-home", 0)); + context.player.teleport(context.faction.getHome()); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-home", 0)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdInspect.java b/src/main/java/com/massivecraft/factions/cmd/CmdInspect.java index 5e465e4a..4972bed0 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdInspect.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdInspect.java @@ -9,26 +9,21 @@ public class CmdInspect extends FCommand { this.aliases.add("inspect"); this.aliases.add("ins"); - this.permission = Permission.INSPECT.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.INSPECT) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (fme.isInspectMode()) { - fme.setInspectMode(false); - msg(TL.COMMAND_INSPECT_DISABLED_MSG); + public void perform(CommandContext context) { + if (context.fPlayer.isInspectMode()) { + context.fPlayer.setInspectMode(false); + context.msg(TL.COMMAND_INSPECT_DISABLED_MSG); } else { - fme.setInspectMode(true); - msg(TL.COMMAND_INSPECT_ENABLED); + context.fPlayer.setInspectMode(true); + context.msg(TL.COMMAND_INSPECT_ENABLED); } } @@ -38,3 +33,4 @@ public class CmdInspect extends FCommand { return TL.COMMAND_INSPECT_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdInventorySee.java b/src/main/java/com/massivecraft/factions/cmd/CmdInventorySee.java index 668e301f..fce45aa7 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdInventorySee.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdInventorySee.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; @@ -24,44 +24,38 @@ public class CmdInventorySee extends FCommand { this.requiredArgs.add("member name"); - this.permission = Permission.INVSEE.node; - this.disableOnLock = true; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.INVSEE) + .playerOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("f-inventory-see.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } - Access use = myFaction.getAccess(fme, PermissableAction.TERRITORY); - if (use == Access.DENY || (use == Access.UNDEFINED && !assertMinRole(Role.MODERATOR))) { - fme.msg(TL.GENERIC_NOPERMISSION, "territory"); + Access use = context.fPlayer.getFaction().getAccess(context.fPlayer, PermissableAction.TERRITORY); + if (use == Access.DENY || (use == Access.UNDEFINED && !context.assertMinRole(Role.MODERATOR))) { + context.msg(TL.GENERIC_NOPERMISSION, "territory"); return; } - ArrayList fplayers = myFaction.getOnlinePlayers(); + ArrayList fplayers = context.fPlayer.getFaction().getOnlinePlayers(); - FPlayer targetInv = argAsFPlayer(0); + FPlayer targetInv = context.argAsFPlayer(0); if (targetInv == null || !fplayers.contains(targetInv.getPlayer())) { - fme.msg(TL.PLAYER_NOT_FOUND, Objects.requireNonNull(targetInv).toString()); + context.msg(TL.PLAYER_NOT_FOUND, Objects.requireNonNull(targetInv).toString()); return; } - Inventory inventory = Bukkit.createInventory(me, 36, targetInv.getName() + "'s Inventory"); + Inventory inventory = Bukkit.createInventory(context.player, 36, targetInv.getName() + "'s Inventory"); for (int i = 0; i < 36; i++) if (targetInv.getPlayer().getInventory().getItem(i) != null) inventory.setItem(i, targetInv.getPlayer().getInventory().getItem(i)); - me.openInventory(inventory); + context.player.openInventory(inventory); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdInvite.java b/src/main/java/com/massivecraft/factions/cmd/CmdInvite.java index a177d8f7..fdaf6e57 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdInvite.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdInvite.java @@ -2,9 +2,8 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import mkremins.fanciful.FancyMessage; @@ -18,72 +17,58 @@ public class CmdInvite extends FCommand { this.aliases.add("inv"); this.requiredArgs.add("player name"); - //this.optionalArgs.put("", ""); - this.permission = Permission.INVITE.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.INVITE) + .playerOnly() + .withAction(PermissableAction.INVITE) + .build(); } @Override - public void perform() { - FPlayer target = this.argAsBestFPlayerMatch(0); + public void perform(CommandContext context) { + FPlayer target = context.argAsBestFPlayerMatch(0); if (target == null) { return; } - if (target.getFaction() == myFaction) { - msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), myFaction.getTag()); - msg(TL.GENERIC_YOUMAYWANT.toString() + p.cmdBase.cmdKick.getUseageTemplate(false)); + if (target.getFaction() == context.faction) { + context.msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), context.faction.getTag()); + context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context)); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) { + if (!context.payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) { return; } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.INVITE); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); - return; - } - } - - if (myFaction.isInvited(target)) { - fme.msg(TL.COMMAND_INVITE_ALREADYINVITED, target.getName()); + if (context.faction.isInvited(target)) { + context.msg(TL.COMMAND_INVITE_ALREADYINVITED, target.getName()); return; } - if (myFaction.isBanned(target)) { - fme.msg(TL.COMMAND_INVITE_BANNED, target.getName()); + if (context.faction.isBanned(target)) { + context.msg(TL.COMMAND_INVITE_BANNED, target.getName()); return; } - myFaction.invite(target); + context.faction.invite(target); // Send the invitation to the target player when online, otherwise just ignore if (target.isOnline()) { // Tooltips, colors, and commands only apply to the string immediately before it. - FancyMessage message = new FancyMessage(fme.describeTo(target, true)) + FancyMessage message = new FancyMessage(context.fPlayer.describeTo(target, true)) .tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()) + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()) .then(TL.COMMAND_INVITE_INVITEDYOU.toString()) .color(ChatColor.YELLOW) .tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()) - .then(myFaction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()); + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()) + .then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()); message.send(target.getPlayer()); } - myFaction.msg(TL.COMMAND_INVITE_INVITED, fme.describeTo(myFaction, true), target.describeTo(myFaction)); + context.faction.msg(TL.COMMAND_INVITE_INVITED, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java b/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java index bfc4ddcb..1fb9718c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java @@ -12,120 +12,96 @@ public class CmdJoin extends FCommand { public CmdJoin() { super(); this.aliases.add("join"); - this.requiredArgs.add("faction name"); this.optionalArgs.put("player", "you"); - this.permission = Permission.JOIN.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.JOIN) + .playerOnly() + .build(); } @Override - public void perform() { - Faction faction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.argAsFaction(0); if (faction == null) { return; } - FPlayer fplayer = this.argAsBestFPlayerMatch(1, fme, false); - boolean samePlayer = fplayer == fme; + FPlayer fplayer = context.argAsBestFPlayerMatch(1, context.fPlayer, false); + boolean samePlayer = fplayer == context.fPlayer; - if (!samePlayer && !Permission.JOIN_OTHERS.has(sender, false)) { - msg(TL.COMMAND_JOIN_CANNOTFORCE); + if (!samePlayer && !Permission.JOIN_OTHERS.has(context.sender, false)) { + context.msg(TL.COMMAND_JOIN_CANNOTFORCE); return; } if (!faction.isNormal()) { - msg(TL.COMMAND_JOIN_SYSTEMFACTION); + context.msg(TL.COMMAND_JOIN_SYSTEMFACTION); return; } if (faction == fplayer.getFaction()) { - //TODO:TL - msg(TL.COMMAND_JOIN_ALREADYMEMBER, fplayer.describeTo(fme, true), (samePlayer ? "are" : "is"), faction.getTag(fme)); + context.msg(TL.COMMAND_JOIN_ALREADYMEMBER, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "are" : "is"), faction.getTag(context.fPlayer)); return; } - if (Conf.factionMemberLimit > 0 && faction.getFPlayers().size() >= Conf.factionMemberLimit) { - msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(fme), Conf.factionMemberLimit, fplayer.describeTo(fme, false)); + if (Conf.factionMemberLimit > 0 && faction.getFPlayers().size() >= getFactionMemberLimit(faction)) { + context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), getFactionMemberLimit(faction), fplayer.describeTo(context.fPlayer, false)); return; } if (fplayer.hasFaction()) { - //TODO:TL - msg(TL.COMMAND_JOIN_INOTHERFACTION, fplayer.describeTo(fme, true), (samePlayer ? "your" : "their")); + context.msg(TL.COMMAND_JOIN_INOTHERFACTION, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "your" : "their")); return; } if (!Conf.canLeaveWithNegativePower && fplayer.getPower() < 0) { - msg(TL.COMMAND_JOIN_NEGATIVEPOWER, fplayer.describeTo(fme, true)); + context.msg(TL.COMMAND_JOIN_NEGATIVEPOWER, fplayer.describeTo(context.fPlayer, true)); return; } - if (!(faction.getOpen() || faction.isInvited(fplayer) || fme.isAdminBypassing() || Permission.JOIN_ANY.has(sender, false))) { - msg(TL.COMMAND_JOIN_REQUIRESINVITATION); + if (!(faction.getOpen() || faction.isInvited(fplayer) || context.fPlayer.isAdminBypassing() || Permission.JOIN_ANY.has(context.sender, false))) { + context.msg(TL.COMMAND_JOIN_REQUIRESINVITATION); if (samePlayer) { faction.msg(TL.COMMAND_JOIN_ATTEMPTEDJOIN, fplayer.describeTo(faction, true)); } return; } - int level = faction.getUpgrade(UpgradeType.MEMBERS); - - int limit = 0; - - if (level == 0) { - limit = Conf.factionMemberLimit; - } else { - limit = P.p.getConfig().getInt("fupgrades.MainMenu.Members.Members-Limit.level-" + level); - } - - if (limit > 0 && faction.getFPlayers().size() >= limit && !faction.altInvited(fme)) { - msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(fme), limit, fplayer.describeTo(fme, false)); - return; - } int altLimit = Conf.factionAltMemberLimit; - if (altLimit > 0 && faction.getAltPlayers().size() >= altLimit && !faction.altInvited(fme)) { - msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(fme), altLimit, fplayer.describeTo(fme, false)); + if (altLimit > 0 && faction.getAltPlayers().size() >= altLimit && !faction.altInvited(context.fPlayer)) { + context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), altLimit, fplayer.describeTo(context.fPlayer, false)); return; } - // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay - if (samePlayer && !canAffordCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString())) { + if (samePlayer && !context.canAffordCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString())) { return; } // Check for ban - if (!fme.isAdminBypassing() && faction.isBanned(fme)) { - fme.msg(TL.COMMAND_JOIN_BANNED, faction.getTag(fme)); + if (!context.fPlayer.isAdminBypassing() && faction.isBanned(context.fPlayer)) { + context.msg(TL.COMMAND_JOIN_BANNED, faction.getTag(context.fPlayer)); return; } // trigger the join event (cancellable) - FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(me), faction, FPlayerJoinEvent.PlayerJoinReason.COMMAND); + FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.COMMAND); Bukkit.getServer().getPluginManager().callEvent(joinEvent); if (joinEvent.isCancelled()) { return; } // then make 'em pay (if applicable) - if (samePlayer && !payForCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString(), TL.COMMAND_JOIN_FORJOIN.toString())) { + if (samePlayer && !context.payForCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString(), TL.COMMAND_JOIN_FORJOIN.toString())) { return; } - fme.msg(TL.COMMAND_JOIN_SUCCESS, fplayer.describeTo(fme, true), faction.getTag(fme)); + context.msg(TL.COMMAND_JOIN_SUCCESS, fplayer.describeTo(context.fPlayer, true), faction.getTag(context.fPlayer)); if (!samePlayer) { - fplayer.msg(TL.COMMAND_JOIN_MOVED, fme.describeTo(fplayer, true), faction.getTag(fplayer)); + fplayer.msg(TL.COMMAND_JOIN_MOVED, context.fPlayer.describeTo(fplayer, true), faction.getTag(fplayer)); } faction.msg(TL.COMMAND_JOIN_JOINED, fplayer.describeTo(faction, true)); @@ -140,18 +116,25 @@ public class CmdJoin extends FCommand { } faction.deinvite(fplayer); - fplayer.setRole(faction.getDefaultRole()); + context.fPlayer.setRole(faction.getDefaultRole()); + if (Conf.logFactionJoin) { if (samePlayer) { - P.p.log(TL.COMMAND_JOIN_JOINEDLOG.toString(), fplayer.getName(), faction.getTag()); + FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_JOINEDLOG.toString(), fplayer.getName(), faction.getTag()); } else { - P.p.log(TL.COMMAND_JOIN_MOVEDLOG.toString(), fme.getName(), fplayer.getName(), faction.getTag()); + FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_MOVEDLOG.toString(), context.fPlayer.getName(), fplayer.getName(), faction.getTag()); } } } + private int getFactionMemberLimit(Faction f) { + if (f.getUpgrade(UpgradeType.MEMBERS) == 0) return Conf.factionMemberLimit; + return Conf.factionMemberLimit + FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.Member-Boost.level-" + f.getUpgrade(UpgradeType.MEMBERS)); + } + @Override public TL getUsageTranslation() { return TL.COMMAND_JOIN_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdKick.java b/src/main/java/com/massivecraft/factions/cmd/CmdKick.java index cd4ad712..b7662261 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdKick.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdKick.java @@ -3,80 +3,69 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.event.FPlayerLeaveEvent; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import mkremins.fanciful.FancyMessage; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.ConsoleCommandSender; public class CmdKick extends FCommand { public CmdKick() { super(); this.aliases.add("kick"); - this.optionalArgs.put("player name", "player name"); - //this.optionalArgs.put("", ""); - this.permission = Permission.KICK.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.KICK) + .playerOnly() + .withAction(PermissableAction.KICK) + .memberOnly() + .build(); } @Override - public void perform() { - FPlayer toKick = this.argIsSet(0) ? this.argAsBestFPlayerMatch(0) : null; + public void perform(CommandContext context) { + FPlayer toKick = context.argIsSet(0) ? context.argAsBestFPlayerMatch(0) : null; if (toKick == null) { FancyMessage msg = new FancyMessage(TL.COMMAND_KICK_CANDIDATES.toString()).color(ChatColor.GOLD); - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.NORMAL)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s); } - if (fme.getRole().isAtLeast(Role.COLEADER)) { + if (context.fPlayer.getRole().isAtLeast(Role.COLEADER)) { // For both coleader and admin, add mods. - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.MODERATOR)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.GRAY).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s); } - if (fme.getRole() == Role.LEADER) { + if (context.fPlayer.getRole() == Role.LEADER) { // Only add coleader to this for the leader. - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.COLEADER)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.COLEADER)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.RED).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s); } } } - sendFancyMessage(msg); + context.sendFancyMessage(msg); return; } - if (fme == toKick) { - msg(TL.COMMAND_KICK_SELF); - msg(TL.GENERIC_YOUMAYWANT.toString() + p.cmdBase.cmdLeave.getUseageTemplate(false)); - return; - } - - if (toKick.isAlt()) { - msg(P.p.color("&cToo few arguments, &eUse like this:")); - msg(P.p.color("&b/f alts,alt kick &3")); + if (context.fPlayer == toKick) { + context.msg(TL.COMMAND_KICK_SELF); + context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context)); return; } Faction toKickFaction = toKick.getFaction(); if (toKickFaction.isWilderness()) { - sender.sendMessage(TL.COMMAND_KICK_NONE.toString()); + context.sender.sendMessage(TL.COMMAND_KICK_NONE.toString()); return; } @@ -85,28 +74,23 @@ public class CmdKick extends FCommand { // - Check for the kick permission. // - Make sure the player is in the faction. // - Make sure the kicked player has lower rank than the kicker. - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.KICK); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_NOPERMISSION, "kick"); + if (!context.fPlayer.isAdminBypassing()) { + if (toKickFaction != context.faction) { + context.msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(context.fPlayer, true), context.faction.describeTo(context.fPlayer)); return; } - if (toKickFaction != myFaction) { - msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(fme, true), myFaction.describeTo(fme)); - return; - } - if (toKick.getRole().value >= fme.getRole().value) { - msg(TL.COMMAND_KICK_INSUFFICIENTRANK); + if (toKick.getRole().value >= context.fPlayer.getRole().value) { + context.msg(TL.COMMAND_KICK_INSUFFICIENTRANK); return; } if (!Conf.canLeaveWithNegativePower && toKick.getPower() < 0) { - msg(TL.COMMAND_KICK_NEGATIVEPOWER); + context.msg(TL.COMMAND_KICK_NEGATIVEPOWER); return; } } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay - if (!canAffordCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString())) { + if (!context.canAffordCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString())) { return; } @@ -118,18 +102,18 @@ public class CmdKick extends FCommand { } // then make 'em pay (if applicable) - if (!payForCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString(), TL.COMMAND_KICK_FORKICK.toString())) { + if (!context.payForCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString(), TL.COMMAND_KICK_FORKICK.toString())) { return; } - toKickFaction.msg(TL.COMMAND_KICK_FACTION, fme.describeTo(toKickFaction, true), toKick.describeTo(toKickFaction, true)); + toKickFaction.msg(TL.COMMAND_KICK_FACTION, context.fPlayer.describeTo(toKickFaction, true), toKick.describeTo(toKickFaction, true)); - toKick.msg(TL.COMMAND_KICK_KICKED, fme.describeTo(toKick, true), toKickFaction.describeTo(toKick)); - if (toKickFaction != myFaction) { - fme.msg(TL.COMMAND_KICK_KICKS, toKick.describeTo(fme), toKickFaction.describeTo(fme)); + toKick.msg(TL.COMMAND_KICK_KICKED, context.fPlayer.describeTo(toKick, true), toKickFaction.describeTo(toKick)); + if (toKickFaction != context.faction) { + context.fPlayer.msg(TL.COMMAND_KICK_KICKS, toKick.describeTo(context.fPlayer), toKickFaction.describeTo(context.fPlayer)); } if (Conf.logFactionKick) { - P.p.log((senderIsConsole ? "A console command" : fme.getName()) + " kicked " + toKick.getName() + " from the faction: " + toKickFaction.getTag()); + FactionsPlugin.getInstance().log((context.sender instanceof ConsoleCommandSender ? "A console command" : context.fPlayer.getName()) + " kicked " + toKick.getName() + " from the faction: " + toKickFaction.getTag()); } if (toKick.getRole() == Role.LEADER) { toKickFaction.promoteNewLeader(); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdKillHolograms.java b/src/main/java/com/massivecraft/factions/cmd/CmdKillHolograms.java index 0ee95a2b..3b1d7ceb 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdKillHolograms.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdKillHolograms.java @@ -6,25 +6,18 @@ import com.massivecraft.factions.zcore.util.TL; public class CmdKillHolograms extends FCommand { public CmdKillHolograms() { super(); - this.aliases.add("killholos"); - this.requiredArgs.add("radius"); - this.permission = Permission.KILLHOLOS.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.KILLHOLOS) + .playerOnly() + .build(); } @Override - public void perform() { - me.sendMessage("Killing Invisible Armor Stands.."); - me.chat("/minecraft:kill @e[type=ArmorStand,r=" + argAsInt(0) + "]"); + public void perform(CommandContext context) { + context.player.sendMessage("Killing Invisible Armor Stands.."); + context.player.chat("/minecraft:kill @e[type=ArmorStand,r=" + context.argAsInt(0) + "]"); } @@ -33,3 +26,4 @@ public class CmdKillHolograms extends FCommand { return TL.COMMAND_KILLHOLOGRAMS_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java b/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java index b28f4ab6..a7a1d9c9 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java @@ -9,23 +9,15 @@ public class CmdLeave extends FCommand { super(); this.aliases.add("leave"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.LEAVE.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.LEAVE) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - fme.leave(true); + public void perform(CommandContext context) { + context.fPlayer.leave(true); } @Override @@ -33,4 +25,4 @@ public class CmdLeave extends FCommand { return TL.LEAVE_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdList.java b/src/main/java/com/massivecraft/factions/cmd/CmdList.java index 54504e88..2daffc04 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdList.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdList.java @@ -3,13 +3,12 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import com.massivecraft.factions.zcore.util.TagUtil; import java.util.ArrayList; -import java.util.Collections; import java.util.List; @@ -30,20 +29,15 @@ public class CmdList extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("page", "1"); - this.permission = Permission.LIST.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.LIST) + .playerOnly() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostList, "to list the factions", "for listing the factions")) + if (!context.payForCommand(Conf.econCostList, "to list the factions", "for listing the factions")) return; ArrayList factionList = Factions.getInstance().getAllFactions(); @@ -52,14 +46,14 @@ public class CmdList extends FCommand { factionList.remove(Factions.getInstance().getWarZone()); // remove exempt factions - if (fme != null && fme.getPlayer() != null && !fme.getPlayer().hasPermission("factions.show.bypassexempt")) { - List exemptFactions = P.p.getConfig().getStringList("show-exempt"); + if (context.fPlayer != null && context.fPlayer.getPlayer() != null && !context.fPlayer.getPlayer().hasPermission("factions.show.bypassexempt")) { + List exemptFactions = FactionsPlugin.getInstance().getConfig().getStringList("show-exempt"); factionList.removeIf(next -> exemptFactions.contains(next.getTag())); } // Sort by total followers first - Collections.sort(factionList, (f1, f2) -> { + factionList.sort((f1, f2) -> { int f1Size = f1.getFPlayers().size(); int f2Size = f2.getFPlayers().size(); if (f1Size < f2Size) { @@ -87,7 +81,7 @@ public class CmdList extends FCommand { factionList.add(0, Factions.getInstance().getWilderness()); final int pageheight = 9; - int pagenumber = this.argAsInt(0, 1); + int pagenumber = context.argAsInt(0, 1); int pagecount = (factionList.size() / pageheight) + 1; if (pagenumber > pagecount) { pagenumber = pagecount; @@ -101,18 +95,18 @@ public class CmdList extends FCommand { } - String header = p.getConfig().getString("list.header", defaults[0]); + String header = FactionsPlugin.getInstance().getConfig().getString("list.header", defaults[0]); header = header.replace("{pagenumber}", String.valueOf(pagenumber)).replace("{pagecount}", String.valueOf(pagecount)); - lines.add(p.txt.parse(header)); + lines.add(FactionsPlugin.getInstance().txt.parse(header)); for (Faction faction : factionList.subList(start, end)) { if (faction.isWilderness()) { - lines.add(p.txt.parse(TagUtil.parsePlain(faction, p.getConfig().getString("list.factionless", defaults[1])))); + lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, FactionsPlugin.getInstance().getConfig().getString("list.factionless", defaults[1])))); continue; } - lines.add(p.txt.parse(TagUtil.parsePlain(faction, fme, p.getConfig().getString("list.entry", defaults[2])))); + lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, context.fPlayer, FactionsPlugin.getInstance().getConfig().getString("list.entry", defaults[2])))); } - sendMessage(lines); + context.sendMessage(lines); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java index 37c1bdac..d0fe8b5e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java @@ -1,5 +1,6 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -15,25 +16,17 @@ public class CmdLock extends FCommand { public CmdLock() { super(); this.aliases.add("lock"); - - //this.requiredArgs.add(""); this.optionalArgs.put("on/off", "flip"); - this.permission = Permission.LOCK.node; - this.disableOnLock = false; - - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.LOCK) + .playerOnly() + .build(); } @Override - public void perform() { - p.setLocked(this.argAsBool(0, !p.getLocked())); - msg(p.getLocked() ? TL.COMMAND_LOCK_LOCKED : TL.COMMAND_LOCK_UNLOCKED); + public void perform(CommandContext context) { + FactionsPlugin.getInstance().setLocked(context.argAsBool(0, !FactionsPlugin.getInstance().getLocked())); + context.msg(FactionsPlugin.getInstance().getLocked() ? TL.COMMAND_LOCK_LOCKED : TL.COMMAND_LOCK_UNLOCKED); } @Override @@ -42,3 +35,4 @@ public class CmdLock extends FCommand { } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLogins.java b/src/main/java/com/massivecraft/factions/cmd/CmdLogins.java index b310cbd0..8176fd7e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLogins.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLogins.java @@ -11,17 +11,18 @@ public class CmdLogins extends FCommand { this.aliases.add("logins"); this.aliases.add("logout"); this.aliases.add("logouts"); - this.senderMustBePlayer = true; - this.senderMustBeMember = true; - this.permission = Permission.MONITOR_LOGINS.node; + this.requirements = new CommandRequirements.Builder(Permission.MONITOR_LOGINS) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - boolean monitor = fme.isMonitoringJoins(); - fme.msg(TL.COMMAND_LOGINS_TOGGLE, String.valueOf(!monitor)); - fme.setMonitorJoins(!monitor); + public void perform(CommandContext context) { + boolean monitor = context.fPlayer.isMonitoringJoins(); + context.msg(TL.COMMAND_LOGINS_TOGGLE, String.valueOf(!monitor)); + context.fPlayer.setMonitorJoins(!monitor); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLowPower.java b/src/main/java/com/massivecraft/factions/cmd/CmdLowPower.java index 9d40fbe6..88fbf29d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLowPower.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLowPower.java @@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdLowPower extends FCommand { @@ -10,26 +11,21 @@ public class CmdLowPower extends FCommand { super(); this.aliases.add("lowpower"); - - this.disableOnLock = false; - - senderMustBePlayer = true; - - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.POWER_ANY) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { double maxPower = Conf.powerPlayerMax; String format = TL.COMMAND_LOWPOWER_FORMAT.toString(); - msg(TL.COMMAND_LOWPOWER_HEADER.toString().replace("{maxpower}", (int) maxPower + "")); - for (FPlayer fPlayer : fme.getFaction().getFPlayers()) { + context.msg(TL.COMMAND_LOWPOWER_HEADER.toString().replace("{maxpower}", (int) maxPower + "")); + for (FPlayer fPlayer : context.faction.getFPlayers()) { if (fPlayer.getPower() < maxPower) { - sendMessage(format.replace("{player}", fPlayer.getName()).replace("{player_power}", (int) fPlayer.getPower() + "").replace("{maxpower}", (int) maxPower + "")); + context.sendMessage(format.replace("{player}", fPlayer.getName()).replace("{player_power}", (int) fPlayer.getPower() + "").replace("{maxpower}", (int) maxPower + "")); } } } @@ -40,4 +36,4 @@ public class CmdLowPower extends FCommand { } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdMap.java b/src/main/java/com/massivecraft/factions/cmd/CmdMap.java index 14ec1fce..3c86e48c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdMap.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdMap.java @@ -12,54 +12,47 @@ public class CmdMap extends FCommand { public CmdMap() { super(); this.aliases.add("map"); - - //this.requiredArgs.add(""); this.optionalArgs.put("on/off", "once"); - this.permission = Permission.MAP.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MAP) + .playerOnly() + .build(); } @Override - public void perform() { - if (this.argIsSet(0)) { - if (this.argAsBool(0, !fme.isMapAutoUpdating())) { + public void perform(CommandContext context) { + if (context.argIsSet(0)) { + if (context.argAsBool(0, !context.fPlayer.isMapAutoUpdating())) { // Turn on // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostMap, "to show the map", "for showing the map")) { + if (!context.payForCommand(Conf.econCostMap, "to show the map", "for showing the map")) { return; } - fme.setMapAutoUpdating(true); - msg(TL.COMMAND_MAP_UPDATE_ENABLED); + context.fPlayer.setMapAutoUpdating(true); + context.msg(TL.COMMAND_MAP_UPDATE_ENABLED); // And show the map once - showMap(); + showMap(context); } else { // Turn off - fme.setMapAutoUpdating(false); - msg(TL.COMMAND_MAP_UPDATE_DISABLED); + context.fPlayer.setMapAutoUpdating(false); + context.msg(TL.COMMAND_MAP_UPDATE_DISABLED); + } } else { // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostMap, TL.COMMAND_MAP_TOSHOW, TL.COMMAND_MAP_FORSHOW)) { + if (!context.payForCommand(Conf.econCostMap, TL.COMMAND_MAP_TOSHOW, TL.COMMAND_MAP_FORSHOW)) { return; } - showMap(); + showMap(context); } } - public void showMap() { - sendFancyMessage(Board.getInstance().getMap(fme, new FLocation(fme), fme.getPlayer().getLocation().getYaw())); + public void showMap(CommandContext context) { + context.sendFancyMessage(Board.getInstance().getMap(context.fPlayer, new FLocation(context.fPlayer), context.player.getLocation().getYaw())); } @Override @@ -67,4 +60,4 @@ public class CmdMap extends FCommand { return TL.COMMAND_MAP_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdMapHeight.java b/src/main/java/com/massivecraft/factions/cmd/CmdMapHeight.java index eac2f9b2..c09157bd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdMapHeight.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdMapHeight.java @@ -10,26 +10,24 @@ public class CmdMapHeight extends FCommand { this.aliases.add("mapheight"); this.aliases.add("mh"); - this.optionalArgs.put("height", "height"); - this.permission = Permission.MAPHEIGHT.node; - - - this.senderMustBePlayer = true; + this.requirements = new CommandRequirements.Builder(Permission.MAPHEIGHT) + .playerOnly() + .build(); } @Override - public void perform() { - if (args.size() == 0) { - fme.sendMessage(TL.COMMAND_MAPHEIGHT_CURRENT.format(fme.getMapHeight())); + public void perform(CommandContext context) { + if (context.args.size() == 0) { + context.fPlayer.sendMessage(TL.COMMAND_MAPHEIGHT_CURRENT.format(context.fPlayer.getMapHeight())); return; } - int height = argAsInt(0); + int height = context.argAsInt(0); - fme.setMapHeight(height); - fme.sendMessage(TL.COMMAND_MAPHEIGHT_SET.format(fme.getMapHeight())); + context.fPlayer.setMapHeight(height); + context.msg(TL.COMMAND_MAPHEIGHT_SET.format(context.fPlayer.getMapHeight())); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java index a14a81f7..d325119d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java @@ -19,58 +19,46 @@ public class CmdMod extends FCommand { this.aliases.add("setofficer"); this.optionalArgs.put("player name", "name"); - //this.optionalArgs.put("", ""); - this.permission = Permission.MOD.node; - this.disableOnLock = true; - - - senderMustBePlayer = false; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MOD) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - FPlayer you = this.argAsBestFPlayerMatch(0); + public void perform(CommandContext context) { + FPlayer you = context.argAsBestFPlayerMatch(0); if (you == null) { FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD); - for (FPlayer player : myFaction.getFPlayersWhereRole(Role.NORMAL)) { + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) { String s = player.getName(); msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s); } - sendFancyMessage(msg); + context.sendFancyMessage(msg); return; } - boolean permAny = Permission.MOD_ANY.has(sender, false); + boolean permAny = Permission.MOD_ANY.has(context.sender, false); Faction targetFaction = you.getFaction(); - - if (you.isAlt()) { - msg(ChatColor.RED + "You can not promote alt accounts."); + if (targetFaction != context.faction && !permAny) { + context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true)); return; } - if (targetFaction != myFaction && !permAny) { - msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(fme, true)); + if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) { + context.msg(TL.COMMAND_MOD_NOTADMIN); return; } - if (fme != null && fme.getRole() != Role.LEADER && !permAny) { - msg(TL.COMMAND_MOD_NOTADMIN); - return; - } - - if (you == fme && !permAny) { - msg(TL.COMMAND_MOD_SELF); + if (you == context.fPlayer && !permAny) { + context.msg(TL.COMMAND_MOD_SELF); return; } if (you.getRole() == Role.LEADER) { - msg(TL.COMMAND_MOD_TARGETISADMIN); + context.msg(TL.COMMAND_MOD_TARGETISADMIN); return; } @@ -78,12 +66,12 @@ public class CmdMod extends FCommand { // Revoke you.setRole(Role.NORMAL); targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true)); - msg(TL.COMMAND_MOD_REVOKES, you.describeTo(fme, true)); + context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true)); } else { // Give you.setRole(Role.MODERATOR); targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true)); - msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(fme, true)); + context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true)); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java b/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java index 361e632f..4e5e18d2 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java @@ -17,30 +17,24 @@ public class CmdModifyPower extends FCommand { this.requiredArgs.add("name"); this.requiredArgs.add("power"); - this.permission = Permission.MODIFY_POWER.node; // admin only perm. - - // Let's not require anything and let console modify this as well. - this.senderMustBeAdmin = false; - this.senderMustBePlayer = false; - this.senderMustBeMember = false; - senderMustBeColeader = false; - this.senderMustBeModerator = false; + this.requirements = new CommandRequirements.Builder(Permission.MODIFY_POWER) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // /f modify # - FPlayer player = argAsBestFPlayerMatch(0); - Double number = argAsDouble(1); // returns null if not a Double. + FPlayer player = context.argAsBestFPlayerMatch(0); + Double number = context.argAsDouble(1); // returns null if not a Double. if (player == null || number == null) { - sender.sendMessage(getHelpShort()); + context.sender.sendMessage(getHelpShort()); return; } player.alterPower(number); int newPower = player.getPowerRounded(); // int so we don't have super long doubles. - msg(TL.COMMAND_MODIFYPOWER_ADDED, number, player.getName(), newPower); + context.msg(TL.COMMAND_MODIFYPOWER_ADDED, number, player.getName(), newPower); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdNear.java b/src/main/java/com/massivecraft/factions/cmd/CmdNear.java index 2feeab45..3317f8ef 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdNear.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdNear.java @@ -2,7 +2,8 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -10,37 +11,32 @@ import org.bukkit.entity.Player; public class CmdNear extends FCommand { public CmdNear() { super(); - this.aliases.add("near"); this.aliases.add("nearby"); - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.NEAR) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fnear.Enabled")) { - fme.msg(TL.COMMAND_NEAR_DISABLED_MSG); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fnear.Enabled")) { + context.msg(TL.COMMAND_NEAR_DISABLED_MSG); return; } - double range = P.p.getConfig().getInt("fnear.Radius"); + double range = FactionsPlugin.getInstance().getConfig().getInt("fnear.Radius"); String format = TL.COMMAND_NEAR_FORMAT.toString(); - fme.msg(TL.COMMAND_NEAR_USE_MSG); - for (Entity e : me.getNearbyEntities(range, 255, range)) { + context.msg(TL.COMMAND_NEAR_USE_MSG); + for (Entity e : context.player.getNearbyEntities(range, 255, range)) { if (e instanceof Player) { Player player = (((Player) e).getPlayer()); FPlayer fplayer = FPlayers.getInstance().getByPlayer(player); - if (fme.getFaction() == fplayer.getFaction()) { - double distance = me.getLocation().distance(player.getLocation()); - fme.sendMessage(format.replace("{playername}", player.getDisplayName()).replace("{distance}", (int) distance + "")); + if (context.faction == fplayer.getFaction()) { + double distance = context.player.getLocation().distance(player.getLocation()); + context.sendMessage(format.replace("{playername}", player.getDisplayName()).replace("{distance}", (int) distance + "")); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdNotifications.java b/src/main/java/com/massivecraft/factions/cmd/CmdNotifications.java deleted file mode 100644 index a80d5d91..00000000 --- a/src/main/java/com/massivecraft/factions/cmd/CmdNotifications.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.massivecraft.factions.cmd; - -import com.massivecraft.factions.zcore.util.TL; - -public class CmdNotifications extends FCommand { - - public CmdNotifications() { - this.aliases.add("notifications"); - this.aliases.add("messages"); - this.optionalArgs.put("on/off", "flip"); - this.senderMustBeMember = true; - this.senderMustBeModerator = false; - } - - @Override - public void perform() { - if (args.size() == 0) { - toggleNotifications(!fme.hasNotificationsEnabled()); - } else if (args.size() == 1) { - toggleNotifications(argAsBool(0)); - } - } - - private void toggleNotifications(boolean toggle) { - fme.setNotificationsEnabled(toggle); - if (toggle) { - fme.msg(TL.COMMAND_NOTIFICATIONS_TOGGLED_ON); - } else { - fme.msg(TL.COMMAND_NOTIFICATIONS_TOGGLED_OFF); - } - } - - @Override - public TL getUsageTranslation() { - return TL.COMMAND_NOTIFICATIONS_DESCRIPTION; - } -} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdOpen.java b/src/main/java/com/massivecraft/factions/cmd/CmdOpen.java index b7587b9e..373ed801 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdOpen.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdOpen.java @@ -3,8 +3,8 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.util.TL; public class CmdOpen extends FCommand { @@ -12,47 +12,34 @@ public class CmdOpen extends FCommand { public CmdOpen() { super(); this.aliases.add("open"); - - //this.requiredArgs.add(""); this.optionalArgs.put("yes/no", "flip"); - this.permission = Permission.OPEN.node; - this.disableOnLock = false; - this.disableOnSpam = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.OPEN) + .withRole(Role.COLEADER) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostOpen, TL.COMMAND_OPEN_TOOPEN, TL.COMMAND_OPEN_FOROPEN)) { + if (!context.payForCommand(Conf.econCostOpen, TL.COMMAND_OPEN_TOOPEN, TL.COMMAND_OPEN_FOROPEN)) { return; } - if (!fme.isCooldownEnded("open")) { - fme.msg(TL.COMMAND_ONCOOOLDOWN, fme.getCooldown("open")); - return; - } + context.faction.setOpen(context.argAsBool(0, !context.faction.getOpen())); - myFaction.setOpen(this.argAsBool(0, !myFaction.getOpen())); - - String open = myFaction.getOpen() ? TL.COMMAND_OPEN_OPEN.toString() : TL.COMMAND_OPEN_CLOSED.toString(); + String open = context.faction.getOpen() ? TL.COMMAND_OPEN_OPEN.toString() : TL.COMMAND_OPEN_CLOSED.toString(); // Inform for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - if (fplayer.getFactionId().equals(myFaction.getId())) { - fplayer.msg(TL.COMMAND_OPEN_CHANGES, fme.getName(), open); + if (fplayer.getFactionId().equals(context.faction.getId())) { + fplayer.msg(TL.COMMAND_OPEN_CHANGES, context.fPlayer.getName(), open); continue; } - fplayer.msg(TL.COMMAND_OPEN_CHANGED, myFaction.getTag(fplayer.getFaction()), open); + fplayer.msg(TL.COMMAND_OPEN_CHANGED, context.faction.getTag(fplayer.getFaction()), open); } - fme.setCooldown("open", System.currentTimeMillis() + (P.p.getConfig().getInt("fcooldowns.f-open") * 1000)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdOwner.java b/src/main/java/com/massivecraft/factions/cmd/CmdOwner.java index 9811f02c..05c3ec14 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdOwner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdOwner.java @@ -11,93 +11,87 @@ public class CmdOwner extends FCommand { public CmdOwner() { super(); this.aliases.add("owner"); - - //this.requiredArgs.add(""); this.optionalArgs.put("player name", "you"); - this.permission = Permission.OWNER.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.OWNER) + .withRole(Role.LEADER) + .playerOnly() + .memberOnly() + .build(); } // TODO: Fix colors! @Override - public void perform() { - boolean hasBypass = fme.isAdminBypassing(); + public void perform(CommandContext context) { + boolean hasBypass = context.fPlayer.isAdminBypassing(); - if (!hasBypass && !assertHasFaction()) { + if (!hasBypass && !context.assertHasFaction()) { return; } if (!Conf.ownedAreasEnabled) { - fme.msg(TL.COMMAND_OWNER_DISABLED); + context.msg(TL.COMMAND_OWNER_DISABLED); return; } - if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && myFaction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) { - fme.msg(TL.COMMAND_OWNER_LIMIT, Conf.ownedAreasLimitPerFaction); + if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && context.faction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) { + context.msg(TL.COMMAND_OWNER_LIMIT, Conf.ownedAreasLimitPerFaction); return; } - if (!hasBypass && !assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.LEADER)) { + if (!hasBypass && !context.assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.LEADER)) { return; } - FLocation flocation = new FLocation(fme); + FLocation flocation = new FLocation(context.fPlayer); Faction factionHere = Board.getInstance().getFactionAt(flocation); - if (factionHere != myFaction) { + if (factionHere != context.faction) { if (!factionHere.isNormal()) { - fme.msg(TL.COMMAND_OWNER_NOTCLAIMED); + context.msg(TL.COMMAND_OWNER_NOTCLAIMED); return; } if (!hasBypass) { - fme.msg(TL.COMMAND_OWNER_WRONGFACTION); + context.msg(TL.COMMAND_OWNER_WRONGFACTION); return; } } - FPlayer target = this.argAsBestFPlayerMatch(0, fme); + FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer); if (target == null) { return; } String playerName = target.getName(); - if (target.getFaction() != myFaction) { - fme.msg(TL.COMMAND_OWNER_NOTMEMBER, playerName); + if (target.getFaction() != context.faction) { + context.msg(TL.COMMAND_OWNER_NOTMEMBER, playerName); return; } // if no player name was passed, and this claim does already have owners set, clear them - if (args.isEmpty() && myFaction.doesLocationHaveOwnersSet(flocation)) { - myFaction.clearClaimOwnership(flocation); - fme.msg(TL.COMMAND_OWNER_CLEARED); + if (context.args.isEmpty() && context.faction.doesLocationHaveOwnersSet(flocation)) { + context.faction.clearClaimOwnership(flocation); + context.msg(TL.COMMAND_OWNER_CLEARED); return; } - if (myFaction.isPlayerInOwnerList(target, flocation)) { - myFaction.removePlayerAsOwner(target, flocation); - fme.msg(TL.COMMAND_OWNER_REMOVED, playerName); + if (context.faction.isPlayerInOwnerList(target, flocation)) { + context.faction.removePlayerAsOwner(target, flocation); + context.msg(TL.COMMAND_OWNER_REMOVED, playerName); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostOwner, TL.COMMAND_OWNER_TOSET, TL.COMMAND_OWNER_FORSET)) { + if (!context.payForCommand(Conf.econCostOwner, TL.COMMAND_OWNER_TOSET, TL.COMMAND_OWNER_FORSET)) { return; } - myFaction.setPlayerAsOwner(target, flocation); + context.faction.setPlayerAsOwner(target, flocation); - fme.msg(TL.COMMAND_OWNER_ADDED, playerName); + context.msg(TL.COMMAND_OWNER_ADDED, playerName); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdOwnerList.java b/src/main/java/com/massivecraft/factions/cmd/CmdOwnerList.java index ee49571e..94ce0830 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdOwnerList.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdOwnerList.java @@ -13,60 +13,52 @@ public class CmdOwnerList extends FCommand { super(); this.aliases.add("ownerlist"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.OWNERLIST.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.OWNERLIST) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - boolean hasBypass = fme.isAdminBypassing(); + public void perform(CommandContext context) { + boolean hasBypass = context.fPlayer.isAdminBypassing(); - if (!hasBypass && !assertHasFaction()) { + if (!hasBypass && !context.assertHasFaction()) { return; } if (!Conf.ownedAreasEnabled) { - fme.msg(TL.COMMAND_OWNERLIST_DISABLED); + context.msg(TL.COMMAND_OWNERLIST_DISABLED); return; } - FLocation flocation = new FLocation(fme); + FLocation flocation = new FLocation(context.fPlayer); - if (Board.getInstance().getFactionAt(flocation) != myFaction) { + if (Board.getInstance().getFactionAt(flocation) != context.faction) { if (!hasBypass) { - fme.msg(TL.COMMAND_OWNERLIST_WRONGFACTION); + context.msg(TL.COMMAND_OWNERLIST_WRONGFACTION); return; } //TODO: This code won't ever be called. - myFaction = Board.getInstance().getFactionAt(flocation); - if (!myFaction.isNormal()) { - fme.msg(TL.COMMAND_OWNERLIST_NOTCLAIMED); + context.faction = Board.getInstance().getFactionAt(flocation); + if (!context.faction.isNormal()) { + context.msg(TL.COMMAND_OWNERLIST_NOTCLAIMED); return; } } - String owners = myFaction.getOwnerListString(flocation); + String owners = context.faction.getOwnerListString(flocation); if (owners == null || owners.isEmpty()) { - fme.msg(TL.COMMAND_OWNERLIST_NONE); + context.msg(TL.COMMAND_OWNERLIST_NONE); return; } - fme.msg(TL.COMMAND_OWNERLIST_OWNERS, owners); + context.msg(TL.COMMAND_OWNERLIST_OWNERS, owners); } @Override public TL getUsageTranslation() { return TL.COMMAND_OWNERLIST_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java index 672d2088..cf06d90a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java @@ -1,57 +1,50 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdPaypalSee extends FCommand { public CmdPaypalSee() { - aliases.add("seepaypal"); - aliases.add("paypal"); + this.aliases.add("seepaypal"); + this.aliases.add("paypal"); - optionalArgs.put("faction", "yours"); - - permission = Permission.PAYPAL.node; - - disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = true; + this.optionalArgs.put("faction", "yours"); + this.requirements = new CommandRequirements.Builder(Permission.PAYPAL) + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fpaypal.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } - if (args.size() == 0) { - if (myFaction.getPaypal().isEmpty()) { - msg(TL.COMMAND_PAYPAL_NOTSET); + if (context.args.size() == 0) { + if (context.fPlayer.getFaction().getPaypal().isEmpty()) { + context.msg(TL.COMMAND_PAYPAL_NOTSET); } else { - msg(TL.PAYPALSEE_PLAYER_PAYPAL, myFaction.getPaypal()); + context.msg(TL.PAYPALSEE_PLAYER_PAYPAL, context.fPlayer.getFaction().getPaypal()); } - } else if (args.size() == 1) { - if (fme.isAdminBypassing()) { - Faction faction = argAsFaction(0); + } else if (context.args.size() == 1) { + if (context.fPlayer.isAdminBypassing()) { + Faction faction = context.argAsFaction(0); if (faction != null) { if (faction.getPaypal().isEmpty()) { - msg(TL.COMMAND_PAYPALSEE_FACTION_NOTSET, faction.getTag()); + context.msg(TL.COMMAND_PAYPALSEE_FACTION_NOTSET, faction.getTag()); } else { - msg(TL.COMMAND_PAYPALSEE_FACTION_PAYPAL.toString(), faction.getTag(), faction.getPaypal()); + context.msg(TL.COMMAND_PAYPALSEE_FACTION_PAYPAL.toString(), faction.getTag(), faction.getPaypal()); } } } else { - msg(TL.GENERIC_NOPERMISSION, "see another factions paypal."); + context.msg(TL.GENERIC_NOPERMISSION, "see another factions paypal."); } } else { - msg(P.p.cmdBase.cmdPaypalSee.getUseageTemplate()); + context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSee.getUseageTemplate(context)); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSet.java b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSet.java index 661518c3..0fd58f83 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSet.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSet.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -14,47 +14,43 @@ public class CmdPaypalSet extends FCommand { this.requiredArgs.add("email"); - this.permission = Permission.PAYPALSET.node; - - this.disableOnLock = false; - this.senderMustBePlayer = true; - this.senderMustBeMember = true; - this.senderMustBeModerator = false; - this.senderMustBeColeader = false; - this.senderMustBeAdmin = true; + this.requirements = new CommandRequirements.Builder(Permission.PAYPALSET) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fpaypal.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) { + context.fPlayer.msg(TL.GENERIC_DISABLED); return; } - if (args.size() == 1) { - if (isEmail(argAsString(0))) { - myFaction.paypalSet(argAsString(0)); - msg(TL.COMMAND_PAYPALSET_SUCCESSFUL, argAsString(0)); + if (context.args.size() == 1) { + if (isEmail(context.argAsString(0))) { + context.fPlayer.getFaction().paypalSet(context.argAsString(0)); + context.msg(TL.COMMAND_PAYPALSET_SUCCESSFUL, context.argAsString(0)); } else { - msg(TL.COMMAND_PAYPALSET_NOTEMAIL, argAsString(0)); + context.msg(TL.COMMAND_PAYPALSET_NOTEMAIL, context.argAsString(0)); } - } else if (args.size() == 2) { - if (fme.isAdminBypassing()) { - Faction faction = argAsFaction(1); + } else if (context.args.size() == 2) { + if (context.fPlayer.isAdminBypassing()) { + Faction faction = context.argAsFaction(1); if (faction != null) { - if (isEmail(argAsString(0))) { - myFaction.paypalSet(argAsString(0)); - msg(TL.COMMAND_PAYPALSET_ADMIN_SUCCESSFUL, faction.getTag(), argAsString(0)); + if (isEmail(context.argAsString(0))) { + context.fPlayer.getFaction().paypalSet(context.argAsString(0)); + context.msg(TL.COMMAND_PAYPALSET_ADMIN_SUCCESSFUL, faction.getTag(), context.argAsString(0)); } else { - msg(TL.COMMAND_PAYPALSET_ADMIN_FAILED, argAsString(0)); + context.msg(TL.COMMAND_PAYPALSET_ADMIN_FAILED, context.argAsString(0)); } } } else { - msg(TL.GENERIC_NOPERMISSION, "set another factions paypal!"); + context.msg(TL.GENERIC_NOPERMISSION, "set another factions paypal!"); } } else { - msg(P.p.cmdBase.cmdPaypalSet.getUseageTemplate()); + context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSet.getUseageTemplate(context)); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPeaceful.java b/src/main/java/com/massivecraft/factions/cmd/CmdPeaceful.java index 02f6bb29..967b7023 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPeaceful.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPeaceful.java @@ -11,24 +11,16 @@ public class CmdPeaceful extends FCommand { public CmdPeaceful() { super(); this.aliases.add("peaceful"); - this.requiredArgs.add("faction tag"); - //this.optionalArgs.put("", ""); - this.permission = Permission.SET_PEACEFUL.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SET_PEACEFUL) + .build(); } @Override - public void perform() { - Faction faction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.argAsFaction(0); if (faction == null) { return; } @@ -44,7 +36,7 @@ public class CmdPeaceful extends FCommand { // Inform all players for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - String blame = (fme == null ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fplayer, true)); + String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true)); if (fplayer.getFaction() == faction) { fplayer.msg(TL.COMMAND_PEACEFUL_YOURS, blame, change); } else { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPerm.java b/src/main/java/com/massivecraft/factions/cmd/CmdPerm.java index 8ec4856b..608cc55a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPerm.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPerm.java @@ -1,6 +1,7 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; @@ -27,46 +28,43 @@ public class CmdPerm extends FCommand { this.optionalArgs.put("action", "action"); this.optionalArgs.put("access", "access"); - - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = true; - + this.requirements = new CommandRequirements.Builder(Permission.PERMISSIONS) + .playerOnly() + .memberOnly() + .withRole(Role.LEADER) + .build(); } @Override - public void perform() { - if (args.size() == 0) { - new PermissableRelationFrame(fme.getFaction()).buildGUI(fme); + public void perform(CommandContext context) { + + if (context.args.size() == 0) { + new PermissableRelationFrame(context.faction).buildGUI(context.fPlayer); return; - } else if (args.size() == 1 && getPermissable(argAsString(0)) != null) { - new PermissableActionFrame(fme.getFaction()).buildGUI(fme, getPermissable(argAsString(0))); + } else if (context.args.size() == 1 && getPermissable(context.argAsString(0)) != null) { + new PermissableActionFrame(context.faction).buildGUI(context.fPlayer, getPermissable(context.argAsString(0))); return; } // If not opening GUI, then setting the permission manually. - if (args.size() != 3) { - fme.msg(TL.COMMAND_PERM_DESCRIPTION); + if (context.args.size() != 3) { + context.msg(TL.COMMAND_PERM_DESCRIPTION); return; } Set permissables = new HashSet<>(); Set permissableActions = new HashSet<>(); - boolean allRelations = argAsString(0).equalsIgnoreCase("all"); - boolean allActions = argAsString(1).equalsIgnoreCase("all"); + boolean allRelations = context.argAsString(0).equalsIgnoreCase("all"); + boolean allActions = context.argAsString(1).equalsIgnoreCase("all"); if (allRelations) { - permissables.addAll(myFaction.getPermissions().keySet()); + permissables.addAll(context.faction.getPermissions().keySet()); } else { - Permissable permissable = getPermissable(argAsString(0)); + Permissable permissable = getPermissable(context.argAsString(0)); if (permissable == null) { - fme.msg(TL.COMMAND_PERM_INVALID_RELATION); + context.msg(TL.COMMAND_PERM_INVALID_RELATION); return; } @@ -76,29 +74,30 @@ public class CmdPerm extends FCommand { if (allActions) { permissableActions.addAll(Arrays.asList(PermissableAction.values())); } else { - PermissableAction permissableAction = PermissableAction.fromString(argAsString(1)); + PermissableAction permissableAction = PermissableAction.fromString(context.argAsString(1)); if (permissableAction == null) { - fme.msg(TL.COMMAND_PERM_INVALID_ACTION); + context.msg(TL.COMMAND_PERM_INVALID_ACTION); return; } permissableActions.add(permissableAction); } - Access access = Access.fromString(argAsString(2)); + Access access = Access.fromString(context.argAsString(2)); if (access == null) { - fme.msg(TL.COMMAND_PERM_INVALID_ACCESS); + context.msg(TL.COMMAND_PERM_INVALID_ACCESS); return; } for (Permissable permissable : permissables) { for (PermissableAction permissableAction : permissableActions) { - fme.getFaction().setPermission(permissable, permissableAction, access); + context.faction.setPermission(permissable, permissableAction, access); } } - fme.msg(TL.COMMAND_PERM_SET, argAsString(1), access.name(), argAsString(0)); - P.p.log(String.format(TL.COMMAND_PERM_SET.toString(), argAsString(1), access.name(), argAsString(0)) + " for faction " + fme.getTag()); + + context.msg(TL.COMMAND_PERM_SET, context.argAsString(1), access.name(), context.argAsString(0)); + FactionsPlugin.getInstance().log(String.format(TL.COMMAND_PERM_SET.toString(), context.argAsString(1), access.name(), context.argAsString(0)) + " for faction " + context.fPlayer.getTag()); } private Permissable getPermissable(String name) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPermanent.java b/src/main/java/com/massivecraft/factions/cmd/CmdPermanent.java index b6cd5d22..58084ca8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPermanent.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPermanent.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -13,23 +13,15 @@ public class CmdPermanent extends FCommand { public CmdPermanent() { super(); this.aliases.add("permanent"); - this.requiredArgs.add("faction tag"); - //this.optionalArgs.put("", ""); - this.permission = Permission.SET_PERMANENT.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENT) + .build(); } @Override - public void perform() { - Faction faction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.argAsFaction(0); if (faction == null) { return; } @@ -43,11 +35,11 @@ public class CmdPermanent extends FCommand { faction.setPermanent(true); } - P.p.log((fme == null ? "A server admin" : fme.getName()) + " " + change + " the faction \"" + faction.getTag() + "\"."); + FactionsPlugin.getInstance().log((context.fPlayer == null ? "A server admin" : context.fPlayer.getName()) + " " + change + " the faction \"" + faction.getTag() + "\"."); // Inform all players for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - String blame = (fme == null ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fplayer, true)); + String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true)); if (fplayer.getFaction() == faction) { fplayer.msg(TL.COMMAND_PERMANENT_YOURS, blame, change); } else { @@ -61,3 +53,4 @@ public class CmdPermanent extends FCommand { return TL.COMMAND_PERMANENT_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPermanentPower.java b/src/main/java/com/massivecraft/factions/cmd/CmdPermanentPower.java index fdcd607c..8b39c60e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPermanentPower.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPermanentPower.java @@ -9,28 +9,21 @@ public class CmdPermanentPower extends FCommand { public CmdPermanentPower() { super(); this.aliases.add("permanentpower"); - this.requiredArgs.add("faction"); this.requiredArgs.add("power"); - this.permission = Permission.SET_PERMANENTPOWER.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENTPOWER) + .build(); } @Override - public void perform() { - Faction targetFaction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction targetFaction = context.argAsFaction(0); if (targetFaction == null) { return; } - Integer targetPower = this.argAsInt(1); + Integer targetPower = context.argAsInt(1); targetFaction.setPermanentPower(targetPower); @@ -40,14 +33,14 @@ public class CmdPermanentPower extends FCommand { } // Inform sender - msg(TL.COMMAND_PERMANENTPOWER_SUCCESS, change, targetFaction.describeTo(fme)); + context.msg(TL.COMMAND_PERMANENTPOWER_SUCCESS, change, targetFaction.describeTo(context.fPlayer)); // Inform all other players for (FPlayer fplayer : targetFaction.getFPlayersWhereOnline(true)) { - if (fplayer == fme) { + if (fplayer == context.fPlayer) { continue; } - String blame = (fme == null ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fplayer, true)); + String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true)); fplayer.msg(TL.COMMAND_PERMANENTPOWER_FACTION, blame, change); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPower.java b/src/main/java/com/massivecraft/factions/cmd/CmdPower.java index 985d8770..1807df3a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPower.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPower.java @@ -11,41 +11,33 @@ public class CmdPower extends FCommand { super(); this.aliases.add("power"); this.aliases.add("pow"); - - //this.requiredArgs.add("faction tag"); this.optionalArgs.put("player name", "you"); - this.permission = Permission.POWER.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.POWER) + .build(); } @Override - public void perform() { - FPlayer target = this.argAsBestFPlayerMatch(0, fme); + public void perform(CommandContext context) { + FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer); if (target == null) { return; } - if (target != fme && !Permission.POWER_ANY.has(sender, true)) { + if (target != context.fPlayer && !Permission.POWER_ANY.has(context.sender, true)) { return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostPower, TL.COMMAND_POWER_TOSHOW, TL.COMMAND_POWER_FORSHOW)) { + if (!context.payForCommand(Conf.econCostPower, TL.COMMAND_POWER_TOSHOW, TL.COMMAND_POWER_FORSHOW)) { return; } double powerBoost = target.getPowerBoost(); String boost = (powerBoost == 0.0) ? "" : (powerBoost > 0.0 ? TL.COMMAND_POWER_BONUS.toString() : TL.COMMAND_POWER_PENALTY.toString()) + powerBoost + ")"; - msg(TL.COMMAND_POWER_POWER, target.describeTo(fme, true), target.getPowerRounded(), target.getPowerMaxRounded(), boost); + context.msg(TL.COMMAND_POWER_POWER, target.describeTo(context.fPlayer, true), target.getPowerRounded(), target.getPowerMaxRounded(), boost); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPowerBoost.java b/src/main/java/com/massivecraft/factions/cmd/CmdPowerBoost.java index 4a423812..3872bf76 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPowerBoost.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPowerBoost.java @@ -2,48 +2,42 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; +import org.bukkit.command.ConsoleCommandSender; public class CmdPowerBoost extends FCommand { public CmdPowerBoost() { super(); this.aliases.add("powerboost"); - this.requiredArgs.add("plugin|f|player|faction"); this.requiredArgs.add("name"); this.requiredArgs.add("# or reset"); - this.permission = Permission.POWERBOOST.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.POWERBOOST) + .build(); } @Override - public void perform() { - String type = this.argAsString(0).toLowerCase(); + public void perform(CommandContext context) { + String type = context.argAsString(0).toLowerCase(); boolean doPlayer = true; if (type.equals("f") || type.equals("faction")) { doPlayer = false; } else if (!type.equals("plugin") && !type.equals("player")) { - msg(TL.COMMAND_POWERBOOST_HELP_1); - msg(TL.COMMAND_POWERBOOST_HELP_2); + context.msg(TL.COMMAND_POWERBOOST_HELP_1); + context.msg(TL.COMMAND_POWERBOOST_HELP_2); return; } - Double targetPower = this.argAsDouble(2); + Double targetPower = context.argAsDouble(2); if (targetPower == null) { - if (this.argAsString(2).equalsIgnoreCase("reset")) { + if (context.argAsString(2).equalsIgnoreCase("reset")) { targetPower = 0D; } else { - msg(TL.COMMAND_POWERBOOST_INVALIDNUM); + context.msg(TL.COMMAND_POWERBOOST_INVALIDNUM); return; } } @@ -51,7 +45,7 @@ public class CmdPowerBoost extends FCommand { String target; if (doPlayer) { - FPlayer targetPlayer = this.argAsBestFPlayerMatch(1); + FPlayer targetPlayer = context.argAsBestFPlayerMatch(1); if (targetPlayer == null) { return; } @@ -62,7 +56,7 @@ public class CmdPowerBoost extends FCommand { targetPlayer.setPowerBoost(targetPower); target = TL.COMMAND_POWERBOOST_PLAYER.format(targetPlayer.getName()); } else { - Faction targetFaction = this.argAsFaction(1); + Faction targetFaction = context.argAsFaction(1); if (targetFaction == null) { return; } @@ -75,9 +69,9 @@ public class CmdPowerBoost extends FCommand { } int roundedPower = (int) Math.round(targetPower); - msg(TL.COMMAND_POWERBOOST_BOOST, target, roundedPower); - if (!senderIsConsole) { - P.p.log(TL.COMMAND_POWERBOOST_BOOSTLOG.toString(), fme.getName(), target, roundedPower); + context.msg(TL.COMMAND_POWERBOOST_BOOST, target, roundedPower); + if (!(context.sender instanceof ConsoleCommandSender)) { + FactionsPlugin.getInstance().log(TL.COMMAND_POWERBOOST_BOOSTLOG.toString(), context.fPlayer.getName(), target, roundedPower); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdReload.java b/src/main/java/com/massivecraft/factions/cmd/CmdReload.java index 4ba583c9..0ae7517e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdReload.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdReload.java @@ -1,8 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; -import com.massivecraft.factions.shop.ShopConfig; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -12,36 +11,28 @@ public class CmdReload extends FCommand { super(); this.aliases.add("reload"); - this.permission = Permission.RELOAD.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.RELOAD).build(); } @Override - public void perform() { + public void perform(CommandContext context) { long timeInitStart = System.currentTimeMillis(); Conf.load(); Conf.save(); - P.p.reloadConfig(); - P.p.loadLang(); - ShopConfig.loadShop(); + FactionsPlugin.getInstance().reloadConfig(); + FactionsPlugin.getInstance().loadLang(); - if (P.p.getConfig().getBoolean("enable-faction-flight")) { - P.p.factionsFlight = true; + if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) { + FactionsPlugin.getInstance().factionsFlight = true; } long timeReload = (System.currentTimeMillis() - timeInitStart); - msg(TL.COMMAND_RELOAD_TIME, timeReload); + context.msg(TL.COMMAND_RELOAD_TIME, timeReload); } @Override public TL getUsageTranslation() { return TL.COMMAND_RELOAD_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdRules.java b/src/main/java/com/massivecraft/factions/cmd/CmdRules.java index ee9a2edd..0fce2952 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdRules.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdRules.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -15,69 +15,65 @@ public class CmdRules extends FCommand { aliases.add("rules"); this.optionalArgs.put("add/remove/set/clear", ""); - this.errorOnToManyArgs = false; - - permission = Permission.RULES.node; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.RULES) + .playerOnly() + .memberOnly() + .noErrorOnManyArgs() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("frules.Enabled")) { - fme.msg(TL.COMMAND_RULES_DISABLED_MSG); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("frules.Enabled")) { + context.msg(TL.COMMAND_RULES_DISABLED_MSG); return; } - if (this.args.size() == 0) { - HashMap rules = fme.getFaction().getRulesMap(); + if (context.args.size() == 0) { + HashMap rules = context.faction.getRulesMap(); if (rules.size() == 0) { - List ruleList = P.p.getConfig().getStringList("frules.default-rules"); - fme.sendMessage(P.p.colorList(ruleList)); + List ruleList = FactionsPlugin.getInstance().getConfig().getStringList("frules.default-rules"); + context.sendMessage(FactionsPlugin.getInstance().colorList(ruleList)); } else { for (int i = 0; i <= rules.size() - 1; i++) { - fme.sendMessage(P.p.color(rules.get(i))); + context.sendMessage(FactionsPlugin.getInstance().color(rules.get(i))); } } } - if (this.args.size() == 1) { - if (args.get(0).equalsIgnoreCase("add")) { - fme.msg(TL.COMMAND_RULES_ADD_INVALIDARGS); + if (context.args.size() == 1) { + if (context.args.get(0).equalsIgnoreCase("add")) { + context.msg(TL.COMMAND_RULES_ADD_INVALIDARGS); } - if (args.get(0).equalsIgnoreCase("set")) { - fme.msg(TL.COMMAND_RULES_SET_INVALIDARGS); + if (context.args.get(0).equalsIgnoreCase("set")) { + context.msg(TL.COMMAND_RULES_SET_INVALIDARGS); } - if (args.get(0).equalsIgnoreCase("remove")) { - fme.msg(TL.COMMAND_RULES_REMOVE_INVALIDARGS); + if (context.args.get(0).equalsIgnoreCase("remove")) { + context.msg(TL.COMMAND_RULES_REMOVE_INVALIDARGS); } - if (args.get(0).equalsIgnoreCase("clear")) { - fme.getFaction().clearRules(); - fme.msg(TL.COMMAND_RULES_CLEAR_SUCCESS); + if (context.args.get(0).equalsIgnoreCase("clear")) { + context.faction.clearRules(); + context.msg(TL.COMMAND_RULES_CLEAR_SUCCESS); } } - if (this.args.size() >= 2) { - if (args.get(0).equalsIgnoreCase("add")) { + if (context.args.size() >= 2) { + if (context.args.get(0).equalsIgnoreCase("add")) { String message = ""; StringBuilder string = new StringBuilder(message); - for (int i = 1; i <= args.size() - 1; i++) { - string.append(" ").append(args.get(i)); + for (int i = 1; i <= context.args.size() - 1; i++) { + string.append(" " + context.args.get(i)); } - fme.getFaction().addRule(string.toString()); - fme.msg(TL.COMMAND_RULES_ADD_SUCCESS); + context.faction.addRule(string.toString()); + context.msg(TL.COMMAND_RULES_ADD_SUCCESS); } - if (this.args.size() == 2) { - if (args.get(0).equalsIgnoreCase("remove")) { - int index = argAsInt(1); - fme.getFaction().removeRule(index - 1); - fme.msg(TL.COMMAND_RULES_REMOVE_SUCCESS); + if (context.args.size() == 2) { + if (context.args.get(0).equalsIgnoreCase("remove")) { + int index = context.argAsInt(1); + context.faction.removeRule(index - 1); + context.msg(TL.COMMAND_RULES_REMOVE_SUCCESS); } } @@ -88,4 +84,4 @@ public class CmdRules extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_RULES_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSB.java b/src/main/java/com/massivecraft/factions/cmd/CmdSB.java index e0f18a3b..513bd35e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSB.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSB.java @@ -9,25 +9,27 @@ public class CmdSB extends FCommand { public CmdSB() { this.aliases.add("sb"); this.aliases.add("scoreboard"); - this.permission = Permission.SCOREBOARD.node; - this.senderMustBePlayer = true; + + this.requirements = new CommandRequirements.Builder(Permission.SCOREBOARD) + .playerOnly() + .build(); } @Override - public void perform() { - boolean toggleTo = !fme.showScoreboard(); - FScoreboard board = FScoreboard.get(fme); + public void perform(CommandContext context) { + boolean toggleTo = !context.fPlayer.showScoreboard(); + FScoreboard board = FScoreboard.get(context.fPlayer); if (board == null) { - me.sendMessage(TL.COMMAND_TOGGLESB_DISABLED.toString()); + context.msg(TL.COMMAND_TOGGLESB_DISABLED.toString()); } else { - me.sendMessage(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggleTo))); + context.msg(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggleTo))); board.setSidebarVisibility(toggleTo); } - fme.setShowScoreboard(toggleTo); + context.fPlayer.setShowScoreboard(toggleTo); } @Override public TL getUsageTranslation() { return TL.COMMAND_SCOREBOARD_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSaveAll.java b/src/main/java/com/massivecraft/factions/cmd/CmdSaveAll.java index 2a0de381..32f56822 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSaveAll.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSaveAll.java @@ -4,6 +4,7 @@ import com.massivecraft.factions.Board; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.shop.ShopConfig; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -14,26 +15,18 @@ public class CmdSaveAll extends FCommand { this.aliases.add("saveall"); this.aliases.add("save"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.SAVE.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SAVE) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { FPlayers.getInstance().forceSave(false); Factions.getInstance().forceSave(false); Board.getInstance().forceSave(false); Conf.save(); - msg(TL.COMMAND_SAVEALL_SUCCESS); + ShopConfig.saveShop(); + context.msg(TL.COMMAND_SAVEALL_SUCCESS); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSeeChunk.java b/src/main/java/com/massivecraft/factions/cmd/CmdSeeChunk.java index 68ba23ed..5c930be5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSeeChunk.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSeeChunk.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.Particles.ParticleEffect; import com.massivecraft.factions.util.VisualizeUtil; @@ -17,7 +17,7 @@ public class CmdSeeChunk extends FCommand { //Used a hashmap cuz imma make a particle selection gui later, will store it where the boolean is rn. public static HashMap seeChunkMap = new HashMap<>(); - Long interval; + private long interval; private boolean useParticles; private ParticleEffect effect; private int taskID = -1; @@ -31,30 +31,26 @@ public class CmdSeeChunk extends FCommand { aliases.add("seechunk"); aliases.add("sc"); - permission = Permission.SEECHUNK.node; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - - - this.useParticles = p.getConfig().getBoolean("see-chunk.particles", true); - interval = P.p.getConfig().getLong("see-chunk.interval", 10L); + this.useParticles = FactionsPlugin.getInstance().getConfig().getBoolean("see-chunk.particles", true); + interval = FactionsPlugin.getInstance().getConfig().getLong("see-chunk.interval", 10L); if (effect == null) { effect = ParticleEffect.REDSTONE; } + this.requirements = new CommandRequirements.Builder(Permission.SEECHUNK) + .playerOnly() + .build(); + } @Override - public void perform() { - if (seeChunkMap.containsKey(me.getName())) { - seeChunkMap.remove(me.getName()); - msg(TL.COMMAND_SEECHUNK_DISABLED); + public void perform(CommandContext context) { + if (seeChunkMap.containsKey(context.player.getName())) { + seeChunkMap.remove(context.player.getName()); + context.msg(TL.COMMAND_SEECHUNK_DISABLED); } else { - seeChunkMap.put(me.getName(), true); - msg(TL.COMMAND_SEECHUNK_ENABLED); + seeChunkMap.put(context.player.getName(), true); + context.msg(TL.COMMAND_SEECHUNK_ENABLED); manageTask(); } } @@ -71,7 +67,7 @@ public class CmdSeeChunk extends FCommand { } private void startTask() { - taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { + taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { for (Object nameObject : seeChunkMap.keySet()) { String name = nameObject + ""; Player player = Bukkit.getPlayer(name); @@ -115,10 +111,10 @@ public class CmdSeeChunk extends FCommand { continue; } if (useParticles) { - if (P.p.useNonPacketParticles) { + if (FactionsPlugin.getInstance().useNonPacketParticles) { // Dust options only exists in the 1.13 API, so we use an // alternative method to achieve this in lower versions. - if (P.p.mc113) { + if (FactionsPlugin.getInstance().mc113 || FactionsPlugin.getInstance().mc114) { player.spawnParticle(Particle.REDSTONE, loc, 0, new Particle.DustOptions(Color.RED, 1)); } else { player.getWorld().spawnParticle(Particle.REDSTONE, loc, 0, 255, 0, 0, 1); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetBanner.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetBanner.java index 1558b54d..e5003b77 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetBanner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetBanner.java @@ -9,24 +9,20 @@ public class CmdSetBanner extends FCommand { super(); aliases.add("setbanner"); - permission = Permission.BANNER.node; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = true; - - + this.requirements = new CommandRequirements.Builder(Permission.BANNER) + .playerOnly() + .build(); } - public void perform() { - if (!me.getItemInHand().getType().toString().contains("BANNER")) { - fme.msg(TL.COMMAND_SETBANNER_NOTBANNER); + @Override + public void perform(CommandContext context) { + if (!context.player.getItemInHand().getType().toString().contains("BANNER")) { + context.msg(TL.COMMAND_SETBANNER_NOTBANNER); return; } - fme.getFaction().setBannerPattern(me.getItemInHand()); - fme.msg(TL.COMMAND_SETBANNER_SUCCESS); + context.faction.setBannerPattern(context.player.getItemInHand()); + context.msg(TL.COMMAND_SETBANNER_SUCCESS); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetDefaultRole.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetDefaultRole.java index 9735f1c0..ec5464e7 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetDefaultRole.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetDefaultRole.java @@ -15,30 +15,28 @@ public class CmdSetDefaultRole extends FCommand { this.aliases.add("def"); this.requiredArgs.add("role"); - this.senderMustBeAdmin = true; - this.senderMustBePlayer = true; - senderMustBeColeader = false; - - - this.permission = Permission.DEFAULTRANK.node; + this.requirements = new CommandRequirements.Builder(Permission.DEFAULTRANK) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - Role target = Role.fromString(argAsString(0).toUpperCase()); + public void perform(CommandContext context) { + Role target = Role.fromString(context.argAsString(0).toUpperCase()); if (target == null) { - msg(TL.COMMAND_SETDEFAULTROLE_INVALIDROLE, argAsString(0)); + context.msg(TL.COMMAND_SETDEFAULTROLE_INVALIDROLE, context.argAsString(0)); return; } if (target == Role.LEADER) { - msg(TL.COMMAND_SETDEFAULTROLE_NOTTHATROLE, argAsString(0)); + context.msg(TL.COMMAND_SETDEFAULTROLE_NOTTHATROLE, context.argAsString(0)); return; } - myFaction.setDefaultRole(target); - msg(TL.COMMAND_SETDEFAULTROLE_SUCCESS, target.nicename); + context.faction.setDefaultRole(target); + context.msg(TL.COMMAND_SETDEFAULTROLE_SUCCESS, target.nicename); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java index 085b4be7..4986ac9d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java @@ -1,12 +1,10 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; -import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.LazyLocation; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -17,63 +15,51 @@ public class CmdSetFWarp extends FCommand { this.aliases.add("setwarp"); this.aliases.add("sw"); - this.requiredArgs.add("warp name"); this.optionalArgs.put("password", "password"); - this.senderMustBeMember = true; - this.senderMustBeModerator = false; - - this.senderMustBePlayer = true; - - this.permission = Permission.SETWARP.node; + this.requirements = new CommandRequirements.Builder(Permission.SETWARP) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.SETWARP) + .build(); } @Override - public void perform() { - if (!(fme.getRelationToLocation() == Relation.MEMBER)) { - fme.msg(TL.COMMAND_SETFWARP_NOTCLAIMED); + public void perform(CommandContext context) { + if (!(context.fPlayer.getRelationToLocation() == Relation.MEMBER)) { + context.msg(TL.COMMAND_SETFWARP_NOTCLAIMED); return; } - // This statement allows us to check if they've specifically denied it, or default to - // the old setting of allowing moderators to set warps. - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.SETWARP); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "set warps"); - return; - } - } - - String warp = argAsString(0); + String warp = context.argAsString(0); // Checks if warp with same name already exists and ignores maxWarp check if it does. - boolean warpExists = myFaction.isWarp(warp); + boolean warpExists = context.faction.isWarp(warp); - int maxWarps = P.p.getConfig().getInt("max-warps", 5); - boolean tooManyWarps = maxWarps <= myFaction.getWarps().size(); + int maxWarps = FactionsPlugin.getInstance().getConfig().getInt("max-warps", 5); + boolean tooManyWarps = maxWarps <= context.faction.getWarps().size(); if (tooManyWarps && !warpExists) { - fme.msg(TL.COMMAND_SETFWARP_LIMIT, maxWarps); + context.msg(TL.COMMAND_SETFWARP_LIMIT, maxWarps); return; } - if (!transact(fme)) { + if (!transact(context.fPlayer, context)) { return; } - String password = argAsString(1); + String password = context.argAsString(1); - LazyLocation loc = new LazyLocation(fme.getPlayer().getLocation()); - myFaction.setWarp(warp, loc); + LazyLocation loc = new LazyLocation(context.player.getLocation()); + context.faction.setWarp(warp, loc); if (password != null) { - myFaction.setWarpPassword(warp, password); + context.faction.setWarpPassword(warp, password); } - fme.msg(TL.COMMAND_SETFWARP_SET, warp, password != null ? password : ""); + context.msg(TL.COMMAND_SETFWARP_SET, warp, password != null ? password : ""); } - private boolean transact(FPlayer player) { - return !P.p.getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || payForCommand(P.p.getConfig().getDouble("warp-cost.setwarp", 5), TL.COMMAND_SETFWARP_TOSET.toString(), TL.COMMAND_SETFWARP_FORSET.toString()); + private boolean transact(FPlayer player, CommandContext context) { + return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.setwarp", 5), TL.COMMAND_SETFWARP_TOSET.toString(), TL.COMMAND_SETFWARP_FORSET.toString()); } @Override @@ -81,3 +67,4 @@ public class CmdSetFWarp extends FCommand { return TL.COMMAND_SETFWARP_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetMaxVaults.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetMaxVaults.java index 1f3a98f9..0a1e1793 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetMaxVaults.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetMaxVaults.java @@ -10,37 +10,29 @@ public class CmdSetMaxVaults extends FCommand { public CmdSetMaxVaults() { this.aliases.add("setmaxvaults"); this.aliases.add("smv"); - this.requiredArgs.add("faction"); this.requiredArgs.add("number"); - this.permission = Permission.SETMAXVAULTS.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.SETMAXVAULTS) + .build(); } @Override - public void perform() { - Faction targetFaction = argAsFaction(0); - int value = argAsInt(1, -1); + public void perform(CommandContext context) { + Faction targetFaction = context.argAsFaction(0); + int value = context.argAsInt(1, -1); if (value < 0) { - sender.sendMessage(ChatColor.RED + "Number must be greater than 0."); + context.sender.sendMessage(ChatColor.RED + "Number must be greater than 0."); return; } if (targetFaction == null) { - sender.sendMessage(ChatColor.RED + "Couldn't find Faction: " + ChatColor.YELLOW + argAsString(0)); + context.sender.sendMessage(ChatColor.RED + "Couldn't find Faction: " + ChatColor.YELLOW + context.argAsString(0)); return; } targetFaction.setMaxVaults(value); - sender.sendMessage(TL.COMMAND_SETMAXVAULTS_SUCCESS.format(targetFaction.getTag(), value)); + context.sender.sendMessage(TL.COMMAND_SETMAXVAULTS_SUCCESS.format(targetFaction.getTag(), value)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSethome.java b/src/main/java/com/massivecraft/factions/cmd/CmdSethome.java index b9440e05..4e9785c8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSethome.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSethome.java @@ -1,12 +1,7 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.Board; -import com.massivecraft.factions.Conf; -import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.Faction; +import com.massivecraft.factions.*; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -14,60 +9,46 @@ public class CmdSethome extends FCommand { public CmdSethome() { this.aliases.add("sethome"); - - //this.requiredArgs.add(""); this.optionalArgs.put("faction tag", "mine"); - this.permission = Permission.SETHOME.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.SETHOME) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.SETHOME) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { if (!Conf.homesEnabled) { - fme.msg(TL.COMMAND_SETHOME_DISABLED); + context.msg(TL.COMMAND_SETHOME_DISABLED); return; } - Faction faction = this.argAsFaction(0, myFaction); + Faction faction = context.argAsFaction(0, context.faction); if (faction == null) { return; } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.SETHOME); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER && !Permission.SETHOME_ANY.has(sender, true)) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "set home"); - return; - } - } - // Can the player set the faction home HERE? - if (!Permission.BYPASS.has(me) && + if (!Permission.BYPASS.has(context.player) && Conf.homesMustBeInClaimedTerritory && - Board.getInstance().getFactionAt(new FLocation(me)) != faction) { - fme.msg(TL.COMMAND_SETHOME_NOTCLAIMED); + Board.getInstance().getFactionAt(new FLocation(context.player)) != faction) { + context.msg(TL.COMMAND_SETHOME_NOTCLAIMED); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) { + if (!context.payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) { return; } - faction.setHome(me.getLocation()); + faction.setHome(context.player.getLocation()); - faction.msg(TL.COMMAND_SETHOME_SET, fme.describeTo(myFaction, true)); - faction.sendMessage(p.cmdBase.cmdHome.getUseageTemplate()); - if (faction != myFaction) { - fme.msg(TL.COMMAND_SETHOME_SETOTHER, faction.getTag(fme)); + faction.msg(TL.COMMAND_SETHOME_SET, context.fPlayer.describeTo(context.faction, true)); + faction.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context)); + if (faction != context.faction) { + context.msg(TL.COMMAND_SETHOME_SETOTHER, faction.getTag(context.fPlayer)); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdShow.java b/src/main/java/com/massivecraft/factions/cmd/CmdShow.java index 268a2abd..d3a6e3f1 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdShow.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdShow.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import com.massivecraft.factions.zcore.util.TagReplacer; @@ -19,14 +19,12 @@ public class CmdShow extends FCommand { public CmdShow() { this.aliases.add("show"); this.aliases.add("who"); - this.aliases.add("f"); // add defaults to /f show in case config doesnt have it defaults.add("{header}"); defaults.add("Description: {description}"); defaults.add("Joining: {joining} {peaceful}"); defaults.add("Land / Power / Maxpower: {chunks} / {power} / {maxPower}"); - defaults.add("Faction Strikes: {strikes}"); defaults.add("Founded: {create-date}"); defaults.add("This faction is permanent, remaining even with no members."); defaults.add("Land value: {land-value} {land-refund}"); @@ -34,69 +32,63 @@ public class CmdShow extends FCommand { defaults.add("Allies({allies}/{max-allies}): {allies-list}"); defaults.add("Online: ({online}/{members}): {online-list}"); defaults.add("Offline: ({offline}/{members}): {offline-list}"); - defaults.add("Alt List: {alts}"); // this.requiredArgs.add(""); this.optionalArgs.put("faction tag", "yours"); - this.permission = Permission.SHOW.node; - this.disableOnLock = false; - - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SHOW).build(); } @Override - public void perform() { - Faction faction = myFaction; - if (this.argIsSet(0)) - faction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.faction; + if (context.argIsSet(0)) + faction = context.argAsFaction(0); if (faction == null) return; - if (fme != null && !fme.getPlayer().hasPermission("factions.show.bypassexempt") - && P.p.getConfig().getStringList("show-exempt").contains(faction.getTag())) { - msg(TL.COMMAND_SHOW_EXEMPT); + if (context.fPlayer != null && !context.player.getPlayer().hasPermission("factions.show.bypassexempt") + && FactionsPlugin.getInstance().getConfig().getStringList("show-exempt").contains(faction.getTag())) { + context.msg(TL.COMMAND_SHOW_EXEMPT); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostShow, TL.COMMAND_SHOW_TOSHOW, TL.COMMAND_SHOW_FORSHOW)) { + if (!context.payForCommand(Conf.econCostShow, TL.COMMAND_SHOW_TOSHOW, TL.COMMAND_SHOW_FORSHOW)) { return; } - List show = P.p.getConfig().getStringList("show"); + List show = FactionsPlugin.getInstance().getConfig().getStringList("show"); if (show == null || show.isEmpty()) show = defaults; if (!faction.isNormal()) { - String tag = faction.getTag(fme); + String tag = faction.getTag(context.fPlayer); // send header and that's all String header = show.get(0); if (TagReplacer.HEADER.contains(header)) { - msg(p.txt.titleize(tag)); + context.msg(FactionsPlugin.getInstance().txt.titleize(tag)); } else { - msg(p.txt.parse(TagReplacer.FACTION.replace(header, tag))); + context.msg(FactionsPlugin.getInstance().txt.parse(TagReplacer.FACTION.replace(header, tag))); } return; // we only show header for non-normal factions } for (String raw : show) { - String parsed = TagUtil.parsePlain(faction, fme, raw); // use relations + String parsed = TagUtil.parsePlain(faction, context.fPlayer, raw); // use relations if (parsed == null) { continue; // Due to minimal f show. } - if (fme != null) { - parsed = TagUtil.parsePlaceholders(fme.getPlayer(), parsed); + if (context.fPlayer != null) { + parsed = TagUtil.parsePlaceholders(context.fPlayer.getPlayer(), parsed); } if (TagUtil.hasFancy(parsed)) { - List fancy = TagUtil.parseFancy(faction, fme, parsed); + List fancy = TagUtil.parseFancy(faction, context.fPlayer, parsed); if (fancy != null) - sendFancyMessage(fancy); + context.sendFancyMessage(fancy); continue; } @@ -108,7 +100,7 @@ public class CmdShow extends FCommand { if (parsed.contains("%")) { parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it. } - msg(p.txt.parse(parsed)); + context.msg(FactionsPlugin.getInstance().txt.parse(parsed)); } } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdShowClaims.java b/src/main/java/com/massivecraft/factions/cmd/CmdShowClaims.java index fc6b685e..9b444895 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdShowClaims.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdShowClaims.java @@ -9,39 +9,37 @@ import com.massivecraft.factions.zcore.util.TL; public class CmdShowClaims extends FCommand { public CmdShowClaims() { - this.aliases.add("showclaims"); this.aliases.add("showclaim"); - permission = Permission.SHOWCLAIMS.node; - - this.senderMustBePlayer = true; - this.senderMustBeMember = true; - this.senderMustBeModerator = false; + this.requirements = new CommandRequirements.Builder(Permission.SHOWCLAIMS) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - sendMessage(TL.COMMAND_SHOWCLAIMS_HEADER.toString().replace("{faction}", fme.getFaction().describeTo(fme))); + public void perform(CommandContext context) { + context.sendMessage(TL.COMMAND_SHOWCLAIMS_HEADER.toString().replace("{faction}", context.faction.describeTo(context.fPlayer))); ListMultimap chunkMap = ArrayListMultimap.create(); String format = TL.COMMAND_SHOWCLAIMS_CHUNKSFORMAT.toString(); - for (FLocation fLocation : fme.getFaction().getAllClaims()) { + for (FLocation fLocation : context.faction.getAllClaims()) { chunkMap.put(fLocation.getWorldName(), format.replace("{x}", fLocation.getX() + "").replace("{z}", fLocation.getZ() + "")); } for (String world : chunkMap.keySet()) { String message = TL.COMMAND_SHOWCLAIMS_FORMAT.toString().replace("{world}", world); // made {chunks} blank as I removed the placeholder and people wont update their config :shrug: - sendMessage(message.replace("{chunks}", "")); + context.sendMessage(message.replace("{chunks}", "")); StringBuilder chunks = new StringBuilder(); for (String chunkString : chunkMap.get(world)) { chunks.append(chunkString).append(", "); if (chunks.toString().length() >= 2000) { - sendMessage(chunks.toString()); + context.sendMessage(chunks.toString()); chunks.setLength(0); } } - if (chunks.length() != 0) sendMessage(chunks.toString()); - sendMessage(""); + if (chunks.length() != 0) context.sendMessage(chunks.toString()); + context.sendMessage(""); } @@ -54,3 +52,4 @@ public class CmdShowClaims extends FCommand { } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java b/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java index 4666ff03..fec89067 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java @@ -13,23 +13,24 @@ public class CmdShowInvites extends FCommand { public CmdShowInvites() { super(); aliases.add("showinvites"); - permission = Permission.SHOW_INVITES.node; - senderMustBePlayer = true; - senderMustBeMember = true; + this.requirements = new CommandRequirements.Builder(Permission.SHOW_INVITES) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD); - for (String id : myFaction.getInvites()) { + for (String id : context.faction.getInvites()) { FPlayer fp = FPlayers.getInstance().getById(id); String name = fp != null ? fp.getName() : id; msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); } - sendFancyMessage(msg); + context.sendFancyMessage(msg); } @Override @@ -39,3 +40,4 @@ public class CmdShowInvites extends FCommand { } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSpam.java b/src/main/java/com/massivecraft/factions/cmd/CmdSpam.java deleted file mode 100644 index 49a10a7e..00000000 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSpam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.massivecraft.factions.cmd; - -import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.zcore.util.TL; - -public class CmdSpam extends FCommand { - - public CmdSpam() { - this.aliases.add("spam"); - - this.optionalArgs.put("on/off", "flip"); - - this.permission = Permission.SPAM.node; - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - } - - @Override - public void perform() { - p.setSpam(this.argAsBool(0, !p.getSpam())); - msg(p.getSpam() ? TL.COMMAND_SPAM_ENABLED : TL.COMMAND_SPAM_DISABLED); - } - - @Override - public TL getUsageTranslation() { - return TL.COMMAND_SPAM_DESCRIPTION; - } -} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java b/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java index 4dfec779..c961fcce 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java @@ -15,25 +15,22 @@ public class CmdStatus extends FCommand { this.aliases.add("status"); this.aliases.add("s"); - this.permission = Permission.STATUS.node; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.STATUS) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { ArrayList ret = new ArrayList<>(); - for (FPlayer fp : myFaction.getFPlayers()) { + for (FPlayer fp : context.faction.getFPlayers()) { String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX; String last = fp.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); String power = ChatColor.YELLOW + String.valueOf(fp.getPowerRounded()) + " / " + fp.getPowerMaxRounded() + ChatColor.RESET; ret.add(String.format(TL.COMMAND_STATUS_FORMAT.toString(), ChatColor.GOLD + fp.getRole().getPrefix() + fp.getName() + ChatColor.RESET, power, last).trim()); } - fme.sendMessage(ret); + context.fPlayer.sendMessage(ret); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStealth.java b/src/main/java/com/massivecraft/factions/cmd/CmdStealth.java index 277828e6..89c560dd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdStealth.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStealth.java @@ -1,6 +1,5 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.Faction; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -8,31 +7,23 @@ public class CmdStealth extends FCommand { public CmdStealth() { this.aliases.add("ninja"); this.aliases.add("stealth"); - this.permission = Permission.STEALTH.node; - - this.disableOnLock = true; - - this.senderMustBePlayer = true; - this.senderMustBeMember = false; - this.senderMustBeModerator = false; - this.senderMustBeColeader = false; - this.senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.STEALTH) + .playerOnly() + .build(); } - public void perform() { - - - Faction faction = fme.getFaction(); - if (faction != null && !faction.getId().equalsIgnoreCase("0") && !faction.getId().equalsIgnoreCase("none") && !faction.getId().equalsIgnoreCase("safezone") && !faction.getId().equalsIgnoreCase("warzone")) { - fme.setStealth(!fme.isStealthEnabled()); - fme.msg(fme.isStealthEnabled() ? TL.COMMAND_STEALTH_ENABLE : TL.COMMAND_STEALTH_DISABLE); + @Override + public void perform(CommandContext context) { + if (context.faction != null && !context.faction.getId().equalsIgnoreCase("0") && !context.faction.getId().equalsIgnoreCase("none") && !context.faction.getId().equalsIgnoreCase("safezone") && !context.faction.getId().equalsIgnoreCase("warzone")) { + context.fPlayer.setStealth(!context.fPlayer.isStealthEnabled()); + context.msg(context.fPlayer.isStealthEnabled() ? TL.COMMAND_STEALTH_ENABLE : TL.COMMAND_STEALTH_DISABLE); } else { - fme.msg(TL.COMMAND_STEALTH_MUSTBEMEMBER); + context.msg(TL.COMMAND_STEALTH_MUSTBEMEMBER); } } public TL getUsageTranslation() { return TL.COMMAND_STEALTH_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrike.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrike.java deleted file mode 100644 index 25677b87..00000000 --- a/src/main/java/com/massivecraft/factions/cmd/CmdStrike.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.massivecraft.factions.cmd; - -import com.massivecraft.factions.Faction; -import com.massivecraft.factions.Factions; -import com.massivecraft.factions.zcore.util.TL; - -public class CmdStrike extends FCommand { - - public CmdStrike() { - super(); - - this.aliases.add("strike"); - this.aliases.add("strikes"); - - this.optionalArgs.put("faction", "tag"); - - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - } - - - @Override - public void perform() { - if (args.size() == 0) { - if (myFaction.isWilderness()) { - fme.msg(TL.COMMAND_STRIKE_NEEDFACTION); - return; - } - fme.msg(TL.COMMAND_STRIKE_MESSAGE.toString().replace("{faction}", fme.getFaction().getTag()).replace("{strikes}", fme.getFaction().getStrikes() + "")); - return; - } - Faction faction = Factions.getInstance().getByTag(args.get(0)); - if (faction != null) { - fme.msg(TL.COMMAND_STRIKE_MESSAGE.toString().replace("{faction}", faction.getTag()).replace("{strikes}", faction.getStrikes() + "")); - } else { - fme.msg(TL.COMMAND_STRIKE_NOTFOUND.toString().replace("{faction}", args.get(0))); - } - } - - - @Override - public TL getUsageTranslation() { - return TL.COMMAND_STUCK_DESCRIPTION; - } - - -} - diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikeSet.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikeSet.java deleted file mode 100644 index de045df3..00000000 --- a/src/main/java/com/massivecraft/factions/cmd/CmdStrikeSet.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.massivecraft.factions.cmd; - -import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.Faction; -import com.massivecraft.factions.Factions; -import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.zcore.util.TL; - -public class CmdStrikeSet extends FCommand { - - - public CmdStrikeSet() { - super(); - this.aliases.add("setstrikes"); - this.aliases.add("setstrike"); - - this.requiredArgs.add("set,give,remove"); - this.requiredArgs.add("faction"); - this.requiredArgs.add("# of strikes"); - this.requiredArgs.add("reason"); - - - this.errorOnToManyArgs = false; - //this.optionalArgs - - this.permission = Permission.SETSTRIKES.node; - - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - } - - - @Override - public void perform() { - Faction faction = Factions.getInstance().getByTag(args.get(1)); - boolean success = false; - if (faction == null) { - fme.msg(TL.COMMAND_SETSTRIKES_FAILURE.toString().replace("{faction}", args.get(1))); - } - - if (faction != null) { - if (args.get(0).equalsIgnoreCase("set")) { - faction.setStrikes(argAsInt(2)); - success = true; - } else if (args.get(0).equalsIgnoreCase("give")) { - faction.setStrikes(faction.getStrikes() + argAsInt(2)); - success = true; - } else if (args.get(0).equalsIgnoreCase("take")) { - faction.setStrikes(faction.getStrikes() - argAsInt(2)); - success = true; - } - if (success) { - for (FPlayer fPlayer : FPlayers.getInstance().getOnlinePlayers()) { - fPlayer.msg(TL.COMMAND_SETSTRIKES_BROADCAST.toString() - .replace("{faction}", faction.getTag()) - .replace("{reason}", getReason())); - } - fme.msg(TL.COMMAND_SETSTRIKES_SUCCESS.toString() - .replace("{faction}", faction.getTag()) - .replace("{strikes}", faction.getStrikes() + "")); - } - } - } - - private String getReason() { - StringBuilder reason = new StringBuilder(); - for (int i = 3; i < args.size(); i++) { - reason.append(args.get(i)).append(" "); - } - return reason.toString(); - } - - - @Override - public TL getUsageTranslation() { - return TL.COMMAND_SETSTRIKES_DESCRIPTION; - } - - -} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikes.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikes.java new file mode 100644 index 00000000..27f8589c --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStrikes.java @@ -0,0 +1,41 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdStrikes extends FCommand { + + + public CmdStrikesGive cmdStrikesGive = new CmdStrikesGive(); + public CmdStrikesInfo cmdStrikesInfo = new CmdStrikesInfo(); + public CmdStrikesSet cmdStrikesSet = new CmdStrikesSet(); + public CmdStrikesTake cmdStrikesTake = new CmdStrikesTake(); + + public CmdStrikes() { + super(); + + this.aliases.add("strikes"); + + this.addSubCommand(cmdStrikesGive); + this.addSubCommand(cmdStrikesInfo); + this.addSubCommand(cmdStrikesSet); + this.addSubCommand(cmdStrikesTake); + + this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + context.commandChain.add(this); + FactionsPlugin.getInstance().cmdAutoHelp.execute(context); + } + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_STRIKES_DESCRIPTION; + } + +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikesGive.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesGive.java new file mode 100644 index 00000000..dff72694 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesGive.java @@ -0,0 +1,37 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdStrikesGive extends FCommand { + + + public CmdStrikesGive() { + super(); + this.aliases.add("give"); + this.requiredArgs.add(0, "faction"); + + this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + Faction target = context.argAsFaction(0); + if (target == null || target.isSystemFaction()) { + context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0)); + return; + } + target.setStrikes(target.getStrikes() + 1); + context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes()); + } + + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_STRIKESGIVE_DESCRIPTION; + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikesInfo.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesInfo.java new file mode 100644 index 00000000..f6d61a5b --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesInfo.java @@ -0,0 +1,37 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdStrikesInfo extends FCommand { + + public CmdStrikesInfo() { + super(); + this.aliases.add("info"); + this.optionalArgs.put("target", "faction"); + + this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + Faction target = context.argAsFaction(0); + if (target == null) target = context.faction; + if (target.isSystemFaction()) { + context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0)); + return; + } + context.msg(TL.COMMAND_STRIKES_INFO, target.getTag(), target.getStrikes()); + } + + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_STRIKESINFO_DESCRIPTION; + } + + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikesSet.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesSet.java new file mode 100644 index 00000000..e7937a8c --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesSet.java @@ -0,0 +1,37 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdStrikesSet extends FCommand { + + public CmdStrikesSet() { + super(); + this.aliases.add("set"); + this.requiredArgs.add(0, "faction"); + this.requiredArgs.add(1, "amount"); + + this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + Faction target = context.argAsFaction(0); + if (target == null || target.isSystemFaction()) { + context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0)); + return; + } + target.setStrikes(context.argAsInt(1)); + context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes()); + } + + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_STRIKESET_DESCRIPTION; + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStrikesTake.java b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesTake.java new file mode 100644 index 00000000..e405a37b --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStrikesTake.java @@ -0,0 +1,38 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdStrikesTake extends FCommand { + + + public CmdStrikesTake() { + super(); + this.aliases.add("take"); + this.requiredArgs.add(0, "faction"); + this.requiredArgs.add(1, "number of strikes"); + + this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + Faction target = context.argAsFaction(0); + if (target == null || target.isSystemFaction()) { + context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0)); + return; + } + target.setStrikes(target.getStrikes() - context.argAsInt(1)); + context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes()); + } + + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_STRIKETAKE_DESCRIPTION; + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStuck.java b/src/main/java/com/massivecraft/factions/cmd/CmdStuck.java index 827acf64..a0a3b9ef 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdStuck.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStuck.java @@ -10,87 +10,75 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; public class CmdStuck extends FCommand { public CmdStuck() { super(); - this.aliases.add("stuck"); this.aliases.add("halp!"); // halp!c: - this.permission = Permission.STUCK.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.STUCK) + .playerOnly() + .build(); } @Override - public void perform() { - final Player player = fme.getPlayer(); + public void perform(CommandContext context) { + final Player player = context.player; final Location sentAt = player.getLocation(); - final FLocation chunk = fme.getLastStoodAt(); - final long delay = P.p.getConfig().getLong("hcf.stuck.delay", 30); - final int radius = P.p.getConfig().getInt("hcf.stuck.radius", 10); + final FLocation chunk = context.fPlayer.getLastStoodAt(); + final long delay = FactionsPlugin.getInstance().getConfig().getLong("hcf.stuck.delay", 30); + final int radius = FactionsPlugin.getInstance().getConfig().getInt("hcf.stuck.radius", 10); - if (P.p.getStuckMap().containsKey(player.getUniqueId())) { - long wait = P.p.getTimers().get(player.getUniqueId()) - System.currentTimeMillis(); + if (FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) { + long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis(); String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true); - msg(TL.COMMAND_STUCK_EXISTS, time); + context.msg(TL.COMMAND_STUCK_EXISTS, time); } else { // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostStuck, TL.COMMAND_STUCK_TOSTUCK.format(fme.getName()), TL.COMMAND_STUCK_FORSTUCK.format(fme.getName()))) { + if (!context.payForCommand(Conf.econCostStuck, TL.COMMAND_STUCK_TOSTUCK.format(context.fPlayer.getName()), TL.COMMAND_STUCK_FORSTUCK.format(context.fPlayer.getName()))) { return; } - final int id = Bukkit.getScheduler().runTaskLater(P.p, new BukkitRunnable() { + final int id = Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), new Runnable() { @Override public void run() { - if (!P.p.getStuckMap().containsKey(player.getUniqueId())) { + if (!FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) { return; } // check for world difference or radius exceeding final World world = chunk.getWorld(); if (world.getUID() != player.getWorld().getUID() || sentAt.distance(player.getLocation()) > radius) { - msg(TL.COMMAND_STUCK_OUTSIDE.format(radius)); - P.p.getTimers().remove(player.getUniqueId()); - P.p.getStuckMap().remove(player.getUniqueId()); + context.msg(TL.COMMAND_STUCK_OUTSIDE.format(radius)); + FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId()); + FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId()); return; } final Board board = Board.getInstance(); // spiral task to find nearest wilderness chunk - new SpiralTask(new FLocation(me), radius * 2) { - - final int buffer = P.p.getConfig().getInt("world-border.buffer", 0); - + new SpiralTask(new FLocation(context.player), radius * 2) { @Override public boolean work() { FLocation chunk = currentFLocation(); - if (chunk.isOutsideWorldBorder(buffer)) { - return true; - } Faction faction = board.getFactionAt(chunk); - int buffer = P.p.getConfig().getInt("world-border.buffer", 0); + int buffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0) - 1; if (faction.isWilderness() && !chunk.isOutsideWorldBorder(buffer)) { int cx = FLocation.chunkToBlock((int) chunk.getX()); int cz = FLocation.chunkToBlock((int) chunk.getZ()); int y = world.getHighestBlockYAt(cx, cz); Location tp = new Location(world, cx, y, cz); - msg(TL.COMMAND_STUCK_TELEPORT, tp.getBlockX(), tp.getBlockY(), tp.getBlockZ()); - P.p.getTimers().remove(player.getUniqueId()); - P.p.getStuckMap().remove(player.getUniqueId()); + context.msg(TL.COMMAND_STUCK_TELEPORT, tp.getBlockX(), tp.getBlockY(), tp.getBlockZ()); + FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId()); + FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId()); if (!Essentials.handleTeleport(player, tp)) { player.teleport(tp); - P.p.debug("/f stuck used regular teleport, not essentials!"); + FactionsPlugin.getInstance().debug("/f stuck used regular teleport, not essentials!"); } this.stop(); return false; @@ -101,11 +89,11 @@ public class CmdStuck extends FCommand { } }, delay * 20).getTaskId(); - P.p.getTimers().put(player.getUniqueId(), System.currentTimeMillis() + (delay * 1000)); - long wait = P.p.getTimers().get(player.getUniqueId()) - System.currentTimeMillis(); + FactionsPlugin.getInstance().getTimers().put(player.getUniqueId(), System.currentTimeMillis() + (delay * 1000)); + long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis(); String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true); - msg(TL.COMMAND_STUCK_START, time); - P.p.getStuckMap().put(player.getUniqueId(), id); + context.msg(TL.COMMAND_STUCK_START, time); + FactionsPlugin.getInstance().getStuckMap().put(player.getUniqueId(), id); } } @@ -114,3 +102,4 @@ public class CmdStuck extends FCommand { return TL.COMMAND_STUCK_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTag.java b/src/main/java/com/massivecraft/factions/cmd/CmdTag.java index c8da8382..5c5ab560 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTag.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTag.java @@ -4,6 +4,7 @@ import com.massivecraft.factions.*; import com.massivecraft.factions.event.FactionRenameEvent; import com.massivecraft.factions.scoreboards.FTeamWrapper; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.MiscUtil; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -17,77 +18,65 @@ public class CmdTag extends FCommand { this.aliases.add("rename"); this.requiredArgs.add("faction tag"); - //this.optionalArgs.put("", ""); - - this.permission = Permission.TAG.node; - this.disableOnLock = true; - this.disableOnSpam = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.TAG) + .withRole(Role.COLEADER) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - String tag = this.argAsString(0); - - - if (!fme.isCooldownEnded("tag")) { - fme.msg(TL.COMMAND_ONCOOOLDOWN, fme.getCooldown("tag")); - return; - } - + public void perform(CommandContext context) { + String tag = context.argAsString(0); // TODO does not first test cover selfcase? - if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(myFaction.getComparisonTag())) { - msg(TL.COMMAND_TAG_TAKEN); + if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) { + context.msg(TL.COMMAND_TAG_TAKEN); return; } ArrayList errors = MiscUtil.validateTag(tag); if (errors.size() > 0) { - sendMessage(errors); + context.sendMessage(errors); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay - if (!canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) { + if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) { return; } // trigger the faction rename event (cancellable) - FactionRenameEvent renameEvent = new FactionRenameEvent(fme, tag); + FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag); Bukkit.getServer().getPluginManager().callEvent(renameEvent); if (renameEvent.isCancelled()) { return; } // then make 'em pay (if applicable) - if (!payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) { + if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) { return; } - String oldtag = myFaction.getTag(); - myFaction.setTag(tag); + String oldtag = context.faction.getTag(); + context.faction.setTag(tag); // Inform for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - if (fplayer.getFactionId().equals(myFaction.getId())) { - fplayer.msg(TL.COMMAND_TAG_FACTION, fme.describeTo(myFaction, true), myFaction.getTag(myFaction)); + if (fplayer.getFactionId().equals(context.faction.getId())) { + fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction)); continue; } // Broadcast the tag change (if applicable) if (Conf.broadcastTagChanges) { Faction faction = fplayer.getFaction(); - fplayer.msg(TL.COMMAND_TAG_CHANGED, fme.getColorTo(faction) + oldtag, myFaction.getTag(faction)); + fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction)); } } - fme.setCooldown("tag", System.currentTimeMillis() + (P.p.getConfig().getInt("fcooldowns.f-tag") * 1000)); - FTeamWrapper.updatePrefixes(myFaction); + + FTeamWrapper.updatePrefixes(context.faction); } @Override @@ -95,4 +84,4 @@ public class CmdTag extends FCommand { return TL.COMMAND_TAG_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTitle.java b/src/main/java/com/massivecraft/factions/cmd/CmdTitle.java index 7202927c..1afcda0d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTitle.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTitle.java @@ -10,45 +10,26 @@ public class CmdTitle extends FCommand { public CmdTitle() { this.aliases.add("title"); - this.requiredArgs.add("player name"); this.optionalArgs.put("title", ""); - this.permission = Permission.TITLE.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TITLE) + .playerOnly() + .build(); } @Override - public void perform() { - FPlayer you = this.argAsBestFPlayerMatch(0); - if (you == null) { - return; - } - - - args.remove(0); - String title = TextUtil.implode(args, " "); - title = title.replaceAll(",", ""); - - if (!canIAdministerYou(fme, you)) { - return; - } - + public void perform(CommandContext context) { + FPlayer you = context.argAsBestFPlayerMatch(0); + if (you == null) return; + context.args.remove(0); + String title = TextUtil.implode(context.args, " "); + if (!context.canIAdministerYou(context.fPlayer, you)) return; // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostTitle, TL.COMMAND_TITLE_TOCHANGE, TL.COMMAND_TITLE_FORCHANGE)) { - return; - } - - you.setTitle(sender, title); - + if (!context.payForCommand(Conf.econCostTitle, TL.COMMAND_TITLE_TOCHANGE, TL.COMMAND_TITLE_FORCHANGE)) return; + you.setTitle(context.sender, title); // Inform - myFaction.msg(TL.COMMAND_TITLE_CHANGED, fme.describeTo(myFaction, true), you.describeTo(myFaction, true)); + context.faction.msg(TL.COMMAND_TITLE_CHANGED, context.fPlayer.describeTo(context.faction, true), you.describeTo(context.faction, true)); } @Override @@ -56,4 +37,4 @@ public class CmdTitle extends FCommand { return TL.COMMAND_TITLE_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdToggleAllianceChat.java b/src/main/java/com/massivecraft/factions/cmd/CmdToggleAllianceChat.java index 95664b6d..490ac8cd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdToggleAllianceChat.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdToggleAllianceChat.java @@ -12,16 +12,10 @@ public class CmdToggleAllianceChat extends FCommand { this.aliases.add("togglealliancechat"); this.aliases.add("ac"); - this.disableOnLock = false; - - this.permission = Permission.TOGGLE_ALLIANCE_CHAT.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_ALLIANCE_CHAT) + .playerOnly() + .memberOnly() + .build(); } @Override @@ -30,15 +24,16 @@ public class CmdToggleAllianceChat extends FCommand { } @Override - public void perform() { + public void perform(CommandContext context) { if (!Conf.factionOnlyChat) { - msg(TL.COMMAND_CHAT_DISABLED.toString()); + context.msg(TL.COMMAND_CHAT_DISABLED.toString()); return; } - boolean ignoring = fme.isIgnoreAllianceChat(); + boolean ignoring = context.fPlayer.isIgnoreAllianceChat(); - msg(ignoring ? TL.COMMAND_TOGGLEALLIANCECHAT_UNIGNORE : TL.COMMAND_TOGGLEALLIANCECHAT_IGNORE); - fme.setIgnoreAllianceChat(!ignoring); + context.msg(ignoring ? TL.COMMAND_TOGGLEALLIANCECHAT_UNIGNORE : TL.COMMAND_TOGGLEALLIANCECHAT_IGNORE); + context.fPlayer.setIgnoreAllianceChat(!ignoring); } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTop.java b/src/main/java/com/massivecraft/factions/cmd/CmdTop.java index 1ae8c5bb..cdd20d0c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTop.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTop.java @@ -16,24 +16,16 @@ public class CmdTop extends FCommand { super(); this.aliases.add("top"); this.aliases.add("t"); - - //this.requiredArgs.add(""); this.requiredArgs.add("criteria"); this.optionalArgs.put("page", "1"); - this.permission = Permission.TOP.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TOP) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // Can sort by: money, members, online, allies, enemies, power, land. // Get all Factions and remove non player ones. ArrayList factionList = Factions.getInstance().getAllFactions(); @@ -41,7 +33,7 @@ public class CmdTop extends FCommand { factionList.remove(Factions.getInstance().getSafeZone()); factionList.remove(Factions.getInstance().getWarZone()); - String criteria = argAsString(0); + String criteria = context.argAsString(0); // TODO: Better way to sort? if (criteria.equalsIgnoreCase("members")) { @@ -119,14 +111,13 @@ public class CmdTop extends FCommand { return 0; }); } else { - msg(TL.COMMAND_TOP_INVALID, criteria); - return; + context.msg(TL.COMMAND_TOP_INVALID, criteria); } ArrayList lines = new ArrayList<>(); final int pageheight = 9; - int pagenumber = this.argAsInt(1, 1); + int pagenumber = context.argAsInt(1, 1); int pagecount = (factionList.size() / pageheight) + 1; if (pagenumber > pagecount) { pagenumber = pagecount; @@ -144,12 +135,12 @@ public class CmdTop extends FCommand { int rank = 1; for (Faction faction : factionList.subList(start, end)) { // Get the relation color if player is executing this. - String fac = sender instanceof Player ? faction.getRelationTo(fme).getColor() + faction.getTag() : faction.getTag(); + String fac = context.sender instanceof Player ? faction.getRelationTo(context.fPlayer).getColor() + faction.getTag() : faction.getTag(); lines.add(TL.COMMAND_TOP_LINE.format(rank, fac, getValue(faction, criteria))); rank++; } - sendMessage(lines); + context.sendMessage(lines); } private String getValue(Faction faction, String criteria) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java b/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java index 0e6c739f..713b5aac 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java @@ -1,39 +1,39 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.listeners.FactionsBlockListener; +import com.massivecraft.factions.listeners.FactionsPlayerListener; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.WarmUpUtil; import com.massivecraft.factions.zcore.util.TL; public class CmdTpBanner extends FCommand { + public CmdTpBanner() { super(); - this.aliases.add("tpbanner"); - this.permission = Permission.TPBANNER.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TPBANNER) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fbanners.Enabled")) { + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) { return; } - if (FactionsBlockListener.bannerLocations.containsKey(fme.getTag())) { - fme.msg(TL.COMMAND_TPBANNER_SUCCESS); - this.doWarmUp(WarmUpUtil.Warmup.BANNER, TL.WARMUPS_NOTIFY_TELEPORT, "Banner", () -> me.teleport(FactionsBlockListener.bannerLocations.get(fme.getTag())), this.p.getConfig().getLong("warmups.f-banner", 0)); + final FactionsPlayerListener fpl = new FactionsPlayerListener(); + + if (FactionsBlockListener.bannerLocations.containsKey(context.fPlayer.getTag())) { + context.msg(TL.COMMAND_TPBANNER_SUCCESS); + context.doWarmUp(WarmUpUtil.Warmup.BANNER, TL.WARMUPS_NOTIFY_TELEPORT, "Banner", () -> { + context.player.teleport(FactionsBlockListener.bannerLocations.get(context.fPlayer.getTag())); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-banner", 0)); } else { - fme.msg(TL.COMMAND_TPBANNER_NOTSET); + context.msg(TL.COMMAND_TPBANNER_NOTSET); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdUnban.java b/src/main/java/com/massivecraft/factions/cmd/CmdUnban.java index 86ba4be7..fc293630 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdUnban.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdUnban.java @@ -2,7 +2,6 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -12,44 +11,40 @@ public class CmdUnban extends FCommand { public CmdUnban() { super(); this.aliases.add("unban"); - this.requiredArgs.add("target"); - this.permission = Permission.BAN.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.BAN) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.BAN) + .build(); } @Override - public void perform() { - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.BAN); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER && !Permission.BAN.has(sender, true)) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage bans"); - return; - } - } - + public void perform(CommandContext context) { // Good on permission checks. Now lets just ban the player. - FPlayer target = argAsFPlayer(0); + FPlayer target = context.argAsFPlayer(0); if (target == null) { return; // the above method sends a message if fails to find someone. } - if (!myFaction.isBanned(target)) { - fme.msg(TL.COMMAND_UNBAN_NOTBANNED, target.getName()); + if (target.getFaction() != context.fPlayer.getFaction()) { + if (target.getFaction().getAccess(context.fPlayer, PermissableAction.BAN) != Access.ALLOW) { + if (!context.fPlayer.isAdminBypassing()) { + context.fPlayer.msg(TL.COMMAND_UNBAN_TARGET_IN_OTHER_FACTION); + } + } + } + + if (!context.faction.isBanned(target)) { + context.msg(TL.COMMAND_UNBAN_NOTBANNED, target.getName()); return; } - myFaction.unban(target); + context.faction.unban(target); - myFaction.msg(TL.COMMAND_UNBAN_UNBANNED, fme.getName(), target.getName()); - target.msg(TL.COMMAND_UNBAN_TARGET, myFaction.getTag(target)); + context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName()); + target.msg(TL.COMMAND_UNBAN_TARGET, context.faction.getTag(target)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdUpgrades.java b/src/main/java/com/massivecraft/factions/cmd/CmdUpgrades.java index 70ae131d..898eccf9 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdUpgrades.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdUpgrades.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.fupgrades.FUpgradesGUI; import com.massivecraft.factions.zcore.util.TL; @@ -11,26 +11,20 @@ public class CmdUpgrades extends FCommand { this.aliases.add("upgrades"); this.aliases.add("upgrade"); - //this.requiredArgs.add(""); - this.optionalArgs.put("mobs/crops/exp/power", ""); - - this.permission = Permission.UPGRADES.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.UPGRADES) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fupgrades.Enabled")) { - fme.sendMessage("This command is disabled!"); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fupgrades.Enabled")) { + context.fPlayer.sendMessage("This command is disabled!"); return; } - new FUpgradesGUI().openMainMenu(fme); + new FUpgradesGUI().openMainMenu(context.fPlayer); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdVault.java b/src/main/java/com/massivecraft/factions/cmd/CmdVault.java index ba5cf284..716b0b7b 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdVault.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdVault.java @@ -2,9 +2,8 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Location; @@ -17,57 +16,48 @@ public class CmdVault extends FCommand { public CmdVault() { this.aliases.add("vault"); - //this.requiredArgs.add(""); - - - this.permission = Permission.VAULT.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.VAULT) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.VAULT) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { - if (!P.p.getConfig().getBoolean("fvault.Enabled")) { - fme.sendMessage("This command is disabled!"); - return; - } - Access access = fme.getFaction().getAccess(fme, PermissableAction.VAULT); - if (access.equals(Access.DENY)) { - fme.msg(TL.GENERIC_NOPERMISSION, "vault"); + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) { + context.fPlayer.sendMessage("This command is disabled!"); return; } - if (fme.isInVault()) { - me.closeInventory(); + if (context.fPlayer.isInVault()) { + context.player.closeInventory(); return; } - fme.setInVault(true); - Location vaultLocation = fme.getFaction().getVault(); + + context.fPlayer.setInVault(true); + Location vaultLocation = context.faction.getVault(); if (vaultLocation == null) { - fme.msg(TL.COMMAND_VAULT_INVALID); + context.msg(TL.COMMAND_VAULT_INVALID); return; } FLocation vaultFLocation = new FLocation(vaultLocation); - if (Board.getInstance().getFactionAt(vaultFLocation) != fme.getFaction()) { - fme.getFaction().setVault(null); - fme.msg(TL.COMMAND_VAULT_INVALID); + if (Board.getInstance().getFactionAt(vaultFLocation) != context.faction) { + context.faction.setVault(null); + context.msg(TL.COMMAND_VAULT_INVALID); return; } if (vaultLocation.getBlock().getType() != Material.CHEST) { - fme.getFaction().setVault(null); - fme.msg(TL.COMMAND_VAULT_INVALID); + context.faction.setVault(null); + context.msg(TL.COMMAND_VAULT_INVALID); return; } Chest chest = (Chest) vaultLocation.getBlock().getState(); Inventory chestInv = chest.getBlockInventory(); - fme.msg(TL.COMMAND_VAULT_OPENING); - me.openInventory(chestInv); + context.msg(TL.COMMAND_VAULT_OPENING); + context.player.openInventory(chestInv); } @@ -76,4 +66,5 @@ public class CmdVault extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_VAULT_DESCRIPTION; } -} + +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdVersion.java b/src/main/java/com/massivecraft/factions/cmd/CmdVersion.java index 376ddd66..3943a863 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdVersion.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdVersion.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -11,26 +11,18 @@ public class CmdVersion extends FCommand { this.aliases.add("version"); this.aliases.add("ver"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.VERSION.node; - this.disableOnLock = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.VERSION) + .build(); } @Override - public void perform() { - msg(TL.COMMAND_VERSION_NAME); // Did this so people can differentiate between P and FactionsUUID (( Requested Feature )) - msg(TL.COMMAND_VERSION_VERSION, P.p.getDescription().getFullName()); + public void perform(CommandContext context) { + context.msg(TL.COMMAND_VERSION_NAME); // Did this so people can differentiate between SavageFactions and FactionsUUID (( Requested Feature )) + context.msg(TL.COMMAND_VERSION_VERSION, FactionsPlugin.getInstance().getDescription().getFullName()); } @Override public TL getUsageTranslation() { return TL.COMMAND_VERSION_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdViewChest.java b/src/main/java/com/massivecraft/factions/cmd/CmdViewChest.java index bfc7323c..d7af8c36 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdViewChest.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdViewChest.java @@ -1,40 +1,38 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdViewChest extends FCommand { public CmdViewChest() { + super(); this.aliases.add("viewchest"); this.aliases.add("viewpv"); this.requiredArgs.add("faction name"); - - this.permission = Permission.VIEWCHEST.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.VIEWCHEST) + .playerOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("fchest.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fchest.Enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } - Faction faction = this.argAsFaction(0, fme == null ? null : myFaction); + Faction myFaction = context.fPlayer.getFaction(); + + Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : myFaction); if (faction == null) { return; } - me.openInventory(faction.getChestInventory()); + context.player.openInventory(context.faction.getChestInventory()); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CommandContext.java b/src/main/java/com/massivecraft/factions/cmd/CommandContext.java new file mode 100644 index 00000000..b438b997 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CommandContext.java @@ -0,0 +1,418 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.*; +import com.massivecraft.factions.integration.Econ; +import com.massivecraft.factions.struct.Role; +import com.massivecraft.factions.util.WarmUpUtil; +import com.massivecraft.factions.zcore.util.TL; +import mkremins.fanciful.FancyMessage; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +/* + Object that contains information about a command being executed, + args, player, faction + */ +public class CommandContext { + + public CommandSender sender; + + public Player player; + public FPlayer fPlayer; + public Faction faction; + + public List args; + public String alias; + + public List commandChain = new ArrayList<>(); // The command chain used to execute this command + + public CommandContext(CommandSender sender, List args, String alias) { + this.sender = sender; + this.args = args; + this.alias = alias; + + if (sender instanceof Player) { + this.player = (Player) sender; + this.fPlayer = FPlayers.getInstance().getByPlayer(player); + this.faction = fPlayer.getFaction(); + } + } + + // -------------------------------------------- // + // Message Sending Helpers + // -------------------------------------------- // + + public void msg(String str, Object... args) { + sender.sendMessage(FactionsPlugin.getInstance().txt.parse(str, args)); + } + + public void msg(TL translation, Object... args) { + sender.sendMessage(FactionsPlugin.getInstance().txt.parse(translation.toString(), args)); + } + + public void sendMessage(String msg) { + sender.sendMessage(msg); + } + + public void sendMessage(List msgs) { + for (String msg : msgs) { + this.sendMessage(msg); + } + } + + public void sendFancyMessage(FancyMessage message) { + message.send(sender); + } + + public void sendFancyMessage(List messages) { + for (FancyMessage m : messages) { + sendFancyMessage(m); + } + } + + // TODO: Clean this UP + // -------------------------------------------- // + // Argument Readers + // -------------------------------------------- // + + // Is set? ====================== + public boolean argIsSet(int idx) { + return args.size() >= idx + 1; + } + + // STRING ====================== + public String argAsString(int idx, String def) { + if (args.size() < idx + 1) { + return def; + } + return args.get(idx); + } + + public String argAsString(int idx) { + return argAsString(idx, null); + } + + // INT ====================== + public Integer strAsInt(String str, Integer def) { + if (str == null) { + return def; + } + try { + return Integer.parseInt(str); + } catch (Exception e) { + return def; + } + } + + public Integer argAsInt(int idx, Integer def) { + return strAsInt(argAsString(idx), def); + } + + public Integer argAsInt(int idx) { + return argAsInt(idx, null); + } + + // Double ====================== + public Double strAsDouble(String str, Double def) { + if (str == null) { + return def; + } + try { + return Double.parseDouble(str); + } catch (Exception e) { + return def; + } + } + + public Double argAsDouble(int idx, Double def) { + return strAsDouble(argAsString(idx), def); + } + + public Double argAsDouble(int idx) { + return argAsDouble(idx, null); + } + + // TODO: Go through the str conversion for the other arg-readers as well. + // Boolean ====================== + public Boolean strAsBool(String str) { + str = str.toLowerCase(); + return str.startsWith("y") || str.startsWith("t") || str.startsWith("on") || str.startsWith("+") || str.startsWith("1"); + } + + public Boolean argAsBool(int idx, boolean def) { + String str = argAsString(idx); + if (str == null) { + return def; + } + + return strAsBool(str); + } + + public Boolean argAsBool(int idx) { + return argAsBool(idx, false); + } + + // PLAYER ====================== + public Player strAsPlayer(String name, Player def, boolean msg) { + Player ret = def; + + if (name != null) { + Player player = Bukkit.getServer().getPlayer(name); + if (player != null) { + ret = player; + } + } + + if (msg && ret == null) { + sender.sendMessage(TL.GENERIC_NOPLAYERFOUND.format(name)); + } + + return ret; + } + + public Player argAsPlayer(int idx, Player def, boolean msg) { + return this.strAsPlayer(argAsString(idx), def, msg); + } + + public Player argAsPlayer(int idx, Player def) { + return argAsPlayer(idx, def, true); + } + + public Player argAsPlayer(int idx) { + return argAsPlayer(idx, null); + } + + // BEST PLAYER MATCH ====================== + public Player strAsBestPlayerMatch(String name, Player def, boolean msg) { + Player ret = def; + + if (name != null) { + List players = Bukkit.getServer().matchPlayer(name); + if (players.size() > 0) { + ret = players.get(0); + } + } + + if (msg && ret == null) { + sender.sendMessage(TL.GENERIC_NOPLAYERMATCH.format(name)); + } + + return ret; + } + + public Player argAsBestPlayerMatch(int idx, Player def, boolean msg) { + return this.strAsBestPlayerMatch(argAsString(idx), def, msg); + } + + public Player argAsBestPlayerMatch(int idx, Player def) { + return argAsBestPlayerMatch(idx, def, true); + } + + public Player argAsBestPlayerMatch(int idx) { + return argAsPlayer(idx, null); + } + + + // -------------------------------------------- // + // Faction Argument Readers + // -------------------------------------------- // + + // FPLAYER ====================== + public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg) { + FPlayer ret = def; + + if (name != null) { + for (FPlayer fplayer : FPlayers.getInstance().getAllFPlayers()) { + if (fplayer.getName().equalsIgnoreCase(name)) { + ret = fplayer; + break; + } + } + } + + if (msg && ret == null) { + msg(TL.GENERIC_NOPLAYERFOUND, name); + } + + return ret; + } + + public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg) { + return this.strAsFPlayer(argAsString(idx), def, msg); + } + + public FPlayer argAsFPlayer(int idx, FPlayer def) { + return argAsFPlayer(idx, def, true); + } + + public FPlayer argAsFPlayer(int idx) { + return argAsFPlayer(idx, null); + } + + // BEST FPLAYER MATCH ====================== + public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg) { + return strAsFPlayer(name, def, msg); + } + + public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg) { + return this.strAsBestFPlayerMatch(argAsString(idx), def, msg); + } + + public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def) { + return argAsBestFPlayerMatch(idx, def, true); + } + + public FPlayer argAsBestFPlayerMatch(int idx) { + return argAsBestFPlayerMatch(idx, null); + } + + // FACTION ====================== + public Faction strAsFaction(String name, Faction def, boolean msg) { + Faction ret = def; + + if (name != null) { + // First we try an exact match + Faction faction = Factions.getInstance().getByTag(name); // Checks for faction name match. + + // Now lets try for warzone / safezone. Helpful for custom warzone / safezone names. + // Do this after we check for an exact match in case they rename the warzone / safezone + // and a player created faction took one of the names. + if (faction == null) { + if (name.equalsIgnoreCase("warzone")) { + faction = Factions.getInstance().getWarZone(); + } else if (name.equalsIgnoreCase("safezone")) { + faction = Factions.getInstance().getSafeZone(); + } + } + + // Next we match faction tags + if (faction == null) { + faction = Factions.getInstance().getBestTagMatch(name); + } + + // Next we match player names + if (faction == null) { + FPlayer fplayer = strAsFPlayer(name, null, false); + if (fplayer != null) { + faction = fplayer.getFaction(); + } + } + + if (faction != null) { + ret = faction; + } + } + + if (msg && ret == null) { + sender.sendMessage(TL.GENERIC_NOFACTION_FOUND.format(name)); + } + + return ret; + } + + public Faction argAsFaction(int idx, Faction def, boolean msg) { + return this.strAsFaction(argAsString(idx), def, msg); + } + + public Faction argAsFaction(int idx, Faction def) { + return argAsFaction(idx, def, true); + } + + public Faction argAsFaction(int idx) { + return argAsFaction(idx, null); + } + + /* + Assertions + */ + + public boolean assertHasFaction() { + if (player == null) { + return true; + } + + if (!fPlayer.hasFaction()) { + sendMessage("You are not member of any faction."); + return false; + } + return true; + } + + public boolean assertMinRole(Role role) { + if (player == null) { + return true; + } + + if (fPlayer.getRole().value < role.value) { + msg("You must be " + role); + return false; + } + return true; + } + + /* + Common Methods + */ + public boolean canIAdministerYou(FPlayer i, FPlayer you) { + if (!i.getFaction().equals(you.getFaction())) { + i.msg(TL.COMMAND_CONTEXT_ADMINISTER_DIF_FACTION, you.describeTo(i, true)); + return false; + } + + if (i.getRole().value > you.getRole().value || i.getRole().equals(Role.LEADER)) return true; + + if (you.getRole().equals(Role.LEADER)) i.msg(TL.COMMAND_CONTEXT_ADMINISTER_ADMIN_REQUIRED); + + else if (i.getRole().equals(Role.MODERATOR)) { + + if (i == you) return true; //Moderators can control themselves + else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_SAME_RANK_CONTROL); + + } else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_MOD_REQUIRED); + + return false; + } + + // if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost + public boolean payForCommand(double cost, String toDoThis, String forDoingThis) { + if (!Econ.shouldBeUsed() || this.fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) { + return true; + } + + if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) { + return Econ.modifyMoney(faction, -cost, toDoThis, forDoingThis); + } else { + return Econ.modifyMoney(fPlayer, -cost, toDoThis, forDoingThis); + } + } + + public boolean payForCommand(double cost, TL toDoThis, TL forDoingThis) { + return payForCommand(cost, toDoThis.toString(), forDoingThis.toString()); + } + + // like above, but just make sure they can pay; returns true unless person can't afford the cost + public boolean canAffordCommand(double cost, String toDoThis) { + if (!Econ.shouldBeUsed() || fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) { + return true; + } + + if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) { + return Econ.hasAtLeast(faction, cost, toDoThis); + } else { + return Econ.hasAtLeast(fPlayer, cost, toDoThis); + } + } + + public void doWarmUp(WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) { + this.doWarmUp(fPlayer, warmup, translationKey, action, runnable, delay); + } + + public void doWarmUp(FPlayer player, WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) { + WarmUpUtil.process(player, warmup, translationKey, action, runnable, delay); + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CommandRequirements.java b/src/main/java/com/massivecraft/factions/cmd/CommandRequirements.java new file mode 100644 index 00000000..bc75c6c6 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CommandRequirements.java @@ -0,0 +1,155 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.struct.Role; +import com.massivecraft.factions.zcore.fperms.Access; +import com.massivecraft.factions.zcore.fperms.PermissableAction; +import com.massivecraft.factions.zcore.util.TL; + +public class CommandRequirements { + + // Permission required to execute command + public Permission permission; + + // Must be player + public boolean playerOnly; + // Must be member of faction + public boolean memberOnly; + + // Must be atleast this role + public Role role; + + // PermissableAction check if the player has allow for this before checking the role + public PermissableAction action; + + // Commodore stuffs + public Class brigadier; + + // Edge case handling + public boolean errorOnManyArgs; + public boolean disableOnLock; + + private CommandRequirements(Permission permission, boolean playerOnly, boolean memberOnly, Role role, PermissableAction action, Class brigadier) { + this.permission = permission; + this.playerOnly = playerOnly; + this.memberOnly = memberOnly; + this.role = role; + this.action = action; + this.brigadier = brigadier; + } + + public boolean computeRequirements(CommandContext context, boolean informIfNot) { + // Did not modify CommandRequirements return true + if (permission == null) { + return true; + } + + if (context.player != null) { + // Is Player + if (!context.fPlayer.hasFaction() && memberOnly) { + if (informIfNot) context.msg(TL.GENERIC_MEMBERONLY); + return false; + } + + if (!FactionsPlugin.getInstance().perm.has(context.sender, permission.node, informIfNot)) return false; + + // Permissable Action provided compute that before role + if (action != null) { + if (context.fPlayer.getRole() == Role.LEADER) return true; + Access access = context.faction.getAccess(context.fPlayer, action); + if (access == Access.DENY) { + if (informIfNot) context.msg(TL.GENERIC_FPERM_NOPERMISSION, action.getName()); + return false; + } + + if (access != Access.ALLOW) { + // They have undefined assert their role + if (role != null && !context.fPlayer.getRole().isAtLeast(role)) { + // They do not fullfill the role + if (informIfNot) context.msg(TL.GENERIC_YOUMUSTBE, role.translation); + return false; + } + } + // They have been explicitly allowed + return true; + } else { + if ((role != null && !context.fPlayer.getRole().isAtLeast(role)) && informIfNot) { + context.msg(TL.GENERIC_YOUMUSTBE, role.translation); + } + return role == null || context.fPlayer.getRole().isAtLeast(role); + } + } else { + if (playerOnly) { + if (informIfNot) context.sender.sendMessage(TL.GENERIC_PLAYERONLY.toString()); + return false; + } + return context.sender.hasPermission(permission.node); + } + } + + public static class Builder { + + private Permission permission; + + private boolean playerOnly = false; + private boolean memberOnly = false; + + private Role role = null; + private PermissableAction action; + + private Class brigadier; + + private boolean errorOnManyArgs = true; + private boolean disableOnLock = true; + + public Builder(Permission permission) { + this.permission = permission; + } + + public Builder playerOnly() { + playerOnly = true; + return this; + } + + public Builder memberOnly() { + playerOnly = true; + memberOnly = true; + return this; + } + + public Builder withRole(Role role) { + this.role = role; + return this; + } + + public Builder withAction(PermissableAction action) { + this.action = action; + return this; + } + + public Builder brigadier(Class brigadier) { + this.brigadier = brigadier; + return this; + } + + public CommandRequirements build() { + CommandRequirements requirements = new CommandRequirements(permission, playerOnly, memberOnly, role, action, brigadier); + requirements.errorOnManyArgs = errorOnManyArgs; + requirements.disableOnLock = disableOnLock; + return requirements; + } + + public Builder noErrorOnManyArgs() { + errorOnManyArgs = false; + return this; + } + + public Builder noDisableOnLock() { + disableOnLock = false; + return this; + } + + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index f1effd00..f43d274d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -1,12 +1,13 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.cmd.alts.CmdAlts; import com.massivecraft.factions.cmd.check.CmdCheck; import com.massivecraft.factions.cmd.check.CmdWeeWoo; import com.massivecraft.factions.cmd.chest.CmdChest; import com.massivecraft.factions.cmd.claim.*; +import com.massivecraft.factions.cmd.configsf.CmdConvertConfig; import com.massivecraft.factions.cmd.econ.CmdMoney; import com.massivecraft.factions.cmd.grace.CmdGrace; import com.massivecraft.factions.cmd.logout.CmdLogout; @@ -22,12 +23,20 @@ import com.massivecraft.factions.cmd.tnt.CmdTntFill; import com.massivecraft.factions.missions.CmdMissions; import com.massivecraft.factions.shop.CmdShop; import com.massivecraft.factions.zcore.util.TL; +import me.lucko.commodore.CommodoreProvider; import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.logging.Level; -public class FCmdRoot extends FCommand { +public class FCmdRoot extends FCommand implements CommandExecutor { + + public BrigadierManager brigadierManager; public CmdAdmin cmdAdmin = new CmdAdmin(); public CmdAutoClaim cmdAutoClaim = new CmdAutoClaim(); @@ -124,43 +133,33 @@ public class FCmdRoot extends FCommand { public CmdTntFill cmdTntFill = new CmdTntFill(); public CmdChest cmdChest = new CmdChest(); public CmdSetBanner cmdSetBanner = new CmdSetBanner(); - public CmdStrike cmdStrike = new CmdStrike(); - public CmdStrikeSet cmdStrikeSet = new CmdStrikeSet(); public CmdAlts cmdAlts = new CmdAlts(); - public CmdSpam cmdSpam = new CmdSpam(); public CmdCorner cmdCorner = new CmdCorner(); public CmdInventorySee cmdInventorySee = new CmdInventorySee(); public CmdFGlobal cmdFGlobal = new CmdFGlobal(); public CmdViewChest cmdViewChest = new CmdViewChest(); public CmdPoints cmdPoints = new CmdPoints(); public CmdLogout cmdLogout = new CmdLogout(); - public CmdNotifications cmdNotifications = new CmdNotifications(); public CmdShop cmdShop = new CmdShop(); public CmdMissions cmdMissions = new CmdMissions(); + public CmdStrikes cmdStrikes = new CmdStrikes(); public CmdCheck cmdCheck = new CmdCheck(); public CmdWeeWoo cmdWeeWoo = new CmdWeeWoo(); - + public CmdConvertConfig cmdConvertConfig = new CmdConvertConfig(); public FCmdRoot() { super(); + + if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager(); + + this.aliases.addAll(Conf.baseCommandAliases); - this.aliases.removeAll(Collections.singletonList(null)); // remove any nulls from extra commas - this.allowNoSlashAccess = Conf.allowNoSlashCommand; - - //this.requiredArgs.add(""); - //this.optionalArgs.put("","") - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - - this.disableOnLock = false; + this.aliases.removeAll(Collections.singletonList(null)); this.setHelpShort("The faction base command"); - this.helpLong.add(p.txt.parseTags("This command contains all faction stuff.")); + this.helpLong.add(FactionsPlugin.getInstance().txt.parseTags("This command contains all faction stuff.")); - //this.subCommands.add(plugin.cmdHelp); + if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager(); this.addSubCommand(this.cmdAdmin); this.addSubCommand(this.cmdAutoClaim); @@ -175,7 +174,6 @@ public class FCmdRoot extends FCommand { this.addSubCommand(this.cmdDeinvite); this.addSubCommand(this.cmdDescription); this.addSubCommand(this.cmdDisband); - this.addSubCommand(this.cmdStrike); this.addSubCommand(this.cmdHelp); this.addSubCommand(this.cmdHome); this.addSubCommand(this.cmdInvite); @@ -187,7 +185,6 @@ public class FCmdRoot extends FCommand { this.addSubCommand(this.cmdMap); this.addSubCommand(this.cmdMod); this.addSubCommand(this.cmdMoney); - this.addSubCommand(this.cmdNotifications); this.addSubCommand(this.cmdOpen); this.addSubCommand(this.cmdOwner); this.addSubCommand(this.cmdOwnerList); @@ -253,72 +250,88 @@ public class FCmdRoot extends FCommand { this.addSubCommand(this.cmdTntFill); this.addSubCommand(this.cmdChest); this.addSubCommand(this.cmdSetBanner); - this.addSubCommand(this.cmdStrikeSet); - this.addSubCommand(this.cmdSpam); this.addSubCommand(this.cmdCorner); + this.addSubCommand(this.cmdStrikes); this.addSubCommand(this.cmdFGlobal); this.addSubCommand(this.cmdViewChest); + this.addSubCommand(this.cmdConvertConfig); if (Conf.useCheckSystem) { this.addSubCommand(this.cmdCheck); this.addSubCommand(this.cmdWeeWoo); } - if (P.p.getConfig().getBoolean("Missions-Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("Missions-Enabled")) { this.addSubCommand(this.cmdMissions); } - if (P.p.getConfig().getBoolean("F-Shop.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("F-Shop.Enabled")) { this.addSubCommand(this.cmdShop); } - if (P.p.getConfig().getBoolean("f-inventory-see.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) { this.addSubCommand(this.cmdInventorySee); } - if (P.p.getConfig().getBoolean("f-points.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("f-points.Enabled")) { this.addSubCommand(this.cmdPoints); } - if (P.p.getConfig().getBoolean("f-alts.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("f-alts.Enabled")) { this.addSubCommand(this.cmdAlts); } - if (P.p.getConfig().getBoolean("f-grace.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) { this.addSubCommand(this.cmdGrace); } if (Bukkit.getServer().getPluginManager().getPlugin("CoreProtect") != null) { - P.p.log("Found CoreProtect, enabling Inspect"); + FactionsPlugin.getInstance().log("Found CoreProtect, enabling Inspect"); this.addSubCommand(this.cmdInspect); } else { - P.p.log("CoreProtect not found, disabling Inspect"); + FactionsPlugin.getInstance().log("CoreProtect not found, disabling Inspect"); } - if (P.p.getConfig().getBoolean("ffocus.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) { addSubCommand(this.cmdFocus); } - if (P.p.getConfig().getBoolean("enable-faction-flight", false)) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) { this.addSubCommand(this.cmdFly); } if (Bukkit.getServer().getPluginManager().getPlugin("FactionsTop") != null || Bukkit.getServer().getPluginManager().getPlugin("SavageFTOP") != null || Bukkit.getServer().getPluginManager().getPlugin("SaberFTOP") != null) { - P.p.log(Level.INFO, "Found FactionsTop plugin. Disabling our own /f top command."); + FactionsPlugin.getInstance().log(Level.INFO, "Found FactionsTop plugin. Disabling our own /f top command."); } else { - P.p.log(Level.INFO, "Enabling FactionsTop command, this is a very basic /f top please get a dedicated /f top resource if you want land calculation etc."); + FactionsPlugin.getInstance().log(Level.INFO, "Enabling FactionsTop command, this is a very basic /f top please get a dedicated /f top resource if you want land calculation etc."); this.addSubCommand(this.cmdTop); } - if (P.p.getConfig().getBoolean("fpaypal.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) { this.addSubCommand(this.cmdPaypalSet); this.addSubCommand(this.cmdPaypalSee); } + if (CommodoreProvider.isSupported()) brigadierManager.build(); } @Override - public void perform() { - this.commandChain.add(this); - this.cmdHelp.execute(this.sender, this.args, this.commandChain); + public void perform(CommandContext context) { + context.commandChain.add(this); + this.cmdHelp.execute(context); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + this.execute(new CommandContext(sender, new ArrayList<>(Arrays.asList(args)), label)); + return true; + } + + @Override + public void addSubCommand(FCommand subCommand) { + super.addSubCommand(subCommand); + // People were getting NPE's as somehow CommodoreProvider#isSupported returned true on legacy versions. + if (CommodoreProvider.isSupported()) { + brigadierManager.addSubCommand(subCommand); + } } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/FCommand.java b/src/main/java/com/massivecraft/factions/cmd/FCommand.java index ac716da8..f2553930 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCommand.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCommand.java @@ -1,351 +1,248 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.*; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.integration.Econ; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.util.WarmUpUtil; -import com.massivecraft.factions.zcore.MCommand; +import com.massivecraft.factions.zcore.CommandVisibility; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; +import com.massivecraft.factions.zcore.util.TextUtil; +import org.apache.commons.lang.time.DurationFormatUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import java.text.SimpleDateFormat; -import java.util.List; +import java.util.*; -public abstract class FCommand extends MCommand

{ +public abstract class FCommand { - public static final SimpleDateFormat sdf = new SimpleDateFormat(TL.DATE_FORMAT.toString()); + public SimpleDateFormat sdf = new SimpleDateFormat(TL.DATE_FORMAT.toString()); - public boolean disableOnLock; - public boolean disableOnSpam; + // Command Aliases + public List aliases; - public FPlayer fme; - public Faction myFaction; - public boolean senderMustBeMember; - public boolean senderMustBeModerator; - public boolean senderMustBeAdmin; - public boolean senderMustBeColeader; + // Information on the args + public List requiredArgs; + public LinkedHashMap optionalArgs; - - public boolean isMoneyCommand; + // Requirements to execute this command + public CommandRequirements requirements; + /* + Subcommands + */ + public List subCommands; + /* + Help + */ + public List helpLong; + public CommandVisibility visibility; + private String helpShort; public FCommand() { - super(P.p); - // Due to safety reasons it defaults to disable on lock. - disableOnLock = true; - disableOnSpam = false; + requirements = new CommandRequirements.Builder(null).build(); - // The money commands must be disabled if money should not be used. - isMoneyCommand = false; + this.subCommands = new ArrayList<>(); + this.aliases = new ArrayList<>(); - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requiredArgs = new ArrayList<>(); + this.optionalArgs = new LinkedHashMap<>(); + + this.helpShort = null; + this.helpLong = new ArrayList<>(); + this.visibility = CommandVisibility.VISIBLE; } - @Override - public void setCommandSender(CommandSender sender) { - super.setCommandSender(sender); - if (sender instanceof Player) { - this.fme = FPlayers.getInstance().getByPlayer((Player) sender); - this.myFaction = this.fme.getFaction(); - } else { - this.fme = null; - this.myFaction = null; - } - } + public abstract void perform(CommandContext context); - @Override - public void execute(CommandSender sender, List args, List> commandChain) { - setCommandSender(sender); - super.execute(sender, args, commandChain); - } - - @Override - public boolean isEnabled() { - if (p.getLocked() && this.disableOnLock) { - msg("Factions was locked by an admin. Please try again later."); - return false; - } - - if (p.getSpam() && this.disableOnSpam) { - msg("Anti-Spam is currently enabled! Please try again later."); - return false; - } - - if (this.isMoneyCommand && !Conf.econEnabled) { - msg("Faction economy features are disabled on this server."); - return false; - } - - if (this.isMoneyCommand && !Conf.bankEnabled) { - msg("The faction bank system is disabled on this server."); - return false; - } - - return true; - } - - @Override - public boolean validSenderType(CommandSender sender, boolean informSenderIfNot) { - boolean superValid = super.validSenderType(sender, informSenderIfNot); - if (!superValid) { - return false; - } - - if (!(this.senderMustBeMember || this.senderMustBeModerator || this.senderMustBeAdmin || this.senderMustBeColeader)) { - return true; - } - - if (!(sender instanceof Player)) { - return false; - } - - if (!fme.hasFaction()) { - if (informSenderIfNot) { - sender.sendMessage(p.txt.parse(TL.ACTIONS_NOFACTION.toString())); - } - return false; - } - - - if (this.senderMustBeModerator && !fme.getRole().isAtLeast(Role.MODERATOR)) { - if (informSenderIfNot) { - sender.sendMessage(p.txt.parse(TL.ACTIONS_MUSTBE.toString().replace("{role}", "moderator").replace("{action}", this.getHelpShort()))); - } - return false; - } - - if (this.senderMustBeColeader && !fme.getRole().isAtLeast(Role.COLEADER)) { - if (informSenderIfNot) { - sender.sendMessage(p.txt.parse(TL.ACTIONS_MUSTBE.toString().replace("{role}", "coleader").replace("{action}", this.getHelpShort()))); - } - return false; - } - - if (this.senderMustBeAdmin && !fme.getRole().isAtLeast(Role.LEADER)) { - if (informSenderIfNot) { - sender.sendMessage(p.txt.parse(TL.ACTIONS_MUSTBE.toString().replace("{role}", "admin").replace("{action}", this.getHelpShort()))); - } - return false; - } - - - return true; - } - - // -------------------------------------------- // - // Assertions - // -------------------------------------------- // - - public boolean assertHasFaction() { - if (me == null) { - return true; - } - - if (!fme.hasFaction()) { - msg(TL.ACTIONS_NOFACTION); - return false; - } - return true; - } - - public boolean assertMinRole(Role role) { - if (me == null) { - return true; - } - - if (fme.getRole().value < role.value) { - msg(TL.ACTIONS_MUSTBE.toString().replace("{role}", role.nicename).replace("{action}", this.getHelpShort())); - return false; - } - return true; - } - - // -------------------------------------------- // - // Argument Readers - // -------------------------------------------- // - - // FPLAYER ====================== - public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg) { - FPlayer ret = def; - - if (name != null) { - for (FPlayer fplayer : FPlayers.getInstance().getAllFPlayers()) { - if (fplayer.getName().equalsIgnoreCase(name)) { - ret = fplayer; - break; + public void execute(CommandContext context) { + // Is there a matching sub command? + if (context.args.size() > 0) { + for (FCommand subCommand : this.subCommands) { + if (subCommand.aliases.contains(context.args.get(0).toLowerCase())) { + context.args.remove(0); + context.commandChain.add(this); + subCommand.execute(context); + return; } } } - if (msg && ret == null) { - this.msg("No player \"%s\" could be found.", name); + if (!validCall(context)) { + return; } - return ret; - } - - public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg) { - return this.strAsFPlayer(this.argAsString(idx), def, msg); - } - - public FPlayer argAsFPlayer(int idx, FPlayer def) { - return this.argAsFPlayer(idx, def, true); - } - - public FPlayer argAsFPlayer(int idx) { - return this.argAsFPlayer(idx, null); - } - - // BEST FPLAYER MATCH ====================== - public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg) { - return strAsFPlayer(name, def, msg); - } - - public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg) { - return this.strAsBestFPlayerMatch(this.argAsString(idx), def, msg); - } - - public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def) { - return this.argAsBestFPlayerMatch(idx, def, true); - } - - public FPlayer argAsBestFPlayerMatch(int idx) { - return this.argAsBestFPlayerMatch(idx, null); - } - - // FACTION ====================== - public Faction strAsFaction(String name, Faction def, boolean msg) { - Faction ret = def; - - if (name != null) { - // First we try an exact match - Faction faction = Factions.getInstance().getByTag(name); // Checks for faction name match. - - // Now lets try for warzone / safezone. Helpful for custom warzone / safezone names. - // Do this after we check for an exact match in case they rename the warzone / safezone - // and a player created faction took one of the names. - if (faction == null) { - if (name.equalsIgnoreCase("warzone")) { - faction = Factions.getInstance().getWarZone(); - } else if (name.equalsIgnoreCase("safezone")) { - faction = Factions.getInstance().getSafeZone(); - } - } - - // Next we match faction tags - if (faction == null) { - faction = Factions.getInstance().getBestTagMatch(name); - } - - // Next we match player names - if (faction == null) { - FPlayer fplayer = strAsFPlayer(name, null, false); - if (fplayer != null) { - faction = fplayer.getFaction(); - } - } - - if (faction != null) { - ret = faction; - } + if (!this.isEnabled(context)) { + return; } - if (msg && ret == null) { - this.msg("The faction or player \"%s\" could not be found.", name); + perform(context); + } + + public boolean validCall(CommandContext context) { + return requirements.computeRequirements(context, true) && validArgs(context); + } + + public boolean isEnabled(CommandContext context) { + if (FactionsPlugin.getInstance().getLocked() && requirements.disableOnLock) { + context.msg("Factions was locked by an admin. Please try again later."); + return false; } - - return ret; + return true; } - public Faction argAsFaction(int idx, Faction def, boolean msg) { - return this.strAsFaction(this.argAsString(idx), def, msg); - } - - public Faction argAsFaction(int idx, Faction def) { - return this.argAsFaction(idx, def, true); - } - - public Faction argAsFaction(int idx) { - return this.argAsFaction(idx, null); - } - - // -------------------------------------------- // - // Commonly used logic - // -------------------------------------------- // - - public boolean canIAdministerYou(FPlayer i, FPlayer you) { - if (!i.getFaction().equals(you.getFaction())) { - i.sendMessage(p.txt.parse("%s is not in the same faction as you.", you.describeTo(i, true))); + public boolean validArgs(CommandContext context) { + if (context.args.size() < this.requiredArgs.size()) { + if (context.sender != null) { + context.msg(TL.GENERIC_ARGS_TOOFEW); + context.sender.sendMessage(this.getUseageTemplate(context)); + } return false; } - if (i.getRole().value > you.getRole().value || i.getRole().equals(Role.LEADER)) { - return true; + if (context.args.size() > this.requiredArgs.size() + this.optionalArgs.size() && this.requirements.errorOnManyArgs) { + if (context.sender != null) { + // Get the to many string slice + List theToMany = context.args.subList(this.requiredArgs.size() + this.optionalArgs.size(), context.args.size()); + context.msg(TL.GENERIC_ARGS_TOOMANY, TextUtil.implode(theToMany, " ")); + context.sender.sendMessage(this.getUseageTemplate(context)); + } + return false; + } + return true; + } + + public void addSubCommand(FCommand subCommand) { + this.subCommands.add(subCommand); + } + + public String getHelpShort() { + if (this.helpShort == null) { + return getUsageTranslation().toString(); } - if (you.getRole().equals(Role.LEADER)) { - i.sendMessage(p.txt.parse(TL.ACTIONS_MUSTBE.toString().replace("{role}", "leader").replace("{action}", "do that"))); + return this.helpShort; + } - } else if ((you.getRole().equals(Role.COLEADER))) { - if (i == you) { - return true; + public void setHelpShort(String val) { + this.helpShort = val; + } + + public abstract TL getUsageTranslation(); + + + /* + Common Logic + */ + public List getToolTips(FPlayer player) { + List lines = new ArrayList<>(); + for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.show")) { + lines.add(ChatColor.translateAlternateColorCodes('&', replaceFPlayerTags(s, player))); + } + return lines; + } + + public List getToolTips(Faction faction) { + List lines = new ArrayList<>(); + for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.list")) { + lines.add(ChatColor.translateAlternateColorCodes('&', replaceFactionTags(s, faction))); + } + return lines; + } + + public String replaceFPlayerTags(String s, FPlayer player) { + if (s.contains("{balance}")) { + String balance = Econ.isSetup() ? Econ.getFriendlyBalance(player) : "no balance"; + s = s.replace("{balance}", balance); + } + if (s.contains("{lastSeen}")) { + String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - player.getLastLoginTime(), true, true) + " ago"; + String lastSeen = player.isOnline() ? ChatColor.GREEN + "Online" : (System.currentTimeMillis() - player.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); + s = s.replace("{lastSeen}", lastSeen); + } + if (s.contains("{power}")) { + String power = player.getPowerRounded() + "/" + player.getPowerMaxRounded(); + s = s.replace("{power}", power); + } + if (s.contains("{group}")) { + String group = FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(player.getId()))); + s = s.replace("{group}", group); + } + return s; + } + + public String replaceFactionTags(String s, Faction faction) { + if (s.contains("{power}")) { + s = s.replace("{power}", String.valueOf(faction.getPowerRounded())); + } + if (s.contains("{maxPower}")) { + s = s.replace("{maxPower}", String.valueOf(faction.getPowerMaxRounded())); + } + if (s.contains("{leader}")) { + FPlayer fLeader = faction.getFPlayerAdmin(); + String leader = fLeader == null ? "Server" : fLeader.getName().substring(0, fLeader.getName().length() > 14 ? 13 : fLeader.getName().length()); + s = s.replace("{leader}", leader); + } + if (s.contains("{chunks}")) { + s = s.replace("{chunks}", String.valueOf(faction.getLandRounded())); + } + if (s.contains("{members}")) { + s = s.replace("{members}", String.valueOf(faction.getSize())); + + } + if (s.contains("{online}")) { + s = s.replace("{online}", String.valueOf(faction.getOnlinePlayers().size())); + } + return s; + } + + /* + Help and Usage information + */ + public String getUseageTemplate(CommandContext context, boolean addShortHelp) { + StringBuilder ret = new StringBuilder(); + ret.append(FactionsPlugin.getInstance().color(TL.COMMAND_USEAGE_TEMPLATE_COLOR.toString())); + ret.append('/'); + + for (FCommand fc : context.commandChain) { + ret.append(TextUtil.implode(fc.aliases, ",")); + ret.append(' '); + } + + ret.append(TextUtil.implode(this.aliases, ",")); + + List args = new ArrayList<>(); + + for (String requiredArg : this.requiredArgs) { + args.add("<" + requiredArg + ">"); + } + + for (Map.Entry optionalArg : this.optionalArgs.entrySet()) { + String val = optionalArg.getValue(); + if (val == null) { + val = ""; } else { - i.sendMessage(p.txt.parse(TL.ACTIONS_NOSAMEROLE.toString().replace("{role}", i.getRole().nicename))); + val = "=" + val; } - - } else if (i.getRole().equals(Role.MODERATOR)) { - if (i == you) { - return true; //Moderators can control themselves - } else { - i.sendMessage(p.txt.parse(TL.ACTIONS_NOSAMEROLE.toString().replace("{role}", i.getRole().nicename))); - } - } else { - i.sendMessage(p.txt.parse(TL.ACTIONS_MUSTBE.toString().replace("{role}", "moderator").replace("{action}", "do that"))); + args.add("[" + optionalArg.getKey() + val + "]"); } - return false; - } - - // if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost - public boolean payForCommand(double cost, String toDoThis, String forDoingThis) { - if (!Econ.shouldBeUsed() || this.fme == null || cost == 0.0 || fme.isAdminBypassing()) { - return true; + if (args.size() > 0) { + ret.append(FactionsPlugin.getInstance().txt.parseTags(" ")); + ret.append(TextUtil.implode(args, " ")); } - if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fme.hasFaction()) { - return Econ.modifyMoney(myFaction, -cost, toDoThis, forDoingThis); - } else { - return Econ.modifyMoney(fme, -cost, toDoThis, forDoingThis); - } - } - - public boolean payForCommand(double cost, TL toDoThis, TL forDoingThis) { - return payForCommand(cost, toDoThis.toString(), forDoingThis.toString()); - } - - // like above, but just make sure they can pay; returns true unless person can't afford the cost - public boolean canAffordCommand(double cost, String toDoThis) { - if (!Econ.shouldBeUsed() || this.fme == null || cost == 0.0 || fme.isAdminBypassing()) { - return true; + if (addShortHelp) { + ret.append(FactionsPlugin.getInstance().txt.parseTags(" ")); + ret.append(this.getHelpShort()); } - if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fme.hasFaction()) { - return Econ.hasAtLeast(myFaction, cost, toDoThis); - } else { - return Econ.hasAtLeast(fme, cost, toDoThis); - } + return ret.toString(); } - public void doWarmUp(WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) { - this.doWarmUp(this.fme, warmup, translationKey, action, runnable, delay); + public String getUseageTemplate(CommandContext context) { + return getUseageTemplate(context, false); } - public void doWarmUp(FPlayer player, WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) { - WarmUpUtil.process(player, warmup, translationKey, action, runnable, delay); - } } diff --git a/src/main/java/com/massivecraft/factions/cmd/alts/CmdAlts.java b/src/main/java/com/massivecraft/factions/cmd/alts/CmdAlts.java index 537560b7..1a2232b2 100644 --- a/src/main/java/com/massivecraft/factions/cmd/alts/CmdAlts.java +++ b/src/main/java/com/massivecraft/factions/cmd/alts/CmdAlts.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd.alts; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -18,29 +20,24 @@ public class CmdAlts extends FCommand { this.aliases.add("alts"); this.aliases.add("alt"); - this.permission = Permission.ALTS.node; - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - - this.addSubCommand(this.cmdInviteAlt); this.addSubCommand(this.cmdAltsList); + + this.requirements = new CommandRequirements.Builder(Permission.ALTS) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("f-alts.Enabled", false)) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-alts.Enabled", false)) { + context.msg(TL.GENERIC_DISABLED); return; } - this.commandChain.add(this); - P.p.cmdAutoHelp.execute(this.sender, this.args, this.commandChain); + context.commandChain.add(this); + FactionsPlugin.getInstance().cmdAutoHelp.execute(context); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/alts/CmdAltsList.java b/src/main/java/com/massivecraft/factions/cmd/alts/CmdAltsList.java index a6d1a061..57151ebd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/alts/CmdAltsList.java +++ b/src/main/java/com/massivecraft/factions/cmd/alts/CmdAltsList.java @@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd.alts; import com.google.common.base.Joiner; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -19,37 +21,33 @@ public class CmdAltsList extends FCommand { this.optionalArgs.put("faction", "yours"); - this.permission = Permission.LIST.node; - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.LIST) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - Faction faction = myFaction; - if (argIsSet(0)) { - faction = argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.faction; + if (context.argIsSet(0)) { + faction = context.argAsFaction(0); } if (faction == null) return; - if (faction != myFaction && !fme.isAdminBypassing()) { + if (faction != context.faction && !context.fPlayer.isAdminBypassing()) { return; } if (faction.getAltPlayers().size() == 0) { - msg(TL.COMMAND_ALTS_LIST_NOALTS, faction.getTag()); + context.msg(TL.COMMAND_ALTS_LIST_NOALTS, faction.getTag()); return; } - msg("There are " + faction.getAltPlayers().size() + " alts in " + faction.getTag() + ":"); - msg(Joiner.on(", ").join(faction.getAltPlayers().stream().map(FPlayer::getName).collect(Collectors.toList()))); + context.msg("There are " + faction.getAltPlayers().size() + " alts in " + faction.getTag() + ":"); + context.msg(Joiner.on(", ").join(faction.getAltPlayers().stream().map(FPlayer::getName).collect(Collectors.toList()))); } diff --git a/src/main/java/com/massivecraft/factions/cmd/alts/CmdInviteAlt.java b/src/main/java/com/massivecraft/factions/cmd/alts/CmdInviteAlt.java index ff8e9492..8bd44283 100644 --- a/src/main/java/com/massivecraft/factions/cmd/alts/CmdInviteAlt.java +++ b/src/main/java/com/massivecraft/factions/cmd/alts/CmdInviteAlt.java @@ -2,7 +2,9 @@ package com.massivecraft.factions.cmd.alts; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; @@ -17,75 +19,69 @@ public class CmdInviteAlt extends FCommand { public CmdInviteAlt() { super(); this.aliases.add("invite"); - this.requiredArgs.add("player name"); - // this.optionalArgs.put("", ""); - this.permission = Permission.INVITE.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.INVITE) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("f-alts.Enabled", false)) { - fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-alts.Enabled", false)) { + context.fPlayer.msg(TL.GENERIC_DISABLED); return; } - FPlayer target = this.argAsBestFPlayerMatch(0); + FPlayer target = context.argAsBestFPlayerMatch(0); if (target == null) { return; } - if (target.getFaction() == myFaction) { - msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), myFaction.getTag()); + if (target.getFaction() == context.faction) { + context.msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), context.faction.getTag()); return; } // if economy is enabled, they're not on the bypass list, and this // command has a cost set, make 'em pay - if (!payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) { + if (!context.payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) { return; } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.INVITE); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); + if (!context.fPlayer.isAdminBypassing()) { + Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE); + if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) { + context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); return; } } - if (myFaction.isBanned(target)) { - fme.msg(TL.COMMAND_INVITE_BANNED, target.getName()); + if (context.faction.isBanned(target)) { + context.msg(TL.COMMAND_INVITE_BANNED, target.getName()); return; } - myFaction.deinvite(target); - myFaction.altInvite(target); + context.faction.deinvite(target); + context.faction.altInvite(target); if (!target.isOnline()) { return; } - FancyMessage message = new FancyMessage(fme.describeTo(target, true)) + FancyMessage message = new FancyMessage(context.fPlayer.describeTo(target, true)) .tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()) + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()) .then(TL.COMMAND_INVITE_INVITEDYOU.toString()) .color(ChatColor.YELLOW) .tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()) - .then(myFaction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) - .command("/" + Conf.baseCommandAliases.get(0) + " join " + myFaction.getTag()); + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()) + .then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString()) + .command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag()); message.send(target.getPlayer()); - myFaction.msg(TL.COMMAND_ALTINVITE_INVITED_ALT, fme.describeTo(myFaction, true), target.describeTo(myFaction)); + context.faction.msg(TL.COMMAND_ALTINVITE_INVITED_ALT, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CheckHistoryFrame.java b/src/main/java/com/massivecraft/factions/cmd/check/CheckHistoryFrame.java index 25a96b58..5a883892 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CheckHistoryFrame.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CheckHistoryFrame.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.cmd.check; import com.google.common.collect.Lists; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.FactionGUI; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.util.TL; @@ -18,12 +18,12 @@ import java.text.SimpleDateFormat; import java.util.*; public class CheckHistoryFrame implements FactionGUI { - private P plugin; + private FactionsPlugin plugin; private Faction faction; private Inventory inventory; private SimpleDateFormat simpleDateFormat; - public CheckHistoryFrame(P plugin, Faction faction) { + public CheckHistoryFrame(FactionsPlugin plugin, Faction faction) { this.simpleDateFormat = new SimpleDateFormat(Conf.dateFormat); this.plugin = plugin; this.faction = faction; diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CheckSettingsFrame.java b/src/main/java/com/massivecraft/factions/cmd/check/CheckSettingsFrame.java index 2e198fff..858d9244 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CheckSettingsFrame.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CheckSettingsFrame.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.cmd.check; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.FactionGUI; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.util.TL; @@ -16,11 +16,11 @@ import org.bukkit.inventory.meta.ItemMeta; import java.util.Collections; public class CheckSettingsFrame implements InventoryHolder, FactionGUI { - private P plugin; + private FactionsPlugin plugin; private FPlayer fPlayer; private Inventory inventory; - public CheckSettingsFrame(P plugin, FPlayer fPlayer) { + public CheckSettingsFrame(FactionsPlugin plugin, FPlayer fPlayer) { this.plugin = plugin; this.fPlayer = fPlayer; this.inventory = plugin.getServer().createInventory(this, plugin.getConfig().getInt("f-check.gui-rows") * 9, TL.CHECK_SETTINGS_GUI_TITLE.toString()); @@ -28,16 +28,16 @@ public class CheckSettingsFrame implements InventoryHolder, FactionGUI { public void onClick(int slot, ClickType action) { Faction faction = this.fPlayer.getFaction(); - if (slot == P.p.getConfig().getInt("f-check.wall-check.slot")) { + if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.wall-check.slot")) { faction.setWallCheckMinutes(getNext(faction.getWallCheckMinutes())); } else { - if (slot == P.p.getConfig().getInt("f-check.history.slot")) { + if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.history.slot")) { CheckHistoryFrame checkHistoryFrame = new CheckHistoryFrame(plugin, fPlayer.getFaction()); checkHistoryFrame.build(); fPlayer.getPlayer().openInventory(checkHistoryFrame.getInventory()); return; } - if (slot == P.p.getConfig().getInt("f-check.buffer-check.slot")) { + if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.buffer-check.slot")) { faction.setBufferCheckMinutes(getNext(faction.getBufferCheckMinutes())); } } @@ -47,23 +47,23 @@ public class CheckSettingsFrame implements InventoryHolder, FactionGUI { public void build() { Faction faction = fPlayer.getFaction(); - ItemStack wallsStack = XMaterial.matchXMaterial(P.p.getConfig().getString("f-check.wall-check.Type")).parseItem(); + ItemStack wallsStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.wall-check.Type")).parseItem(); ItemMeta wallsMeta = wallsStack.getItemMeta(); wallsMeta.setDisplayName(TL.CHECK_WALL_CHECK_GUI_ICON.toString()); wallsMeta.setLore(Collections.singletonList(TL.CHECK_CHECK_LORE_LINE.format(getFormatted(faction.getWallCheckMinutes())))); wallsStack.setItemMeta(wallsMeta); - inventory.setItem(P.p.getConfig().getInt("f-check.wall-check.slot"), wallsStack); - ItemStack bufferStack = XMaterial.matchXMaterial(P.p.getConfig().getString("f-check.buffer-check.Type")).parseItem(); + inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.wall-check.slot"), wallsStack); + ItemStack bufferStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.buffer-check.Type")).parseItem(); ItemMeta bufferMeta = bufferStack.getItemMeta(); bufferMeta.setDisplayName(TL.CHECK_BUFFER_CHECK_GUI_ICON.toString()); bufferMeta.setLore(Collections.singletonList(TL.CHECK_CHECK_LORE_LINE.format(getFormatted(faction.getBufferCheckMinutes())))); bufferStack.setItemMeta(bufferMeta); - inventory.setItem(P.p.getConfig().getInt("f-check.buffer-check.slot"), bufferStack); - ItemStack historyStack = XMaterial.matchXMaterial(P.p.getConfig().getString("f-check.history.Type")).parseItem(); + inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.buffer-check.slot"), bufferStack); + ItemStack historyStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.history.Type")).parseItem(); ItemMeta historyMeta = historyStack.getItemMeta(); historyMeta.setDisplayName(TL.CHECK_HISTORY_GUI_ICON.toString()); historyStack.setItemMeta(historyMeta); - inventory.setItem(P.p.getConfig().getInt("f-check.history.slot"), historyStack); + inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.history.slot"), historyStack); } public Inventory getInventory() { diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CheckTask.java b/src/main/java/com/massivecraft/factions/cmd/check/CheckTask.java index bcbac60e..7d5a895c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CheckTask.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CheckTask.java @@ -4,7 +4,7 @@ import com.google.common.collect.Lists; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import java.text.SimpleDateFormat; @@ -16,10 +16,10 @@ public class CheckTask implements Runnable { private static List wallChecks = new CopyOnWriteArrayList<>(); private static List bufferChecks = new CopyOnWriteArrayList<>(); private SimpleDateFormat simpleDateFormat = new SimpleDateFormat(Conf.dateFormat); - private P plugin; + private FactionsPlugin plugin; private int minute; - public CheckTask(P plugin, int minute) { + public CheckTask(FactionsPlugin plugin, int minute) { this.plugin = plugin; this.minute = minute; } diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CmdCheck.java b/src/main/java/com/massivecraft/factions/cmd/check/CmdCheck.java index e42caa72..36e7bd8a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CmdCheck.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CmdCheck.java @@ -1,9 +1,12 @@ package com.massivecraft.factions.cmd.check; import com.massivecraft.factions.Conf; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.OfflinePlayer; @@ -20,34 +23,28 @@ public class CmdCheck extends FCommand { this.aliases.add("check"); this.requiredArgs.add("walls/buffers/settings/leaderboard"); - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHECK) + .playerOnly() + .withAction(PermissableAction.CHECK) + .memberOnly() + .build(); } - public void perform() { - if (myFaction == null || !myFaction.isNormal()) { - return; - } - String subCommand = argAsString(0, null); - Access access = myFaction.getAccess(fme, PermissableAction.CHECK); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_NOPERMISSION, "check"); + public void perform(CommandContext context) { + if (context.faction == null || !context.faction.isNormal()) { return; } + String subCommand = context.argAsString(0, null); + long currentTime = System.currentTimeMillis(); if (subCommand.equalsIgnoreCase("leaderboard")) { - msg(TL.CHECK_LEADERBOARD_HEADER); + context.msg(TL.CHECK_LEADERBOARD_HEADER); Map players = new HashMap<>(); - for (Map.Entry entry : myFaction.getPlayerWallCheckCount().entrySet()) { + for (Map.Entry entry : context.faction.getPlayerWallCheckCount().entrySet()) { players.put(entry.getKey(), entry.getValue()); } - for (Map.Entry entry : myFaction.getPlayerBufferCheckCount().entrySet()) { + for (Map.Entry entry : context.faction.getPlayerBufferCheckCount().entrySet()) { if (players.containsKey(entry.getKey())) { players.replace(entry.getKey(), players.get(entry.getKey()) + entry.getValue()); } else { @@ -57,54 +54,54 @@ public class CmdCheck extends FCommand { List> entryList = players.entrySet().stream().sorted(Comparator.comparingInt(Map.Entry::getValue)).collect(Collectors.toList()); for (int max = (entryList.size() > 10) ? 10 : entryList.size(), current = 0; current < max; ++current) { Map.Entry entry = entryList.get(current); - OfflinePlayer offlinePlayer = p.getServer().getOfflinePlayer(entry.getKey()); - msg(TL.CHECK_LEADERBOARD_LINE.format(current + 1, offlinePlayer.getName(), entry.getValue(), myFaction.getPlayerBufferCheckCount().getOrDefault(entry.getKey(), 0), myFaction.getPlayerWallCheckCount().getOrDefault(entry.getKey(), 0))); + OfflinePlayer offlinePlayer = FactionsPlugin.getInstance().getServer().getOfflinePlayer(entry.getKey()); + context.msg(TL.CHECK_LEADERBOARD_LINE.format(current + 1, offlinePlayer.getName(), entry.getValue(), context.faction.getPlayerBufferCheckCount().getOrDefault(entry.getKey(), 0), context.faction.getPlayerWallCheckCount().getOrDefault(entry.getKey(), 0))); } if (entryList.isEmpty()) { - msg(TL.CHECK_LEADERBOARD_NO_DATA); + context.msg(TL.CHECK_LEADERBOARD_NO_DATA); } } else if (subCommand.equalsIgnoreCase("walls")) { - if (!CheckTask.wallCheck(myFaction.getId())) { - if (myFaction.getChecks().isEmpty()) { - msg(TL.CHECK_NO_CHECKS); + if (!CheckTask.wallCheck(context.faction.getId())) { + if (context.faction.getChecks().isEmpty()) { + context.msg(TL.CHECK_NO_CHECKS); return; } - msg(TL.CHECK_ALREADY_CHECKED); + context.msg(TL.CHECK_ALREADY_CHECKED); } else { - int current = myFaction.getPlayerWallCheckCount().getOrDefault(me.getUniqueId(), 0); + int current = context.faction.getPlayerWallCheckCount().getOrDefault(context.player.getUniqueId(), 0); if (current == 0) { - myFaction.getPlayerWallCheckCount().put(me.getUniqueId(), 1); + context.faction.getPlayerWallCheckCount().put(context.player.getUniqueId(), 1); } else { - myFaction.getPlayerWallCheckCount().replace(me.getUniqueId(), current + 1); + context.faction.getPlayerWallCheckCount().replace(context.player.getUniqueId(), current + 1); } - myFaction.getChecks().put(currentTime, "U" + fme.getNameAndTag()); - msg(TL.CHECK_WALLS_MARKED_CHECKED); + context.faction.getChecks().put(currentTime, "U" + context.fPlayer.getNameAndTag()); + context.msg(TL.CHECK_WALLS_MARKED_CHECKED); } } else if (subCommand.equalsIgnoreCase("buffers")) { - if (!CheckTask.bufferCheck(myFaction.getId())) { - if (myFaction.getChecks().isEmpty()) { - msg(TL.CHECK_NO_CHECKS); + if (!CheckTask.bufferCheck(context.faction.getId())) { + if (context.faction.getChecks().isEmpty()) { + context.msg(TL.CHECK_NO_CHECKS); return; } - msg(TL.CHECK_ALREADY_CHECKED); + context.msg(TL.CHECK_ALREADY_CHECKED); } else { - int current = myFaction.getPlayerBufferCheckCount().getOrDefault(me.getUniqueId(), 0); + int current = context.faction.getPlayerBufferCheckCount().getOrDefault(context.player.getUniqueId(), 0); if (current == 0) { - myFaction.getPlayerBufferCheckCount().put(me.getUniqueId(), 1); + context.faction.getPlayerBufferCheckCount().put(context.player.getUniqueId(), 1); } else { - myFaction.getPlayerBufferCheckCount().replace(me.getUniqueId(), current + 1); + context.faction.getPlayerBufferCheckCount().replace(context.player.getUniqueId(), current + 1); } - myFaction.getChecks().put(System.currentTimeMillis(), "Y" + fme.getNameAndTag()); - msg(TL.CHECK_BUFFERS_MARKED_CHECKED); + context.faction.getChecks().put(System.currentTimeMillis(), "Y" + context.fPlayer.getNameAndTag()); + context.msg(TL.CHECK_BUFFERS_MARKED_CHECKED); } } else if (subCommand.equalsIgnoreCase("settings")) { - if (!fme.getRole().isAtLeast(Role.COLEADER)) { - msg(TL.CHECK_MUST_BE_ATLEAST_COLEADER); + if (!context.fPlayer.getRole().isAtLeast(Role.COLEADER)) { + context.msg(TL.CHECK_MUST_BE_ATLEAST_COLEADER); return; } - CheckSettingsFrame checkGUI = new CheckSettingsFrame(p, fme); + CheckSettingsFrame checkGUI = new CheckSettingsFrame(FactionsPlugin.getInstance(), context.fPlayer); checkGUI.build(); - fme.getPlayer().openInventory(checkGUI.getInventory()); + context.fPlayer.getPlayer().openInventory(checkGUI.getInventory()); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java b/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java index 20695df1..f52c6c2a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java @@ -1,6 +1,9 @@ package com.massivecraft.factions.cmd.check; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdWeeWoo extends FCommand { @@ -8,38 +11,35 @@ public class CmdWeeWoo extends FCommand { this.aliases.add("weewoo"); this.requiredArgs.add("start/stop"); - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHECK) + .playerOnly() + .memberOnly() + .build(); } - public void perform() { - if (myFaction == null || !myFaction.isNormal()) { + public void perform(CommandContext context) { + if (context.faction == null || !context.faction.isNormal()) { return; } - String argument = argAsString(0); - boolean weewoo = myFaction.isWeeWoo(); + String argument = context.argAsString(0); + boolean weewoo = context.faction.isWeeWoo(); if (argument.equalsIgnoreCase("start")) { if (weewoo) { - msg(TL.COMMAND_WEEWOO_ALREADY_STARTED); + context.msg(TL.COMMAND_WEEWOO_ALREADY_STARTED); return; } - myFaction.setWeeWoo(true); - msg(TL.COMMAND_WEEWOO_STARTED, fme.getNameAndTag()); + context.faction.setWeeWoo(true); + context.msg(TL.COMMAND_WEEWOO_STARTED, context.fPlayer.getNameAndTag()); } else if (argument.equalsIgnoreCase("stop")) { if (!weewoo) { - msg(TL.COMMAND_WEEWOO_ALREADY_STOPPED); + context.msg(TL.COMMAND_WEEWOO_ALREADY_STOPPED); return; } - myFaction.setWeeWoo(false); - msg(TL.COMMAND_WEEWOO_STOPPED, fme.getNameAndTag()); + context.faction.setWeeWoo(false); + context.msg(TL.COMMAND_WEEWOO_STOPPED, context.fPlayer.getNameAndTag()); } else { - msg("/f weewoo "); + context.msg("/f weewoo "); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/check/WeeWooTask.java b/src/main/java/com/massivecraft/factions/cmd/check/WeeWooTask.java index 68a12c95..ffce2553 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/WeeWooTask.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/WeeWooTask.java @@ -2,14 +2,14 @@ package com.massivecraft.factions.cmd.check; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; public class WeeWooTask implements Runnable { - private P plugin; + private FactionsPlugin plugin; - public WeeWooTask(P plugin) { + public WeeWooTask(FactionsPlugin plugin) { this.plugin = plugin; } diff --git a/src/main/java/com/massivecraft/factions/cmd/chest/CmdChest.java b/src/main/java/com/massivecraft/factions/cmd/chest/CmdChest.java index b952a326..5c970910 100644 --- a/src/main/java/com/massivecraft/factions/cmd/chest/CmdChest.java +++ b/src/main/java/com/massivecraft/factions/cmd/chest/CmdChest.java @@ -1,10 +1,10 @@ package com.massivecraft.factions.cmd.chest; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -14,36 +14,23 @@ public class CmdChest extends FCommand { this.aliases.add("chest"); this.aliases.add("pv"); - //this.requiredArgs.add(""); - - - this.permission = Permission.CHEST.node; - this.disableOnLock = false; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CHEST) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.CHEST) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { - if (!P.p.getConfig().getBoolean("fchest.Enabled")) { - fme.sendMessage("This command is disabled!"); + if (!FactionsPlugin.getInstance().getConfig().getBoolean("fchest.Enabled")) { + context.fPlayer.sendMessage("This command is disabled!"); return; } // This permission check is way too explicit but it's clean - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.CHEST); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "access chest"); - return; - } - } - me.openInventory(fme.getFaction().getChestInventory()); + context.player.openInventory(context.faction.getChestInventory()); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdAutoClaim.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdAutoClaim.java index fb9296ee..74ecd1d8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdAutoClaim.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdAutoClaim.java @@ -1,9 +1,13 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; +import com.massivecraft.factions.zcore.fperms.Access; +import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; public class CmdAutoClaim extends FCommand { @@ -15,39 +19,45 @@ public class CmdAutoClaim extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("faction", "your"); - this.permission = Permission.AUTOCLAIM.node; - this.disableOnLock = true; - this.disableOnSpam = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.AUTOCLAIM) + .playerOnly() + .withAction(PermissableAction.TERRITORY) + .build(); } @Override - public void perform() { - Faction forFaction = this.argAsFaction(0, myFaction); - if (forFaction == null || forFaction == fme.getAutoClaimFor()) { - fme.setAutoClaimFor(null); - msg(TL.COMMAND_AUTOCLAIM_DISABLED); + public void perform(CommandContext context) { + Faction forFaction = context.argAsFaction(0, context.faction); + + if (forFaction != context.fPlayer.getFaction()) { + if (!context.fPlayer.isAdminBypassing()) { + if (forFaction.getAccess(context.fPlayer, PermissableAction.TERRITORY) != Access.ALLOW) { + context.msg(TL.COMMAND_CLAIM_DENIED); + return; + } + } + } + + if (forFaction == null || forFaction == context.fPlayer.getAutoClaimFor()) { + context.fPlayer.setAutoClaimFor(null); + context.msg(TL.COMMAND_AUTOCLAIM_DISABLED); return; } - if (!fme.canClaimForFaction(forFaction)) { - if (myFaction == forFaction) { - msg(TL.COMMAND_AUTOCLAIM_REQUIREDRANK, Role.MODERATOR.getTranslation()); + if (!context.fPlayer.canClaimForFaction(forFaction)) { + if (context.faction == forFaction) { + context.msg(TL.COMMAND_AUTOCLAIM_REQUIREDRANK, Role.MODERATOR.getTranslation()); } else { - msg(TL.COMMAND_AUTOCLAIM_OTHERFACTION, forFaction.describeTo(fme)); + context.msg(TL.COMMAND_AUTOCLAIM_OTHERFACTION, forFaction.describeTo(context.fPlayer)); } return; } - fme.setAutoClaimFor(forFaction); + context.fPlayer.setAutoClaimFor(forFaction); - msg(TL.COMMAND_AUTOCLAIM_ENABLED, forFaction.describeTo(fme)); - fme.attemptClaim(forFaction, me.getLocation(), true); + context.msg(TL.COMMAND_AUTOCLAIM_ENABLED, forFaction.describeTo(context.fPlayer)); + context.fPlayer.attemptClaim(forFaction, context.fPlayer.getPlayer().getLocation(), true); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaim.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaim.java index 0bb79b65..26cc7b04 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaim.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaim.java @@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; @@ -22,59 +24,56 @@ public class CmdClaim extends FCommand { this.optionalArgs.put("radius", "1"); this.optionalArgs.put("faction", "your"); - this.permission = Permission.CLAIM.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CLAIM) + .playerOnly() + .build(); } @Override - public void perform() { - // Read and validate input - int radius = this.argAsInt(0, 1); // Default to 1 - final Faction forFaction = this.argAsFaction(1, myFaction); // Default to own + public void perform(CommandContext context) { - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.TERRITORY); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_NOPERMISSION, "change faction territory"); - return; + // Read and validate input + int radius = context.argAsInt(0, 1); // Default to 1 + final Faction forFaction = context.argAsFaction(1, context.faction); // Default to own + + if (!context.fPlayer.isAdminBypassing()) { + if (!(context.fPlayer.getFaction().equals(forFaction) && context.fPlayer.getRole() == Role.LEADER)) { + if (forFaction.getAccess(context.fPlayer, PermissableAction.TERRITORY) != Access.ALLOW) { + context.msg(TL.COMMAND_CLAIM_DENIED); + return; + } } } if (radius < 1) { - msg(TL.COMMAND_CLAIM_INVALIDRADIUS); + context.msg(TL.COMMAND_CLAIM_INVALIDRADIUS); return; } if (radius < 2) { // single chunk - fme.attemptClaim(forFaction, me.getLocation(), true); + context.fPlayer.attemptClaim(forFaction, context.player.getLocation(), true); } else { // radius claim - if (!Permission.CLAIM_RADIUS.has(sender, false)) { - msg(TL.COMMAND_CLAIM_DENIED); + if (!Permission.CLAIM_RADIUS.has(context.sender, true)) { return; } - new SpiralTask(new FLocation(me), radius) { + new SpiralTask(new FLocation(context.player), radius) { private final int limit = Conf.radiusClaimFailureLimit - 1; private int failCount = 0; @Override public boolean work() { - boolean success = fme.attemptClaim(forFaction, this.currentLocation(), true); + boolean success = context.fPlayer.attemptClaim(forFaction, this.currentLocation(), true); if (success) { failCount = 0; } else if (failCount++ >= limit) { this.stop(); return false; } + return true; } }; diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java index b489faa5..b3759607 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java @@ -2,8 +2,11 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FLocation; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; public class CmdClaimAt extends FCommand { @@ -16,28 +19,26 @@ public class CmdClaimAt extends FCommand { this.requiredArgs.add("x"); this.requiredArgs.add("z"); - this.permission = Permission.CLAIMAT.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CLAIMAT) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TERRITORY) + .build(); } @Override - public void perform() { - int x = argAsInt(1); - int z = argAsInt(2); - FLocation location = new FLocation(argAsString(0), x, z); - if (!((fme.getPlayer().getLocation().getX() + (x * 16)) > (fme.getPlayer().getLocation().getX() + (Conf.mapWidth * 16))) && - !((fme.getPlayer().getLocation().getZ() + (z * 16)) > (fme.getPlayer().getLocation().getZ() + (Conf.mapHeight * 16)))) { - fme.attemptClaim(myFaction, location, true); - } else fme.msg(TL.COMMAND_CLAIM_DENIED); + public void perform(CommandContext context) { + int x = context.argAsInt(1); + int z = context.argAsInt(2); + FLocation location = new FLocation(context.argAsString(0), x, z); + if (!((context.player.getLocation().getX() + (x * 16)) > (context.player.getLocation().getX() + (Conf.mapWidth * 16))) && + !((context.player.getLocation().getZ() + (z * 16)) > (context.player.getLocation().getZ() + (Conf.mapHeight * 16))) && + !context.argAsString(0).equals(context.player.getLocation().getWorld().getName())) { + context.fPlayer.attemptClaim(context.faction, location, true); + } else context.fPlayer.msg(TL.COMMAND_CLAIM_DENIED); } + @Override public TL getUsageTranslation() { return null; diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java index 32b234a9..6f153d79 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java @@ -2,8 +2,12 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.fperms.Access; +import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Location; import org.bukkit.block.BlockFace; @@ -23,32 +27,28 @@ public class CmdClaimLine extends FCommand { this.optionalArgs.put("direction", "facing"); this.optionalArgs.put("faction", "you"); - this.permission = Permission.CLAIM_LINE.node; - this.disableOnLock = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CLAIM_LINE) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TERRITORY) + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { // Args - Integer amount = this.argAsInt(0, 1); // Default to 1 + Integer amount = context.argAsInt(0, 1); // Default to 1 if (amount > Conf.lineClaimLimit) { - fme.msg(TL.COMMAND_CLAIMLINE_ABOVEMAX, Conf.lineClaimLimit); + context.fPlayer.msg(TL.COMMAND_CLAIMLINE_ABOVEMAX, Conf.lineClaimLimit); return; } - String direction = this.argAsString(1); + String direction = context.argAsString(1); BlockFace blockFace; if (direction == null) { - blockFace = axis[Math.round(me.getLocation().getYaw() / 90f) & 0x3]; + blockFace = axis[Math.round(context.player.getLocation().getYaw() / 90f) & 0x3]; } else if (direction.equalsIgnoreCase("north")) { blockFace = BlockFace.NORTH; } else if (direction.equalsIgnoreCase("east")) { @@ -58,16 +58,26 @@ public class CmdClaimLine extends FCommand { } else if (direction.equalsIgnoreCase("west")) { blockFace = BlockFace.WEST; } else { - fme.msg(TL.COMMAND_CLAIMLINE_NOTVALID, direction); + context.msg(TL.COMMAND_CLAIMLINE_NOTVALID, direction); return; } - final Faction forFaction = this.argAsFaction(2, myFaction); - Location location = me.getLocation(); + final Faction forFaction = context.argAsFaction(2, context.faction); + + if (forFaction != context.fPlayer.getFaction()) { + if (!context.fPlayer.isAdminBypassing()) { + if (forFaction.getAccess(context.fPlayer, PermissableAction.TERRITORY) != Access.ALLOW) { + context.msg(TL.COMMAND_CLAIM_DENIED); + return; + } + } + } + + Location location = context.player.getLocation(); // TODO: make this a task like claiming a radius? for (int i = 0; i < amount; i++) { - fme.attemptClaim(forFaction, location, true); + context.fPlayer.attemptClaim(forFaction, location, true); location = location.add(blockFace.getModX() * 16, 0, blockFace.getModZ() * 16); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java index 75ed7754..e1641790 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java @@ -2,9 +2,12 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.*; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.CornerTask; +import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import java.util.ArrayList; @@ -16,29 +19,29 @@ public class CmdCorner extends FCommand { public CmdCorner() { this.aliases.add("corner"); - this.permission = Permission.CLAIM_RADIUS.node; - this.senderMustBePlayer = true; - this.senderMustBeMember = true; - this.senderMustBeModerator = false; - this.senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.CORNER) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TERRITORY) + .build(); } @Override - public void perform() { - FLocation to = new FLocation(me.getLocation()); - if (P.p.getFactionsPlayerListener().getCorners().contains(to)) { + public void perform(CommandContext context) { + FLocation to = new FLocation(context.player.getLocation()); + if (FactionsPlugin.getInstance().getFactionsPlayerListener().getCorners().contains(to)) { Faction cornerAt = Board.getInstance().getFactionAt(to); - if (cornerAt != null && cornerAt.isNormal() && !cornerAt.equals(fme.getFaction())) { - msg(TL.COMMAND_CORNER_CANT_CLAIM); + if (cornerAt != null && cornerAt.isNormal() && !cornerAt.equals(context.fPlayer.getFaction())) { + context.msg(TL.COMMAND_CORNER_CANT_CLAIM); } else { - msg(TL.COMMAND_CORNER_ATTEMPTING_CLAIM); + context.msg(TL.COMMAND_CORNER_ATTEMPTING_CLAIM); List surrounding = new ArrayList<>(400); for (int x = 0; x < Conf.factionBufferSize; ++x) { for (int z = 0; z < Conf.factionBufferSize; ++z) { int newX = (int) ((to.getX() > 0L) ? (to.getX() - x) : (to.getX() + x)); int newZ = (int) ((to.getZ() > 0L) ? (to.getZ() - z) : (to.getZ() + z)); - FLocation location = new FLocation(me.getWorld().getName(), newX, newZ); + FLocation location = new FLocation(context.player.getWorld().getName(), newX, newZ); Faction at = Board.getInstance().getFactionAt(location); if (at == null || !at.isNormal()) { surrounding.add(location); @@ -47,13 +50,13 @@ public class CmdCorner extends FCommand { } surrounding.sort(Comparator.comparingInt(fLocation -> (int) fLocation.getDistanceTo(to))); if (surrounding.isEmpty()) { - msg(TL.COMMAND_CORNER_CANT_CLAIM); + context.msg(TL.COMMAND_CORNER_CANT_CLAIM); } else { - new CornerTask(fme, surrounding).runTaskTimer(P.p, 1L, 1L); + new CornerTask(context.fPlayer, surrounding).runTaskTimer(FactionsPlugin.getInstance(), 1L, 1L); } } } else { - msg(TL.COMMAND_CORNER_NOT_CORNER); + context.msg(TL.COMMAND_CORNER_NOT_CORNER); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdSafeunclaimall.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdSafeunclaimall.java index d19c2b73..bb210593 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdSafeunclaimall.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdSafeunclaimall.java @@ -3,7 +3,9 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Board; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -15,25 +17,15 @@ public class CmdSafeunclaimall extends FCommand { public CmdSafeunclaimall() { this.aliases.add("safeunclaimall"); this.aliases.add("safedeclaimall"); - - //this.requiredArgs.add(""); this.optionalArgs.put("world", "all"); - this.permission = Permission.MANAGE_SAFE_ZONE.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - - + this.requirements = new CommandRequirements.Builder(Permission.MANAGE_SAFE_ZONE) + .build(); } @Override - public void perform() { - String worldName = argAsString(0); + public void perform(CommandContext context) { + String worldName = context.argAsString(0); World world = null; if (worldName != null) { @@ -48,10 +40,10 @@ public class CmdSafeunclaimall extends FCommand { Board.getInstance().unclaimAllInWorld(id, world); } - msg(TL.COMMAND_SAFEUNCLAIMALL_UNCLAIMED); + context.msg(TL.COMMAND_SAFEUNCLAIMALL_UNCLAIMED); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_SAFEUNCLAIMALL_UNCLAIMEDLOG.format(sender.getName())); + FactionsPlugin.getInstance().log(TL.COMMAND_SAFEUNCLAIMALL_UNCLAIMEDLOG.format(context.sender.getName())); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaim.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaim.java index dcf45518..01bb5ad6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaim.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaim.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.*; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.event.LandUnclaimEvent; import com.massivecraft.factions.integration.Econ; @@ -19,51 +21,54 @@ public class CmdUnclaim extends FCommand { this.aliases.add("declaim"); this.optionalArgs.put("radius", "1"); + this.optionalArgs.put("faction", "yours"); - this.permission = Permission.UNCLAIM.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.UNCLAIM) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TERRITORY) + .build(); } @Override - public void perform() { - // Read and validate input - int radius = this.argAsInt(0, 1); // Default to 1 + public void perform(CommandContext context) { - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.TERRITORY); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage faction territory"); + if (context.args.size() == 2) { + Faction target = context.argAsFaction(1); + // Dont have to say anything since the argsAsFaction method will tell the player for me. + if (target == null) return; + context.faction = target; + if (context.faction != context.fPlayer.getFaction() && !context.fPlayer.isAdminBypassing()) { + context.msg(TL.COMMAND_UNCLAIM_WRONGFACTION); return; } } + // Read and validate input + int radius = context.argAsInt(0, 1); // Default to 1 + if (radius < 1) { - msg(TL.COMMAND_CLAIM_INVALIDRADIUS); + context.msg(TL.COMMAND_CLAIM_INVALIDRADIUS); return; } - if (radius < 2) { + if (radius == 1) { // single chunk - unClaim(new FLocation(me)); + unClaim(new FLocation(context.player), context); } else { // radius claim - if (!Permission.CLAIM_RADIUS.has(sender, false)) { - msg(TL.COMMAND_CLAIM_DENIED); + if (!Permission.CLAIM_RADIUS.has(context.sender, false)) { + context.msg(TL.COMMAND_CLAIM_DENIED); return; } - new SpiralTask(new FLocation(me), radius) { + new SpiralTask(new FLocation(context.player), radius) { private final int limit = Conf.radiusClaimFailureLimit - 1; private int failCount = 0; @Override public boolean work() { - boolean success = unClaim(this.currentFLocation()); + boolean success = unClaim(currentFLocation(), context); if (success) { failCount = 0; } else if (failCount++ >= limit) { @@ -77,101 +82,101 @@ public class CmdUnclaim extends FCommand { } } - private boolean unClaim(FLocation target) { + private boolean unClaim(FLocation target, CommandContext context) { Faction targetFaction = Board.getInstance().getFactionAt(target); if (targetFaction.isSafeZone()) { - if (Permission.MANAGE_SAFE_ZONE.has(sender)) { + if (Permission.MANAGE_SAFE_ZONE.has(context.sender)) { Board.getInstance().removeAt(target); - msg(TL.COMMAND_UNCLAIM_SAFEZONE_SUCCESS); + context.msg(TL.COMMAND_UNCLAIM_SAFEZONE_SUCCESS); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_UNCLAIM_LOG.format(fme.getName(), target.getCoordString(), targetFaction.getTag())); + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIM_LOG.format(context.fPlayer.getName(), target.getCoordString(), targetFaction.getTag())); } return true; } else { - msg(TL.COMMAND_UNCLAIM_SAFEZONE_NOPERM); + context.msg(TL.COMMAND_UNCLAIM_SAFEZONE_NOPERM); return false; } } else if (targetFaction.isWarZone()) { - if (Permission.MANAGE_WAR_ZONE.has(sender)) { + if (Permission.MANAGE_WAR_ZONE.has(context.sender)) { Board.getInstance().removeAt(target); - msg(TL.COMMAND_UNCLAIM_WARZONE_SUCCESS); + context.msg(TL.COMMAND_UNCLAIM_WARZONE_SUCCESS); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_UNCLAIM_LOG.format(fme.getName(), target.getCoordString(), targetFaction.getTag())); + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIM_LOG.format(context.fPlayer.getName(), target.getCoordString(), targetFaction.getTag())); } return true; } else { - msg(TL.COMMAND_UNCLAIM_WARZONE_NOPERM); + context.msg(TL.COMMAND_UNCLAIM_WARZONE_NOPERM); return false; } } - if (fme.isAdminBypassing()) { - LandUnclaimEvent unclaimEvent = new LandUnclaimEvent(target, targetFaction, fme); - Bukkit.getScheduler().runTask(P.p, () -> Bukkit.getServer().getPluginManager().callEvent(unclaimEvent)); + if (context.fPlayer.isAdminBypassing()) { + LandUnclaimEvent unclaimEvent = new LandUnclaimEvent(target, targetFaction, context.fPlayer); + Bukkit.getServer().getPluginManager().callEvent(unclaimEvent); if (unclaimEvent.isCancelled()) { return false; } Board.getInstance().removeAt(target); - targetFaction.msg(TL.COMMAND_UNCLAIM_UNCLAIMED, fme.describeTo(targetFaction, true)); - msg(TL.COMMAND_UNCLAIM_UNCLAIMS); + targetFaction.msg(TL.COMMAND_UNCLAIM_UNCLAIMED, context.fPlayer.describeTo(targetFaction, true)); + context.msg(TL.COMMAND_UNCLAIM_UNCLAIMS); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_UNCLAIM_LOG.format(fme.getName(), target.getCoordString(), targetFaction.getTag())); + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIM_LOG.format(context.fPlayer.getName(), target.getCoordString(), targetFaction.getTag())); } return true; } + if (targetFaction.getClaimOwnership().containsKey(target) && !targetFaction.isPlayerInOwnerList(context.fPlayer, target)) { + context.msg(TL.GENERIC_FPERM_OWNER_NOPERMISSION, "unclaim"); + return false; + } - if (targetFaction.getAccess(fme, PermissableAction.TERRITORY) == Access.DENY) { + if (targetFaction.getAccess(context.fPlayer, PermissableAction.TERRITORY) == Access.DENY && context.fPlayer.getRole() != Role.LEADER) { + context.msg(TL.GENERIC_FPERM_NOPERMISSION, "unclaim"); + return false; + } + + if (!context.assertHasFaction()) { + context.msg(TL.ACTIONS_NOFACTION); + return false; + } + + if (context.faction != targetFaction) { + context.msg(TL.COMMAND_UNCLAIM_WRONGFACTION); return false; } - if (!assertHasFaction()) { - return false; - } - - if (targetFaction.getAccess(fme, PermissableAction.TERRITORY) != Access.ALLOW && !assertMinRole(Role.MODERATOR)) { - return false; - } - - - if (myFaction != targetFaction) { - msg(TL.COMMAND_UNCLAIM_WRONGFACTION); - return false; - } - - - LandUnclaimEvent unclaimEvent = new LandUnclaimEvent(target, targetFaction, fme); - Bukkit.getServer().getPluginManager().callEvent(unclaimEvent); + LandUnclaimEvent unclaimEvent = new LandUnclaimEvent(target, targetFaction, context.fPlayer); + Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getServer().getPluginManager().callEvent(unclaimEvent)); if (unclaimEvent.isCancelled()) { return false; } if (Econ.shouldBeUsed()) { - double refund = Econ.calculateClaimRefund(myFaction.getLandRounded()); + double refund = Econ.calculateClaimRefund(context.faction.getLandRounded()); if (Conf.bankEnabled && Conf.bankFactionPaysLandCosts) { - if (!Econ.modifyMoney(myFaction, refund, TL.COMMAND_UNCLAIM_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIM_FORUNCLAIM.toString())) { + if (!Econ.modifyMoney(context.faction, refund, TL.COMMAND_UNCLAIM_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIM_FORUNCLAIM.toString())) { return false; } } else { - if (!Econ.modifyMoney(fme, refund, TL.COMMAND_UNCLAIM_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIM_FORUNCLAIM.toString())) { + if (!Econ.modifyMoney(context.fPlayer, refund, TL.COMMAND_UNCLAIM_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIM_FORUNCLAIM.toString())) { return false; } } } Board.getInstance().removeAt(target); - myFaction.msg(TL.COMMAND_UNCLAIM_FACTIONUNCLAIMED, fme.describeTo(myFaction, true)); + context.faction.msg(TL.COMMAND_UNCLAIM_FACTIONUNCLAIMED, context.fPlayer.describeTo(context.faction, true)); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_UNCLAIM_LOG.format(fme.getName(), target.getCoordString(), targetFaction.getTag())); + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIM_LOG.format(context.fPlayer.getName(), target.getCoordString(), targetFaction.getTag())); } return true; diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java index 48de06c5..8df9fba8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java @@ -2,11 +2,15 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Board; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.event.LandUnclaimAllEvent; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -16,45 +20,61 @@ public class CmdUnclaimall extends FCommand { this.aliases.add("unclaimall"); this.aliases.add("declaimall"); - //this.requiredArgs.add(""); - //this.optionalArgs.put("", ""); - - this.permission = Permission.UNCLAIM_ALL.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeAdmin = false; + this.optionalArgs.put("faction", "yours"); + this.requirements = new CommandRequirements.Builder(Permission.UNCLAIM_ALL) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TERRITORY) //TODO: Add Unclaimall PermissableAction + .build(); } @Override - public void perform() { + public void perform(CommandContext context) { + Faction target = context.faction; + if (context.args.size() == 1) { + target = context.argAsFaction(0); + if (target == null) { + context.msg(TL.GENERIC_NOFACTION_FOUND); + return; + } + + if (!context.fPlayer.isAdminBypassing()) { + context.msg(TL.ACTIONS_NOPERMISSION.toString().replace("{faction}", target.getTag()).replace("{action}", "unclaimall land")); + return; + } + + Board.getInstance().unclaimAll(target.getId()); + context.faction.msg(TL.COMMAND_UNCLAIMALL_LOG, context.fPlayer.describeTo(target, true), target.getTag()); + if (Conf.logLandUnclaims) + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIMALL_LOG.format(context.fPlayer.getName(), context.faction.getTag())); + return; + + } if (Econ.shouldBeUsed()) { - double refund = Econ.calculateTotalLandRefund(myFaction.getLandRounded()); + double refund = Econ.calculateTotalLandRefund(target.getLandRounded()); if (Conf.bankEnabled && Conf.bankFactionPaysLandCosts) { - if (!Econ.modifyMoney(myFaction, refund, TL.COMMAND_UNCLAIMALL_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIMALL_FORUNCLAIM.toString())) { + if (!Econ.modifyMoney(target, refund, TL.COMMAND_UNCLAIMALL_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIMALL_FORUNCLAIM.toString())) { return; } } else { - if (!Econ.modifyMoney(fme, refund, TL.COMMAND_UNCLAIMALL_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIMALL_FORUNCLAIM.toString())) { + if (!Econ.modifyMoney(target, refund, TL.COMMAND_UNCLAIMALL_TOUNCLAIM.toString(), TL.COMMAND_UNCLAIMALL_FORUNCLAIM.toString())) { return; } } } - LandUnclaimAllEvent unclaimAllEvent = new LandUnclaimAllEvent(myFaction, fme); - Bukkit.getScheduler().runTask(P.p, () -> Bukkit.getServer().getPluginManager().callEvent(unclaimAllEvent)); + LandUnclaimAllEvent unclaimAllEvent = new LandUnclaimAllEvent(target, context.fPlayer); + Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getServer().getPluginManager().callEvent(unclaimAllEvent)); if (unclaimAllEvent.isCancelled()) { return; } - Board.getInstance().unclaimAll(myFaction.getId()); - myFaction.msg(TL.COMMAND_UNCLAIMALL_UNCLAIMED, fme.describeTo(myFaction, true)); + Board.getInstance().unclaimAll(target.getId()); + context.faction.msg(TL.COMMAND_UNCLAIMALL_UNCLAIMED, context.fPlayer.describeTo(context.faction, true)); if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_UNCLAIMALL_LOG.format(fme.getName(), myFaction.getTag())); + FactionsPlugin.getInstance().log(TL.COMMAND_UNCLAIMALL_LOG.format(context.fPlayer.getName(), context.faction.getTag())); } } @@ -64,3 +84,4 @@ public class CmdUnclaimall extends FCommand { } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdWarunclaimall.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdWarunclaimall.java index 99d6e0ba..5c15eca4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdWarunclaimall.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdWarunclaimall.java @@ -3,7 +3,9 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Board; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -15,28 +17,18 @@ public class CmdWarunclaimall extends FCommand { public CmdWarunclaimall() { this.aliases.add("warunclaimall"); this.aliases.add("wardeclaimall"); - - //this.requiredArgs.add(""); this.optionalArgs.put("world", "all"); - this.permission = Permission.MANAGE_WAR_ZONE.node; - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.MANAGE_WAR_ZONE) + .build(); } @Override - public void perform() { - String worldName = argAsString(0); + public void perform(CommandContext context) { + String worldName = context.argAsString(0); World world = null; - if (worldName != null) { - world = Bukkit.getWorld(worldName); - } + if (worldName != null) world = Bukkit.getWorld(worldName); String id = Factions.getInstance().getWarZone().getId(); @@ -46,12 +38,9 @@ public class CmdWarunclaimall extends FCommand { Board.getInstance().unclaimAllInWorld(id, world); } - fme.msg(TL.COMMAND_WARUNCLAIMALL_SUCCESS); - - - if (Conf.logLandUnclaims) { - P.p.log(TL.COMMAND_WARUNCLAIMALL_LOG.format(fme.getName())); - } + context.msg(TL.COMMAND_WARUNCLAIMALL_SUCCESS); + if (Conf.logLandUnclaims) + FactionsPlugin.getInstance().log(TL.COMMAND_WARUNCLAIMALL_LOG.format(context.fPlayer.getName())); } @Override @@ -60,3 +49,4 @@ public class CmdWarunclaimall extends FCommand { } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/config/CmdConvertConfig.java b/src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java similarity index 51% rename from src/main/java/com/massivecraft/factions/cmd/config/CmdConvertConfig.java rename to src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java index 256cfb90..73ada76e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/config/CmdConvertConfig.java +++ b/src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java @@ -1,27 +1,29 @@ -package com.massivecraft.factions.cmd.config; +package com.massivecraft.factions.cmd.configsf; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdConvertConfig extends FCommand { - public CmdConvertConfig() { + public CmdConvertConfig() { super(); this.aliases.add("convertconfig"); - this.permission = Permission.CONVERTCONFIG.node; - this.disableOnLock = false; - senderMustBePlayer = true; + + this.requirements = new CommandRequirements.Builder(Permission.CONVERTCONFIG) + .playerOnly() + .build(); } @Override - public void perform() { - ConvertConfigHandler.convertconfig(fme.getPlayer()); + public void perform(CommandContext context) { + ConvertConfigHandler.convertconfig(context.player); } @Override public TL getUsageTranslation() { return TL.COMMAND_CONVERTCONFIG_DESCRIPTION; } - } diff --git a/src/main/java/com/massivecraft/factions/cmd/config/ConvertConfigHandler.java b/src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java similarity index 95% rename from src/main/java/com/massivecraft/factions/cmd/config/ConvertConfigHandler.java rename to src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java index 94a0c07b..e176682c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/config/ConvertConfigHandler.java +++ b/src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java @@ -1,6 +1,6 @@ -package com.massivecraft.factions.cmd.config; +package com.massivecraft.factions.cmd.configsf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; @@ -13,6 +13,7 @@ import org.bukkit.scheduler.BukkitScheduler; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.logging.Level; @@ -32,7 +33,7 @@ public class ConvertConfigHandler { ConfigurationSection cs = sv.getConfigurationSection(s); sb.set(s, cs); } - static JavaPlugin plugin = JavaPlugin.getProvidingPlugin(P.class); + static JavaPlugin plugin = JavaPlugin.getProvidingPlugin(FactionsPlugin.class); public static void setBoolean(String s){ sb.set(s, sv.getBoolean(s)); } @@ -126,10 +127,10 @@ public class ConvertConfigHandler { setConfigSec("Tntfill"); try { sb.save(configFile); - P.p.reloadConfig(); + plugin.reloadConfig(); } catch (IOException e) { player.sendMessage(TL.COMMAND_CONVERTCONFIG_FAIL.toString()); - Bukkit.getLogger().log(Level.SEVERE, e.getStackTrace().toString()); + Bukkit.getLogger().log(Level.SEVERE, Arrays.toString(e.getStackTrace())); } player.sendMessage(TL.COMMAND_CONVERTCONFIG_SUCCESS.toString()); }, 0L); diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java index 7bec6639..3b3380b7 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd.econ; -import com.massivecraft.factions.P; +import com.massivecraft.factions.Conf; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.zcore.util.TL; @@ -21,15 +23,7 @@ public class CmdMoney extends FCommand { //this.requiredArgs.add(""); //this.optionalArgs.put("","") - this.isMoneyCommand = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; - - this.helpLong.add(p.txt.parseTags(TL.COMMAND_MONEY_LONG.toString())); + this.helpLong.add(FactionsPlugin.getInstance().txt.parseTags(TL.COMMAND_MONEY_LONG.toString())); this.addSubCommand(this.cmdMoneyBalance); this.addSubCommand(this.cmdMoneyDeposit); @@ -37,13 +31,16 @@ public class CmdMoney extends FCommand { this.addSubCommand(this.cmdMoneyTransferFf); this.addSubCommand(this.cmdMoneyTransferFp); this.addSubCommand(this.cmdMoneyTransferPf); - } @Override - public void perform() { - this.commandChain.add(this); - P.p.cmdAutoHelp.execute(this.sender, this.args, this.commandChain); + public void perform(CommandContext context) { + if (!Conf.econEnabled) { + context.msg(TL.ECON_OFF, "economy option is enabled, please set \'econEnabled\' to true in conf.json"); + return; + } + context.commandChain.add(this); + FactionsPlugin.getInstance().cmdAutoHelp.execute(context); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java index f314026a..cde68cd3 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; @@ -16,36 +18,30 @@ public class CmdMoneyBalance extends FCommand { //this.requiredArgs.add(""); this.optionalArgs.put("faction", "yours"); - this.isMoneyCommand = true; - this.permission = Permission.MONEY_BALANCE.node; this.setHelpShort(TL.COMMAND_MONEYBALANCE_SHORT.toString()); - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_BALANCE).build(); } @Override - public void perform() { - Faction faction = myFaction; - if (this.argIsSet(0)) { - faction = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction faction = context.faction; + if (context.argIsSet(0)) { + faction = context.argAsFaction(0); } if (faction == null) { return; } - if (faction != myFaction && !Permission.MONEY_BALANCE_ANY.has(sender, true)) { + if (faction != context.faction && !Permission.MONEY_BALANCE_ANY.has(context.sender, true)) { return; } - if (fme != null) { - Econ.sendBalanceInfo((CommandSender) fme, faction); + if (context.fPlayer != null) { + Econ.sendBalanceInfo((CommandSender) context.fPlayer, faction); } else { - Econ.sendBalanceInfo(sender, faction); + Econ.sendBalanceInfo(context.sender, faction); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyDeposit.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyDeposit.java index f4742f1a..24becf24 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyDeposit.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyDeposit.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; @@ -20,29 +22,22 @@ public class CmdMoneyDeposit extends FCommand { this.requiredArgs.add("amount"); this.optionalArgs.put("faction", "yours"); - this.isMoneyCommand = true; - - this.permission = Permission.MONEY_DEPOSIT.node; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_DEPOSIT) + .memberOnly() + .build(); } @Override - public void perform() { - double amount = this.argAsDouble(0, 0d); - EconomyParticipator faction = this.argAsFaction(1, myFaction); + public void perform(CommandContext context) { + double amount = context.argAsDouble(0, 0d); + EconomyParticipator faction = context.argAsFaction(1, context.faction); if (faction == null) { return; } - boolean success = Econ.transferMoney(fme, fme, faction, amount); + boolean success = Econ.transferMoney(context.fPlayer, context.fPlayer, faction, amount); if (success && Conf.logMoneyTransactions) { - P.p.log(ChatColor.stripColor(P.p.txt.parse(TL.COMMAND_MONEYDEPOSIT_DEPOSITED.toString(), fme.getName(), Econ.moneyString(amount), faction.describeTo(null)))); + FactionsPlugin.getInstance().log(ChatColor.stripColor(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_MONEYDEPOSIT_DEPOSITED.toString(), context.fPlayer.getName(), Econ.moneyString(amount), faction.describeTo(null)))); } } @@ -52,3 +47,4 @@ public class CmdMoneyDeposit extends FCommand { } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFf.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFf.java index 169dc61e..9da896b5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFf.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFf.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; @@ -13,6 +15,7 @@ import org.bukkit.entity.Player; public class CmdMoneyTransferFf extends FCommand { + public CmdMoneyTransferFf() { this.aliases.add("ff"); @@ -20,45 +23,32 @@ public class CmdMoneyTransferFf extends FCommand { this.requiredArgs.add("faction"); this.requiredArgs.add("faction"); - //this.optionalArgs.put("", ""); - - this.permission = Permission.MONEY_F2F.node; - - this.isMoneyCommand = true; - - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_F2F).build(); } @Override - public void perform() { - double amount = this.argAsDouble(0, 0d); - EconomyParticipator from = this.argAsFaction(1); + public void perform(CommandContext context) { + double amount = context.argAsDouble(0, 0d); + EconomyParticipator from = context.argAsFaction(1); if (from == null) { return; } - EconomyParticipator to = this.argAsFaction(2); + EconomyParticipator to = context.argAsFaction(2); if (to == null) { return; } - if (Conf.econFactionStartingBalance != 0 && (System.currentTimeMillis() - myFaction.getFoundedDate()) <= (Conf.econDenyWithdrawWhenMinutesAgeLessThan * 6000)) { - msg("Your faction is too young to transfer money like this"); - return; - } - boolean success = Econ.transferMoney(fme, from, to, amount); + + boolean success = Econ.transferMoney(context.fPlayer, from, to, amount); if (success && Conf.logMoneyTransactions) { - String name = sender instanceof Player ? fme.getName() : sender.getName(); - P.p.log(ChatColor.stripColor(P.p.txt.parse(TL.COMMAND_MONEYTRANSFERFF_TRANSFER.toString(), name, Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); + String name = context.sender instanceof Player ? context.fPlayer.getName() : context.sender.getName(); + FactionsPlugin.getInstance().log(ChatColor.stripColor(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_MONEYTRANSFERFF_TRANSFER.toString(), name, Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } + @Override public TL getUsageTranslation() { return TL.COMMAND_MONEYTRANSFERFF_DESCRIPTION; } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFp.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFp.java index aae46aea..2eac623b 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFp.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferFp.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; @@ -11,7 +13,6 @@ import org.bukkit.ChatColor; public class CmdMoneyTransferFp extends FCommand { - public CmdMoneyTransferFp() { this.aliases.add("fp"); @@ -19,39 +20,25 @@ public class CmdMoneyTransferFp extends FCommand { this.requiredArgs.add("faction"); this.requiredArgs.add("player"); - //this.optionalArgs.put("", ""); - - this.permission = Permission.MONEY_F2P.node; - - this.isMoneyCommand = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_F2P).build(); } @Override - public void perform() { - double amount = this.argAsDouble(0, 0d); - EconomyParticipator from = this.argAsFaction(1); + public void perform(CommandContext context) { + double amount = context.argAsDouble(0, 0d); + EconomyParticipator from = context.argAsFaction(1); if (from == null) { return; } - EconomyParticipator to = this.argAsBestFPlayerMatch(2); + EconomyParticipator to = context.argAsBestFPlayerMatch(2); if (to == null) { return; } - if (Conf.econFactionStartingBalance != 0 && (System.currentTimeMillis() - myFaction.getFoundedDate()) <= (Conf.econDenyWithdrawWhenMinutesAgeLessThan * 6000)) { - msg("Your faction is too young to transfer money like this"); - return; - } - boolean success = Econ.transferMoney(fme, from, to, amount); + boolean success = Econ.transferMoney(context.fPlayer, from, to, amount); if (success && Conf.logMoneyTransactions) { - P.p.log(ChatColor.stripColor(P.p.txt.parse(TL.COMMAND_MONEYTRANSFERFP_TRANSFER.toString(), fme.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); + FactionsPlugin.getInstance().log(ChatColor.stripColor(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_MONEYTRANSFERFP_TRANSFER.toString(), context.fPlayer.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } @@ -60,3 +47,4 @@ public class CmdMoneyTransferFp extends FCommand { return TL.COMMAND_MONEYTRANSFERFP_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferPf.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferPf.java index 1efabe96..ab67d6be 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferPf.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyTransferPf.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; @@ -19,39 +21,25 @@ public class CmdMoneyTransferPf extends FCommand { this.requiredArgs.add("player"); this.requiredArgs.add("faction"); - //this.optionalArgs.put("", ""); - - this.permission = Permission.MONEY_P2F.node; - this.isMoneyCommand = true; - - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_P2F).build(); } @Override - public void perform() { - double amount = this.argAsDouble(0, 0d); - EconomyParticipator from = this.argAsBestFPlayerMatch(1); + public void perform(CommandContext context) { + double amount = context.argAsDouble(0, 0d); + EconomyParticipator from = context.argAsBestFPlayerMatch(1); if (from == null) { return; } - EconomyParticipator to = this.argAsFaction(2); + EconomyParticipator to = context.argAsFaction(2); if (to == null) { return; } - if (Conf.econFactionStartingBalance != 0 && (System.currentTimeMillis() - myFaction.getFoundedDate()) <= (Conf.econDenyWithdrawWhenMinutesAgeLessThan * 6000)) { - msg("Your faction is too young to transfer money like this"); - return; - } - boolean success = Econ.transferMoney(fme, from, to, amount); + boolean success = Econ.transferMoney(context.fPlayer, from, to, amount); if (success && Conf.logMoneyTransactions) { - P.p.log(ChatColor.stripColor(P.p.txt.parse(TL.COMMAND_MONEYTRANSFERPF_TRANSFER.toString(), fme.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); + FactionsPlugin.getInstance().log(ChatColor.stripColor(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_MONEYTRANSFERPF_TRANSFER.toString(), context.fPlayer.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyWithdraw.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyWithdraw.java index 97df7d48..a3cc0686 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyWithdraw.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyWithdraw.java @@ -1,11 +1,14 @@ package com.massivecraft.factions.cmd.econ; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -21,41 +24,30 @@ public class CmdMoneyWithdraw extends FCommand { this.requiredArgs.add("amount"); this.optionalArgs.put("faction", "yours"); - this.permission = Permission.MONEY_WITHDRAW.node; - this.isMoneyCommand = true; - - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MONEY_F2P) + .playerOnly() + .build(); } @Override - public void perform() { - - double amount = this.argAsDouble(0, 0d); - EconomyParticipator faction = this.argAsFaction(1, myFaction); + public void perform(CommandContext context) { + double amount = context.argAsDouble(0, 0d); + EconomyParticipator faction = context.argAsFaction(1, context.faction); if (faction == null) { return; } - Access access = myFaction.getAccess(fme, PermissableAction.WITHDRAW); - if (access == Access.DENY) { - fme.msg(TL.GENERIC_NOPERMISSION, "withdraw"); - return; + Access access = context.faction.getAccess(context.fPlayer, PermissableAction.WITHDRAW); + if (context.fPlayer.getRole() != Role.LEADER) { + if (access == Access.DENY) { + context.msg(TL.GENERIC_NOPERMISSION, "withdraw", "withdraw money from the bank"); + return; + } } - - if (Conf.econFactionStartingBalance != 0 && (System.currentTimeMillis() - myFaction.getFoundedDate()) <= (Conf.econDenyWithdrawWhenMinutesAgeLessThan * 6000)) { - msg("Your faction is too young to withdraw money like this"); - return; - } - - boolean success = Econ.transferMoney(fme, faction, fme, amount); + boolean success = Econ.transferMoney(context.fPlayer, faction, context.fPlayer, amount); if (success && Conf.logMoneyTransactions) { - P.p.log(ChatColor.stripColor(P.p.txt.parse(TL.COMMAND_MONEYWITHDRAW_WITHDRAW.toString(), fme.getName(), Econ.moneyString(amount), faction.describeTo(null)))); + FactionsPlugin.getInstance().log(ChatColor.stripColor(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_MONEYWITHDRAW_WITHDRAW.toString(), context.fPlayer.getName(), Econ.moneyString(amount), faction.describeTo(null)))); } } diff --git a/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java b/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java index dc4d2911..d64a456e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java +++ b/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java @@ -1,7 +1,8 @@ package com.massivecraft.factions.cmd.grace; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -9,37 +10,24 @@ import com.massivecraft.factions.zcore.util.TL; public class CmdGrace extends FCommand { public CmdGrace() { - super(); this.aliases.add("grace"); - this.permission = Permission.GRACE.node; - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.GRACE) + .playerOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("f-grace.Enabled")) { - fme.msg(TL.GENERIC_DISABLED); - return; - } - - boolean gracePeriod = Conf.gracePeriod; - - if (args.size() == 0) { - Conf.gracePeriod = !gracePeriod; - } - fme.msg(TL.COMMAND_GRACE_TOGGLE, gracePeriod ? "enabled" : "disabled"); + public void perform(CommandContext context) { + Conf.gracePeriod = !Conf.gracePeriod; + context.msg(TL.COMMAND_GRACE_TOGGLE, Conf.gracePeriod ? TL.GENERIC_ENABLED : TL.GENERIC_DISABLED); } + @Override public TL getUsageTranslation() { return TL.COMMAND_GRACE_DESCRIPTION; } + } diff --git a/src/main/java/com/massivecraft/factions/cmd/logout/CmdLogout.java b/src/main/java/com/massivecraft/factions/cmd/logout/CmdLogout.java index 04362fca..e1ed15c4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/logout/CmdLogout.java +++ b/src/main/java/com/massivecraft/factions/cmd/logout/CmdLogout.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd.logout; import com.massivecraft.factions.Conf; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -11,27 +13,22 @@ public class CmdLogout extends FCommand { super(); this.aliases.add("logout"); - this.permission = Permission.LOGOUT.node; - this.disableOnLock = true; - this.disableOnSpam = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.LOGOUT) + .playerOnly() + .build(); } @Override - public void perform() { - LogoutHandler handler = LogoutHandler.getByName(fme.getPlayer().getName()); + public void perform(CommandContext context) { + LogoutHandler handler = LogoutHandler.getByName(context.player.getName()); - if (handler.isLogoutActive(fme.getPlayer())) { - fme.msg(TL.COMMAND_LOGOUT_ACTIVE); + if (handler.isLogoutActive(context.player)) { + context.msg(TL.COMMAND_LOGOUT_ACTIVE); return; } - handler.applyLogoutCooldown(fme.getPlayer()); - fme.msg(TL.COMMAND_LOGOUT_LOGGING, Conf.logoutCooldown); + handler.applyLogoutCooldown(context.player); + context.msg(TL.COMMAND_LOGOUT_LOGGING, Conf.logoutCooldown); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/logout/LogoutHandler.java b/src/main/java/com/massivecraft/factions/cmd/logout/LogoutHandler.java index 1cf724e9..0596e2c6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/logout/LogoutHandler.java +++ b/src/main/java/com/massivecraft/factions/cmd/logout/LogoutHandler.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.cmd.logout; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -38,9 +38,9 @@ public class LogoutHandler { public void applyLogoutCooldown(Player player) { logoutCooldown.put(player.getUniqueId(), System.currentTimeMillis() + (30 * 1000)); - Bukkit.getScheduler().runTaskLater(P.p, () -> { + Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> { if (isLogoutActive(player)) { - player.setMetadata("Logout", new FixedMetadataValue(P.p, true)); + player.setMetadata("Logout", new FixedMetadataValue(FactionsPlugin.getInstance(), true)); player.kickPlayer(String.valueOf(TL.COMMAND_LOGOUT_KICK_MESSAGE)); cancelLogout(player); } diff --git a/src/main/java/com/massivecraft/factions/cmd/points/CmdPoints.java b/src/main/java/com/massivecraft/factions/cmd/points/CmdPoints.java index 2db4ca02..762a06d8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/points/CmdPoints.java +++ b/src/main/java/com/massivecraft/factions/cmd/points/CmdPoints.java @@ -1,7 +1,10 @@ package com.massivecraft.factions.cmd.points; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdPoints extends FCommand { @@ -14,13 +17,9 @@ public class CmdPoints extends FCommand { super(); this.aliases.add("points"); - this.disableOnLock = false; - this.disableOnSpam = false; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.POINTS) + .playerOnly() + .build(); this.addSubCommand(this.cmdPointsAdd); @@ -30,13 +29,13 @@ public class CmdPoints extends FCommand { @Override - public void perform() { - if (!P.p.getConfig().getBoolean("f-points.Enabled", true)) { - msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-points.Enabled", true)) { + context.msg(TL.GENERIC_DISABLED); return; } - this.commandChain.add(this); - P.p.cmdAutoHelp.execute(this.sender, this.args, this.commandChain); + context.commandChain.add(this); + FactionsPlugin.getInstance().cmdAutoHelp.execute(context); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsAdd.java b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsAdd.java index e999ae99..f1964ae3 100644 --- a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsAdd.java +++ b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsAdd.java @@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd.points; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -17,44 +19,34 @@ public class CmdPointsAdd extends FCommand { this.requiredArgs.add("# of points"); - this.errorOnToManyArgs = false; - //this.optionalArgs - - this.permission = Permission.ADDPOINTS.node; - - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.ADDPOINTS) + .build(); } @Override - public void perform() { - Faction faction = Factions.getInstance().getByTag(args.get(0)); + public void perform(CommandContext context) { + Faction faction = Factions.getInstance().getByTag(context.args.get(0)); if (faction == null) { - FPlayer fPlayer = this.argAsFPlayer(0); + FPlayer fPlayer = context.argAsFPlayer(0); if (fPlayer != null) { faction = fPlayer.getFaction(); } } if (faction == null || faction.isWilderness()) { - msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0))); + context.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", context.args.get(0))); return; } - if (argAsInt(1) <= 0) { - msg(TL.COMMAND_POINTS_INSUFFICIENT); + if (context.argAsInt(1) <= 0) { + context.msg(TL.COMMAND_POINTS_INSUFFICIENT); return; } - faction.setPoints(faction.getPoints() + argAsInt(1)); + faction.setPoints(faction.getPoints() + context.argAsInt(1)); - msg(TL.COMMAND_POINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints()); + context.msg(TL.COMMAND_POINTS_SUCCESSFUL, context.argAsInt(1), faction.getTag(), faction.getPoints()); } diff --git a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsRemove.java b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsRemove.java index 10fe5e0c..6320a256 100644 --- a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsRemove.java +++ b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsRemove.java @@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd.points; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -16,44 +18,34 @@ public class CmdPointsRemove extends FCommand { this.requiredArgs.add("faction/player"); this.requiredArgs.add("# of points"); + this.requirements = new CommandRequirements.Builder(Permission.REMOVEPOINTS) + .build(); - this.errorOnToManyArgs = false; - //this.optionalArgs - - this.permission = Permission.REMOVEPOINTS.node; - - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; } @Override - public void perform() { - Faction faction = Factions.getInstance().getByTag(args.get(0)); + public void perform(CommandContext context) { + Faction faction = Factions.getInstance().getByTag(context.args.get(0)); - FPlayer fPlayer = this.argAsFPlayer(0); + FPlayer fPlayer = context.argAsFPlayer(0); if (fPlayer != null) { faction = fPlayer.getFaction(); } if (faction == null || faction.isWilderness()) { - msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0))); + context.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", context.args.get(0))); return; } - if (argAsInt(1) <= 0) { - msg(TL.COMMAND_POINTS_INSUFFICIENT); + if (context.argAsInt(1) <= 0) { + context.msg(TL.COMMAND_POINTS_INSUFFICIENT); return; } - faction.setPoints(faction.getPoints() - argAsInt(1)); - msg(TL.COMMAND_REMOVEPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints()); + faction.setPoints(faction.getPoints() - context.argAsInt(1)); + context.msg(TL.COMMAND_REMOVEPOINTS_SUCCESSFUL, context.argAsInt(1), faction.getTag(), faction.getPoints()); } diff --git a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsSet.java b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsSet.java index d8a304a2..e3fde0f5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsSet.java +++ b/src/main/java/com/massivecraft/factions/cmd/points/CmdPointsSet.java @@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd.points; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -17,42 +19,32 @@ public class CmdPointsSet extends FCommand { this.requiredArgs.add("# of points"); - this.errorOnToManyArgs = false; - //this.optionalArgs - - this.permission = Permission.SETPOINTS.node; - - this.disableOnLock = true; - - senderMustBePlayer = false; - senderMustBeMember = false; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SETPOINTS) + .build(); } @Override - public void perform() { - Faction faction = Factions.getInstance().getByTag(args.get(0)); + public void perform(CommandContext context) { + Faction faction = Factions.getInstance().getByTag(context.args.get(0)); - FPlayer fPlayer = this.argAsFPlayer(0); + FPlayer fPlayer = context.argAsFPlayer(0); if (fPlayer != null) { faction = fPlayer.getFaction(); } if (faction == null || faction.isWilderness()) { - msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0))); + context.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", context.args.get(0))); return; } - if (argAsInt(1) < 0) { - msg(TL.COMMAND_POINTS_INSUFFICIENT); + if (context.argAsInt(1) < 0) { + context.msg(TL.COMMAND_POINTS_INSUFFICIENT); return; } - faction.setPoints(argAsInt(1)); - msg(TL.COMMAND_SETPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints()); + faction.setPoints(context.argAsInt(1)); + context.msg(TL.COMMAND_SETPOINTS_SUCCESSFUL, context.argAsInt(1), faction.getTag(), faction.getPoints()); } diff --git a/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java b/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java index fdc979b9..4e5e21a3 100644 --- a/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java +++ b/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java @@ -2,13 +2,16 @@ package com.massivecraft.factions.cmd.relational; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.event.FactionRelationEvent; import com.massivecraft.factions.event.FactionRelationWishEvent; import com.massivecraft.factions.scoreboards.FTeamWrapper; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; +import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -20,99 +23,96 @@ public abstract class FRelationCommand extends FCommand { public FRelationCommand() { super(); this.requiredArgs.add("faction tag"); - //this.optionalArgs.put("player name", "you"); - this.permission = Permission.RELATION.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.RELATION) + .withRole(Role.MODERATOR) + .playerOnly() + .memberOnly() + .build(); } @Override - public void perform() { - Faction them = this.argAsFaction(0); + public void perform(CommandContext context) { + Faction them = context.argAsFaction(0); if (them == null) { return; } if (!them.isNormal()) { - msg(TL.COMMAND_RELATIONS_ALLTHENOPE); + context.msg(TL.COMMAND_RELATIONS_ALLTHENOPE); return; } - if (them == myFaction) { - msg(TL.COMMAND_RELATIONS_MORENOPE); + if (them == context.faction) { + context.msg(TL.COMMAND_RELATIONS_MORENOPE); return; } - if (myFaction.getRelationWish(them) == targetRelation) { - msg(TL.COMMAND_RELATIONS_ALREADYINRELATIONSHIP, them.getTag()); + if (context.faction.getRelationWish(them) == targetRelation) { + context.msg(TL.COMMAND_RELATIONS_ALREADYINRELATIONSHIP, them.getTag()); return; } - if (hasMaxRelations(them, targetRelation)) { + if (hasMaxRelations(context.faction, them, targetRelation)) { // We message them down there with the count. return; } - Relation oldRelation = myFaction.getRelationTo(them, true); - FactionRelationWishEvent wishEvent = new FactionRelationWishEvent(fme, myFaction, them, oldRelation, targetRelation); + Relation oldRelation = context.faction.getRelationTo(them, true); + FactionRelationWishEvent wishEvent = new FactionRelationWishEvent(context.fPlayer, context.faction, them, oldRelation, targetRelation); Bukkit.getPluginManager().callEvent(wishEvent); if (wishEvent.isCancelled()) { return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay - if (!payForCommand(targetRelation.getRelationCost(), TL.COMMAND_RELATIONS_TOMARRY, TL.COMMAND_RELATIONS_FORMARRY)) { + if (!context.payForCommand(targetRelation.getRelationCost(), TL.COMMAND_RELATIONS_TOMARRY, TL.COMMAND_RELATIONS_FORMARRY)) { return; } // try to set the new relation - myFaction.setRelationWish(them, targetRelation); - Relation currentRelation = myFaction.getRelationTo(them, true); + context.faction.setRelationWish(them, targetRelation); + Relation currentRelation = context.faction.getRelationTo(them, true); ChatColor currentRelationColor = currentRelation.getColor(); // if the relation change was successful if (targetRelation.value == currentRelation.value) { // trigger the faction relation event - FactionRelationEvent relationEvent = new FactionRelationEvent(myFaction, them, oldRelation, currentRelation); + FactionRelationEvent relationEvent = new FactionRelationEvent(context.faction, them, oldRelation, currentRelation); Bukkit.getServer().getPluginManager().callEvent(relationEvent); - them.msg(TL.COMMAND_RELATIONS_MUTUAL, currentRelationColor + targetRelation.getTranslation(), currentRelationColor + myFaction.getTag()); - myFaction.msg(TL.COMMAND_RELATIONS_MUTUAL, currentRelationColor + targetRelation.getTranslation(), currentRelationColor + them.getTag()); + them.msg(TL.COMMAND_RELATIONS_MUTUAL, currentRelationColor + targetRelation.getTranslation(), currentRelationColor + context.faction.getTag()); + context.faction.msg(TL.COMMAND_RELATIONS_MUTUAL, currentRelationColor + targetRelation.getTranslation(), currentRelationColor + them.getTag()); } else { // inform the other faction of your request - them.msg(TL.COMMAND_RELATIONS_PROPOSAL_1, currentRelationColor + myFaction.getTag(), targetRelation.getColor() + targetRelation.getTranslation()); - them.msg(TL.COMMAND_RELATIONS_PROPOSAL_2, Conf.baseCommandAliases.get(0), targetRelation, myFaction.getTag()); - myFaction.msg(TL.COMMAND_RELATIONS_PROPOSAL_SENT, currentRelationColor + them.getTag(), "" + targetRelation.getColor() + targetRelation); + them.msg(TL.COMMAND_RELATIONS_PROPOSAL_1, currentRelationColor + context.faction.getTag(), targetRelation.getColor() + targetRelation.getTranslation()); + them.msg(TL.COMMAND_RELATIONS_PROPOSAL_2, Conf.baseCommandAliases.get(0), targetRelation, context.faction.getTag()); + context.faction.msg(TL.COMMAND_RELATIONS_PROPOSAL_SENT, currentRelationColor + them.getTag(), "" + targetRelation.getColor() + targetRelation); } if (!targetRelation.isNeutral() && them.isPeaceful()) { them.msg(TL.COMMAND_RELATIONS_PEACEFUL); - myFaction.msg(TL.COMMAND_RELATIONS_PEACEFULOTHER); + context.faction.msg(TL.COMMAND_RELATIONS_PEACEFULOTHER); } - if (!targetRelation.isNeutral() && myFaction.isPeaceful()) { + if (!targetRelation.isNeutral() && context.faction.isPeaceful()) { them.msg(TL.COMMAND_RELATIONS_PEACEFULOTHER); - myFaction.msg(TL.COMMAND_RELATIONS_PEACEFUL); + context.faction.msg(TL.COMMAND_RELATIONS_PEACEFUL); } - FTeamWrapper.updatePrefixes(myFaction); + FTeamWrapper.updatePrefixes(context.faction); FTeamWrapper.updatePrefixes(them); } - private boolean hasMaxRelations(Faction them, Relation targetRelation) { - int max = P.p.getConfig().getInt("max-relations." + targetRelation.toString(), -1); - if (P.p.getConfig().getBoolean("max-relations.enabled", false)) { + private boolean hasMaxRelations(Faction us, Faction them, Relation targetRelation) { + int max = FactionsPlugin.getInstance().getConfig().getInt("max-relations." + targetRelation.toString(), -1); + if (FactionsPlugin.getInstance().getConfig().getBoolean("max-relations.enabled", false)) { if (max != -1) { - if (myFaction.getRelationCount(targetRelation) >= max) { - msg(TL.COMMAND_RELATIONS_EXCEEDS_ME, max, targetRelation.getPluralTranslation()); + if (us.getRelationCount(targetRelation) >= max) { + us.msg(TL.COMMAND_RELATIONS_EXCEEDS_ME, max, targetRelation.getPluralTranslation()); return true; } if (them.getRelationCount(targetRelation) >= max) { - msg(TL.COMMAND_RELATIONS_EXCEEDS_THEY, max, targetRelation.getPluralTranslation()); + them.msg(TL.COMMAND_RELATIONS_EXCEEDS_THEY, max, targetRelation.getPluralTranslation()); return true; } } @@ -125,3 +125,4 @@ public abstract class FRelationCommand extends FCommand { return TL.COMMAND_RELATIONS_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/roles/FPromoteCommand.java b/src/main/java/com/massivecraft/factions/cmd/roles/FPromoteCommand.java index 7899a1a5..360f2d3c 100644 --- a/src/main/java/com/massivecraft/factions/cmd/roles/FPromoteCommand.java +++ b/src/main/java/com/massivecraft/factions/cmd/roles/FPromoteCommand.java @@ -1,13 +1,13 @@ package com.massivecraft.factions.cmd.roles; import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.ChatColor; public class FPromoteCommand extends FCommand { @@ -15,33 +15,25 @@ public class FPromoteCommand extends FCommand { public FPromoteCommand() { super(); - this.requiredArgs.add("player"); - this.permission = Permission.PROMOTE.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.PROMOTE) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.PROMOTE) + .build(); } @Override - public void perform() { - FPlayer target = this.argAsBestFPlayerMatch(0); + public void perform(CommandContext context) { + FPlayer target = context.argAsBestFPlayerMatch(0); if (target == null) { - msg(TL.GENERIC_NOPLAYERFOUND, this.argAsString(0)); + context.msg(TL.GENERIC_NOPLAYERFOUND, context.argAsString(0)); return; } - if (!target.getFaction().equals(myFaction)) { - msg(TL.COMMAND_PROMOTE_WRONGFACTION, target.getName()); - return; - } - - if (target.isAlt()) { - msg(ChatColor.RED + "You can not edit the rank of alt accounts."); + if (!target.getFaction().equals(context.faction)) { + context.msg(TL.COMMAND_PROMOTE_WRONGFACTION, target.getName()); return; } @@ -49,36 +41,31 @@ public class FPromoteCommand extends FCommand { Role promotion = Role.getRelative(current, +relative); // Now it ain't that messy - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.PROMOTE); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_NOPERMISSION, "manage ranks"); - return; - } - if (target == fme) { - fme.msg(TL.COMMAND_PROMOTE_NOTSELF); + if (!context.fPlayer.isAdminBypassing()) { + if (target == context.fPlayer) { + context.msg(TL.COMMAND_PROMOTE_NOTSELF); return; } // Don't allow people to manage role of their same rank - if (fme.getRole() == current) { - fme.msg(TL.COMMAND_PROMOTE_NOT_SAME); + if (context.fPlayer.getRole() == current) { + context.msg(TL.COMMAND_PROMOTE_NOT_SAME); return; } // Don't allow people to promote people to their same or higher rank. - if (fme.getRole().value <= promotion.value) { - fme.msg(TL.COMMAND_PROMOTE_NOT_ALLOWED); + if (context.fPlayer.getRole().value <= promotion.value) { + context.msg(TL.COMMAND_PROMOTE_NOT_ALLOWED); return; } } if (promotion == null) { - fme.msg(TL.COMMAND_PROMOTE_NOTTHATPLAYER); + context.msg(TL.COMMAND_PROMOTE_NOTTHATPLAYER); return; } // Don't allow people to promote people to their same or higher rnak. - if (fme.getRole().value <= promotion.value) { - fme.msg(TL.COMMAND_PROMOTE_NOT_ALLOWED); + if (context.fPlayer.getRole().value <= promotion.value) { + context.msg(TL.COMMAND_PROMOTE_NOT_ALLOWED); return; } @@ -90,7 +77,7 @@ public class FPromoteCommand extends FCommand { target.msg(TL.COMMAND_PROMOTE_TARGET, action, promotion.nicename); } - fme.msg(TL.COMMAND_PROMOTE_SUCCESS, action, target.getName(), promotion.nicename); + context.msg(TL.COMMAND_PROMOTE_SUCCESS, action, target.getName(), promotion.nicename); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java index 35bad43b..cbb091e5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java +++ b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java @@ -1,11 +1,11 @@ package com.massivecraft.factions.cmd.tnt; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.XMaterial; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Material; @@ -14,54 +14,40 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class CmdTnt extends FCommand { - public CmdTnt() { super(); this.aliases.add("tnt"); - this.optionalArgs.put("add/take", ""); this.optionalArgs.put("amount", "number"); - - this.permission = Permission.TNT.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = false; - senderMustBeModerator = true; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TNT) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TNTBANK) + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("ftnt.Enabled")) { - fme.msg(TL.COMMAND_TNT_DISABLED_MSG); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("ftnt.Enabled")) { + context.msg(TL.COMMAND_TNT_DISABLED_MSG); return; } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.TNTBANK); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "use tnt bank"); - return; - } - } - - if (args.size() == 2) { - if (args.get(0).equalsIgnoreCase("add") || args.get(0).equalsIgnoreCase("a")) { + if (context.args.size() == 2) { + if (context.args.get(0).equalsIgnoreCase("add") || context.args.get(0).equalsIgnoreCase("a")) { try { - Integer.parseInt(args.get(1)); + Integer.parseInt(context.args.get(1)); } catch (NumberFormatException e) { - fme.msg(TL.COMMAND_TNT_INVALID_NUM); + context.msg(TL.COMMAND_TNT_INVALID_NUM); return; } - int amount = Integer.parseInt(args.get(1)); + int amount = Integer.parseInt(context.args.get(1)); if (amount < 0) { - fme.msg(TL.COMMAND_TNT_POSITIVE); + context.msg(TL.COMMAND_TNT_POSITIVE); return; } - Inventory inv = me.getInventory(); + Inventory inv = context.player.getInventory(); int invTnt = 0; for (int i = 0; i <= inv.getSize(); i++) { if (inv.getItem(i) == null) { @@ -72,69 +58,83 @@ public class CmdTnt extends FCommand { } } if (amount > invTnt) { - fme.msg(TL.COMMAND_TNT_DEPOSIT_NOTENOUGH); + context.msg(TL.COMMAND_TNT_DEPOSIT_NOTENOUGH); return; } ItemStack tnt = new ItemStack(Material.TNT, amount); - if (fme.getFaction().getTnt() + amount > P.p.getConfig().getInt("ftnt.Bank-Limit")) { - msg(TL.COMMAND_TNT_EXCEEDLIMIT); + if (context.faction.getTnt() + amount > FactionsPlugin.getInstance().getConfig().getInt("ftnt.Bank-Limit")) { + context.msg(TL.COMMAND_TNT_EXCEEDLIMIT); return; } - removeFromInventory(me.getInventory(), tnt); - me.updateInventory(); + removeFromInventory(context.player.getInventory(), tnt); + context.player.updateInventory(); - fme.getFaction().addTnt(amount); - fme.msg(TL.COMMAND_TNT_DEPOSIT_SUCCESS); - fme.sendMessage(P.p.color(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", fme.getFaction().getTnt() + ""))); + context.faction.addTnt(amount); + context.msg(TL.COMMAND_TNT_DEPOSIT_SUCCESS); + context.fPlayer.sendMessage(FactionsPlugin.getInstance().color(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", context.fPlayer.getFaction().getTnt() + ""))); return; } - if (args.get(0).equalsIgnoreCase("take") || args.get(0).equalsIgnoreCase("t")) { + if (context.args.get(0).equalsIgnoreCase("take") || context.args.get(0).equalsIgnoreCase("t")) { try { - Integer.parseInt(args.get(1)); + Integer.parseInt(context.args.get(1)); } catch (NumberFormatException e) { - fme.msg(TL.COMMAND_TNT_INVALID_NUM); + context.msg(TL.COMMAND_TNT_INVALID_NUM); return; } - int amount = Integer.parseInt(args.get(1)); + int amount = Integer.parseInt(context.args.get(1)); if (amount < 0) { - fme.msg(TL.COMMAND_TNT_POSITIVE); + context.msg(TL.COMMAND_TNT_POSITIVE); return; } - if (fme.getFaction().getTnt() < amount) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH); + if (context.faction.getTnt() < amount) { + context.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } - int fullStacks = Math.round(amount / 6); + int fullStacks = Math.round(amount / 64); int remainderAmt = amount - (fullStacks * 64); - if ((remainderAmt == 0 && !hasAvaliableSlot(me, fullStacks))) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_SPACE); + if ((remainderAmt == 0 && !hasAvaliableSlot(context.player, fullStacks))) { + context.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_SPACE); return; } - if (!hasAvaliableSlot(me, fullStacks + 1)) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_SPACE); + if (!hasAvaliableSlot(context.player, fullStacks + 1)) { + context.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_SPACE); return; } for (int i = 0; i <= fullStacks - 1; i++) - me.getPlayer().getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), 64)); + context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), 64)); if (remainderAmt != 0) - me.getPlayer().getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), remainderAmt)); + context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), remainderAmt)); - fme.getFaction().takeTnt(amount); - me.updateInventory(); - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_SUCCESS); + context.faction.takeTnt(amount); + context.player.updateInventory(); + context.msg(TL.COMMAND_TNT_WIDTHDRAW_SUCCESS); } - } else if (args.size() == 1) { - fme.msg(TL.GENERIC_ARGS_TOOFEW); - fme.msg(args.get(0).equalsIgnoreCase("take") || args.get(0).equalsIgnoreCase("t") ? TL.COMMAND_TNT_TAKE_DESCRIPTION : TL.COMMAND_TNT_ADD_DESCRIPTION); + } else if (context.args.size() == 1) { + context.msg(TL.GENERIC_ARGS_TOOFEW); + context.msg(context.args.get(0).equalsIgnoreCase("take") || context.args.get(0).equalsIgnoreCase("t") ? TL.COMMAND_TNT_TAKE_DESCRIPTION : TL.COMMAND_TNT_ADD_DESCRIPTION); } - fme.sendMessage(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", fme.getFaction().getTnt() + "")); + context.sendMessage(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", context.faction.getTnt() + "")); } + public boolean inventoryContains(Inventory inventory, ItemStack item) { + int count = 0; + ItemStack[] items = inventory.getContents(); + for (int i = 0; i < items.length; i++) { + if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) { + count += items[i].getAmount(); + } + if (count >= item.getAmount()) { + return true; + } + } + return false; + } + public boolean hasAvaliableSlot(Player player, int howmany) { - int check = 0; + Integer check = 0; for (ItemStack item : player.getInventory().getContents()) { if (item == null) { check++; @@ -168,3 +168,4 @@ public class CmdTnt extends FCommand { return TL.COMMAND_TNT_DESCRIPTION; } } + diff --git a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java index 7377ac24..edd9f749 100644 --- a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java +++ b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java @@ -1,20 +1,27 @@ package com.massivecraft.factions.cmd.tnt; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; -import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.block.Dispenser; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + public class CmdTntFill extends FCommand { public CmdTntFill() { @@ -24,146 +31,137 @@ public class CmdTntFill extends FCommand { this.requiredArgs.add("radius"); this.requiredArgs.add("amount"); - this.permission = Permission.TNTFILL.node; - this.disableOnLock = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; - + this.requirements = new CommandRequirements.Builder(Permission.TNTFILL) + .playerOnly() + .memberOnly() + .withAction(PermissableAction.TNTFILL) + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("Tntfill.enabled")) { - this.fme.msg(TL.GENERIC_DISABLED); + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("Tntfill.enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } - if (!fme.isAdminBypassing()) { - Access access = myFaction.getAccess(fme, PermissableAction.TNTFILL); - if (access != Access.ALLOW && fme.getRole() != Role.LEADER) { - fme.msg(TL.GENERIC_FPERM_NOPERMISSION, "use tnt fill"); + + // Don't do I/O unless necessary + try { + Integer.parseInt(context.args.get(0)); + Integer.parseInt(context.args.get(1)); + } catch (NumberFormatException e) { + context.msg(TL.COMMAND_TNT_INVALID_NUM); + return; + } + + context.msg(TL.COMMAND_TNTFILL_HEADER); + int radius = context.argAsInt(0, 0); // We don't know the max yet, so let's not assume. + int amount = context.argAsInt(1, 0); // We don't know the max yet, so let's not assume. + + if (amount < 0) { + context.msg(TL.COMMAND_TNT_POSITIVE); + return; + } + if (radius > FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-radius")) { + context.msg(TL.COMMAND_TNTFILL_RADIUSMAX.toString().replace("{max}", FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-radius") + "")); + return; + } + if (amount > FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-amount")) { + context.msg(TL.COMMAND_TNTFILL_AMOUNTMAX.toString().replace("{max}", FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-amount") + "")); + return; + } + + // How many dispensers are we to fill in? + + Location start = context.player.getLocation(); + // Keep it on the stack for CPU saving. + List opDispensers = new ArrayList<>(); + + Block startBlock = start.getBlock(); + for (int x = -radius; x <= radius; x++) + for (int y = -radius; y <= radius; y++) + for (int z = -radius; z <= radius; z++) { + Block block = startBlock.getRelative(x, y, z); + if (block == null) continue; + BlockState blockState = block.getState(); + if (!(blockState instanceof Dispenser)) continue; + opDispensers.add((Dispenser) blockState); + } + if (opDispensers.isEmpty()) { + context.fPlayer.msg(TL.COMMAND_TNTFILL_NODISPENSERS.toString().replace("{radius}", radius + "")); + return; + } + + // What's the required amount of resources + int requiredTnt = (opDispensers.size() * amount); + + // Do I have enough tnt in my inventory? + int playerTnt = inventoryItemCount(context.player.getInventory(), Material.TNT); + if (playerTnt < requiredTnt) { + // How much TNT will I take from bank? + int getFactionTnt = requiredTnt - playerTnt; + + // Do I have enough tnt in bank? + if ((context.faction.getTnt() < getFactionTnt)) { + context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } - } - - msg(TL.COMMAND_TNTFILL_HEADER); - int radius = argAsInt(0, 16); - int amount = argAsInt(1, 16); - if (radius > P.p.getConfig().getInt("Tntfill.max-radius")) { - fme.msg(TL.COMMAND_TNTFILL_RADIUSMAX.toString().replace("{max}", P.p.getConfig().getInt("Tntfill.max-radius") + "")); - return; + // Take TNT from the bank. + removeFromBank(context, getFactionTnt); } - if (amount > P.p.getConfig().getInt("Tntfill.max-amount")) { - fme.msg(TL.COMMAND_TNTFILL_AMOUNTMAX.toString().replace("{max}", P.p.getConfig().getInt("Tntfill.max-amount") + "")); - return; - } - - try { - Integer.parseInt(args.get(1)); - } catch (NumberFormatException e) { - fme.msg(TL.COMMAND_TNT_INVALID_NUM); - return; - } - if (amount < 0) { - fme.msg(TL.COMMAND_TNT_POSITIVE); - return; - } - boolean bankMode = fme.getRole().isAtLeast(Role.MODERATOR); - Location start = me.getLocation(); - int counter = 0; - for (double x = start.getX() - radius; x <= start.getX() + radius; x++) { - for (double y = start.getY() - radius; y <= start.getY() + radius; y++) { - for (double z = start.getZ() - radius; z <= start.getZ() + radius; z++) { - Location blockLoc = new Location(start.getWorld(), x, y, z); - if (blockLoc.getBlock().getState() instanceof Dispenser) { - Dispenser disp = (Dispenser) blockLoc.getBlock().getState(); - Inventory dispenser = disp.getInventory(); - if (canHold(dispenser, amount)) { - int fullStacks = amount / 64; - int remainderAmt = amount % 64; - if (!inventoryContains(me.getInventory(), new ItemStack(Material.TNT, amount))) { - if (!fme.getRole().isAtLeast(Role.MODERATOR)) { - fme.msg(TL.COMMAND_TNTFILL_NOTENOUGH.toString()); - sendMessage(TL.COMMAND_TNTFILL_SUCCESS.toString().replace("{amount}", amount + "").replace("{dispensers}", counter + "")); - me.updateInventory(); - return; - } else if (bankMode) { - //msg(TL.COMMAND_TNTFILL_MOD.toString().replace("{role}",fme.getRole().nicename)); - bankMode = true; - removeFromBank(amount); - if (!inventoryContains(me.getInventory(), new ItemStack(Material.TNT, amount))) { - fme.msg(TL.COMMAND_TNTFILL_NOTENOUGH.toString()); - sendMessage(TL.COMMAND_TNTFILL_SUCCESS.toString().replace("{amount}", amount + "").replace("{dispensers}", counter + "")); - me.updateInventory(); - return; - } - } - } - ItemStack tnt64 = new ItemStack(Material.TNT, 64); - for (int i = 0; i <= fullStacks - 1; i++) { - dispenser.addItem(tnt64); - takeTnt(64); - } - if (remainderAmt != 0) { - ItemStack tnt = new ItemStack(Material.TNT, remainderAmt); - dispenser.addItem(tnt); - takeTnt(remainderAmt); - } - counter++; - } - } - } - } - } - if (bankMode) { - msg(TL.COMMAND_TNTFILL_MOD.toString().replace("{role}", fme.getRole().nicename)); - } - sendMessage(TL.COMMAND_TNTFILL_SUCCESS.toString().replace("{amount}", amount + "").replace("{dispensers}", counter + "")); - me.updateInventory(); + fillDispensers(context.fPlayer, opDispensers, amount); + // Remove used TNT from player inventory. + context.sendMessage(TL.COMMAND_TNTFILL_SUCCESS.toString().replace("{amount}", requiredTnt + "").replace("{dispensers}", opDispensers.size() + "")); } - private void removeFromBank(int amount) { + // Actually fill every dispenser with the precise amount. + private void fillDispensers(FPlayer fPlayer, List dispensers, int count) { + for (Dispenser dispenser : dispensers) { + takeTnt(fPlayer, count); + dispenser.getInventory().addItem(new ItemStack(Material.TNT, count)); + } + } + + private void removeFromBank(CommandContext context, int amount) { try { - Integer.parseInt(args.get(1)); + Integer.parseInt(context.args.get(1)); } catch (NumberFormatException e) { - fme.msg(TL.COMMAND_TNT_INVALID_NUM); + context.fPlayer.msg(TL.COMMAND_TNT_INVALID_NUM.toString()); return; } if (amount < 0) { - fme.msg(TL.COMMAND_TNT_POSITIVE); + context.fPlayer.msg(TL.COMMAND_TNT_POSITIVE.toString()); return; } - if (fme.getFaction().getTnt() < amount) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH); + if (context.faction.getTnt() < amount) { + context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } int fullStacks = amount / 64; int remainderAmt = amount % 64; - if ((remainderAmt == 0 && getEmptySlots(me) <= fullStacks)) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH); + if ((remainderAmt == 0 && getEmptySlots(context.player) <= fullStacks)) { + context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } - if (getEmptySlots(me) + 1 <= fullStacks) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH); + if (getEmptySlots(context.player) + 1 <= fullStacks) { + context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } ItemStack tnt64 = new ItemStack(Material.TNT, 64); for (int i = 0; i <= fullStacks - 1; i++) { - me.getInventory().addItem(tnt64); + context.player.getInventory().addItem(tnt64); } if (remainderAmt != 0) { ItemStack tnt = new ItemStack(Material.TNT, remainderAmt); - me.getInventory().addItem(tnt); + context.player.getInventory().addItem(tnt); } - fme.getFaction().takeTnt(amount); - me.updateInventory(); + context.faction.takeTnt(amount); + context.player.updateInventory(); } - public void takeTnt(int amount) { - Inventory inv = me.getInventory(); + private void takeTnt(FPlayer fme, int amount) { + Inventory inv = fme.getPlayer().getInventory(); int invTnt = 0; for (int i = 0; i <= inv.getSize(); i++) { if (inv.getItem(i) == null) { @@ -174,46 +172,27 @@ public class CmdTntFill extends FCommand { } } if (amount > invTnt) { - fme.msg(TL.COMMAND_TNTFILL_NOTENOUGH); + fme.msg(TL.COMMAND_TNTFILL_NOTENOUGH.toString()); return; } ItemStack tnt = new ItemStack(Material.TNT, amount); - if (fme.getFaction().getTnt() + amount > P.p.getConfig().getInt("ftnt.Bank-Limit")) { - msg(TL.COMMAND_TNT_EXCEEDLIMIT); + if (fme.getFaction().getTnt() + amount > FactionsPlugin.getInstance().getConfig().getInt("ftnt.Bank-Limit")) { + fme.msg(TL.COMMAND_TNT_EXCEEDLIMIT.toString()); return; } - removeFromInventory(me.getInventory(), tnt); + removeFromInventory(fme.getPlayer().getInventory(), tnt); } - public boolean canHold(Inventory inventory, int amount) { - int fullStacks = amount / 64; - int remainderAmt = amount % 64; - if ((remainderAmt == 0 && getEmptySlots(me) <= fullStacks)) { - return false; - } - if (getEmptySlots(me) + 1 <= fullStacks) { - fme.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH); - return false; - } - return true; - } - - public boolean inventoryContains(Inventory inventory, ItemStack item) { + // Counts the item type available in the inventory. + private int inventoryItemCount(Inventory inventory, Material mat) { int count = 0; - ItemStack[] items = inventory.getContents(); - for (int i = 0; i < items.length; i++) { - if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) { - count += items[i].getAmount(); - } - if (count >= item.getAmount()) { - return true; - } - } - return false; + HashMap items = inventory.all(mat); + for (int item : items.keySet()) + count += inventory.getItem(item).getAmount(); + return count; } - - public void removeFromInventory(Inventory inventory, ItemStack item) { + private void removeFromInventory(Inventory inventory, ItemStack item) { int amt = item.getAmount(); ItemStack[] items = inventory.getContents(); for (int i = 0; i < items.length; i++) { @@ -233,7 +212,7 @@ public class CmdTntFill extends FCommand { inventory.setContents(items); } - public int getEmptySlots(Player p) { + private int getEmptySlots(Player p) { PlayerInventory inventory = p.getInventory(); ItemStack[] cont = inventory.getContents(); int i = 0; @@ -248,4 +227,5 @@ public class CmdTntFill extends FCommand { public TL getUsageTranslation() { return TL.COMMAND_TNTFILL_DESCRIPTION; } + } \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/integration/Econ.java b/src/main/java/com/massivecraft/factions/integration/Econ.java index 216163a3..d499542b 100644 --- a/src/main/java/com/massivecraft/factions/integration/Econ.java +++ b/src/main/java/com/massivecraft/factions/integration/Econ.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.integration; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; @@ -35,24 +35,24 @@ public class Econ { String integrationFail = "Economy integration is " + (Conf.econEnabled ? "enabled, but" : "disabled, and") + " the plugin \"Vault\" "; if (Bukkit.getServer().getPluginManager().getPlugin("Vault") == null) { - P.p.log(integrationFail + "is not installed."); + FactionsPlugin.getInstance().log(integrationFail + "is not installed."); return; } RegisteredServiceProvider rsp = Bukkit.getServer().getServicesManager().getRegistration(Economy.class); if (rsp == null) { - P.p.log(integrationFail + "is not hooked into an economy plugin."); + FactionsPlugin.getInstance().log(integrationFail + "is not hooked into an economy plugin."); return; } econ = rsp.getProvider(); - P.p.log("Economy integration through Vault plugin successful."); + FactionsPlugin.getInstance().log("Economy integration through Vault plugin successful."); if (!Conf.econEnabled) { - P.p.log("NOTE: Economy is disabled. You can enable it with the command: f config econEnabled true"); + FactionsPlugin.getInstance().log("NOTE: Economy is disabled. You can enable it with the command: f config econEnabled true"); } - P.p.cmdBase.cmdHelp.updateHelp(); + //FactionsPlugin.getInstance().cmdBase.cmdHelp.updateHelp(); } public static boolean shouldBeUsed() { @@ -83,7 +83,7 @@ public class Econ { public static void sendBalanceInfo(CommandSender to, Faction about) { if (!shouldBeUsed()) { - P.p.log(Level.WARNING, "Vault does not appear to be hooked into an economy plugin."); + FactionsPlugin.getInstance().log(Level.WARNING, "Vault does not appear to be hooked into an economy plugin."); return; } to.sendMessage(String.format("%s's balance is %s.", about.getTag(), Econ.moneyString(econ.getBalance(about.getAccountId())))); diff --git a/src/main/java/com/massivecraft/factions/integration/Worldguard.java b/src/main/java/com/massivecraft/factions/integration/Worldguard.java index 2718b3c5..457f2a7d 100644 --- a/src/main/java/com/massivecraft/factions/integration/Worldguard.java +++ b/src/main/java/com/massivecraft/factions/integration/Worldguard.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.integration; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.Vector; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; @@ -38,11 +38,11 @@ public class Worldguard { if (wgplug == null || !(wgplug instanceof WorldGuardPlugin)) { enabled = false; wg = null; - P.p.log("Could not hook to WorldGuard. WorldGuard checks are disabled."); + FactionsPlugin.getInstance().log("Could not hook to WorldGuard. WorldGuard checks are disabled."); } else { wg = (WorldGuardPlugin) wgplug; enabled = true; - P.p.log("Successfully hooked to WorldGuard."); + FactionsPlugin.getInstance().log("Successfully hooked to WorldGuard."); } } diff --git a/src/main/java/com/massivecraft/factions/integration/dynmap/EngineDynmap.java b/src/main/java/com/massivecraft/factions/integration/dynmap/EngineDynmap.java index a4774969..120c8564 100644 --- a/src/main/java/com/massivecraft/factions/integration/dynmap/EngineDynmap.java +++ b/src/main/java/com/massivecraft/factions/integration/dynmap/EngineDynmap.java @@ -113,7 +113,7 @@ public class EngineDynmap { } // Shedule non thread safe sync at the end! - Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { + Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { final Map homes = createHomes(); final Map areas = createAreas(); diff --git a/src/main/java/com/massivecraft/factions/listeners/EssentialsHomeHandler.java b/src/main/java/com/massivecraft/factions/listeners/EssentialsHomeHandler.java index fa173c14..61ea94f5 100644 --- a/src/main/java/com/massivecraft/factions/listeners/EssentialsHomeHandler.java +++ b/src/main/java/com/massivecraft/factions/listeners/EssentialsHomeHandler.java @@ -5,7 +5,7 @@ import com.earth2me.essentials.User; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.event.FPlayerLeaveEvent; import org.bukkit.Location; import org.bukkit.event.EventHandler; @@ -37,7 +37,7 @@ public class EssentialsHomeHandler implements Listener { Faction factionAt = Board.getInstance().getFactionAt(floc); if (factionAt.equals(faction) && factionAt.isNormal()) { user.delHome(homeName); - P.p.log(Level.INFO, "FactionLeaveEvent: Removing home %s, player %s, in territory of %s", homeName, event.getfPlayer().getName(), faction.getTag()); + FactionsPlugin.getInstance().log(Level.INFO, "FactionLeaveEvent: Removing home %s, player %s, in territory of %s", homeName, event.getfPlayer().getName(), faction.getTag()); } } } diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java index e1029648..9accabe8 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java @@ -87,7 +87,7 @@ public class FactionsBlockListener implements Listener { return false; } else if (!otherFaction.getId().equals(myFaction.getId())) { // If the faction target is not my own - if (P.p.getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) + if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) return true; // Get faction pain build access relation to me boolean pain = !justCheck && otherFaction.getAccess(me, PermissableAction.PAIN_BUILD) == Access.ALLOW; @@ -215,7 +215,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void onVaultPlace(BlockPlaceEvent e) { if (e.getItemInHand().getType() == Material.CHEST) { - ItemStack vault = P.p.createItem(Material.CHEST, 1, (short) 0, P.p.color(P.p.getConfig().getString("fvault.Item.Name")), P.p.colorList(P.p.getConfig().getStringList("fvault.Item.Lore"))); + ItemStack vault = FactionsPlugin.getInstance().createItem(Material.CHEST, 1, (short) 0, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fvault.Item.Name")), FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fvault.Item.Lore"))); if (e.getItemInHand().isSimilar(vault)) { FPlayer fme = FPlayers.getInstance().getByPlayer(e.getPlayer()); if (fme.getFaction().getVault() != null) { @@ -241,7 +241,7 @@ public class FactionsBlockListener implements Listener { Material blockMaterial = blockLoc.getBlock().getType(); - if (blockMaterial == Material.CHEST || (P.p.getConfig().getBoolean("fvault.No-Hoppers-near-vault") && blockMaterial == Material.HOPPER)) { + if (blockMaterial == Material.CHEST || (FactionsPlugin.getInstance().getConfig().getBoolean("fvault.No-Hoppers-near-vault") && blockMaterial == Material.HOPPER)) { e.setCancelled(true); fme.msg(TL.COMMAND_GETVAULT_CHESTNEAR); return; @@ -260,7 +260,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void onHopperPlace(BlockPlaceEvent e) { - if (e.getItemInHand().getType() != Material.HOPPER && !P.p.getConfig().getBoolean("fvault.No-Hoppers-near-vault")) { + if (e.getItemInHand().getType() != Material.HOPPER && !FactionsPlugin.getInstance().getConfig().getBoolean("fvault.No-Hoppers-near-vault")) { return; } @@ -310,7 +310,7 @@ public class FactionsBlockListener implements Listener { Faction otherFaction = Board.getInstance().getFactionAt(new FLocation(targetLoc)); // Check if the piston is moving in a faction's territory. This disables pistons entirely in faction territory. - if (otherFaction.isNormal() && P.p.getConfig().getBoolean("disable-pistons-in-territory", false)) { + if (otherFaction.isNormal() && FactionsPlugin.getInstance().getConfig().getBoolean("disable-pistons-in-territory", false)) { event.setCancelled(true); return; } @@ -329,7 +329,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void onBannerPlace(BlockPlaceEvent e) { - if (P.p.mc17) { + if (FactionsPlugin.getInstance().mc17) { return; } if (e.getItemInHand().getType().name().contains("BANNER")) { @@ -340,8 +340,8 @@ public class FactionsBlockListener implements Listener { return; } ItemMeta warmeta = warBanner.getItemMeta(); - warmeta.setDisplayName(P.p.color(P.p.getConfig().getString("fbanners.Item.Name"))); - warmeta.setLore(P.p.colorList(P.p.getConfig().getStringList("fbanners.Item.Lore"))); + warmeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name"))); + warmeta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore"))); warBanner.setItemMeta(warmeta); if (warBanner.isSimilar(bannerInHand)) { if (fme.getFaction().isWilderness()) { @@ -349,10 +349,10 @@ public class FactionsBlockListener implements Listener { e.setCancelled(true); return; } - int bannerTime = P.p.getConfig().getInt("fbanners.Banner-Time") * 20; + int bannerTime = FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Time") * 20; Location placedLoc = e.getBlockPlaced().getLocation(); FLocation fplacedLoc = new FLocation(placedLoc); - if ((Board.getInstance().getFactionAt(fplacedLoc).isWarZone() && P.p.getConfig().getBoolean("fbanners.Placeable.Warzone")) || (fme.getFaction().getRelationTo(Board.getInstance().getFactionAt(fplacedLoc)) == Relation.ENEMY && P.p.getConfig().getBoolean("fbanners.Placeable.Enemy"))) { + if ((Board.getInstance().getFactionAt(fplacedLoc).isWarZone() && FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Placeable.Warzone")) || (fme.getFaction().getRelationTo(Board.getInstance().getFactionAt(fplacedLoc)) == Relation.ENEMY && FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Placeable.Enemy"))) { if (bannerCooldownMap.containsKey(fme.getTag())) { fme.msg(TL.WARBANNER_COOLDOWN); e.setCancelled(true); @@ -360,29 +360,29 @@ public class FactionsBlockListener implements Listener { } for (FPlayer fplayer : fme.getFaction().getFPlayers()) { if (XMaterial.isVersionOrHigher(XMaterial.MinecraftVersion.VERSION_1_9)) { - fplayer.getPlayer().sendTitle(P.p.color(fme.getTag() + " Placed A WarBanner!"), P.p.color("&7use &c/f tpbanner&7 to tp to the banner!"), 10, 70, 20); + fplayer.getPlayer().sendTitle(FactionsPlugin.getInstance().color(fme.getTag() + " Placed A WarBanner!"), FactionsPlugin.getInstance().color("&7use &c/f tpbanner&7 to tp to the banner!"), 10, 70, 20); } else { - fplayer.getPlayer().sendTitle(P.p.color(fme.getTag() + " Placed A WarBanner!"), P.p.color("&7use &c/f tpbanner&7 to tp to the banner!")); + fplayer.getPlayer().sendTitle(FactionsPlugin.getInstance().color(fme.getTag() + " Placed A WarBanner!"), FactionsPlugin.getInstance().color("&7use &c/f tpbanner&7 to tp to the banner!")); } } bannerCooldownMap.put(fme.getTag(), true); FactionsBlockListener.bannerLocations.put(fme.getTag(), e.getBlockPlaced().getLocation()); - int bannerCooldown = P.p.getConfig().getInt("fbanners.Banner-Place-Cooldown"); + int bannerCooldown = FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Place-Cooldown"); ArmorStand as = (ArmorStand) e.getBlockPlaced().getLocation().add(0.5, 1.0, 0.5).getWorld().spawnEntity(e.getBlockPlaced().getLocation().add(0.5, 1.0, 0.5), EntityType.ARMOR_STAND); as.setVisible(false); as.setGravity(false); as.setCanPickupItems(false); - as.setCustomName(P.p.color(P.p.getConfig().getString("fbanners.BannerHolo").replace("{Faction}", fme.getTag()))); + as.setCustomName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.BannerHolo").replace("{Faction}", fme.getTag()))); as.setCustomNameVisible(true); String tag = fme.getTag(); - Bukkit.getScheduler().scheduleSyncDelayedTask(P.p, () -> bannerCooldownMap.remove(tag), Long.parseLong(bannerCooldown + "")); + Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> bannerCooldownMap.remove(tag), Long.parseLong(bannerCooldown + "")); Block banner = e.getBlockPlaced(); Material bannerType = banner.getType(); Faction bannerFaction = fme.getFaction(); banner.getWorld().strikeLightningEffect(banner.getLocation()); - int radius = P.p.getConfig().getInt("fbanners.Banner-Effect-Radius"); - List effects = P.p.getConfig().getStringList("fbanners.Effects"); - int affectorTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { + int radius = FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Effect-Radius"); + List effects = FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Effects"); + int affectorTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { for (Entity e1 : banner.getLocation().getWorld().getNearbyEntities(banner.getLocation(), (double) radius, 255.0, (double) radius)) { if (e1 instanceof Player) { Player player = (Player) e1; @@ -403,7 +403,7 @@ public class FactionsBlockListener implements Listener { } } }, 0L, 20L); - Bukkit.getScheduler().scheduleSyncDelayedTask(P.p, () -> { + Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> { banner.setType(Material.AIR); as.remove(); banner.getWorld().strikeLightningEffect(banner.getLocation()); @@ -442,7 +442,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void onFallingBlock(EntityChangeBlockEvent event) { - if (!P.p.getConfig().getBoolean("Falling-Block-Fix.Enabled")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("Falling-Block-Fix.Enabled")) return; Faction faction = Board.getInstance().getFactionAt(new FLocation(event.getBlock())); @@ -455,7 +455,7 @@ public class FactionsBlockListener implements Listener { //Grace @EventHandler public void onBreak(EntityExplodeEvent e) { - if (!P.p.getConfig().getBoolean("f-grace.Enabled")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) return; if (!graceisEnabled()) { @@ -465,7 +465,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void entityDamage(EntityDamageEvent e) { - if (!P.p.getConfig().getBoolean("f-grace.Enabled")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) return; if (!graceisEnabled()) { @@ -480,7 +480,7 @@ public class FactionsBlockListener implements Listener { @EventHandler public void onTNTPlace(BlockPlaceEvent e1) { FPlayer fp = FPlayers.getInstance().getByPlayer(e1.getPlayer()); - if (!P.p.getConfig().getBoolean("f-grace.Enabled")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) return; if (!graceisEnabled() && !fp.isAdminBypassing()) { @@ -547,4 +547,4 @@ public class FactionsBlockListener implements Listener { } } } -} +} \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsChatListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsChatListener.java index 8a25f56f..4b8227cb 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsChatListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsChatListener.java @@ -180,9 +180,9 @@ public class FactionsChatListener implements Listener { listeningPlayer.sendMessage(String.format(yourFormat, talkingPlayer.getDisplayName(), msg)); } catch (UnknownFormatConversionException ex) { Conf.chatTagInsertIndex = 0; - P.p.log(Level.SEVERE, "Critical error in chat message formatting!"); - P.p.log(Level.SEVERE, "NOTE: This has been automatically fixed right now by setting chatTagInsertIndex to 0."); - P.p.log(Level.SEVERE, "For a more proper fix, please read this regarding chat configuration: http://massivecraft.com/plugins/factions/config#Chat_configuration"); + FactionsPlugin.getInstance().log(Level.SEVERE, "Critical error in chat message formatting!"); + FactionsPlugin.getInstance().log(Level.SEVERE, "NOTE: This has been automatically fixed right now by setting chatTagInsertIndex to 0."); + FactionsPlugin.getInstance().log(Level.SEVERE, "For a more proper fix, please read this regarding chat configuration: http://massivecraft.com/plugins/factions/config#Chat_configuration"); return; } } @@ -202,7 +202,7 @@ public class FactionsChatListener implements Listener { player.teleport(fme.getFaction().getWarp(warp).getLocation()); fme.msg(TL.COMMAND_FWARP_WARPED, warp); } - }, P.p.getConfig().getLong("warmups.f-warp", 0)); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-warp", 0)); } } \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java index e1d709ed..1d8daa28 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsEntityListener.java @@ -226,9 +226,9 @@ public class FactionsEntityListener implements Listener { return; } UUID uuid = player.getUniqueId(); - if (P.p.getStuckMap().containsKey(uuid)) { + if (FactionsPlugin.getInstance().getStuckMap().containsKey(uuid)) { FPlayers.getInstance().getByPlayer(player).msg(TL.COMMAND_STUCK_CANCELLED); - P.p.getStuckMap().remove(uuid); + FactionsPlugin.getInstance().getStuckMap().remove(uuid); } } @@ -644,7 +644,7 @@ public class FactionsEntityListener implements Listener { @EventHandler public void onTravel(PlayerPortalEvent event) { - if (!P.p.getConfig().getBoolean("portals.limit", false)) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("portals.limit", false)) { return; // Don't do anything if they don't want us to. } @@ -663,7 +663,7 @@ public class FactionsEntityListener implements Listener { } FPlayer fp = FPlayers.getInstance().getByPlayer(event.getPlayer()); - String mininumRelation = P.p.getConfig().getString("portals.minimum-relation", "MEMBER"); // Defaults to Neutral if typed wrong. + String mininumRelation = FactionsPlugin.getInstance().getConfig().getString("portals.minimum-relation", "MEMBER"); // Defaults to Neutral if typed wrong. if (!fp.getFaction().getRelationTo(faction).isAtLeast(Relation.fromString(mininumRelation))) { event.setCancelled(true); } diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java index 30081750..7804cc73 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.listeners; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import org.bukkit.Location; import org.bukkit.Material; @@ -30,7 +30,7 @@ public class FactionsExploitListener implements Listener { Block block = event.getToBlock(); // Added this so it wont die on 1.14 :) - if (P.p.mc114) { + if (FactionsPlugin.getInstance().mc114) { Material source = event.getBlock().getType(); Material target = block.getType(); if ((target == Material.REDSTONE_WIRE || target == Material.TRIPWIRE) && (source == Material.AIR || source == Material.LEGACY_STATIONARY_LAVA || source == Material.LEGACY_LAVA)) { diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index d0eac9ea..918b5e77 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -55,10 +55,10 @@ public class FactionsPlayerListener implements Listener { public FactionsPlayerListener() { this.corners = new HashSet<>(); - for (Player player : P.p.getServer().getOnlinePlayers()) { + for (Player player : FactionsPlugin.getInstance().getServer().getOnlinePlayers()) { initPlayer(player); } - for (World world : P.p.getServer().getWorlds()) { + for (World world : FactionsPlugin.getInstance().getServer().getWorlds()) { WorldBorder border = world.getWorldBorder(); if (border != null) { int cornerCoord = (int) ((border.getSize() - 1.0) / 2.0); @@ -103,7 +103,7 @@ public class FactionsPlayerListener implements Listener { if (me.getFaction() == otherFaction) return true; - if (P.p.getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) { return true; } @@ -185,7 +185,7 @@ public class FactionsPlayerListener implements Listener { return false; } - if (P.p.getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) + if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false) && otherFaction.getLandRounded() > otherFaction.getPowerRounded()) return true; if (otherFaction.getId().equals(myFaction.getId()) && me.getRole() == Role.LEADER) return true; @@ -345,7 +345,7 @@ public class FactionsPlayerListener implements Listener { return PermissableAction.DOOR; if (material.name().toUpperCase().contains("BUTTON") || material.name().toUpperCase().contains("PRESSURE")) return PermissableAction.BUTTON; - if (P.p.mc113) { + if (FactionsPlugin.getInstance().mc113) { switch (material) { case LEVER: return PermissableAction.LEVER; @@ -477,15 +477,15 @@ public class FactionsPlayerListener implements Listener { me.login(); // set kills / deaths // Check for Faction announcements. Let's delay this so they actually see it. - Bukkit.getScheduler().runTaskLater(P.p, () -> { + Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> { if (me.isOnline()) { me.getFaction().sendUnreadAnnouncements(me); } }, 33L); // Don't ask me why. - if (P.p.getConfig().getBoolean("scoreboard.default-enabled", false)) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-enabled", false)) { FScoreboard.init(me); - FScoreboard.get(me).setDefaultSidebar(new FDefaultSidebar(), P.p.getConfig().getInt("scoreboard.default-update-interval", 20)); + FScoreboard.get(me).setDefaultSidebar(new FDefaultSidebar(), FactionsPlugin.getInstance().getConfig().getInt("scoreboard.default-update-interval", 20)); FScoreboard.get(me).setSidebarVisibility(me.showScoreboard()); } @@ -500,17 +500,17 @@ public class FactionsPlayerListener implements Listener { fallMap.put(me.getPlayer(), false); - Bukkit.getScheduler().scheduleSyncDelayedTask(P.p, () -> fallMap.remove(me.getPlayer()), 180L); + Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> fallMap.remove(me.getPlayer()), 180L); if (me.isSpyingChat() && !player.hasPermission(Permission.CHATSPY.node)) { me.setSpyingChat(false); - P.p.log(Level.INFO, "Found %s spying chat without permission on login. Disabled their chat spying.", player.getName()); + FactionsPlugin.getInstance().log(Level.INFO, "Found %s spying chat without permission on login. Disabled their chat spying.", player.getName()); } if (me.isAdminBypassing() && !player.hasPermission(Permission.BYPASS.node)) { me.setIsAdminBypassing(false); - P.p.log(Level.INFO, "Found %s on admin Bypass without permission on login. Disabled it for them.", player.getName()); + FactionsPlugin.getInstance().log(Level.INFO, "Found %s on admin Bypass without permission on login. Disabled it for them.", player.getName()); } @@ -544,10 +544,10 @@ public class FactionsPlayerListener implements Listener { me.logout(); // cache kills / deaths // if player is waiting for fstuck teleport but leaves, remove - if (P.p.getStuckMap().containsKey(me.getPlayer().getUniqueId())) { + if (FactionsPlugin.getInstance().getStuckMap().containsKey(me.getPlayer().getUniqueId())) { FPlayers.getInstance().getByPlayer(me.getPlayer()).msg(TL.COMMAND_STUCK_CANCELLED); - P.p.getStuckMap().remove(me.getPlayer().getUniqueId()); - P.p.getTimers().remove(me.getPlayer().getUniqueId()); + FactionsPlugin.getInstance().getStuckMap().remove(me.getPlayer().getUniqueId()); + FactionsPlugin.getInstance().getTimers().remove(me.getPlayer().getUniqueId()); } Faction myFaction = me.getFaction(); @@ -584,11 +584,11 @@ public class FactionsPlayerListener implements Listener { public void enableFly(FPlayer me) { if (!me.getPlayer().hasPermission("factions.fly")) return; - if (P.p.getConfig().getBoolean("ffly.AutoEnable")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("ffly.AutoEnable")) { me.setFlying(true); CmdFly.flyMap.put(me.getName(), true); if (CmdFly.id == -1) { - if (P.p.getConfig().getBoolean("ffly.Particles.Enabled")) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("ffly.Particles.Enabled")) { CmdFly.startParticles(); } } @@ -702,25 +702,25 @@ public class FactionsPlayerListener implements Listener { if (changedFaction) { Bukkit.getServer().getPluginManager().callEvent(new FPlayerEnteredFactionEvent(factionTo, factionFrom, me)); - if (P.p.getConfig().getBoolean("Title.Show-Title")) { - String title = P.p.getConfig().getString("Title.Format.Title"); + if (FactionsPlugin.getInstance().getConfig().getBoolean("Title.Show-Title")) { + String title = FactionsPlugin.getInstance().getConfig().getString("Title.Format.Title"); title = title.replace("{Faction}", factionTo.getColorTo(me) + factionTo.getTag()); title = parseAllPlaceholders(title, factionTo, player); - String subTitle = P.p.getConfig().getString("Title.Format.Subtitle").replace("{Description}", factionTo.getDescription()).replace("{Faction}", factionTo.getColorTo(me) + factionTo.getTag()); + String subTitle = FactionsPlugin.getInstance().getConfig().getString("Title.Format.Subtitle").replace("{Description}", factionTo.getDescription()).replace("{Faction}", factionTo.getColorTo(me) + factionTo.getTag()); subTitle = parseAllPlaceholders(subTitle, factionTo, player); - if (!P.p.mc17) { - if (!P.p.mc18) { - me.getPlayer().sendTitle(P.p.color(title), P.p.color(subTitle), P.p.getConfig().getInt("Title.Options.FadeInTime"), - P.p.getConfig().getInt("Title.Options.ShowTime"), - P.p.getConfig().getInt("Title.Options.FadeOutTime")); + if (!FactionsPlugin.getInstance().mc17) { + if (!FactionsPlugin.getInstance().mc18) { + me.getPlayer().sendTitle(FactionsPlugin.getInstance().color(title), FactionsPlugin.getInstance().color(subTitle), FactionsPlugin.getInstance().getConfig().getInt("Title.Options.FadeInTime"), + FactionsPlugin.getInstance().getConfig().getInt("Title.Options.ShowTime"), + FactionsPlugin.getInstance().getConfig().getInt("Title.Options.FadeOutTime")); } else { - me.getPlayer().sendTitle(P.p.color(title), P.p.color(subTitle)); + me.getPlayer().sendTitle(FactionsPlugin.getInstance().color(title), FactionsPlugin.getInstance().color(subTitle)); } } } // enable fly :) - if (P.p.factionsFlight && me.hasFaction() && !me.isFlying()) { + if (FactionsPlugin.getInstance().factionsFlight && me.hasFaction() && !me.isFlying()) { if (factionTo == me.getFaction()) enableFly(me); // bypass checks Relation relationTo = factionTo.getRelationTo(me); @@ -761,12 +761,12 @@ public class FactionsPlayerListener implements Listener { if (me.isMapAutoUpdating()) { if (showTimes.containsKey(player.getUniqueId()) && (showTimes.get(player.getUniqueId()) > System.currentTimeMillis())) { - if (P.p.getConfig().getBoolean("findfactionsexploit.log", false)) { - P.p.log(Level.WARNING, "%s tried to show a faction map too soon and triggered exploit blocker.", player.getName()); + if (FactionsPlugin.getInstance().getConfig().getBoolean("findfactionsexploit.log", false)) { + FactionsPlugin.getInstance().log(Level.WARNING, "%s tried to show a faction map too soon and triggered exploit blocker.", player.getName()); } } else { me.sendFancyMessage(Board.getInstance().getMap(me, to, player.getLocation().getYaw())); - showTimes.put(player.getUniqueId(), System.currentTimeMillis() + P.p.getConfig().getLong("findfactionsexploit.cooldown", 2000)); + showTimes.put(player.getUniqueId(), System.currentTimeMillis() + FactionsPlugin.getInstance().getConfig().getLong("findfactionsexploit.cooldown", 2000)); } } else { Faction myFaction = me.getFaction(); @@ -805,7 +805,9 @@ public class FactionsPlayerListener implements Listener { Player player = event.getPlayer(); // Check if the material is bypassing protection if (block == null) return; // clicked in air, apparently - if (Conf.territoryBypassProtectedMaterials.contains(event.getItem().getType())) return; + if(event.getItem() != null) { + if (Conf.territoryBypassProtectedMaterials.contains(event.getItem().getType())) return; + } if (GetPermissionFromUsableBlock(event.getClickedBlock().getType()) != null) { if (!canPlayerUseBlock(player, block, false)) { event.setCancelled(true); diff --git a/src/main/java/com/massivecraft/factions/missions/CmdMissions.java b/src/main/java/com/massivecraft/factions/missions/CmdMissions.java index 1513e63a..6b816121 100644 --- a/src/main/java/com/massivecraft/factions/missions/CmdMissions.java +++ b/src/main/java/com/massivecraft/factions/missions/CmdMissions.java @@ -1,5 +1,8 @@ package com.massivecraft.factions.missions; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -12,28 +15,24 @@ public class CmdMissions extends FCommand { this.aliases.add("objectives"); this.aliases.add("objective"); - this.permission = Permission.MISSIONS.node; - - this.disableOnLock = true; - this.disableOnSpam = true; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.MISSIONS) + .memberOnly() + .playerOnly() + .build(); } @Override - public void perform() { - if (myFaction == null) { + public void perform(CommandContext context) { + if (context.faction == null) { return; } - final MissionGUI missionsGUI = new MissionGUI(p, fme); + final MissionGUI missionsGUI = new MissionGUI(FactionsPlugin.getInstance(), context.fPlayer); missionsGUI.build(); - fme.getPlayer().openInventory(missionsGUI.getInventory()); + context.player.openInventory(missionsGUI.getInventory()); } + @Override public TL getUsageTranslation() { return TL.COMMAND_MISSION_DESCRIPTION; diff --git a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java index fde9db12..3e5163a6 100644 --- a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java +++ b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.missions; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.FactionGUI; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.util.TL; @@ -20,12 +20,12 @@ import java.util.List; import java.util.Map; public class MissionGUI implements FactionGUI { - private P plugin; + private FactionsPlugin plugin; private FPlayer fPlayer; private Inventory inventory; private Map slots; - public MissionGUI(P plugin, FPlayer fPlayer) { + public MissionGUI(FactionsPlugin plugin, FPlayer fPlayer) { this.slots = new HashMap<>(); this.plugin = plugin; this.fPlayer = fPlayer; diff --git a/src/main/java/com/massivecraft/factions/missions/MissionHandler.java b/src/main/java/com/massivecraft/factions/missions/MissionHandler.java index 771e3c61..c06770f1 100644 --- a/src/main/java/com/massivecraft/factions/missions/MissionHandler.java +++ b/src/main/java/com/massivecraft/factions/missions/MissionHandler.java @@ -2,9 +2,11 @@ package com.massivecraft.factions.missions; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -12,6 +14,7 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityBreedEvent; import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityTameEvent; import org.bukkit.event.player.PlayerFishEvent; import java.util.List; @@ -19,9 +22,9 @@ import java.util.stream.Collectors; public class MissionHandler implements Listener { - private P plugin; + private FactionsPlugin plugin; - public MissionHandler(P plugin) { + public MissionHandler(FactionsPlugin plugin) { this.plugin = plugin; } @@ -116,12 +119,32 @@ public class MissionHandler implements Listener { } } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPlayerTame(EntityTameEvent event) { + if (!(event.getOwner() instanceof Player)) { + return; + } + FPlayer fPlayer = FPlayers.getInstance().getByPlayer((Player)event.getOwner()); + if (fPlayer == null) { + return; + } + List missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("tame")).collect(Collectors.toList()); + for (Mission mission2 : missions) { + ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName()); + if (!event.getEntityType().toString().equals(section.getConfigurationSection("Mission").getString("EntityType"))) { + continue; + } + mission2.incrementProgress(); + checkIfDone(fPlayer, mission2, section); + } + } + private void checkIfDone(FPlayer fPlayer, Mission mission, ConfigurationSection section) { if (mission.getProgress() < section.getConfigurationSection("Mission").getLong("Amount")) { return; } for (String command : section.getConfigurationSection("Reward").getStringList("Commands")) { - P.p.getServer().dispatchCommand(P.p.getServer().getConsoleSender(), command.replace("%faction%", fPlayer.getFaction().getTag())); + FactionsPlugin.getInstance().getServer().dispatchCommand(FactionsPlugin.getInstance().getServer().getConsoleSender(), command.replace("%faction%", fPlayer.getFaction().getTag())); } fPlayer.getFaction().getMissions().remove(mission.getName()); fPlayer.getFaction().msg(TL.MISSION_MISSION_FINISHED, plugin.color(section.getString("Name"))); diff --git a/src/main/java/com/massivecraft/factions/scoreboards/FScoreboard.java b/src/main/java/com/massivecraft/factions/scoreboards/FScoreboard.java index 2225137a..58c5d269 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/FScoreboard.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/FScoreboard.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.scoreboards; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -109,7 +109,7 @@ public class FScoreboard { updateObjective(); } } - }.runTaskTimer(P.p, updateInterval, updateInterval); + }.runTaskTimer(FactionsPlugin.getInstance(), updateInterval, updateInterval); } public void setTemporarySidebar(final FSidebarProvider provider) { @@ -132,7 +132,7 @@ public class FScoreboard { updateObjective(); } } - }.runTaskLater(P.p, P.p.getConfig().getInt("scoreboard.expiration", 7) * 20); + }.runTaskLater(FactionsPlugin.getInstance(), FactionsPlugin.getInstance().getConfig().getInt("scoreboard.expiration", 7) * 20); } private void updateObjective() { diff --git a/src/main/java/com/massivecraft/factions/scoreboards/FSidebarProvider.java b/src/main/java/com/massivecraft/factions/scoreboards/FSidebarProvider.java index 1a71af86..720df2ac 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/FSidebarProvider.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/FSidebarProvider.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.scoreboards; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import com.massivecraft.factions.zcore.util.TagUtil; @@ -37,6 +37,6 @@ public abstract class FSidebarProvider { // we assume it's broken up into two lines, so returning our tl will suffice. return TL.COMMAND_SHOW_NOHOME.toString(); } - return P.p.txt.parse(line); // finally add color :) + return FactionsPlugin.getInstance().txt.parse(line); // finally add color :) } } \ No newline at end of file diff --git a/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java b/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java index 8cde29fa..c91501b0 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java @@ -39,13 +39,13 @@ public class FTeamWrapper { return; } - if (!P.p.getConfig().getBoolean("scoreboard.default-prefixes", false) || P.p.getConfig().getBoolean("See-Invisible-Faction-Members")) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-prefixes", false) || FactionsPlugin.getInstance().getConfig().getBoolean("See-Invisible-Faction-Members")) { return; } if (updating.add(faction)) { - Bukkit.getScheduler().runTask(P.p, () -> { + Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> { updating.remove(faction); applyUpdates(faction); }); @@ -61,7 +61,7 @@ public class FTeamWrapper { return; } - if (!P.p.getConfig().getBoolean("scoreboard.default-prefixes", false) || P.p.getConfig().getBoolean("See-Invisible-Faction-Members")) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-prefixes", false) || FactionsPlugin.getInstance().getConfig().getBoolean("See-Invisible-Faction-Members")) { return; } @@ -153,7 +153,7 @@ public class FTeamWrapper { } private void updatePrefixes() { - if (P.p.getConfig().getBoolean("scoreboard.default-prefixes", false)) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-prefixes", false)) { for (FScoreboard fboard : teams.keySet()) { updatePrefix(fboard); } @@ -161,19 +161,19 @@ public class FTeamWrapper { } private void updatePrefix(FScoreboard fboard) { - if (P.p.getConfig().getBoolean("scoreboard.default-prefixes", false)) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-prefixes", false)) { FPlayer fplayer = fboard.getFPlayer(); Team team = teams.get(fboard); boolean focused = false; - if (P.p.getConfig().getBoolean("See-Invisible-Faction-Members", false)) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("See-Invisible-Faction-Members", false)) { team.setCanSeeFriendlyInvisibles(true); } - if ((P.p.getConfig().getBoolean("ffocus.Enabled")) && (fplayer.getFaction() != null) && (fplayer.getFaction().getFocused() != null)) { + if ((FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) && (fplayer.getFaction() != null) && (fplayer.getFaction().getFocused() != null)) { for (FPlayer fp : faction.getFPlayersWhereOnline(true)) { if (fplayer.getFaction().getFocused().equalsIgnoreCase(fp.getName())) { - team.setPrefix(ChatColor.translateAlternateColorCodes('&', P.p.getConfig().getString("ffocus.Prefix", "&7»&b"))); + team.setPrefix(ChatColor.translateAlternateColorCodes('&', FactionsPlugin.getInstance().getConfig().getString("ffocus.Prefix", "&7»&b"))); focused = true; } } diff --git a/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FDefaultSidebar.java b/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FDefaultSidebar.java index 55e16938..40903582 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FDefaultSidebar.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FDefaultSidebar.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.scoreboards.sidebar; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.scoreboards.FSidebarProvider; import java.util.ArrayList; @@ -12,21 +12,21 @@ public class FDefaultSidebar extends FSidebarProvider { @Override public String getTitle(FPlayer fplayer) { - return replaceTags(fplayer, P.p.getConfig().getString("scoreboard.default-title", "{name}")); + return replaceTags(fplayer, FactionsPlugin.getInstance().getConfig().getString("scoreboard.default-title", "{name}")); } @Override public List getLines(FPlayer fplayer) { if (fplayer.hasFaction()) { return getOutput(fplayer, "scoreboard.default"); - } else if (P.p.getConfig().getBoolean("scoreboard.factionless-enabled", false)) { + } else if (FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.factionless-enabled", false)) { return getOutput(fplayer, "scoreboard.factionless"); } return getOutput(fplayer, "scoreboard.default"); // no faction, factionless-board disabled } public List getOutput(FPlayer fplayer, String list) { - List lines = P.p.getConfig().getStringList(list); + List lines = FactionsPlugin.getInstance().getConfig().getStringList(list); if (lines == null || lines.isEmpty()) { return new ArrayList<>(); diff --git a/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FInfoSidebar.java b/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FInfoSidebar.java index d3752728..56ccbb5f 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FInfoSidebar.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/sidebar/FInfoSidebar.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.scoreboards.sidebar; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.scoreboards.FSidebarProvider; import java.util.List; @@ -22,7 +22,7 @@ public class FInfoSidebar extends FSidebarProvider { @Override public List getLines(FPlayer fplayer) { - List lines = P.p.getConfig().getStringList("scoreboard.finfo"); + List lines = FactionsPlugin.getInstance().getConfig().getStringList("scoreboard.finfo"); ListIterator it = lines.listIterator(); while (it.hasNext()) { diff --git a/src/main/java/com/massivecraft/factions/shop/CmdShop.java b/src/main/java/com/massivecraft/factions/shop/CmdShop.java index 3010502b..a795308d 100644 --- a/src/main/java/com/massivecraft/factions/shop/CmdShop.java +++ b/src/main/java/com/massivecraft/factions/shop/CmdShop.java @@ -1,7 +1,10 @@ package com.massivecraft.factions.shop; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; import com.massivecraft.factions.cmd.FCommand; +import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; public class CmdShop extends FCommand { @@ -9,22 +12,19 @@ public class CmdShop extends FCommand { public CmdShop() { super(); this.aliases.add("shop"); - this.disableOnLock = false; - - senderMustBePlayer = true; - senderMustBeMember = true; - senderMustBeModerator = false; - senderMustBeColeader = false; - senderMustBeAdmin = false; + this.requirements = new CommandRequirements.Builder(Permission.SHOP) + .memberOnly() + .playerOnly() + .build(); } @Override - public void perform() { - if (!P.p.getConfig().getBoolean("F-Shop.Enabled")) { + public void perform(CommandContext context) { + if (!FactionsPlugin.getInstance().getConfig().getBoolean("F-Shop.Enabled")) { return; } - ShopGUI.openShop(fme); + ShopGUI.openShop(context.fPlayer); } @Override diff --git a/src/main/java/com/massivecraft/factions/shop/ShopClickPersistence.java b/src/main/java/com/massivecraft/factions/shop/ShopClickPersistence.java index 9f874e22..9387b0c9 100644 --- a/src/main/java/com/massivecraft/factions/shop/ShopClickPersistence.java +++ b/src/main/java/com/massivecraft/factions/shop/ShopClickPersistence.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.shop; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -41,7 +41,7 @@ public class ShopClickPersistence implements Listener { public void click(InventoryClickEvent e) { Inventory i = e.getClickedInventory(); Player p = (Player) e.getWhoClicked(); - FileConfiguration config = P.p.getConfig(); + FileConfiguration config = FactionsPlugin.getInstance().getConfig(); FPlayer fplayer = FPlayers.getInstance().getByPlayer(p); if (e.getView().getTitle().equalsIgnoreCase(color(config.getString("F-Shop.GUI.Name")))) { diff --git a/src/main/java/com/massivecraft/factions/shop/ShopGUI.java b/src/main/java/com/massivecraft/factions/shop/ShopGUI.java index 449427e7..d5db5891 100644 --- a/src/main/java/com/massivecraft/factions/shop/ShopGUI.java +++ b/src/main/java/com/massivecraft/factions/shop/ShopGUI.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.shop; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -23,16 +23,16 @@ public class ShopGUI { */ public static void openShop(FPlayer p) { - FileConfiguration config = P.p.getConfig(); + FileConfiguration config = FactionsPlugin.getInstance().getConfig(); Faction fac = p.getFaction(); - Inventory i = Bukkit.createInventory(null, P.p.getConfig().getInt("F-Shop.GUI.Size"), color(config.getString("F-Shop.GUI.Name"))); + Inventory i = Bukkit.createInventory(null, FactionsPlugin.getInstance().getConfig().getInt("F-Shop.GUI.Size"), color(config.getString("F-Shop.GUI.Name"))); ItemStack glass = new ItemStack(XMaterial.BLACK_STAINED_GLASS_PANE.parseMaterial(), 1, (short) 7); ItemMeta glassmeta = glass.getItemMeta(); glassmeta.setDisplayName(ChatColor.GOLD + " "); glass.setItemMeta(glassmeta); - for (int fill = 0; fill < P.p.getConfig().getInt("F-Shop.GUI.Size"); ++fill) { + for (int fill = 0; fill < FactionsPlugin.getInstance().getConfig().getInt("F-Shop.GUI.Size"); ++fill) { i.setItem(fill, glass); } @@ -59,7 +59,7 @@ public class ShopGUI { } countmeta.setLore(colorList(PointInfo)); count.setItemMeta(countmeta); - i.setItem(P.p.getConfig().getInt("F-Shop.GUI.Information.slot"), count); + i.setItem(FactionsPlugin.getInstance().getConfig().getInt("F-Shop.GUI.Information.slot"), count); ItemStack item = new ItemStack(material); ItemMeta meta = item.getItemMeta(); @@ -77,7 +77,7 @@ public class ShopGUI { if (lore.contains("")) { meta.setLore(null); } else { - meta.setLore(P.p.colorList(lore)); + meta.setLore(FactionsPlugin.getInstance().colorList(lore)); } item.setItemMeta(meta); i.setItem(slot, item); diff --git a/src/main/java/com/massivecraft/factions/struct/Permission.java b/src/main/java/com/massivecraft/factions/struct/Permission.java index c67a7f3b..125a556a 100644 --- a/src/main/java/com/massivecraft/factions/struct/Permission.java +++ b/src/main/java/com/massivecraft/factions/struct/Permission.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.struct; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.command.CommandSender; public enum Permission { @@ -18,21 +18,25 @@ public enum Permission { BYPASS("bypass"), CHAT("chat"), CHATSPY("chatspy"), + CHECK("check"), CLAIM("claim"), CLAIMAT("claimat"), CLAIM_LINE("claim.line"), CLAIM_RADIUS("claim.radius"), CONFIG("config"), CONVERT("convert"), + CONVERTCONFIG("convertconfig"), CREATE("create"), CORNER("corner"), DEFAULTRANK("defaultrank"), DEINVITE("deinvite"), + DELHOME("delhome"), DESCRIPTION("description"), DISBAND("disband"), DISBAND_ANY("disband.any"), FLY("fly"), FOCUS("focus"), + GLOBALCHAT("globalchat"), GRACE("grace"), HELP("help"), HOME("home"), @@ -64,6 +68,7 @@ public enum Permission { MONEY_F2P("money.f2p"), MONEY_P2F("money.p2f"), MONITOR_LOGINS("monitorlogins"), + NEAR("near"), NO_BOOM("noboom"), OPEN("open"), OWNER("owner"), @@ -75,6 +80,7 @@ public enum Permission { PAYPAL("paypal"), PAYPALSET("setpaypal"), PERMISSIONS("permissions"), + POINTS("points"), POWERBOOST("powerboost"), POWER("power"), POWER_ANY("power.any"), @@ -101,6 +107,7 @@ public enum Permission { SCOREBOARD("scoreboard"), SEECHUNK("seechunk"), SETWARP("setwarp"), + SHOP("shop"), TOP("top"), VIEWCHEST("viewchest"), ADDPOINTS("addpoints"), @@ -120,8 +127,7 @@ public enum Permission { COORD("coords"), SHOWCLAIMS("showclaims"), WARP("warp"), - CHEST("chest"), - CONVERTCONFIG("convertconfig"); + CHEST("chest"); public final String node; @@ -130,7 +136,7 @@ public enum Permission { } public boolean has(CommandSender sender, boolean informSenderIfNot) { - return P.p.perm.has(sender, this.node, informSenderIfNot); + return FactionsPlugin.getInstance().perm.has(sender, this.node, informSenderIfNot); } public boolean has(CommandSender sender) { diff --git a/src/main/java/com/massivecraft/factions/struct/Relation.java b/src/main/java/com/massivecraft/factions/struct/Relation.java index 10d81048..7f32cb04 100644 --- a/src/main/java/com/massivecraft/factions/struct/Relation.java +++ b/src/main/java/com/massivecraft/factions/struct/Relation.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.struct; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.fperms.Permissable; import com.massivecraft.factions.zcore.util.TL; @@ -199,7 +199,7 @@ public enum Relation implements Permissable { // Utility method to build items for F Perm GUI @Override public ItemStack buildItem() { - final ConfigurationSection RELATION_CONFIG = P.p.getConfig().getConfigurationSection("fperm-gui.relation"); + final ConfigurationSection RELATION_CONFIG = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.relation"); String displayName = replacePlaceholders(RELATION_CONFIG.getString("placeholder-item.name", "")); List lore = new ArrayList<>(); diff --git a/src/main/java/com/massivecraft/factions/struct/Role.java b/src/main/java/com/massivecraft/factions/struct/Role.java index 45048fc3..cbf33bde 100644 --- a/src/main/java/com/massivecraft/factions/struct/Role.java +++ b/src/main/java/com/massivecraft/factions/struct/Role.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.struct; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.fperms.Permissable; import com.massivecraft.factions.zcore.util.TL; @@ -113,7 +113,7 @@ public enum Role implements Permissable { // Utility method to build items for F Perm GUI @Override public ItemStack buildItem() { - final ConfigurationSection RELATION_CONFIG = P.p.getConfig().getConfigurationSection("fperm-gui.relation"); + final ConfigurationSection RELATION_CONFIG = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.relation"); String displayName = replacePlaceholders(RELATION_CONFIG.getString("placeholder-item.name", "")); List lore = new ArrayList<>(); @@ -132,7 +132,7 @@ public enum Role implements Permissable { itemMeta.setDisplayName(displayName); itemMeta.setLore(lore); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); } diff --git a/src/main/java/com/massivecraft/factions/tag/FactionTag.java b/src/main/java/com/massivecraft/factions/tag/FactionTag.java new file mode 100644 index 00000000..1224444e --- /dev/null +++ b/src/main/java/com/massivecraft/factions/tag/FactionTag.java @@ -0,0 +1,135 @@ +package com.massivecraft.factions.tag; + +import com.massivecraft.factions.Conf; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.integration.Econ; +import com.massivecraft.factions.struct.Relation; +import com.massivecraft.factions.zcore.util.TL; + +import java.util.function.BiFunction; +import java.util.function.Function; + +public enum FactionTag implements Tag { + HOME_X("{x}", (fac) -> fac.hasHome() ? String.valueOf(fac.getHome().getBlockX()) : Tag.isMinimalShow() ? null : "{ig}"), + HOME_Y("{y}", (fac) -> fac.hasHome() ? String.valueOf(fac.getHome().getBlockY()) : Tag.isMinimalShow() ? null : "{ig}"), + HOME_Z("{z}", (fac) -> fac.hasHome() ? String.valueOf(fac.getHome().getBlockZ()) : Tag.isMinimalShow() ? null : "{ig}"), + CHUNKS("{chunks}", (fac) -> String.valueOf(fac.getLandRounded())), + WARPS("{warps}", (fac) -> String.valueOf(fac.getWarps().size())), + HEADER("{header}", (fac, fp) -> FactionsPlugin.getInstance().txt.titleize(fac.getTag(fp))), + POWER("{power}", (fac) -> String.valueOf(fac.getPowerRounded())), + MAX_POWER("{maxPower}", (fac) -> String.valueOf(fac.getPowerMaxRounded())), + POWER_BOOST("{power-boost}", (fac) -> { + double powerBoost = fac.getPowerBoost(); + return (powerBoost == 0.0) ? "" : (powerBoost > 0.0 ? TL.COMMAND_SHOW_BONUS.toString() : TL.COMMAND_SHOW_PENALTY.toString() + powerBoost + ")"); + }), + LEADER("{leader}", (fac) -> { + FPlayer fAdmin = fac.getFPlayerAdmin(); + return fAdmin == null ? "Server" : fAdmin.getName().substring(0, fAdmin.getName().length() > 14 ? 13 : fAdmin.getName().length()); + }), + JOINING("{joining}", (fac) -> (fac.getOpen() ? TL.COMMAND_SHOW_UNINVITED.toString() : TL.COMMAND_SHOW_INVITATION.toString())), + FACTION("{faction}", (Function) Faction::getTag), + FACTION_RELATION_COLOR("{faction-relation-color}", (fac, fp) -> fp == null ? "" : fp.getColorTo(fac).toString()), + HOME_WORLD("{world}", (fac) -> fac.hasHome() ? fac.getHome().getWorld().getName() : Tag.isMinimalShow() ? null : "{ig}"), + RAIDABLE("{raidable}", (fac) -> { + if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false)) { + boolean raidable = fac.getLandRounded() >= fac.getPowerRounded(); + String str = raidable ? TL.RAIDABLE_TRUE.toString() : TL.RAIDABLE_FALSE.toString(); + if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.dtr", false)) { + int dtr = raidable ? 0 : (int) Math.ceil(((double) (fac.getPowerRounded() - fac.getLandRounded())) / Conf.powerPerDeath); + str += ' ' + TL.COMMAND_SHOW_DEATHS_TIL_RAIDABLE.format(dtr); + } + return str; + } + return null; + }), + PEACEFUL("{peaceful}", (fac) -> fac.isPeaceful() ? Conf.colorNeutral + TL.COMMAND_SHOW_PEACEFUL.toString() : ""), + PERMANENT("permanent", (fac) -> fac.isPermanent() ? "permanent" : "{notPermanent}"), // no braces needed + LAND_VALUE("{land-value}", (fac) -> Econ.shouldBeUsed() ? Econ.moneyString(Econ.calculateTotalLandValue(fac.getLandRounded())) : Tag.isMinimalShow() ? null : TL.ECON_OFF.format("value")), + DESCRIPTION("{description}", Faction::getDescription), + CREATE_DATE("{create-date}", (fac) -> TL.sdf.format(fac.getFoundedDate())), + LAND_REFUND("{land-refund}", (fac) -> Econ.shouldBeUsed() ? Econ.moneyString(Econ.calculateTotalLandRefund(fac.getLandRounded())) : Tag.isMinimalShow() ? null : TL.ECON_OFF.format("refund")), + BANK_BALANCE("{faction-balance}", (fac) -> { + if (Econ.shouldBeUsed()) { + return Conf.bankEnabled ? Econ.moneyString(Econ.getBalance(fac.getAccountId())) : Tag.isMinimalShow() ? null : TL.ECON_OFF.format("balance"); + } + return Tag.isMinimalShow() ? null : TL.ECON_OFF.format("balance"); + }), + ALLIES_COUNT("{allies}", (fac) -> String.valueOf(fac.getRelationCount(Relation.ALLY))), + ENEMIES_COUNT("{enemies}", (fac) -> String.valueOf(fac.getRelationCount(Relation.ENEMY))), + TRUCES_COUNT("{truces}", (fac) -> String.valueOf(fac.getRelationCount(Relation.TRUCE))), + ONLINE_COUNT("{online}", (fac, fp) -> { + if (fp != null && fp.isOnline()) { + return String.valueOf(fac.getFPlayersWhereOnline(true, fp).size()); + } else { + // Only console should ever get here. + return String.valueOf(fac.getFPlayersWhereOnline(true).size()); + } + }), + OFFLINE_COUNT("{offline}", (fac) -> String.valueOf(fac.getFPlayers().size() - fac.getOnlinePlayers().size())), + FACTION_SIZE("{members}", (fac) -> String.valueOf(fac.getFPlayers().size())), + FACTION_KILLS("{faction-kills}", (fac) -> String.valueOf(fac.getKills())), + FACTION_DEATHS("{faction-deaths}", (fac) -> String.valueOf(fac.getDeaths())), + FACTION_BANCOUNT("{faction-bancount}", (fac) -> String.valueOf(fac.getBannedPlayers().size())), + ; + + private final String tag; + private final BiFunction biFunction; + private final Function function; + + FactionTag(String tag, BiFunction function) { + this.tag = tag; + this.biFunction = function; + this.function = null; + } + + FactionTag(String tag, Function function) { + this.tag = tag; + this.biFunction = null; + this.function = function; + } + + public static String parse(String text, Faction faction, FPlayer player) { + for (FactionTag tag : FactionTag.values()) { + text = tag.replace(text, faction, player); + } + return text; + } + + public static String parse(String text, Faction faction) { + for (FactionTag tag : FactionTag.values()) { + text = tag.replace(text, faction); + } + return text; + } + + @Override + public String getTag() { + return this.tag; + } + + @Override + public boolean foundInString(String test) { + return test != null && test.contains(this.tag); + } + + public String replace(String text, Faction faction, FPlayer player) { + if (!this.foundInString(text)) { + return text; + } + if (this.biFunction == null) { + return this.replace(text, faction); + } + String result = this.biFunction.apply(faction, player); + return result == null ? null : text.replace(this.tag, result); + } + + public String replace(String text, Faction faction) { + if (this.function == null || !this.foundInString(text)) { + return text; + } + String result = this.function.apply(faction); + return result == null ? null : text.replace(this.tag, result); + } +} diff --git a/src/main/java/com/massivecraft/factions/tag/FancyTag.java b/src/main/java/com/massivecraft/factions/tag/FancyTag.java new file mode 100644 index 00000000..49e6beaf --- /dev/null +++ b/src/main/java/com/massivecraft/factions/tag/FancyTag.java @@ -0,0 +1,178 @@ +package com.massivecraft.factions.tag; + +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.Factions; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.struct.Relation; +import com.massivecraft.factions.util.MiscUtil; +import com.massivecraft.factions.util.QuadFunction; +import mkremins.fanciful.FancyMessage; +import org.bukkit.ChatColor; + +import java.util.*; + +public enum FancyTag implements Tag { + ALLIES_LIST("{allies-list}", (target, fme, prefix, gm) -> processRelation(prefix, target, fme, Relation.ALLY)), + ENEMIES_LIST("{enemies-list}", (target, fme, prefix, gm) -> processRelation(prefix, target, fme, Relation.ENEMY)), + TRUCES_LIST("{truces-list}", (target, fme, prefix, gm) -> processRelation(prefix, target, fme, Relation.TRUCE)), + ONLINE_LIST("{online-list}", (target, fme, prefix, gm) -> { + List fancyMessages = new ArrayList<>(); + FancyMessage currentOnline = FactionsPlugin.getInstance().txt.parseFancy(prefix); + boolean firstOnline = true; + for (FPlayer p : MiscUtil.rankOrder(target.getFPlayersWhereOnline(true, fme))) { + if (fme.getPlayer() != null && !fme.getPlayer().canSee(p.getPlayer())) { + continue; // skip + } + String name = p.getNameAndTitle(); + currentOnline.then(firstOnline ? name : ", " + name); + currentOnline.tooltip(tipPlayer(p, gm)).color(fme.getColorTo(p)); + firstOnline = false; + if (currentOnline.toJSONString().length() > ARBITRARY_LIMIT) { + fancyMessages.add(currentOnline); + currentOnline = new FancyMessage(""); + } + } + fancyMessages.add(currentOnline); + return firstOnline && Tag.isMinimalShow() ? null : fancyMessages; + }), + OFFLINE_LIST("{offline-list}", (target, fme, prefix, gm) -> { + List fancyMessages = new ArrayList<>(); + FancyMessage currentOffline = FactionsPlugin.getInstance().txt.parseFancy(prefix); + boolean firstOffline = true; + for (FPlayer p : MiscUtil.rankOrder(target.getFPlayers())) { + String name = p.getNameAndTitle(); + // Also make sure to add players that are online BUT can't be seen. + if (!p.isOnline() || (fme.getPlayer() != null && p.isOnline() && !fme.getPlayer().canSee(p.getPlayer()))) { + currentOffline.then(firstOffline ? name : ", " + name); + currentOffline.tooltip(tipPlayer(p, gm)).color(fme.getColorTo(p)); + firstOffline = false; + if (currentOffline.toJSONString().length() > ARBITRARY_LIMIT) { + fancyMessages.add(currentOffline); + currentOffline = new FancyMessage(""); + } + } + } + fancyMessages.add(currentOffline); + return firstOffline && Tag.isMinimalShow() ? null : fancyMessages; + }), + ; + + private final String tag; + private final QuadFunction, List> function; + + FancyTag(String tag, QuadFunction, List> function) { + this.tag = tag; + this.function = function; + } + + private static List processRelation(String prefix, Faction faction, FPlayer fPlayer, Relation relation) { + List fancyMessages = new ArrayList<>(); + FancyMessage message = FactionsPlugin.getInstance().txt.parseFancy(prefix); + boolean first = true; + for (Faction otherFaction : Factions.getInstance().getAllFactions()) { + if (otherFaction == faction) { + continue; + } + String s = otherFaction.getTag(fPlayer); + if (otherFaction.getRelationTo(faction) == relation) { + message.then(first ? s : ", " + s); + message.tooltip(tipFaction(otherFaction, fPlayer)).color(fPlayer.getColorTo(otherFaction)); + first = false; + if (message.toJSONString().length() > ARBITRARY_LIMIT) { + fancyMessages.add(message); + message = new FancyMessage(""); + } + } + } + fancyMessages.add(message); + return first && Tag.isMinimalShow() ? null : fancyMessages; + } + + public static List parse(String text, Faction faction, FPlayer player, Map groupMap) { + for (FancyTag tag : FancyTag.values()) { + if (tag.foundInString(text)) { + return tag.getMessage(text, faction, player, groupMap); + } + } + return Collections.EMPTY_LIST; // We really shouldn't be here. + } + + public static boolean anyMatch(String text) { + return getMatch(text) != null; + } + + public static FancyTag getMatch(String text) { + for (FancyTag tag : FancyTag.values()) { + if (tag.foundInString(text)) { + return tag; + } + } + return null; + } + + /** + * Parses tooltip variables from config
Supports variables for factions only (type 2) + * + * @param faction faction to tooltip for + * @return list of tooltips for a fancy message + */ + private static List tipFaction(Faction faction, FPlayer player) { + List lines = new ArrayList<>(); + for (String line : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.list")) { + String string = Tag.parsePlain(faction, player, line); + if (string == null) { + continue; + } + lines.add(ChatColor.translateAlternateColorCodes('&', string)); + } + return lines; + } + + /** + * Parses tooltip variables from config
Supports variables for players and factions (types 1 and 2) + * + * @param fplayer player to tooltip for + * @return list of tooltips for a fancy message + */ + private static List tipPlayer(FPlayer fplayer, Map groupMap) { + List lines = new ArrayList<>(); + for (String line : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.show")) { + String newLine = line; + everythingOnYourWayOut: + if (line.contains("{group}")) { + if (groupMap != null) { + String group = groupMap.get(UUID.fromString(fplayer.getId())); + if (!group.trim().isEmpty()) { + newLine = newLine.replace("{group}", group); + break everythingOnYourWayOut; + } + } + continue; + } + String string = Tag.parsePlain(fplayer, newLine); + if (string == null) { + continue; + } + lines.add(ChatColor.translateAlternateColorCodes('&', string)); + } + return lines; + } + + @Override + public String getTag() { + return this.tag; + } + + @Override + public boolean foundInString(String test) { + return test != null && test.contains(this.tag); + } + + public List getMessage(String text, Faction faction, FPlayer player, Map groupMap) { + if (!this.foundInString(text)) { + return Collections.EMPTY_LIST; // We really, really shouldn't be here. + } + return this.function.apply(faction, player, text.replace(this.getTag(), ""), groupMap); + } +} diff --git a/src/main/java/com/massivecraft/factions/tag/GeneralTag.java b/src/main/java/com/massivecraft/factions/tag/GeneralTag.java new file mode 100644 index 00000000..36d22286 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/tag/GeneralTag.java @@ -0,0 +1,58 @@ +package com.massivecraft.factions.tag; + +import com.massivecraft.factions.Factions; +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.zcore.util.TL; +import org.bukkit.Bukkit; + +import java.util.function.Supplier; + +public enum GeneralTag implements Tag { + MAX_WARPS("{max-warps}", () -> String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-warps", 5))), + MAX_ALLIES("{max-allies}", () -> getRelation("ally")), + MAX_ENEMIES("{max-enemies}", () -> getRelation("enemy")), + MAX_TRUCES("{max-truces}", () -> getRelation("truce")), + FACTIONLESS("{factionless}", () -> String.valueOf(Factions.getInstance().getNone().getFPlayersWhereOnline(true).size())), + TOTAL_ONLINE("{total-online}", () -> String.valueOf(Bukkit.getOnlinePlayers().size())), + ; + + private final String tag; + private final Supplier supplier; + + GeneralTag(String tag, Supplier supplier) { + this.tag = tag; + this.supplier = supplier; + } + + private static String getRelation(String relation) { + if (FactionsPlugin.getInstance().getConfig().getBoolean("max-relations.enabled", true)) { + return String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-relations." + relation, 10)); + } + return TL.GENERIC_INFINITY.toString(); + } + + public static String parse(String text) { + for (GeneralTag tag : GeneralTag.values()) { + text = tag.replace(text); + } + return text; + } + + @Override + public String getTag() { + return this.tag; + } + + @Override + public boolean foundInString(String test) { + return test != null && test.contains(this.tag); + } + + public String replace(String text) { + if (!this.foundInString(text)) { + return text; + } + String result = this.supplier.get(); + return result == null ? null : text.replace(this.tag, result); + } +} diff --git a/src/main/java/com/massivecraft/factions/tag/PlayerTag.java b/src/main/java/com/massivecraft/factions/tag/PlayerTag.java new file mode 100644 index 00000000..d51cca19 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/tag/PlayerTag.java @@ -0,0 +1,56 @@ +package com.massivecraft.factions.tag; + +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.integration.Econ; +import com.massivecraft.factions.zcore.util.TL; +import org.apache.commons.lang.time.DurationFormatUtils; +import org.bukkit.ChatColor; + +import java.util.function.Function; + +public enum PlayerTag implements Tag { + LAST_SEEN("{lastSeen}", (fp) -> { + String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX; + return fp.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); + }), + PLAYER_BALANCE("{balance}", (fp) -> Econ.isSetup() ? Econ.getFriendlyBalance(fp) : (Tag.isMinimalShow() ? null : TL.ECON_OFF.format("balance"))), + PLAYER_POWER("{player-power}", (fp) -> String.valueOf(fp.getPowerRounded())), + PLAYER_MAXPOWER("{player-maxpower}", (fp) -> String.valueOf(fp.getPowerMaxRounded())), + PLAYER_KILLS("{player-kills}", (fp) -> String.valueOf(fp.getKills())), + PLAYER_DEATHS("{player-deaths}", (fp) -> String.valueOf(fp.getDeaths())), + PLAYER_NAME("{name}", FPlayer::getName), + ; + + private final String tag; + private final Function function; + + PlayerTag(String tag, Function function) { + this.tag = tag; + this.function = function; + } + + public static String parse(String text, FPlayer player) { + for (PlayerTag tag : PlayerTag.values()) { + text = tag.replace(text, player); + } + return text; + } + + @Override + public String getTag() { + return this.tag; + } + + @Override + public boolean foundInString(String test) { + return test != null && test.contains(this.tag); + } + + public String replace(String text, FPlayer player) { + if (!this.foundInString(text)) { + return text; + } + String result = this.function.apply(player); + return result == null ? null : text.replace(this.tag, result); + } +} diff --git a/src/main/java/com/massivecraft/factions/tag/Tag.java b/src/main/java/com/massivecraft/factions/tag/Tag.java new file mode 100644 index 00000000..39b573e5 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/tag/Tag.java @@ -0,0 +1,80 @@ +package com.massivecraft.factions.tag; + +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.FactionsPlugin; +import me.clip.placeholderapi.PlaceholderAPI; +import org.bukkit.entity.Player; + +public interface Tag { + int ARBITRARY_LIMIT = 25000; + + /** + * Replaces all variables in a plain raw line for a faction + * + * @param faction for faction + * @param line raw line from config with variables to replace for + * @return clean line + */ + static String parsePlain(Faction faction, String line) { + return GeneralTag.parse(FactionTag.parse(line, faction)); + } + + /** + * Replaces all variables in a plain raw line for a player + * + * @param fplayer for player + * @param line raw line from config with variables to replace for + * @return clean line + */ + static String parsePlain(FPlayer fplayer, String line) { + return parsePlain(fplayer.getFaction(), fplayer, line); + } + + /** + * Replaces all variables in a plain raw line for a faction, using relations from fplayer + * + * @param faction for faction + * @param fplayer from player + * @param line raw line from config with variables to replace for + * @return clean line + */ + static String parsePlain(Faction faction, FPlayer fplayer, String line) { + return GeneralTag.parse(PlayerTag.parse(FactionTag.parse(line, faction, fplayer), fplayer)); + } + + static String parsePlaceholders(Player player, String line) { + if (player == null || line == null) { + return line; + } + + if (FactionsPlugin.getInstance().isClipPlaceholderAPIHooked() && player.isOnline()) { + line = PlaceholderAPI.setPlaceholders(player, line); + } + + if (FactionsPlugin.getInstance().isMVdWPlaceholderAPIHooked() && player.isOnline()) { + line = be.maximvdw.placeholderapi.PlaceholderAPI.replacePlaceholders(player, line); + } + + return line; + } + + static boolean isMinimalShow() { + return FactionsPlugin.getInstance().getConfig().getBoolean("minimal-show", false); + } + + /** + * Gets the Tag's string representation. + * + * @return tag + */ + String getTag(); + + /** + * Gets if the Tag can be found in the given String. + * + * @param test string to test + * @return true if the tag is found in this string + */ + boolean foundInString(String test); +} diff --git a/src/main/java/com/massivecraft/factions/util/AutoLeaveProcessTask.java b/src/main/java/com/massivecraft/factions/util/AutoLeaveProcessTask.java index e9946a1e..33ca2fd2 100644 --- a/src/main/java/com/massivecraft/factions/util/AutoLeaveProcessTask.java +++ b/src/main/java/com/massivecraft/factions/util/AutoLeaveProcessTask.java @@ -50,13 +50,13 @@ public class AutoLeaveProcessTask extends BukkitRunnable { // Check if they should be exempt from this. if (!fplayer.willAutoLeave()) { - P.p.debug(Level.INFO, fplayer.getName() + " was going to be auto-removed but was set not to."); + FactionsPlugin.getInstance().debug(Level.INFO, fplayer.getName() + " was going to be auto-removed but was set not to."); continue; } if (fplayer.isOffline() && now - fplayer.getLastLoginTime() > toleranceMillis) { if (Conf.logFactionLeave || Conf.logFactionKick) { - P.p.log("Player " + fplayer.getName() + " was auto-removed due to inactivity."); + FactionsPlugin.getInstance().log("Player " + fplayer.getName() + " was auto-removed due to inactivity."); } // if player is faction admin, sort out the faction since he's going away diff --git a/src/main/java/com/massivecraft/factions/util/AutoLeaveTask.java b/src/main/java/com/massivecraft/factions/util/AutoLeaveTask.java index 6a1bda45..c24be121 100644 --- a/src/main/java/com/massivecraft/factions/util/AutoLeaveTask.java +++ b/src/main/java/com/massivecraft/factions/util/AutoLeaveTask.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; public class AutoLeaveTask implements Runnable { @@ -18,11 +18,11 @@ public class AutoLeaveTask implements Runnable { } task = new AutoLeaveProcessTask(); - task.runTaskTimer(P.p, 1, 1); + task.runTaskTimer(FactionsPlugin.getInstance(), 1, 1); // maybe setting has been changed? if so, restart this task at new rate if (this.rate != Conf.autoLeaveRoutineRunsEveryXMinutes) { - P.p.startAutoLeaveTask(true); + FactionsPlugin.getInstance().startAutoLeaveTask(true); } } } diff --git a/src/main/java/com/massivecraft/factions/util/ClipPlaceholderAPIManager.java b/src/main/java/com/massivecraft/factions/util/ClipPlaceholderAPIManager.java index b7117dc8..13b59e6f 100644 --- a/src/main/java/com/massivecraft/factions/util/ClipPlaceholderAPIManager.java +++ b/src/main/java/com/massivecraft/factions/util/ClipPlaceholderAPIManager.java @@ -35,7 +35,7 @@ public class ClipPlaceholderAPIManager extends PlaceholderExpansion implements R // Return the plugin version since this expansion is bundled with the dependency @Override public String getVersion() { - return P.p.getDescription().getVersion(); + return FactionsPlugin.getInstance().getDescription().getVersion(); } @Override @@ -84,7 +84,7 @@ public class ClipPlaceholderAPIManager extends PlaceholderExpansion implements R String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fPlayer.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX; return fPlayer.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fPlayer.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); case "player_group": - return P.p.getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(fPlayer.getId()))); + return FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(fPlayer.getId()))); case "player_balance": return Econ.isSetup() ? Econ.getFriendlyBalance(fPlayer) : TL.ECON_OFF.format("balance"); case "player_power": @@ -131,7 +131,7 @@ public class ClipPlaceholderAPIManager extends PlaceholderExpansion implements R case "faction_warps": return String.valueOf(faction.getWarps().size()); case "faction_raidable": - boolean raid = P.p.getConfig().getBoolean("hcf.raidable", false) && faction.getLandRounded() >= faction.getPowerRounded(); + boolean raid = FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false) && faction.getLandRounded() >= faction.getPowerRounded(); return raid ? TL.RAIDABLE_TRUE.toString() : TL.RAIDABLE_FALSE.toString(); case "faction_home_world": return faction.hasHome() ? faction.getHome().getWorld().getName() : ""; diff --git a/src/main/java/com/massivecraft/factions/util/FactionWarpsFrame.java b/src/main/java/com/massivecraft/factions/util/FactionWarpsFrame.java index e4790637..1aa83f3f 100644 --- a/src/main/java/com/massivecraft/factions/util/FactionWarpsFrame.java +++ b/src/main/java/com/massivecraft/factions/util/FactionWarpsFrame.java @@ -6,7 +6,7 @@ import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -25,8 +25,8 @@ public class FactionWarpsFrame { private ConfigurationSection section; public FactionWarpsFrame(final Faction f) { - this.section = P.p.getConfig().getConfigurationSection("fwarp-gui"); - this.gui = new Gui(P.p, section.getInt("rows", 3), P.p.color(this.section.getString("name").replace("{faction}", f.getTag()))); + this.section = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fwarp-gui"); + this.gui = new Gui(FactionsPlugin.getInstance(), section.getInt("rows", 3), FactionsPlugin.getInstance().color(this.section.getString("name").replace("{faction}", f.getTag()))); } public void buildGUI(final FPlayer fplayer) { @@ -50,12 +50,12 @@ public class FactionWarpsFrame { } else { fplayer.setEnteringPassword(true, warp.getKey()); fplayer.msg(TL.COMMAND_FWARP_PASSWORD_REQUIRED); - Bukkit.getScheduler().runTaskLater(P.p, () -> { + Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> { if (fplayer.isEnteringPassword()) { fplayer.msg(TL.COMMAND_FWARP_PASSWORD_TIMEOUT); fplayer.setEnteringPassword(false, ""); } - }, P.p.getConfig().getInt("fwarp-gui.password-timeout", 5) * 20); + }, FactionsPlugin.getInstance().getConfig().getInt("fwarp-gui.password-timeout", 5) * 20); } })); ++count; @@ -70,8 +70,8 @@ public class FactionWarpsFrame { final ConfigurationSection config = this.section.getConfigurationSection("warp-item"); final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem(); final ItemMeta meta = item.getItemMeta(); - meta.setLore(P.p.colorList(P.p.replacePlaceholders(config.getStringList("Lore"), new Placeholder("{warp-protected}", faction.hasWarpPassword(warp.getKey()) ? "Enabled" : "Disabled"), new Placeholder("{warp-cost}", P.p.getConfig().getBoolean("warp-cost.enabled", false) ? Integer.toString(P.p.getConfig().getInt("warp-cost.warp", 5)) : "Disabled")))); - meta.setDisplayName(P.p.color(config.getString("Name").replace("{warp}", warp.getKey()))); + meta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().replacePlaceholders(config.getStringList("Lore"), new Placeholder("{warp-protected}", faction.hasWarpPassword(warp.getKey()) ? "Enabled" : "Disabled"), new Placeholder("{warp-cost}", FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) ? Integer.toString(FactionsPlugin.getInstance().getConfig().getInt("warp-cost.warp", 5)) : "Disabled")))); + meta.setDisplayName(FactionsPlugin.getInstance().color(config.getString("Name").replace("{warp}", warp.getKey()))); item.setItemMeta(meta); return item; } @@ -80,8 +80,8 @@ public class FactionWarpsFrame { final ConfigurationSection config = this.section.getConfigurationSection("dummy-item"); final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem(); final ItemMeta meta = item.getItemMeta(); - meta.setLore(P.p.colorList(config.getStringList("Lore"))); - meta.setDisplayName(P.p.color(config.getString("Name"))); + meta.setLore(FactionsPlugin.getInstance().colorList(config.getStringList("Lore"))); + meta.setDisplayName(FactionsPlugin.getInstance().color(config.getString("Name"))); item.setItemMeta(meta); return item; } @@ -93,12 +93,13 @@ public class FactionWarpsFrame { player.teleport(fme.getFaction().getWarp(warp).getLocation()); fme.msg(TL.COMMAND_FWARP_WARPED, warp); } - }, P.p.getConfig().getLong("warmups.f-warp", 0)); + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-warp", 0)); } private boolean transact(FPlayer player) { - if (!P.p.getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing()) return true; - double cost = P.p.getConfig().getDouble("warp-cost.warp", 5); + if (!FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing()) + return true; + double cost = FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.warp", 5); if (!Econ.shouldBeUsed() || cost == 0.0 || player.isAdminBypassing()) return true; if (Conf.bankEnabled && Conf.bankFactionPaysCosts && player.hasFaction()) { diff --git a/src/main/java/com/massivecraft/factions/util/LocationTypeAdapter.java b/src/main/java/com/massivecraft/factions/util/LocationTypeAdapter.java index a5862681..d04383a0 100644 --- a/src/main/java/com/massivecraft/factions/util/LocationTypeAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/LocationTypeAdapter.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.google.gson.*; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -21,7 +21,7 @@ public class LocationTypeAdapter implements JsonSerializer, JsonDeseri return object; } catch (Exception ex) { ex.printStackTrace(); - P.p.log(Level.WARNING, "Error encountered while serializing a Location."); + FactionsPlugin.getInstance().log(Level.WARNING, "Error encountered while serializing a Location."); return object; } } @@ -38,7 +38,7 @@ public class LocationTypeAdapter implements JsonSerializer, JsonDeseri object.get("z").getAsDouble()); } catch (Exception ex) { ex.printStackTrace(); - P.p.log(Level.WARNING, "Error encountered while" + + FactionsPlugin.getInstance().log(Level.WARNING, "Error encountered while" + " deserializing a Location."); return null; } diff --git a/src/main/java/com/massivecraft/factions/util/MapFLocToStringSetTypeAdapter.java b/src/main/java/com/massivecraft/factions/util/MapFLocToStringSetTypeAdapter.java index d70d2cba..2006a898 100644 --- a/src/main/java/com/massivecraft/factions/util/MapFLocToStringSetTypeAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/MapFLocToStringSetTypeAdapter.java @@ -2,7 +2,7 @@ package com.massivecraft.factions.util; import com.google.gson.*; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import java.lang.reflect.Type; import java.util.HashSet; @@ -50,7 +50,7 @@ public class MapFLocToStringSetTypeAdapter implements JsonDeserializer errors = new ArrayList<>(); if (getComparisonString(str).length() < Conf.factionTagLengthMin) { - errors.add(P.p.txt.parse(TL.GENERIC_FACTIONTAG_TOOSHORT.toString(), Conf.factionTagLengthMin)); + errors.add(FactionsPlugin.getInstance().txt.parse(TL.GENERIC_FACTIONTAG_TOOSHORT.toString(), Conf.factionTagLengthMin)); } if (str.length() > Conf.factionTagLengthMax) { - errors.add(P.p.txt.parse(TL.GENERIC_FACTIONTAG_TOOLONG.toString(), Conf.factionTagLengthMax)); + errors.add(FactionsPlugin.getInstance().txt.parse(TL.GENERIC_FACTIONTAG_TOOLONG.toString(), Conf.factionTagLengthMax)); } for (char c : str.toCharArray()) { if (!substanceChars.contains(String.valueOf(c))) { - errors.add(P.p.txt.parse(TL.GENERIC_FACTIONTAG_ALPHANUMERIC.toString(), c)); + errors.add(FactionsPlugin.getInstance().txt.parse(TL.GENERIC_FACTIONTAG_ALPHANUMERIC.toString(), c)); } } @@ -96,7 +96,7 @@ public class MiscUtil { // Fix for some data being broken when we added the recruit rank. if (player.getRole() == null) { player.setRole(Role.NORMAL); - P.p.log(Level.WARNING, String.format("Player %s had null role. Setting them to normal. This isn't good D:", player.getName())); + FactionsPlugin.getInstance().log(Level.WARNING, String.format("Player %s had null role. Setting them to normal. This isn't good D:", player.getName())); } switch (player.getRole()) { diff --git a/src/main/java/com/massivecraft/factions/util/MyLocationTypeAdapter.java b/src/main/java/com/massivecraft/factions/util/MyLocationTypeAdapter.java index c68fca6b..8ce59598 100644 --- a/src/main/java/com/massivecraft/factions/util/MyLocationTypeAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/MyLocationTypeAdapter.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.google.gson.*; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import java.lang.reflect.Type; import java.util.logging.Level; @@ -32,7 +32,7 @@ public class MyLocationTypeAdapter implements JsonDeserializer, Js } catch (Exception ex) { ex.printStackTrace(); - P.p.log(Level.WARNING, "Error encountered while deserializing a LazyLocation."); + FactionsPlugin.getInstance().log(Level.WARNING, "Error encountered while deserializing a LazyLocation."); return null; } } @@ -52,7 +52,7 @@ public class MyLocationTypeAdapter implements JsonDeserializer, Js return obj; } catch (Exception ex) { ex.printStackTrace(); - P.p.log(Level.WARNING, "Error encountered while serializing a LazyLocation."); + FactionsPlugin.getInstance().log(Level.WARNING, "Error encountered while serializing a LazyLocation."); return obj; } } diff --git a/src/main/java/com/massivecraft/factions/util/Particles/Particles.java b/src/main/java/com/massivecraft/factions/util/Particles/Particles.java index b79304c0..2d7177a1 100644 --- a/src/main/java/com/massivecraft/factions/util/Particles/Particles.java +++ b/src/main/java/com/massivecraft/factions/util/Particles/Particles.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.util.Particles; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Particle; @@ -24,7 +24,7 @@ public enum Particles { public void displayAtLocation(Location location, int amt) { - if (P.p.useNonPacketParticles) { + if (FactionsPlugin.getInstance().useNonPacketParticles) { // 1.9+ based servers will use the built in particleAPI instead of packet based. // any particle amount higher than 0 made them go everywhere, and the offset at 0 was not working. // So setting the amount to 0 spawns 1 in the precise location @@ -35,15 +35,15 @@ public enum Particles { } public void displayAtLocation(Location location, int amt, ParticleEffect.OrdinaryColor color) { - if (P.p.useNonPacketParticles) { + if (FactionsPlugin.getInstance().useNonPacketParticles) { // 1.9-1.11 & 1.13+ based servers will use the built in particleAPI instead of packet based. // any particle amount higher than 0 made them go everywhere, and the offset at 0 was not working. // So setting the amount to 0 spawns 1 in the precise location - // Gotta do this so colorable ones have their data :P + // Gotta do this so colorable ones have their data :FactionsPlugin if (this == Particles.REDSTONE || this == Particles.CLOUD || this == Particles.NOTE) { - if (P.p.mc112) { + if (FactionsPlugin.getInstance().mc112) { location.getWorld().spawnParticle(Particle.valueOf(over19), location, 0); } else { location.getWorld().spawnParticle(Particle.valueOf(over19), location, 0, new Particle.DustOptions(Color.fromRGB(color.getRed(), color.getGreen(), color.getBlue()), 1)); diff --git a/src/main/java/com/massivecraft/factions/util/PermissionsMapTypeAdapter.java b/src/main/java/com/massivecraft/factions/util/PermissionsMapTypeAdapter.java index fe5e160d..d5a7f661 100644 --- a/src/main/java/com/massivecraft/factions/util/PermissionsMapTypeAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/PermissionsMapTypeAdapter.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.google.gson.*; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.zcore.fperms.Access; @@ -62,7 +62,7 @@ public class PermissionsMapTypeAdapter implements JsonDeserializer { + R apply(T t, U u, V v, W w); +} diff --git a/src/main/java/com/massivecraft/factions/util/SpiralTask.java b/src/main/java/com/massivecraft/factions/util/SpiralTask.java index 6cde74f2..2733a423 100644 --- a/src/main/java/com/massivecraft/factions/util/SpiralTask.java +++ b/src/main/java/com/massivecraft/factions/util/SpiralTask.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; @@ -45,7 +45,7 @@ public abstract class SpiralTask implements Runnable { this.world = Bukkit.getWorld(fLocation.getWorldName()); if (this.world == null) { - P.p.log(Level.WARNING, "[SpiralTask] A valid world must be specified!"); + FactionsPlugin.getInstance().log(Level.WARNING, "[SpiralTask] A valid world must be specified!"); this.stop(); return; } @@ -56,7 +56,7 @@ public abstract class SpiralTask implements Runnable { this.readyToGo = true; // get this party started - this.setTaskID(Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(P.p, this, 2, 2)); + this.setTaskID(Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), this, 2, 2)); } private static long now() { @@ -187,7 +187,7 @@ public abstract class SpiralTask implements Runnable { // for successful completion public void finish() { -// P.p.log("SpiralTask successfully completed!"); +// FactionsPlugin.getInstance().log("SpiralTask successfully completed!"); this.stop(); } diff --git a/src/main/java/com/massivecraft/factions/util/UtilFly.java b/src/main/java/com/massivecraft/factions/util/UtilFly.java index c6ed94f0..5422ab77 100644 --- a/src/main/java/com/massivecraft/factions/util/UtilFly.java +++ b/src/main/java/com/massivecraft/factions/util/UtilFly.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.util; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.zcore.util.TL; import org.bukkit.Bukkit; @@ -12,19 +12,19 @@ import org.bukkit.Bukkit; public class UtilFly { public static void run() { - if (!P.p.getConfig().getBoolean("enable-faction-flight")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) return; - Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, () -> { + Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { for (FPlayer fp : FPlayers.getInstance().getOnlinePlayers()) { if (fp.isFlying()) fp.checkIfNearbyEnemies(); } - }, 0, P.p.getConfig().getInt("fly-task-interval", 10)); + }, 0, FactionsPlugin.getInstance().getConfig().getInt("fly-task-interval", 10)); } public static void setFly(FPlayer fp, boolean fly, boolean silent, boolean damage) { - if (!P.p.getConfig().getBoolean("enable-faction-flight")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) return; fp.getPlayer().setAllowFlight(fly); @@ -44,7 +44,7 @@ public class UtilFly { } public static void checkFly(FPlayer me, Faction factionTo) { - if (!P.p.getConfig().getBoolean("enable-faction-flight")) + if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) return; if (me.isAdminBypassing() && me.isFlying() && me.getPlayer().hasPermission("factions.fly.enemy-bypass")) @@ -82,13 +82,13 @@ public class UtilFly { public static void setFallDamage(FPlayer fp, boolean fly, boolean damage) { if (!fly) { if (!damage) { - fp.sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", P.p.getConfig().getInt("fly-falldamage-cooldown", 3) + "")); + fp.sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3) + "")); } - int cooldown = P.p.getConfig().getInt("fly-falldamage-cooldown", 3); + int cooldown = FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3); if (cooldown > 0) { fp.setTakeFallDamage(false); - Bukkit.getScheduler().runTaskLater(P.p, () -> fp.setTakeFallDamage(true), 20L * cooldown); + Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> fp.setTakeFallDamage(true), 20L * cooldown); } } } diff --git a/src/main/java/com/massivecraft/factions/util/WarmUpUtil.java b/src/main/java/com/massivecraft/factions/util/WarmUpUtil.java index 965e7095..3ddd57da 100644 --- a/src/main/java/com/massivecraft/factions/util/WarmUpUtil.java +++ b/src/main/java/com/massivecraft/factions/util/WarmUpUtil.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.util; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.util.TL; public class WarmUpUtil { @@ -21,7 +21,7 @@ public class WarmUpUtil { player.msg(TL.WARMUPS_ALREADY); } else { player.msg(translationKey.format(action, delay)); - int id = P.p.getServer().getScheduler().runTaskLater(P.p, () -> { + int id = FactionsPlugin.getInstance().getServer().getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> { player.stopWarmup(); runnable.run(); }, delay * 20).getTaskId(); diff --git a/src/main/java/com/massivecraft/factions/zcore/MCommand.java b/src/main/java/com/massivecraft/factions/zcore/MCommand.java index 5a3012a9..7dfeba74 100644 --- a/src/main/java/com/massivecraft/factions/zcore/MCommand.java +++ b/src/main/java/com/massivecraft/factions/zcore/MCommand.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.zcore.util.TL; import com.massivecraft.factions.zcore.util.TextUtil; @@ -311,7 +311,7 @@ public abstract class MCommand { s = s.replace("{power}", power); } if (s.contains("{group}")) { - String group = P.p.getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(player.getId()))); + String group = FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(player.getId()))); s = s.replace("{group}", group); } return s; diff --git a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java index faa241c2..2e688f0e 100644 --- a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java +++ b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java @@ -242,7 +242,7 @@ public abstract class MPlugin extends JavaPlugin { // COMMAND HANDLING // -------------------------------------------- // - // can be overridden by P method, to provide option + // can be overridden by FactionsPlugin method, to provide option public boolean logPlayerCommands() { return true; } diff --git a/src/main/java/com/massivecraft/factions/zcore/MPluginSecretPlayerListener.java b/src/main/java/com/massivecraft/factions/zcore/MPluginSecretPlayerListener.java index 7df5d34c..e1d9f132 100644 --- a/src/main/java/com/massivecraft/factions/zcore/MPluginSecretPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/zcore/MPluginSecretPlayerListener.java @@ -40,7 +40,7 @@ public class MPluginSecretPlayerListener implements Listener { /* Should be handled by stuff in FactionsChatListener Player speaker = event.getPlayer(); String format = event.getFormat(); - format = format.replace(Conf.chatTagReplaceString, P.p.getPlayerFactionTag(speaker)).replace("[FACTION_TITLE]", P.p.getPlayerTitle(speaker)); + format = format.replace(Conf.chatTagReplaceString, FactionsPlugin.getInstance().getPlayerFactionTag(speaker)).replace("[FACTION_TITLE]", FactionsPlugin.getInstance().getPlayerTitle(speaker)); event.setFormat(format); */ } diff --git a/src/main/java/com/massivecraft/factions/zcore/fperms/Access.java b/src/main/java/com/massivecraft/factions/zcore/fperms/Access.java index fcc8efc7..c4c778d1 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fperms/Access.java +++ b/src/main/java/com/massivecraft/factions/zcore/fperms/Access.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.zcore.fperms; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; public enum Access { ALLOW("Allow"), @@ -41,6 +41,6 @@ public enum Access { } public String getColor() { - return P.p.getConfig().getString("fperm-gui.action.Access-Colors." + this.name); + return FactionsPlugin.getInstance().getConfig().getString("fperm-gui.action.Access-Colors." + this.name); } } diff --git a/src/main/java/com/massivecraft/factions/zcore/fperms/PermissableAction.java b/src/main/java/com/massivecraft/factions/zcore/fperms/PermissableAction.java index eb5f60cb..3c721c27 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fperms/PermissableAction.java +++ b/src/main/java/com/massivecraft/factions/zcore/fperms/PermissableAction.java @@ -1,7 +1,7 @@ package com.massivecraft.factions.zcore.fperms; import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.Placeholder; import com.massivecraft.factions.util.XMaterial; import org.bukkit.configuration.ConfigurationSection; @@ -80,7 +80,7 @@ public enum PermissableAction { } public int getSlot() { - return P.p.getConfig().getInt("fperm-gui.action.slots." + this.name.toLowerCase()); + return FactionsPlugin.getInstance().getConfig().getInt("fperm-gui.action.slots." + this.name.toLowerCase()); } /** @@ -98,18 +98,18 @@ public enum PermissableAction { } public ItemStack buildAsset(FPlayer fme, Permissable perm) { - ConfigurationSection section = P.p.getConfig().getConfigurationSection("fperm-gui.action"); + ConfigurationSection section = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.action"); ItemStack item = XMaterial.matchXMaterial(section.getString("Materials." + this.name)).parseItem(); ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(P.p.color(section.getString("placeholder-item.name").replace("{action}", this.name))); + meta.setDisplayName(FactionsPlugin.getInstance().color(section.getString("placeholder-item.name").replace("{action}", this.name))); List lore = section.getStringList("placeholder-item.lore"); - lore = P.p.replacePlaceholders(lore, + lore = FactionsPlugin.getInstance().replacePlaceholders(lore, new Placeholder("{action-access-color}", fme.getFaction().getPermissions().get(perm).get(this).getColor()), new Placeholder("{action-access}", fme.getFaction().getPermissions().get(perm).get(this).getName())); - meta.setLore(P.p.colorList(lore)); + meta.setLore(FactionsPlugin.getInstance().colorList(lore)); item.setItemMeta(meta); return item; } diff --git a/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableActionFrame.java b/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableActionFrame.java index 65867482..fe31f632 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableActionFrame.java +++ b/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableActionFrame.java @@ -5,7 +5,7 @@ import com.github.stefvanschie.inventoryframework.GuiItem; import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.Permissable; @@ -23,10 +23,10 @@ public class PermissableActionFrame { private Gui gui; public PermissableActionFrame(Faction f) { - ConfigurationSection section = P.p.getConfig().getConfigurationSection("fperm-gui.action"); - gui = new Gui(P.p, + ConfigurationSection section = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.action"); + gui = new Gui(FactionsPlugin.getInstance(), section.getInt("rows", 3), - P.p.color(P.p.getConfig().getString("fperm-gui.action.name").replace("{faction}", f.getTag()))); + FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fperm-gui.action.name").replace("{faction}", f.getTag()))); } public void buildGUI(FPlayer fplayer, Permissable perm) { @@ -60,14 +60,14 @@ public class PermissableActionFrame { } if (success) fplayer.msg(TL.COMMAND_PERM_SET, action.name(), access.name(), perm.name()); else fplayer.msg(TL.COMMAND_PERM_LOCKED); - P.p.log(String.format(TL.COMMAND_PERM_SET.toString(), action.name(), access.name(), perm.name()) + " for faction " + fplayer.getTag()); + FactionsPlugin.getInstance().log(String.format(TL.COMMAND_PERM_SET.toString(), action.name(), access.name(), perm.name()) + " for faction " + fplayer.getTag()); // Closing and opening resets the cursor. // fplayer.getPlayer().closeInventory(); buildGUI(fplayer, perm); } })); } - GUIItems.set(P.p.getConfig().getInt("fperm-gui.action.slots.back"), new GuiItem(buildBackItem(), event -> { + GUIItems.set(FactionsPlugin.getInstance().getConfig().getInt("fperm-gui.action.slots.back"), new GuiItem(buildBackItem(), event -> { event.setCancelled(true); // Closing and opening resets the cursor. // fplayer.getPlayer().closeInventory(); @@ -81,21 +81,21 @@ public class PermissableActionFrame { private ItemStack buildDummyItem() { - ConfigurationSection config = P.p.getConfig().getConfigurationSection("fperm-gui.dummy-item"); + ConfigurationSection config = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.dummy-item"); ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem(); ItemMeta meta = item.getItemMeta(); - meta.setLore(P.p.colorList(config.getStringList("Lore"))); - meta.setDisplayName(P.p.color(config.getString("Name"))); + meta.setLore(FactionsPlugin.getInstance().colorList(config.getStringList("Lore"))); + meta.setDisplayName(FactionsPlugin.getInstance().color(config.getString("Name"))); item.setItemMeta(meta); return item; } private ItemStack buildBackItem() { - ConfigurationSection config = P.p.getConfig().getConfigurationSection("fperm-gui.back-item"); + ConfigurationSection config = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.back-item"); ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem(); ItemMeta meta = item.getItemMeta(); - meta.setLore(P.p.colorList(config.getStringList("Lore"))); - meta.setDisplayName(P.p.color(config.getString("Name"))); + meta.setLore(FactionsPlugin.getInstance().colorList(config.getStringList("Lore"))); + meta.setDisplayName(FactionsPlugin.getInstance().color(config.getString("Name"))); item.setItemMeta(meta); return item; } diff --git a/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableRelationFrame.java b/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableRelationFrame.java index 3863b185..db7dc7e3 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableRelationFrame.java +++ b/src/main/java/com/massivecraft/factions/zcore/fperms/gui/PermissableRelationFrame.java @@ -5,7 +5,7 @@ import com.github.stefvanschie.inventoryframework.GuiItem; import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.util.XMaterial; @@ -22,10 +22,10 @@ public class PermissableRelationFrame { private Gui gui; public PermissableRelationFrame(Faction f) { - ConfigurationSection section = P.p.getConfig().getConfigurationSection("fperm-gui.relation"); - gui = new Gui(P.p, + ConfigurationSection section = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.relation"); + gui = new Gui(FactionsPlugin.getInstance(), section.getInt("rows", 3), - P.p.color(P.p.getConfig().getString("fperm-gui.relation.name").replace("{faction}", f.getTag()))); + FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fperm-gui.relation.name").replace("{faction}", f.getTag()))); } public void buildGUI(FPlayer fplayer) { @@ -34,7 +34,7 @@ public class PermissableRelationFrame { ItemStack dumby = buildDummyItem(); // Fill background of GUI with dumbyitem & replace GUI assets after for (int x = 0; x <= (gui.getRows() * 9) - 1; x++) GUIItems.add(new GuiItem(dumby, e -> e.setCancelled(true))); - ConfigurationSection sec = P.p.getConfig().getConfigurationSection("fperm-gui.relation"); + ConfigurationSection sec = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.relation"); for (String key : sec.getConfigurationSection("slots").getKeys(false)) { GUIItems.set(sec.getInt("slots." + key), new GuiItem(buildAsset("fperm-gui.relation.materials." + key, key), e -> { e.setCancelled(true); @@ -50,19 +50,19 @@ public class PermissableRelationFrame { } private ItemStack buildAsset(String loc, String relation) { - ItemStack item = XMaterial.matchXMaterial(P.p.getConfig().getString(loc)).parseItem(); + ItemStack item = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString(loc)).parseItem(); ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(P.p.color(P.p.getConfig().getString("fperm-gui.relation.Placeholder-Item.Name").replace("{relation}", relation))); + meta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fperm-gui.relation.Placeholder-Item.Name").replace("{relation}", relation))); item.setItemMeta(meta); return item; } private ItemStack buildDummyItem() { - ConfigurationSection config = P.p.getConfig().getConfigurationSection("fperm-gui.dummy-item"); + ConfigurationSection config = FactionsPlugin.getInstance().getConfig().getConfigurationSection("fperm-gui.dummy-item"); ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem(); ItemMeta meta = item.getItemMeta(); - meta.setLore(P.p.colorList(config.getStringList("Lore"))); - meta.setDisplayName(P.p.color(config.getString("Name"))); + meta.setLore(FactionsPlugin.getInstance().colorList(config.getStringList("Lore"))); + meta.setDisplayName(FactionsPlugin.getInstance().color(config.getString("Name"))); item.setItemMeta(meta); return item; } diff --git a/src/main/java/com/massivecraft/factions/zcore/fupgrades/CropUpgrades.java b/src/main/java/com/massivecraft/factions/zcore/fupgrades/CropUpgrades.java index 11ee10bf..0385caf7 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fupgrades/CropUpgrades.java +++ b/src/main/java/com/massivecraft/factions/zcore/fupgrades/CropUpgrades.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.fupgrades; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import org.bukkit.CropState; import org.bukkit.Material; @@ -30,13 +30,13 @@ public class CropUpgrades implements Listener { switch (level) { case 1: - chance = P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-1"); + chance = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-1"); break; case 2: - chance = P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-2"); + chance = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-2"); break; case 3: - chance = P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-3"); + chance = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Crop-Boost.level-3"); break; } diff --git a/src/main/java/com/massivecraft/factions/zcore/fupgrades/EXPUpgrade.java b/src/main/java/com/massivecraft/factions/zcore/fupgrades/EXPUpgrade.java index 4006ff72..87bf37ff 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fupgrades/EXPUpgrade.java +++ b/src/main/java/com/massivecraft/factions/zcore/fupgrades/EXPUpgrade.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.fupgrades; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -29,13 +29,13 @@ public class EXPUpgrade implements Listener { switch (level) { case 1: - multiplier = P.p.getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-1"); + multiplier = FactionsPlugin.getInstance().getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-1"); break; case 2: - multiplier = P.p.getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-2"); + multiplier = FactionsPlugin.getInstance().getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-2"); break; case 3: - multiplier = P.p.getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-3"); + multiplier = FactionsPlugin.getInstance().getConfig().getDouble("fupgrades.MainMenu.EXP.EXP-Boost.level-3"); break; } diff --git a/src/main/java/com/massivecraft/factions/zcore/fupgrades/FUpgradesGUI.java b/src/main/java/com/massivecraft/factions/zcore/fupgrades/FUpgradesGUI.java index 01f7eb94..fbc4d4c1 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fupgrades/FUpgradesGUI.java +++ b/src/main/java/com/massivecraft/factions/zcore/fupgrades/FUpgradesGUI.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.fupgrades; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.util.XMaterial; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -22,25 +22,25 @@ import java.util.List; public class FUpgradesGUI implements Listener { public void openMainMenu(FPlayer fme) { - Inventory inventory = Bukkit.createInventory(null, P.p.getConfig().getInt("fupgrades.MainMenu.DummyItem.rows") * 9, P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag()))); - ItemStack dummyItem = XMaterial.matchXMaterial(P.p.getConfig().getString("fupgrades.MainMenu.DummyItem.Type")).parseItem(); + Inventory inventory = Bukkit.createInventory(null, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.DummyItem.rows") * 9, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag()))); + ItemStack dummyItem = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.DummyItem.Type")).parseItem(); ItemMeta meta = dummyItem.getItemMeta(); - meta.setLore(P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.DummyItem.Lore"))); - meta.setDisplayName(P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.DummyItem.Name"))); + meta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.DummyItem.Lore"))); + meta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.DummyItem.Name"))); dummyItem.setItemMeta(meta); - for (int fill = 0; fill < P.p.getConfig().getInt("fupgrades.MainMenu.DummyItem.rows") * 9; ++fill) { + for (int fill = 0; fill < FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.DummyItem.rows") * 9; ++fill) { inventory.setItem(fill, dummyItem); } ItemStack[] items = buildItems(fme); - List cropSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Crops.CropItem.slots"); - List spawnerSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Spawners.SpawnerItem.slots"); - List expSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.EXP.EXPItem.slots"); - List chestSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Chest.ChestItem.slots"); - List powerSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Power.PowerItem.slots"); - List redSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Redstone.RedstoneItem.slots"); - List memberSlots = P.p.getConfig().getIntegerList("fupgrades.MainMenu.Members.MembersItem.slots"); + List cropSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Crops.CropItem.slots"); + List spawnerSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Spawners.SpawnerItem.slots"); + List expSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.EXP.EXPItem.slots"); + List chestSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Chest.ChestItem.slots"); + List powerSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Power.PowerItem.slots"); + List redSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Redstone.RedstoneItem.slots"); + List memberSlots = FactionsPlugin.getInstance().getConfig().getIntegerList("fupgrades.MainMenu.Members.MembersItem.slots"); for (Integer cropSlot : cropSlots) if (cropSlot != -1) inventory.setItem(cropSlot, items[2]); @@ -65,7 +65,7 @@ public class FUpgradesGUI implements Listener { return; FPlayer fme = FPlayers.getInstance().getByPlayer((Player) e.getWhoClicked()); - if (e.getView().getTitle().equalsIgnoreCase(P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag())))) { + if (e.getView().getTitle().equalsIgnoreCase(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Title").replace("{faction}", fme.getFaction().getTag())))) { e.setCancelled(true); ItemStack[] items = buildItems(fme); ItemStack cropItem = items[2]; @@ -82,13 +82,13 @@ public class FUpgradesGUI implements Listener { case 3: return; case 2: - upgradeItem(fme, UpgradeType.CROP, 3, P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-3")); + upgradeItem(fme, UpgradeType.CROP, 3, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-3")); break; case 1: - upgradeItem(fme, UpgradeType.CROP, 2, P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-2")); + upgradeItem(fme, UpgradeType.CROP, 2, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-2")); break; case 0: - upgradeItem(fme, UpgradeType.CROP, 1, P.p.getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-1")); + upgradeItem(fme, UpgradeType.CROP, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.Cost.level-1")); break; } } else if (e.getCurrentItem().equals(powerItem)) { @@ -97,15 +97,15 @@ public class FUpgradesGUI implements Listener { case 3: return; case 2: - upgradeItem(fme, UpgradeType.POWER, 3, P.p.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-3")); + upgradeItem(fme, UpgradeType.POWER, 3, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-3")); updatePower(fme.getFaction()); break; case 1: - upgradeItem(fme, UpgradeType.POWER, 2, P.p.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-2")); + upgradeItem(fme, UpgradeType.POWER, 2, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-2")); updatePower(fme.getFaction()); break; case 0: - upgradeItem(fme, UpgradeType.POWER, 1, P.p.getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-1")); + upgradeItem(fme, UpgradeType.POWER, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Cost.level-1")); updatePower(fme.getFaction()); break; } @@ -115,13 +115,13 @@ public class FUpgradesGUI implements Listener { case 3: return; case 2: - upgradeItem(fme, UpgradeType.SPAWNER, 3, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-3")); + upgradeItem(fme, UpgradeType.SPAWNER, 3, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-3")); break; case 1: - upgradeItem(fme, UpgradeType.SPAWNER, 2, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-2")); + upgradeItem(fme, UpgradeType.SPAWNER, 2, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-2")); break; case 0: - upgradeItem(fme, UpgradeType.SPAWNER, 1, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-1")); + upgradeItem(fme, UpgradeType.SPAWNER, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Cost.level-1")); break; } } else if (e.getCurrentItem().equals(expItem)) { @@ -131,13 +131,13 @@ public class FUpgradesGUI implements Listener { case 3: return; case 2: - upgradeItem(fme, UpgradeType.EXP, 3, P.p.getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-3")); + upgradeItem(fme, UpgradeType.EXP, 3, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-3")); break; case 1: - upgradeItem(fme, UpgradeType.EXP, 2, P.p.getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-2")); + upgradeItem(fme, UpgradeType.EXP, 2, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-2")); break; case 0: - upgradeItem(fme, UpgradeType.EXP, 1, P.p.getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-1")); + upgradeItem(fme, UpgradeType.EXP, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.EXP.Cost.level-1")); break; } } else if (e.getCurrentItem().equals(redItem)) { @@ -146,7 +146,7 @@ public class FUpgradesGUI implements Listener { case 1: return; case 0: - upgradeItem(fme, UpgradeType.REDSTONE, 1, P.p.getConfig().getInt("fupgrades.MainMenu.Redstone.Cost")); + upgradeItem(fme, UpgradeType.REDSTONE, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Redstone.Cost")); break; } } else if (e.getCurrentItem().equals(chestitem)) { @@ -155,27 +155,27 @@ public class FUpgradesGUI implements Listener { case 3: return; case 2: { - if (upgradeItem(fme, UpgradeType.CHEST, 3, P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-3"))) + if (upgradeItem(fme, UpgradeType.CHEST, 3, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-3"))) updateChests(fme.getFaction()); break; } case 1: { - if (upgradeItem(fme, UpgradeType.CHEST, 2, P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-2"))) + if (upgradeItem(fme, UpgradeType.CHEST, 2, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-2"))) updateChests(fme.getFaction()); break; } case 0: { - if (upgradeItem(fme, UpgradeType.CHEST, 1, P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-1"))) + if (upgradeItem(fme, UpgradeType.CHEST, 1, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Cost.level-1"))) updateChests(fme.getFaction()); break; } } } else if (e.getCurrentItem().equals(memberItem)) { int memberLevel = fme.getFaction().getUpgrade(UpgradeType.MEMBERS) + 1; - if (!P.p.getConfig().isSet("fupgrades.MainMenu.Members.Cost.level-" + memberLevel)) { + if (!FactionsPlugin.getInstance().getConfig().isSet("fupgrades.MainMenu.Members.Cost.level-" + memberLevel)) { return; } - int cost = P.p.getConfig().getInt("fupgrades.MainMenu.Members.Cost.level-" + memberLevel); + int cost = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.Cost.level-" + memberLevel); if (hasMoney(fme, cost)) { fme.getFaction().setUpgrade(UpgradeType.MEMBERS, memberLevel); fme.getPlayer().closeInventory(); @@ -186,7 +186,7 @@ public class FUpgradesGUI implements Listener { } private void updateChests(Faction faction) { - String invName = P.p.color(P.p.getConfig().getString("fchest.Inventory-Title")); + String invName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title")); for (Player player : faction.getOnlinePlayers()) { if (player.getInventory().getTitle() != null && player.getInventory().getTitle().equalsIgnoreCase(invName)) @@ -198,13 +198,13 @@ public class FUpgradesGUI implements Listener { switch (level) { case 1: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-1"); + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-1"); break; case 2: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-2"); + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-2"); break; case 3: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-3"); + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-3"); break; } faction.setChestSize(size * 9); @@ -216,13 +216,13 @@ public class FUpgradesGUI implements Listener { switch (level) { case 1: - power = P.p.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-1"); + power = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-1"); break; case 2: - power = P.p.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-2"); + power = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-2"); break; case 3: - power = P.p.getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-3"); + power = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.Power-Boost.level-3"); break; } faction.setPowerBoost(power); @@ -230,21 +230,21 @@ public class FUpgradesGUI implements Listener { @SuppressWarnings("Duplicates") private ItemStack[] buildItems(FPlayer fme) { - Material expMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.EXP.EXPItem.Type")); - int expAmt = P.p.getConfig().getInt("fupgrades.MainMenu.EXP.EXPItem.Amount"); - short expData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.EXP.EXPItem.Damage") + ""); - String expName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.EXP.EXPItem.Name")); - List expLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.EXP.EXPItem.Lore")); + Material expMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.EXP.EXPItem.Type")); + int expAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.EXP.EXPItem.Amount"); + short expData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.EXP.EXPItem.Damage") + ""); + String expName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.EXP.EXPItem.Name")); + List expLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.EXP.EXPItem.Lore")); int expLevel = fme.getFaction().getUpgrade(UpgradeType.EXP); for (int i = 0; i <= expLore.size() - 1; i++) expLore.set(i, expLore.get(i).replace("{level}", expLevel + "")); - ItemStack expItem = P.p.createItem(expMaterial, expAmt, expData, expName, expLore); + ItemStack expItem = FactionsPlugin.getInstance().createItem(expMaterial, expAmt, expData, expName, expLore); if (expLevel >= 1) { ItemMeta itemMeta = expItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -253,11 +253,11 @@ public class FUpgradesGUI implements Listener { expItem.setAmount(expLevel); } - Material spawnerMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Spawners.SpawnerItem.Type")); - int spawnerAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.SpawnerItem.Amount"); - short spawnerData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.SpawnerItem.Damage") + ""); - String spawnerName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Spawners.SpawnerItem.Name")); - List spawnerLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Spawners.SpawnerItem.Lore")); + Material spawnerMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Spawners.SpawnerItem.Type")); + int spawnerAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.SpawnerItem.Amount"); + short spawnerData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.SpawnerItem.Damage") + ""); + String spawnerName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Spawners.SpawnerItem.Name")); + List spawnerLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Spawners.SpawnerItem.Lore")); int spawnerLevel = fme.getFaction().getUpgrade(UpgradeType.SPAWNER); for (int i = 0; i <= spawnerLore.size() - 1; i++) { @@ -265,11 +265,11 @@ public class FUpgradesGUI implements Listener { } - Material cropMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Crops.CropItem.Type")); - int cropAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Crops.CropItem.Amount"); - short cropData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Crops.CropItem.Damage") + ""); - String cropName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Crops.CropItem.Name")); - List cropLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Crops.CropItem.Lore")); + Material cropMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Crops.CropItem.Type")); + int cropAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.CropItem.Amount"); + short cropData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Crops.CropItem.Damage") + ""); + String cropName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Crops.CropItem.Name")); + List cropLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Crops.CropItem.Lore")); int cropLevel = fme.getFaction().getUpgrade(UpgradeType.CROP); for (int i = 0; i <= cropLore.size() - 1; i++) { @@ -278,12 +278,12 @@ public class FUpgradesGUI implements Listener { cropLore.set(i, line); } - ItemStack cropItem = P.p.createItem(cropMaterial, cropAmt, cropData, cropName, cropLore); + ItemStack cropItem = FactionsPlugin.getInstance().createItem(cropMaterial, cropAmt, cropData, cropName, cropLore); cropItem.getItemMeta().setLore(cropLore); if (cropLevel >= 1) { ItemMeta itemMeta = cropItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -292,11 +292,11 @@ public class FUpgradesGUI implements Listener { cropItem.setAmount(cropLevel); } - ItemStack spawnerItem = P.p.createItem(spawnerMaterial, spawnerAmt, spawnerData, spawnerName, spawnerLore); + ItemStack spawnerItem = FactionsPlugin.getInstance().createItem(spawnerMaterial, spawnerAmt, spawnerData, spawnerName, spawnerLore); spawnerItem.getItemMeta().setLore(spawnerLore); if (spawnerLevel >= 1) { ItemMeta itemMeta = spawnerItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -305,11 +305,11 @@ public class FUpgradesGUI implements Listener { spawnerItem.setAmount(spawnerLevel); } - Material chestMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Chest.ChestItem.Type")); - int chesttAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.ChestItem.Amount"); - short chestData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Chest.ChestItem.Damage") + ""); - String chestName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Chest.ChestItem.Name", "&e&lUpgrade Chest Size")); - List chestLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Chest.ChestItem.Lore")); + Material chestMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Chest.ChestItem.Type")); + int chesttAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.ChestItem.Amount"); + short chestData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.ChestItem.Damage") + ""); + String chestName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Chest.ChestItem.Name", "&e&lUpgrade Chest Size")); + List chestLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Chest.ChestItem.Lore")); int chestlevel = fme.getFaction().getUpgrade(UpgradeType.CHEST); for (int i = 0; i <= chestLore.size() - 1; i++) { @@ -318,11 +318,11 @@ public class FUpgradesGUI implements Listener { chestLore.set(i, line); } - ItemStack chestItem = P.p.createItem(chestMaterial, chesttAmt, chestData, chestName, chestLore); + ItemStack chestItem = FactionsPlugin.getInstance().createItem(chestMaterial, chesttAmt, chestData, chestName, chestLore); if (chestlevel >= 1) { ItemMeta itemMeta = chestItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -331,11 +331,11 @@ public class FUpgradesGUI implements Listener { chestItem.setAmount(chestlevel); } - Material memberMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Members.MembersItem.Type")); - int memberAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Members.MembersItem.Amount"); - short memberData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Members.MembersItem.Damage") + ""); - String memberName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Members.MembersItem.Name", "&e&lUpgrade Member Size")); - List memberLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Members.MembersItem.Lore")); + Material memberMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Members.MembersItem.Type")); + int memberAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.MembersItem.Amount"); + short memberData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.MembersItem.Damage") + ""); + String memberName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Members.MembersItem.Name", "&e&lUpgrade Member Size")); + List memberLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Members.MembersItem.Lore")); int memberlevel = fme.getFaction().getUpgrade(UpgradeType.MEMBERS); for (int i = 0; i <= memberLore.size() - 1; i++) { @@ -344,11 +344,11 @@ public class FUpgradesGUI implements Listener { memberLore.set(i, line); } - ItemStack memberItem = P.p.createItem(memberMaterial, memberAmt, memberData, memberName, memberLore); + ItemStack memberItem = FactionsPlugin.getInstance().createItem(memberMaterial, memberAmt, memberData, memberName, memberLore); if (memberlevel >= 1) { ItemMeta itemMeta = memberItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -357,11 +357,11 @@ public class FUpgradesGUI implements Listener { memberItem.setAmount(memberlevel); } - Material powerMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Type")); - int powerAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Amount"); - short powerData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Damage") + ""); - String powerName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Name")); - List powerLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Power.PowerItem.Lore")); + Material powerMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Type")); + int powerAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Amount"); + short powerData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Power.PowerItem.Damage") + ""); + String powerName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Power.PowerItem.Name")); + List powerLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Power.PowerItem.Lore")); int powerLevel = fme.getFaction().getUpgrade(UpgradeType.POWER); for (int i = 0; i <= powerLore.size() - 1; i++) { @@ -370,12 +370,12 @@ public class FUpgradesGUI implements Listener { powerLore.set(i, line); } - ItemStack powerItem = P.p.createItem(powerMaterial, powerAmt, powerData, powerName, powerLore); + ItemStack powerItem = FactionsPlugin.getInstance().createItem(powerMaterial, powerAmt, powerData, powerName, powerLore); powerItem.getItemMeta().setLore(powerLore); if (powerLevel >= 1) { ItemMeta itemMeta = powerItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); @@ -384,11 +384,11 @@ public class FUpgradesGUI implements Listener { powerItem.setAmount(powerLevel); } - Material redMaterial = Material.getMaterial(P.p.getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Type")); - int redAmt = P.p.getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Amount"); - short redData = Short.parseShort(P.p.getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Damage") + ""); - String redName = P.p.color(P.p.getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Name")); - List redLore = P.p.colorList(P.p.getConfig().getStringList("fupgrades.MainMenu.Redstone.RedstoneItem.Lore")); + Material redMaterial = Material.getMaterial(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Type")); + int redAmt = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Amount"); + short redData = Short.parseShort(FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Redstone.RedstoneItem.Damage") + ""); + String redName = FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fupgrades.MainMenu.Redstone.RedstoneItem.Name")); + List redLore = FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fupgrades.MainMenu.Redstone.RedstoneItem.Lore")); int redLevel = fme.getFaction().getUpgrade(UpgradeType.REDSTONE); for (int i = 0; i <= redLore.size() - 1; i++) { @@ -397,12 +397,12 @@ public class FUpgradesGUI implements Listener { redLore.set(i, line); } - ItemStack redItem = P.p.createItem(redMaterial, redAmt, redData, redName, redLore); + ItemStack redItem = FactionsPlugin.getInstance().createItem(redMaterial, redAmt, redData, redName, redLore); redItem.getItemMeta().setLore(redLore); if (redLevel >= 1) { ItemMeta itemMeta = redItem.getItemMeta(); - if (!P.p.mc17) { + if (!FactionsPlugin.getInstance().mc17) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } itemMeta.addEnchant(Enchantment.DURABILITY, 3, true); diff --git a/src/main/java/com/massivecraft/factions/zcore/fupgrades/RedstoneUpgrade.java b/src/main/java/com/massivecraft/factions/zcore/fupgrades/RedstoneUpgrade.java index 4c3f876c..7727345b 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fupgrades/RedstoneUpgrade.java +++ b/src/main/java/com/massivecraft/factions/zcore/fupgrades/RedstoneUpgrade.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.fupgrades; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockFromToEvent; @@ -14,7 +14,7 @@ public class RedstoneUpgrade implements Listener { @EventHandler public void onWaterRedstone(BlockFromToEvent e) { - List unbreakable = P.p.getConfig().getStringList("no-water-destroy.Item-List"); + List unbreakable = FactionsPlugin.getInstance().getConfig().getStringList("no-water-destroy.Item-List"); String block = e.getToBlock().getType().toString(); FLocation floc = new FLocation(e.getToBlock().getLocation()); Faction factionAtLoc = Board.getInstance().getFactionAt(floc); @@ -23,7 +23,7 @@ public class RedstoneUpgrade implements Listener { int level = factionAtLoc.getUpgrade(UpgradeType.REDSTONE); if (level != 0) { if (level == 1) { - P.p.getConfig().getInt("fupgrades.MainMenu.Redstone.Cost"); + FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Redstone.Cost"); } if (unbreakable.contains(block)) { e.setCancelled(true); diff --git a/src/main/java/com/massivecraft/factions/zcore/fupgrades/SpawnerUpgrades.java b/src/main/java/com/massivecraft/factions/zcore/fupgrades/SpawnerUpgrades.java index 3eb284c0..f3a8735a 100644 --- a/src/main/java/com/massivecraft/factions/zcore/fupgrades/SpawnerUpgrades.java +++ b/src/main/java/com/massivecraft/factions/zcore/fupgrades/SpawnerUpgrades.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.fupgrades; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.SpawnerSpawnEvent; @@ -20,13 +20,13 @@ public class SpawnerUpgrades implements Listener { if (level != 0) { switch (level) { case 1: - lowerSpawnerDelay(e, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-1")); + lowerSpawnerDelay(e, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-1")); break; case 2: - lowerSpawnerDelay(e, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-2")); + lowerSpawnerDelay(e, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-2")); break; case 3: - lowerSpawnerDelay(e, P.p.getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-3")); + lowerSpawnerDelay(e, FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Spawners.Spawner-Boost.level-3")); break; } } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryBoard.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryBoard.java index 13e15096..04bad776 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryBoard.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryBoard.java @@ -152,7 +152,7 @@ public abstract class MemoryBoard extends Board { while (iter.hasNext()) { Entry entry = iter.next(); if (!Factions.getInstance().isValidFactionId(entry.getValue())) { - P.p.log("Board cleaner removed " + entry.getValue() + " from " + entry.getKey()); + FactionsPlugin.getInstance().log("Board cleaner removed " + entry.getValue() + " from " + entry.getKey()); iter.remove(); } } @@ -194,12 +194,12 @@ public abstract class MemoryBoard extends Board { Faction faction = fplayer.getFaction(); ArrayList ret = new ArrayList<>(); Faction factionLoc = getFactionAt(flocation); - ret.add(new FancyMessage(ChatColor.DARK_GRAY + P.p.txt.titleize("(" + flocation.getCoordString() + ") " + factionLoc.getTag(fplayer)))); - int buffer = P.p.getConfig().getInt("world-border.buffer", 0); + ret.add(new FancyMessage(ChatColor.DARK_GRAY + FactionsPlugin.getInstance().txt.titleize("(" + flocation.getCoordString() + ") " + factionLoc.getTag(fplayer)))); + int buffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0); // Get the compass - ArrayList asciiCompass = AsciiCompass.getAsciiCompass(inDegrees, ChatColor.DARK_GREEN, P.p.txt.parse("")); + ArrayList asciiCompass = AsciiCompass.getAsciiCompass(inDegrees, ChatColor.DARK_GREEN, FactionsPlugin.getInstance().txt.parse("")); int halfWidth = Conf.mapWidth / 2; // Use player's value for height @@ -286,16 +286,16 @@ public abstract class MemoryBoard extends Board { @SuppressWarnings("unused") private List getToolTip(Faction faction, FPlayer to) { List ret = new ArrayList<>(); - List show = P.p.getConfig().getStringList("map"); + List show = FactionsPlugin.getInstance().getConfig().getStringList("map"); if (!faction.isNormal()) { String tag = faction.getTag(to); // send header and that's all String header = show.get(0); if (TagReplacer.HEADER.contains(header)) { - ret.add(P.p.txt.titleize(tag)); + ret.add(FactionsPlugin.getInstance().txt.titleize(tag)); } else { - ret.add(P.p.txt.parse(TagReplacer.FACTION.replace(header, tag))); + ret.add(FactionsPlugin.getInstance().txt.parse(TagReplacer.FACTION.replace(header, tag))); } return ret; // we only show header for non-normal factions } @@ -315,7 +315,7 @@ public abstract class MemoryBoard extends Board { List fancy = TagUtil.parseFancy(faction, to, parsed); if (fancy != null) { for (FancyMessage msg : fancy) { - ret.add((P.p.txt.parse(msg.toOldMessageFormat()))); + ret.add((FactionsPlugin.getInstance().txt.parse(msg.toOldMessageFormat()))); } } continue; @@ -329,7 +329,7 @@ public abstract class MemoryBoard extends Board { if (parsed.contains("%")) { parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it. } - ret.add(P.p.txt.parse(parsed)); + ret.add(FactionsPlugin.getInstance().txt.parse(parsed)); } } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java index afa7366d..a78e2b6d 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java @@ -98,7 +98,7 @@ public abstract class MemoryFPlayer implements FPlayer { this.powerBoost = 0.0; this.getKills(); this.getDeaths(); - this.showScoreboard = P.p.getConfig().getBoolean("scoreboard.default-enabled", false); + this.showScoreboard = FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-enabled", false); this.mapHeight = Conf.mapHeight; if (!Conf.newPlayerStartingFactionID.equals("0") && Factions.getInstance().isValidFactionId(Conf.newPlayerStartingFactionID)) { @@ -127,7 +127,7 @@ public abstract class MemoryFPlayer implements FPlayer { this.getDeaths(); this.isAdminBypassing = other.isAdminBypassing; this.notificationsEnabled = other.notificationsEnabled; - this.showScoreboard = P.p.getConfig().getBoolean("scoreboard.default-enabled", true); + this.showScoreboard = FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.default-enabled", true); this.mapHeight = Conf.mapHeight; } @@ -268,7 +268,7 @@ public abstract class MemoryFPlayer implements FPlayer { public void setAutoLeave(boolean willLeave) { this.willAutoLeave = willLeave; - P.p.debug(name + " set autoLeave to " + willLeave); + FactionsPlugin.getInstance().debug(name + " set autoLeave to " + willLeave); } public long getLastFrostwalkerMessage() { @@ -620,7 +620,7 @@ public abstract class MemoryFPlayer implements FPlayer { } PowerRegenEvent powerRegenEvent = new PowerRegenEvent(getFaction(), this); - Bukkit.getScheduler().runTask(P.p, () -> Bukkit.getServer().getPluginManager().callEvent(powerRegenEvent)); + Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getServer().getPluginManager().callEvent(powerRegenEvent)); if (!powerRegenEvent.isCancelled()) this.alterPower(millisPassed * Conf.powerPerMinute / 60000); // millisPerMinute : 60 * 1000 @@ -677,10 +677,10 @@ public abstract class MemoryFPlayer implements FPlayer { boolean showChat = true; if (showInfoBoard(toShow)) { FScoreboard.get(this).setTemporarySidebar(new FInfoSidebar(toShow)); - showChat = P.p.getConfig().getBoolean("scoreboard.also-send-chat", true); + showChat = FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.also-send-chat", true); } if (showChat) { - this.sendMessage(P.p.txt.parse(TL.FACTION_LEAVE.format(from.getTag(this), toShow.getTag(this)))); + this.sendMessage(FactionsPlugin.getInstance().txt.parse(TL.FACTION_LEAVE.format(from.getTag(this), toShow.getTag(this)))); } } @@ -695,7 +695,7 @@ public abstract class MemoryFPlayer implements FPlayer { * @return true if should show, otherwise false. */ public boolean showInfoBoard(Faction toShow) { - return showScoreboard && !toShow.isWarZone() && !toShow.isWilderness() && !toShow.isSafeZone() && P.p.getConfig().contains("scoreboard.finfo") && P.p.getConfig().getBoolean("scoreboard.finfo-enabled", false) && FScoreboard.get(this) != null; + return showScoreboard && !toShow.isWarZone() && !toShow.isWilderness() && !toShow.isSafeZone() && FactionsPlugin.getInstance().getConfig().contains("scoreboard.finfo") && FactionsPlugin.getInstance().getConfig().getBoolean("scoreboard.finfo-enabled", false) && FScoreboard.get(this) != null; } @Override @@ -759,7 +759,7 @@ public abstract class MemoryFPlayer implements FPlayer { } if (Conf.logFactionLeave) { - P.p.log(TL.LEAVE_LEFT.format(this.getName(), myFaction.getTag())); + FactionsPlugin.getInstance().log(TL.LEAVE_LEFT.format(this.getName(), myFaction.getTag())); } } @@ -784,7 +784,7 @@ public abstract class MemoryFPlayer implements FPlayer { Factions.getInstance().removeFaction(myFaction.getId()); if (Conf.logFactionDisband) { - P.p.log(TL.LEAVE_DISBANDEDLOG.format(myFaction.getTag(), myFaction.getId(), this.getName())); + FactionsPlugin.getInstance().log(TL.LEAVE_DISBANDEDLOG.format(myFaction.getTag(), myFaction.getId(), this.getName())); } } } @@ -802,16 +802,16 @@ public abstract class MemoryFPlayer implements FPlayer { Faction myFaction = getFaction(); Faction currentFaction = Board.getInstance().getFactionAt(flocation); int ownedLand = forFaction.getLandRounded(); - int factionBuffer = P.p.getConfig().getInt("hcf.buffer-zone", 0); - int worldBuffer = P.p.getConfig().getInt("world-border.buffer", 0); + int factionBuffer = FactionsPlugin.getInstance().getConfig().getInt("hcf.buffer-zone", 0); + int worldBuffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0); if (Conf.worldGuardChecking && Worldguard.checkForRegionsInChunk(flocation)) { // Checks for WorldGuard regions in the chunk attempting to be claimed - error = P.p.txt.parse(TL.CLAIM_PROTECTED.toString()); - } else if (flocation.isOutsideWorldBorder(P.p.getConfig().getInt("world-border.buffer", 0))) { - error = P.p.txt.parse(TL.CLAIM_OUTSIDEWORLDBORDER.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_PROTECTED.toString()); + } else if (flocation.isOutsideWorldBorder(FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0))) { + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_OUTSIDEWORLDBORDER.toString()); } else if (Conf.useWorldConfigurationsAsWhitelist != Conf.worldsNoClaiming.contains(flocation.getWorldName())) { - error = P.p.txt.parse(TL.CLAIM_DISABLED.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_DISABLED.toString()); } else if (this.isAdminBypassing()) { return true; } else if (forFaction.isSafeZone() && Permission.MANAGE_SAFE_ZONE.has(getPlayer())) { @@ -821,50 +821,50 @@ public abstract class MemoryFPlayer implements FPlayer { } else if (currentFaction.getAccess(this, PermissableAction.TERRITORY) == Access.ALLOW) { return true; } else if (myFaction != forFaction) { - error = P.p.txt.parse(TL.CLAIM_CANTCLAIM.toString(), forFaction.describeTo(this)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_CANTCLAIM.toString(), forFaction.describeTo(this)); } else if (forFaction == currentFaction) { - error = P.p.txt.parse(TL.CLAIM_ALREADYOWN.toString(), forFaction.describeTo(this, true)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_ALREADYOWN.toString(), forFaction.describeTo(this, true)); } else if (this.getRole().value < Role.MODERATOR.value) { - error = P.p.txt.parse(TL.CLAIM_MUSTBE.toString(), Role.MODERATOR.getTranslation()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_MUSTBE.toString(), Role.MODERATOR.getTranslation()); } else if (forFaction.getFPlayers().size() < Conf.claimsRequireMinFactionMembers) { - error = P.p.txt.parse(TL.CLAIM_MEMBERS.toString(), Conf.claimsRequireMinFactionMembers); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_MEMBERS.toString(), Conf.claimsRequireMinFactionMembers); } else if (currentFaction.isSafeZone()) { - error = P.p.txt.parse(TL.CLAIM_SAFEZONE.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_SAFEZONE.toString()); } else if (currentFaction.isWarZone()) { - error = P.p.txt.parse(TL.CLAIM_WARZONE.toString()); - } else if (P.p.getConfig().getBoolean("hcf.allow-overclaim", true) && ownedLand >= forFaction.getPowerRounded()) { - error = P.p.txt.parse(TL.CLAIM_POWER.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_WARZONE.toString()); + } else if (FactionsPlugin.getInstance().getConfig().getBoolean("hcf.allow-overclaim", true) && ownedLand >= forFaction.getPowerRounded()) { + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_POWER.toString()); } else if (Conf.claimedLandsMax != 0 && ownedLand >= Conf.claimedLandsMax && forFaction.isNormal()) { - error = P.p.txt.parse(TL.CLAIM_LIMIT.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_LIMIT.toString()); } else if (currentFaction.getRelationTo(forFaction) == Relation.ALLY) { - error = P.p.txt.parse(TL.CLAIM_ALLY.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_ALLY.toString()); } else if (Conf.claimsMustBeConnected && !this.isAdminBypassing() && myFaction.getLandRoundedInWorld(flocation.getWorldName()) > 0 && !Board.getInstance().isConnectedLocation(flocation, myFaction) && (!Conf.claimsCanBeUnconnectedIfOwnedByOtherFaction || !currentFaction.isNormal())) { if (Conf.claimsCanBeUnconnectedIfOwnedByOtherFaction) { - error = P.p.txt.parse(TL.CLAIM_CONTIGIOUS.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_CONTIGIOUS.toString()); } else { - error = P.p.txt.parse(TL.CLAIM_FACTIONCONTIGUOUS.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_FACTIONCONTIGUOUS.toString()); } } else if (factionBuffer > 0 && Board.getInstance().hasFactionWithin(flocation, myFaction, factionBuffer)) { - error = P.p.txt.parse(TL.CLAIM_TOOCLOSETOOTHERFACTION.format(factionBuffer)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_TOOCLOSETOOTHERFACTION.format(factionBuffer)); } else if (flocation.isOutsideWorldBorder(worldBuffer)) { if (worldBuffer > 0) { - error = P.p.txt.parse(TL.CLAIM_OUTSIDEBORDERBUFFER.format(worldBuffer)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_OUTSIDEBORDERBUFFER.format(worldBuffer)); } else { - error = P.p.txt.parse(TL.CLAIM_OUTSIDEWORLDBORDER.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_OUTSIDEWORLDBORDER.toString()); } } else if (currentFaction.isNormal()) { if (myFaction.isPeaceful()) { - error = P.p.txt.parse(TL.CLAIM_PEACEFUL.toString(), currentFaction.getTag(this)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_PEACEFUL.toString(), currentFaction.getTag(this)); } else if (currentFaction.isPeaceful()) { - error = P.p.txt.parse(TL.CLAIM_PEACEFULTARGET.toString(), currentFaction.getTag(this)); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_PEACEFULTARGET.toString(), currentFaction.getTag(this)); } else if (!currentFaction.hasLandInflation()) { // TODO more messages WARN current faction most importantly - error = P.p.txt.parse(TL.CLAIM_THISISSPARTA.toString(), currentFaction.getTag(this)); - } else if (currentFaction.hasLandInflation() && !P.p.getConfig().getBoolean("hcf.allow-overclaim", true)) { + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_THISISSPARTA.toString(), currentFaction.getTag(this)); + } else if (currentFaction.hasLandInflation() && !FactionsPlugin.getInstance().getConfig().getBoolean("hcf.allow-overclaim", true)) { // deny over claim when it normally would be allowed. - error = P.p.txt.parse(TL.CLAIM_OVERCLAIM_DISABLED.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_OVERCLAIM_DISABLED.toString()); } else if (!Board.getInstance().isBorderLocation(flocation)) { - error = P.p.txt.parse(TL.CLAIM_BORDER.toString()); + error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_BORDER.toString()); } } // TODO: Add more else if statements. @@ -885,7 +885,7 @@ public abstract class MemoryFPlayer implements FPlayer { } public void msg(String str, Object... args) { - this.sendMessage(P.p.txt.parse(str, args)); + this.sendMessage(FactionsPlugin.getInstance().txt.parse(str, args)); } public void msg(TL translation, Object... args) { @@ -928,7 +928,7 @@ public abstract class MemoryFPlayer implements FPlayer { if (!damage) { msg(TL.COMMAND_FLY_CHANGE, fly ? "enabled" : "disabled"); if (!fly) { - sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", P.p.getConfig().getInt("fly-falldamage-cooldown", 3) + "")); + sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3) + "")); } } else { @@ -937,7 +937,7 @@ public abstract class MemoryFPlayer implements FPlayer { // If leaving fly mode, don't let them take fall damage for x seconds. if (!fly) { - int cooldown = P.p.getConfig().getInt("fly-falldamage-cooldown", 3); + int cooldown = FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3); CmdFly.flyMap.remove(player.getName()); // If the value is 0 or lower, make them take fall damage. @@ -945,7 +945,7 @@ public abstract class MemoryFPlayer implements FPlayer { // Short task so we're just doing it in method. Not clean but eh. if (cooldown > 0) { setTakeFallDamage(false); - Bukkit.getScheduler().runTaskLater(P.p, () -> setTakeFallDamage(true), 20L * cooldown); + Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), () -> setTakeFallDamage(true), 20L * cooldown); } } @@ -1226,7 +1226,7 @@ public abstract class MemoryFPlayer implements FPlayer { } LandClaimEvent claimEvent = new LandClaimEvent(flocation, forFaction, this); - Bukkit.getScheduler().runTask(P.p, () -> Bukkit.getPluginManager().callEvent(claimEvent)); + Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getPluginManager().callEvent(claimEvent)); if (claimEvent.isCancelled()) { return false; } @@ -1253,7 +1253,7 @@ public abstract class MemoryFPlayer implements FPlayer { Board.getInstance().setFactionAt(forFaction, flocation); if (Conf.logLandClaims) { - P.p.log(TL.CLAIM_CLAIMEDLOG.toString(), this.getName(), flocation.getCoordString(), forFaction.getTag()); + FactionsPlugin.getInstance().log(TL.CLAIM_CLAIMEDLOG.toString(), this.getName(), flocation.getCoordString(), forFaction.getTag()); } return true; @@ -1281,7 +1281,7 @@ public abstract class MemoryFPlayer implements FPlayer { @Override public boolean hasMoney(int amt) { - Economy econ = P.p.getEcon(); + Economy econ = FactionsPlugin.getInstance().getEcon(); if (econ.getBalance(getPlayer()) >= amt) { return true; } else { @@ -1299,7 +1299,7 @@ public abstract class MemoryFPlayer implements FPlayer { @Override public void takeMoney(int amt) { if (hasMoney(amt)) { - Economy econ = P.p.getEcon(); + Economy econ = FactionsPlugin.getInstance().getEcon(); econ.withdrawPlayer(getPlayer(), amt); sendMessage(TL.GENERIC_MONEYTAKE.toString().replace("{amount}", commas(amt))); } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayers.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayers.java index 708baf32..3999de39 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayers.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayers.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.persist; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -17,7 +17,7 @@ public abstract class MemoryFPlayers extends FPlayers { public void clean() { for (FPlayer fplayer : this.fPlayers.values()) { if (!Factions.getInstance().isValidFactionId(fplayer.getFactionId())) { - P.p.log("Reset faction data (invalid faction:" + fplayer.getFactionId() + ") for player " + fplayer.getName()); + FactionsPlugin.getInstance().log("Reset faction data (invalid faction:" + fplayer.getFactionId() + ") for player " + fplayer.getName()); fplayer.resetFactionData(false); } } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFaction.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFaction.java index d7ec42c6..58e51761 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFaction.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFaction.java @@ -325,7 +325,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { if (Conf.logFactionDisband) { //TODO: Format this correctly and translate. - P.p.log("The faction " + this.getTag() + " (" + this.getId() + ") was disbanded by " + (disbanderIsConsole ? "console command" : fdisbander.getName()) + "."); + FactionsPlugin.getInstance().log("The faction " + this.getTag() + " (" + this.getId() + ") was disbanded by " + (disbanderIsConsole ? "console command" : fdisbander.getName()) + "."); } if (Econ.shouldBeUsed() && !disbanderIsConsole) { @@ -341,7 +341,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { String amountString = Econ.moneyString(amount); msg(TL.COMMAND_DISBAND_HOLDINGS, amountString); //TODO: Format this correctly and translate - P.p.log(fdisbander.getName() + " has been given bank holdings of " + amountString + " from disbanding " + this.getTag() + "."); + FactionsPlugin.getInstance().log(fdisbander.getName() + " has been given bank holdings of " + amountString + " from disbanding " + this.getTag() + "."); } } } @@ -425,16 +425,16 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { int size = 9; switch (getUpgrade(UpgradeType.CHEST)) { case 1: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-1") * 9; + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-1") * 9; break; case 2: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-2") * 9; + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-2") * 9; break; case 3: - size = P.p.getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-3") * 9; + size = FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Chest.Chest-Size.level-3") * 9; break; } - chest = Bukkit.createInventory(null, size, P.p.color(P.p.getConfig().getString("fchest.Inventory-Title"))); + chest = Bukkit.createInventory(null, size, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title"))); return chest; } @@ -442,7 +442,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { @Override public void setChestSize(int chestSize) { ItemStack[] contents = this.getChestInventory().getContents(); - chest = Bukkit.createInventory(null, chestSize, P.p.color(P.p.getConfig().getString("fchest.Inventory-Title"))); + chest = Bukkit.createInventory(null, chestSize, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title"))); chest.setContents(contents); } @@ -658,7 +658,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { } public boolean isPowerFrozen() { - int freezeSeconds = P.p.getConfig().getInt("hcf.powerfreeze", 0); + int freezeSeconds = FactionsPlugin.getInstance().getConfig().getInt("hcf.powerfreeze", 0); return freezeSeconds != 0 && System.currentTimeMillis() - lastDeath < freezeSeconds * 1000; } @@ -743,7 +743,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { } public void resetPerms() { - P.p.log(Level.WARNING, "Resetting permissions for Faction: " + tag); + FactionsPlugin.getInstance().log(Level.WARNING, "Resetting permissions for Faction: " + tag); permissions.clear(); @@ -880,7 +880,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { if (this.relationWish.containsKey(otherFaction.getId())) { return this.relationWish.get(otherFaction.getId()); } - return Relation.fromString(P.p.getConfig().getString("default-relation", "neutral")); // Always default to old behavior. + return Relation.fromString(FactionsPlugin.getInstance().getConfig().getString("default-relation", "neutral")); // Always default to old behavior. } public void setRelationWish(Faction otherFaction, Relation relation) { @@ -1086,7 +1086,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { return ret; } - for (Player player : P.p.getServer().getOnlinePlayers()) { + for (Player player : FactionsPlugin.getInstance().getServer().getOnlinePlayers()) { FPlayer fplayer = FPlayers.getInstance().getByPlayer(player); if (fplayer.getFaction() == this && !fplayer.isAlt()) { ret.add(player); @@ -1104,7 +1104,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { return false; } - for (Player player : P.p.getServer().getOnlinePlayers()) { + for (Player player : FactionsPlugin.getInstance().getServer().getOnlinePlayers()) { FPlayer fplayer = FPlayers.getInstance().getByPlayer(player); if (fplayer != null && fplayer.getFaction() == this) { return true; @@ -1156,7 +1156,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { // no members left and faction isn't permanent, so disband it if (Conf.logFactionDisband) { - P.p.log("The faction " + this.getTag() + " (" + this.getId() + ") has been disbanded since it has no members left" + (autoLeave ? " and by inactivity" : "") + "."); + FactionsPlugin.getInstance().log("The faction " + this.getTag() + " (" + this.getId() + ") has been disbanded since it has no members left" + (autoLeave ? " and by inactivity" : "") + "."); } for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { @@ -1174,7 +1174,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { replacements.get(0).setRole(Role.LEADER); //TODO:TL this.msg("Faction admin %s has been removed. %s has been promoted as the new faction admin.", oldLeader == null ? "" : oldLeader.getName(), replacements.get(0).getName()); - P.p.log("Faction " + this.getTag() + " (" + this.getId() + ") admin was removed. Replacement admin: " + replacements.get(0).getName()); + FactionsPlugin.getInstance().log("Faction " + this.getTag() + " (" + this.getId() + ") admin was removed. Replacement admin: " + replacements.get(0).getName()); } } @@ -1182,7 +1182,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator { // Messages // ----------------------------------------------// public void msg(String message, Object... args) { - message = P.p.txt.parse(message, args); + message = FactionsPlugin.getInstance().txt.parse(message, args); for (FPlayer fplayer : this.getFPlayersWhereOnline(true)) { fplayer.sendMessage(message); diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/json/FactionsJSON.java b/src/main/java/com/massivecraft/factions/zcore/persist/json/FactionsJSON.java index 2cc1c833..442514bc 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/json/FactionsJSON.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/json/FactionsJSON.java @@ -23,7 +23,7 @@ public class FactionsJSON { new BukkitRunnable() { @Override public void run() { - Logger logger = P.p.getLogger(); + Logger logger = FactionsPlugin.getInstance().getLogger(); logger.info("Beginning Board conversion to JSON"); new JSONBoard().convertFrom((MemoryBoard) Board.getInstance()); logger.info("Board Converted"); @@ -40,6 +40,6 @@ public class FactionsJSON { } logger.info("Conversion Complete"); } - }.runTaskAsynchronously(P.p); + }.runTaskAsynchronously(FactionsPlugin.getInstance()); } } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONBoard.java b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONBoard.java index 53b40aad..b0baaf3e 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONBoard.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONBoard.java @@ -3,7 +3,7 @@ package com.massivecraft.factions.zcore.persist.json; import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.Board; import com.massivecraft.factions.FLocation; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.persist.MemoryBoard; import com.massivecraft.factions.zcore.util.DiscUtil; @@ -16,7 +16,7 @@ import java.util.TreeMap; public class JSONBoard extends MemoryBoard { - private static transient File file = new File(P.p.getDataFolder(), "board.json"); + private static transient File file = new File(FactionsPlugin.getInstance().getDataFolder(), "board.json"); // -------------------------------------------- // // Persistance @@ -67,14 +67,14 @@ public class JSONBoard extends MemoryBoard { } public void forceSave(boolean sync) { - DiscUtil.writeCatch(file, P.p.gson.toJson(dumpAsSaveFormat()), sync); + DiscUtil.writeCatch(file, FactionsPlugin.getInstance().gson.toJson(dumpAsSaveFormat()), sync); } public boolean load() { - P.p.log("Loading board from disk"); + FactionsPlugin.getInstance().log("Loading board from disk"); if (!file.exists()) { - P.p.log("No board to load from disk. Creating new file."); + FactionsPlugin.getInstance().log("No board to load from disk. Creating new file."); forceSave(); return true; } @@ -82,12 +82,12 @@ public class JSONBoard extends MemoryBoard { try { Type type = new TypeToken>>() { }.getType(); - Map> worldCoordIds = P.p.gson.fromJson(DiscUtil.read(file), type); + Map> worldCoordIds = FactionsPlugin.getInstance().gson.fromJson(DiscUtil.read(file), type); loadFromSaveFormat(worldCoordIds); - P.p.log("Loaded " + flocationIds.size() + " board locations"); + FactionsPlugin.getInstance().log("Loaded " + flocationIds.size() + " board locations"); } catch (Exception e) { e.printStackTrace(); - P.p.log("Failed to load the board from disk."); + FactionsPlugin.getInstance().log("Failed to load the board from disk."); return false; } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFPlayers.java b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFPlayers.java index 292f01f2..677c062e 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFPlayers.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFPlayers.java @@ -6,7 +6,7 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.persist.MemoryFPlayer; import com.massivecraft.factions.zcore.persist.MemoryFPlayers; import com.massivecraft.factions.zcore.util.DiscUtil; @@ -26,8 +26,8 @@ public class JSONFPlayers extends MemoryFPlayers { private File file; public JSONFPlayers() { - file = new File(P.p.getDataFolder(), "players.json"); - gson = P.p.gson; + file = new File(FactionsPlugin.getInstance().getDataFolder(), "players.json"); + gson = FactionsPlugin.getInstance().gson; } public Gson getGson() { @@ -75,7 +75,7 @@ public class JSONFPlayers extends MemoryFPlayers { } this.fPlayers.clear(); this.fPlayers.putAll(fplayers); - P.p.log("Loaded " + fPlayers.size() + " players"); + FactionsPlugin.getInstance().log("Loaded " + fPlayers.size() + " players"); } private Map loadCore() { diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFactions.java b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFactions.java index 8cdd06c3..a3bfe2a5 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFactions.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/json/JSONFactions.java @@ -7,7 +7,7 @@ import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.zcore.persist.MemoryFaction; import com.massivecraft.factions.zcore.persist.MemoryFactions; import com.massivecraft.factions.zcore.util.DiscUtil; @@ -26,8 +26,8 @@ public class JSONFactions extends MemoryFactions { private final File file; public JSONFactions() { - this.file = new File(P.p.getDataFolder(), "factions.json"); - this.gson = P.p.gson; + this.file = new File(FactionsPlugin.getInstance().getDataFolder(), "factions.json"); + this.gson = FactionsPlugin.getInstance().gson; this.nextId = 1; } @@ -68,7 +68,7 @@ public class JSONFactions extends MemoryFactions { this.factions.putAll(factions); super.load(); - P.p.log("Loaded " + factions.size() + " Factions"); + FactionsPlugin.getInstance().log("Loaded " + factions.size() + " Factions"); } private Map loadCore() { diff --git a/src/main/java/com/massivecraft/factions/zcore/util/DiscUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/DiscUtil.java index 9485f166..ffb83178 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/DiscUtil.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/DiscUtil.java @@ -1,6 +1,6 @@ package com.massivecraft.factions.zcore.util; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import org.bukkit.Bukkit; import java.io.*; @@ -80,7 +80,7 @@ public class DiscUtil { lock.unlock(); } } else { - Bukkit.getScheduler().runTaskAsynchronously(P.p, () -> { + Bukkit.getScheduler().runTaskAsynchronously(FactionsPlugin.getInstance(), () -> { lock.lock(); try { write(file, content); diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TL.java b/src/main/java/com/massivecraft/factions/zcore/util/TL.java index f731b3fb..2cd18ad1 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TL.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TL.java @@ -59,6 +59,7 @@ public enum TL { /** * Command translations */ + COMMAND_USEAGE_TEMPLATE_COLOR("&c"), /** * Messsges for /f help @@ -113,6 +114,11 @@ public enum TL { * Messsges for Faction Admins/Mods */ + COMMAND_CONTEXT_ADMINISTER_DIF_FACTION("&c[!] %1$s is not in the same faction as you."), + COMMAND_CONTEXT_ADMINISTER_ADMIN_REQUIRED("&c[!] Only the faction admin can do that."), + COMMAND_CONTEXT_ADMINISTER_SAME_RANK_CONTROL("&c[!] Moderators can't control each other..."), + COMMAND_CONTEXT_ADMINISTER_MOD_REQUIRED("&c[!] You must be a faction moderator to do that."), + COMMAND_UPGRADES_DESCRIPTION("&cOpen the Upgrades Menu"), COMMAND_CORNER_CANT_CLAIM("&c&l[!] &cYou may not claim this corner!"), COMMAND_CORNER_CLAIMED("\n&2&l[!] &aYou have claimed the corner successfully, totalling in &b%1$d &achunks!\n"), @@ -139,7 +145,6 @@ public enum TL { COMMAND_ANNOUNCE_DESCRIPTION("Announce a message to players in faction."), COMMAND_ALTS_DESCRIPTION("Faction Alts Commands"), - COMMAND_STRIKE_DESCRIPTION("Faction Strike Commands"), COMMAND_ALTS_LIST_DESCRIPTION("List all alts in your faction"), @@ -501,6 +506,11 @@ public enum TL { COMMAND_COLEADER_PROMOTED("&c&l[!]&7 You have &cpromoted &7%1$s to &ccoleader."), COMMAND_COLEADER_DESCRIPTION("Give or revoke coleader rights"), + COMMAND_CONVERTCONFIG_DESCRIPTION("Convert your SavageFactions config to SaberFactions"), + COMMAND_CONVERTCONFIG_SUCCESS("&cConfiguration successfully converted"), + COMMAND_CONVERTCONFIG_FAIL("&cConfiguration conversion failed!"), + COMMAND_CONVERTCONFIG_FAILCONFIGMISSING("&cPlease ensure you have placed SavageFactions files in a folder called SavageFactions"), + COMMAND_MODIFYPOWER_ADDED("&c&l[!]&7 Added &c%1$f &7power to &c%2$s. &7New total rounded power: &c%3$d"), COMMAND_MODIFYPOWER_DESCRIPTION("Modify the power of a faction/player"), @@ -689,25 +699,24 @@ public enum TL { COMMAND_SETHOME_SET("&c&l[!]&c %1$s&7 set the home for your faction. You can now use:"), COMMAND_SETHOME_SETOTHER("&c&l[!]&7 You have set the home for the &c%1$s&7 faction."), COMMAND_SETHOME_DESCRIPTION("Set the faction home"), - COMMAND_STRIKE_FACTION("View Factions Strikes"), COMMAND_SETMAXVAULTS_DESCRIPTION("Set max vaults for a Faction."), COMMAND_SETMAXVAULTS_SUCCESS("&aSet max vaults for &e%s &ato &b%d"), COMMAND_ONCOOOLDOWN("&c&l[!] &7You cannot use this command for another &b%1$s &7seconds."), - COMMAND_SETSTRIKES_FAILURE("&c&l[!]&7 &c{faction} does not exist."), - COMMAND_SETSTRIKES_BROADCAST("&c&l[!]&7 &c{faction} has received a strike for {reason}"), - COMMAND_SETSTRIKES_SUCCESS("&c&l[!]&7 &c{faction}'s&7 new strikes are &c{strikes}"), - COMMAND_SETSTRIKES_DESCRIPTION("Set a faction's strikes"), - COMMAND_STRIKEREMOVE_DESCRIPTION("Remove a faction's strikes"), - COMMAND_STRIKE_MESSAGE("&c&l[!] &7{faction} has {strikes} strikes."), - COMMAND_STRIKE_NOTFOUND("&c&l[!] &7{faction} does not exist."), - COMMAND_STRIKE_NEEDFACTION("&c&l[!] &7&cYou need to join a faction to view your own!"), + COMMAND_STRIKES_CHANGED("&c&l[!] &7You have set &c%1$s's &7strikes to &c%2$s"), + COMMAND_STRIKES_INFO("&c&l[!] &7%1$s has %2$s strikes"), + COMMAND_STRIKES_TARGET_INVALID("&c&l[!] &7The faction %1$s is invalid."), + COMMAND_STRIKES_STRUCK("&c&l[!] &7Your faction strikes have changed by &c%1$s &7strike(s)! Your faction now has &c%2$s/%3$s"), + COMMAND_STRIKES_DESCRIPTION("Set strikes on factions to warn them"), + COMMAND_STRIKESGIVE_DESCRIPTION("Give a faction 1 strike"), + COMMAND_STRIKETAKE_DESCRIPTION("Take a strike from a faction"), + COMMAND_STRIKESET_DESCRIPTION("Set a faction's strikes explicitly."), + COMMAND_STRIKESINFO_DESCRIPTION("Get a faction's strikes"), SHOP_NOT_ENOUGH_POINTS("&c&l[!] &7Your faction does not have enough points to purchase this!"), SHOP_BOUGHT_BROADCAST_FACTION("\n&c&l[!] &e&lFactionShop » &b{player} &7bought &b{item}&7!\n"), - COMMAND_STRIKEGIVE_DESCRIPTION("Give a faction strikes"), COMMAND_VIEWCHEST_DESCRIPTION("view a factions chest/pv"), @@ -826,6 +835,8 @@ public enum TL { COMMAND_TNT_DISABLED_MSG("&cThis command is disabled!"), COMMAND_TNT_INVALID_NUM("The amount needs to be a number!"), + COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT("&cNot enough tnt in bank."), + COMMAND_TNTFILL_NODISPENSERS("&c&l[!] &7No dispensers were found in a radius of {radius} blocks."), COMMAND_TNT_DEPOSIT_SUCCESS("&cSuccessfully deposited tnt."), COMMAND_TNT_EXCEEDLIMIT("&cThis exceeds the bank limit!"), COMMAND_TNT_WIDTHDRAW_SUCCESS("&cSuccessfully withdrew tnt."), @@ -848,6 +859,7 @@ public enum TL { COMMAND_UNBAN_DESCRIPTION("Unban someone from your Faction"), COMMAND_UNBAN_NOTBANNED("&7%s &cisn't banned. Not doing anything."), + COMMAND_UNBAN_TARGET_IN_OTHER_FACTION("&c%1$s is not in your faction!"), COMMAND_UNBAN_UNBANNED("&e%1$s &cunbanned &7%2$s"), COMMAND_UNBAN_TARGET("&aYou were unbanned from &r%s"), @@ -889,11 +901,6 @@ public enum TL { COMMAND_RULES_SET_SUCCESS("&cRule set successfully!"), COMMAND_RULES_CLEAR_SUCCESS("&cRule cleared successfully!"), - COMMAND_CONVERTCONFIG_DESCRIPTION("Convert your SavageFactions config to SaberFactions"), - COMMAND_CONVERTCONFIG_SUCCESS("&cConfiguration successfully converted"), - COMMAND_CONVERTCONFIG_FAIL("&cConfiguration conversion failed!"), - COMMAND_CONVERTCONFIG_FAILCONFIGMISSING("&cPlease ensure you have placed SavageFactions files in a folder called SavageFactions"), - // F Global \\ COMMAND_F_GLOBAL_TOGGLE("&c&l[!] &7You have &b%1$s &7Global Chat"), COMMAND_F_GLOBAL_DESCRIPTION("Toggle global chat and only allow factions based chats"), @@ -979,6 +986,10 @@ public enum TL { GENERIC_PLACEHOLDER(""), GENERIC_NOTENOUGHMONEY("&cYou dont have enough money!"), GENERIC_MONEYTAKE("&c{amount} has been taken from your account."), + GENERIC_FPERM_OWNER_NOPERMISSION("&7This land is ownerclaimed, you need to be an owner to %1$s it."), + GENERIC_NOFACTION_FOUND("&cCouldn't find a faction with that name!"), + GENERIC_YOUMUSTBE("&cYour must be atleast %1$s to do this!"), + GENERIC_MEMBERONLY("&cYou must be in a faction to do this!"), MISSION_MISSION_STARTED("&f%1$s &dstarted the %2$s &fmission"), diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TagReplacer.java b/src/main/java/com/massivecraft/factions/zcore/util/TagReplacer.java index 1324b020..72ee09c7 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TagReplacer.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TagReplacer.java @@ -126,22 +126,22 @@ public enum TagReplacer { case FACTIONLESS: return String.valueOf(FPlayers.getInstance().getAllFPlayers().stream().filter(p -> !p.hasFaction()).count()); case MAX_ALLIES: - if (P.p.getConfig().getBoolean("max-relations.enabled", true)) { - return String.valueOf(P.p.getConfig().getInt("max-relations.ally", 10)); + if (FactionsPlugin.getInstance().getConfig().getBoolean("max-relations.enabled", true)) { + return String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-relations.ally", 10)); } return TL.GENERIC_INFINITY.toString(); case MAX_ENEMIES: - if (P.p.getConfig().getBoolean("max-relations.enabled", true)) { - return String.valueOf(P.p.getConfig().getInt("max-relations.enemy", 10)); + if (FactionsPlugin.getInstance().getConfig().getBoolean("max-relations.enabled", true)) { + return String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-relations.enemy", 10)); } return TL.GENERIC_INFINITY.toString(); case MAX_TRUCES: - if (P.p.getConfig().getBoolean("max-relations.enabled", true)) { - return String.valueOf(P.p.getConfig().getInt("max-relations.truce", 10)); + if (FactionsPlugin.getInstance().getConfig().getBoolean("max-relations.enabled", true)) { + return String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-relations.truce", 10)); } return TL.GENERIC_INFINITY.toString(); case MAX_WARPS: - return String.valueOf(P.p.getConfig().getInt("max-warps", 5)); + return String.valueOf(FactionsPlugin.getInstance().getConfig().getInt("max-warps", 5)); default: } return null; @@ -159,12 +159,12 @@ public enum TagReplacer { return getValue(); } - boolean minimal = P.p.getConfig().getBoolean("minimal-show", false); + boolean minimal = FactionsPlugin.getInstance().getConfig().getBoolean("minimal-show", false); if (fp != null) { switch (this) { case HEADER: - return P.p.txt.titleize(fac.getTag(fp)); + return FactionsPlugin.getInstance().txt.titleize(fac.getTag(fp)); case PLAYER_NAME: return fp.getName(); case FACTION: @@ -173,7 +173,7 @@ public enum TagReplacer { String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX; return fp.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); case PLAYER_GROUP: - return P.p.getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(fp.getId()))); + return FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(fp.getId()))); case PLAYER_BALANCE: return Econ.isSetup() ? Econ.getFriendlyBalance(fp) : TL.ECON_OFF.format("balance"); case PLAYER_POWER: @@ -216,7 +216,7 @@ public enum TagReplacer { case CREATE_DATE: return TL.sdf.format(fac.getFoundedDate()); case RAIDABLE: - boolean raid = P.p.getConfig().getBoolean("hcf.raidable", false) && fac.getLandRounded() >= fac.getPowerRounded(); + boolean raid = FactionsPlugin.getInstance().getConfig().getBoolean("hcf.raidable", false) && fac.getLandRounded() >= fac.getPowerRounded(); return raid ? TL.RAIDABLE_TRUE.toString() : TL.RAIDABLE_FALSE.toString(); case HOME_WORLD: return fac.hasHome() ? fac.getHome().getWorld().getName() : minimal ? null : "{ig}"; diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TagUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/TagUtil.java index 8469a6ce..bfa4e215 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TagUtil.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TagUtil.java @@ -4,7 +4,7 @@ package com.massivecraft.factions.zcore.util; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.P; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.util.MiscUtil; import me.clip.placeholderapi.PlaceholderAPI; @@ -98,11 +98,11 @@ public class TagUtil { } public static String parsePlaceholders(Player player, String line) { - if (P.p.isClipPlaceholderAPIHooked() && player.isOnline()) { + if (FactionsPlugin.getInstance().isClipPlaceholderAPIHooked() && player.isOnline()) { line = PlaceholderAPI.setPlaceholders(player, line); } - if (P.p.isMVdWPlaceholderAPIHooked() && player.isOnline()) { + if (FactionsPlugin.getInstance().isMVdWPlaceholderAPIHooked() && player.isOnline()) { line = be.maximvdw.placeholderapi.PlaceholderAPI.replacePlaceholders(player, line); } @@ -134,11 +134,11 @@ public class TagUtil { */ protected static List getFancy(Faction target, FPlayer fme, TagReplacer type, String prefix) { List fancyMessages = new ArrayList<>(); - boolean minimal = P.p.getConfig().getBoolean("minimal-show", false); + boolean minimal = FactionsPlugin.getInstance().getConfig().getBoolean("minimal-show", false); switch (type) { case ALLIES_LIST: - FancyMessage currentAllies = P.p.txt.parseFancy(prefix); + FancyMessage currentAllies = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstAlly = true; for (Faction otherFaction : Factions.getInstance().getAllFactions()) { if (otherFaction == target) { @@ -158,7 +158,7 @@ public class TagUtil { fancyMessages.add(currentAllies); return firstAlly && minimal ? null : fancyMessages; // we must return here and not outside the switch case ENEMIES_LIST: - FancyMessage currentEnemies = P.p.txt.parseFancy(prefix); + FancyMessage currentEnemies = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstEnemy = true; for (Faction otherFaction : Factions.getInstance().getAllFactions()) { if (otherFaction == target) { @@ -178,7 +178,7 @@ public class TagUtil { fancyMessages.add(currentEnemies); return firstEnemy && minimal ? null : fancyMessages; // we must return here and not outside the switch case TRUCES_LIST: - FancyMessage currentTruces = P.p.txt.parseFancy(prefix); + FancyMessage currentTruces = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstTruce = true; for (Faction otherFaction : Factions.getInstance().getAllFactions()) { if (otherFaction == target) { @@ -198,7 +198,7 @@ public class TagUtil { fancyMessages.add(currentTruces); return firstTruce && minimal ? null : fancyMessages; // we must return here and not outside the switch case ONLINE_LIST: - FancyMessage currentOnline = P.p.txt.parseFancy(prefix); + FancyMessage currentOnline = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstOnline = true; for (FPlayer p : MiscUtil.rankOrder(target.getFPlayersWhereOnline(true, fme))) { if (fme != null && fme.getPlayer() != null && !fme.getPlayer().canSee(p.getPlayer())) { @@ -216,7 +216,7 @@ public class TagUtil { fancyMessages.add(currentOnline); return firstOnline && minimal ? null : fancyMessages; // we must return here and not outside the switch case OFFLINE_LIST: - FancyMessage currentOffline = P.p.txt.parseFancy(prefix); + FancyMessage currentOffline = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstOffline = true; for (FPlayer p : MiscUtil.rankOrder(target.getFPlayers())) { String name = p.getNameAndTitle(); @@ -234,7 +234,7 @@ public class TagUtil { fancyMessages.add(currentOffline); return firstOffline && minimal ? null : fancyMessages; // we must return here and not outside the switch case ALTS: - FancyMessage alts = P.p.txt.parseFancy(prefix); + FancyMessage alts = FactionsPlugin.getInstance().txt.parseFancy(prefix); boolean firstAlt = true; for (FPlayer p : target.getAltPlayers()) { String name = p.getName(); @@ -271,7 +271,7 @@ public class TagUtil { */ private static List tipFaction(Faction faction) { List lines = new ArrayList<>(); - for (String line : P.p.getConfig().getStringList("tooltips.list")) { + for (String line : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.list")) { lines.add(ChatColor.translateAlternateColorCodes('&', TagUtil.parsePlain(faction, line))); } return lines; @@ -285,7 +285,7 @@ public class TagUtil { */ private static List tipPlayer(FPlayer fplayer) { List lines = new ArrayList<>(); - for (String line : P.p.getConfig().getStringList("tooltips.show")) { + for (String line : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.show")) { lines.add(ChatColor.translateAlternateColorCodes('&', TagUtil.parsePlain(fplayer, line))); } return lines; diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java index 74df651c..6c4fe525 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java @@ -106,7 +106,7 @@ public class TextUtil { // -------------------------------------------- // public static String parseColorAcc(String string) { - return string.replace("`e", "").replace("`r", ChatColor.RED.toString()).replace("`R", ChatColor.DARK_RED.toString()).replace("`y", ChatColor.YELLOW.toString()).replace("`Y", ChatColor.GOLD.toString()).replace("`g", ChatColor.GREEN.toString()).replace("`G", ChatColor.DARK_GREEN.toString()).replace("`a", ChatColor.AQUA.toString()).replace("`A", ChatColor.DARK_AQUA.toString()).replace("`b", ChatColor.BLUE.toString()).replace("`B", ChatColor.DARK_BLUE.toString()).replace("`plugin", ChatColor.LIGHT_PURPLE.toString()).replace("`P", ChatColor.DARK_PURPLE.toString()).replace("`k", ChatColor.BLACK.toString()).replace("`s", ChatColor.GRAY.toString()).replace("`S", ChatColor.DARK_GRAY.toString()).replace("`w", ChatColor.WHITE.toString()); + return string.replace("`e", "").replace("`r", ChatColor.RED.toString()).replace("`R", ChatColor.DARK_RED.toString()).replace("`y", ChatColor.YELLOW.toString()).replace("`Y", ChatColor.GOLD.toString()).replace("`g", ChatColor.GREEN.toString()).replace("`G", ChatColor.DARK_GREEN.toString()).replace("`a", ChatColor.AQUA.toString()).replace("`A", ChatColor.DARK_AQUA.toString()).replace("`b", ChatColor.BLUE.toString()).replace("`B", ChatColor.DARK_BLUE.toString()).replace("`plugin", ChatColor.LIGHT_PURPLE.toString()).replace("`FactionsPlugin", ChatColor.DARK_PURPLE.toString()).replace("`k", ChatColor.BLACK.toString()).replace("`s", ChatColor.GRAY.toString()).replace("`S", ChatColor.DARK_GRAY.toString()).replace("`w", ChatColor.WHITE.toString()); } public static String parseColorTags(String string) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 3ceba768..52d8307f 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -741,7 +741,7 @@ Missions-GUI-Title: '&bFaction Missions' MaximumMissionsAllowedAtOnce: 1 Mission-Progress-Format: '&b&lProgression: &f{progress}&7/&e{total}' -#Mission Types: KILL, MINE, FISH +#Mission Types: KILL, MINE, FISH, BREED, TAME Missions: sugarcane: Slot: 11 @@ -778,6 +778,18 @@ Missions: Amount: 100 Reward: Commands: ["f points add %faction% 100"] + animaltaming: + Slot: 20 + Material: "BONE" + Name: "&f100 &cTamed Animals" + Lore: + - "&b&lTame an animal &n100&r &d<imes" + Mission: + Type: "TAME" + EntityType: "ALL" + Amount: 100 + Reward: + Commands: ["f points add %faction% 100"] ############################################################ # +------------------------------------------------------+ # @@ -1040,17 +1052,22 @@ fupgrades: slots: - 22 +############################################################ +# +------------------------------------------------------+ # +# | Faction Banners | # +# +------------------------------------------------------+ # +############################################################ fbanners: - Enabled: false + Enabled: true Item: - Name: '&e&l*&f&l*&e&l* &c&lWar Banner &7(Place) &e&l*&f&l*&e&l*' + Name: '&c&l*&f&l*&c&l* &c&lWar Banner &7(Place) &c&l*&f&l*&c&l*' Lore: - '&7Place this banner in the &nWarzone.&7 This' - '&7will create a &nWarp Point&7 for your faction members.' - '' - - '&c&lEffects' - - '&c&l* &fStrength II' - - '&c&l* &fSpeed II' + - '&e&lEffects' + - '&e&l* &fStrength II' + - '&e&l* &fSpeed II' Banner-Cost: 5000 #The amount charged to change a banner into a War Banner Banner-Time: 60 #IN SECONDS - This is how long the banner will last. Banner-Place-Cooldown: 300 diff --git a/src/main/resources/lang/it_IT.yml b/src/main/resources/lang/it_IT.yml index f389a1c4..ad9e911a 100644 --- a/src/main/resources/lang/it_IT.yml +++ b/src/main/resources/lang/it_IT.yml @@ -1,4 +1,4 @@ -# Lang file for P by drtshock & Driftay +# Lang file for FactionsPlugin by drtshock & Driftay # Use & for color codes. # Made with love <3 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1136d72a..ce00422c 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Factions version: ${project.version} api-version: 1.13 -main: com.massivecraft.factions.P +main: com.massivecraft.factions.FactionsPlugin authors: [Olof Larsson, Brett Flannigan, drtshock, ProSavage, SvenjaReißaus, FroggyKnight, Driftay] softdepend: [Skript, CoreProtect, PlayerVaults, PlaceholderAPI, MVdWPlaceholderAPI, PermissionsEx, Permissions, Essentials, EssentialsChat, HeroChat, iChat, LocalAreaChat, LWC, nChat, ChatManager, CAPI, AuthMe, Vault, Spout, WorldEdit, WorldGuard, AuthDB, CaptureThePoints, CombatTag, dynmap, FactionsTop] @@ -26,6 +26,7 @@ permissions: factions.*: description: This is just an alias for factions.kit.admin children: + factions.convertconfig: true factions.kit.admin: true factions.kit.mod: description: All faction permissions but configuration and persistance.