MASSIVE Permissions overhaul. Added a handful of new permissions,

renamed a few more. Changed Green Terra to handle blocks based on
perms rather than the config file.

For more details, read the diff.
This commit is contained in:
GJ
2013-02-19 00:56:25 -05:00
parent 2eab93292e
commit 701822c69f
73 changed files with 513 additions and 998 deletions

View File

@ -13,11 +13,12 @@ import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.utilities.PerksUtils;
import com.gmail.nossr50.skills.utilities.SkillTools;
import com.gmail.nossr50.skills.utilities.SkillType;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.StringUtils;
import com.gmail.nossr50.util.Users;
public abstract class SkillCommand implements CommandExecutor {
private SkillType skill;
protected SkillType skill;
private String skillString;
protected Player player;
@ -49,8 +50,8 @@ public abstract class SkillCommand implements CommandExecutor {
}
skillValue = profile.getSkillLevel(skill);
isLucky = player.hasPermission("mcmmo.perks.lucky." + skill.toString().toLowerCase());
hasEndurance = (player.hasPermission("mcmmo.perks.activationtime.twelveseconds") || player.hasPermission("mcmmo.perks.activationtime.eightseconds") || player.hasPermission("mcmmo.perks.activationtime.fourseconds"));
isLucky = Permissions.lucky(sender, skill);
hasEndurance = (Permissions.twelveSecondActivationBoost(sender) || Permissions.eightSecondActivationBoost(sender) || Permissions.fourSecondActivationBoost(sender));
dataCalculations();
permissionsCheck();

View File

@ -3,17 +3,18 @@ package com.gmail.nossr50.skills;
import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.skills.utilities.PerksUtils;
import com.gmail.nossr50.skills.utilities.SkillType;
import com.gmail.nossr50.util.Permissions;
public abstract class SkillManager {
protected McMMOPlayer mcMMOPlayer;
protected int skillLevel;
protected int activationChance;
protected SkillType skill;
public SkillManager(McMMOPlayer mcMMOPlayer, SkillType skill) {
this.mcMMOPlayer = mcMMOPlayer;
this.skillLevel = mcMMOPlayer.getProfile().getSkillLevel(skill);
this.activationChance = PerksUtils.handleLuckyPerks(Permissions.lucky(mcMMOPlayer.getPlayer(), skill));
this.activationChance = PerksUtils.handleLuckyPerks(mcMMOPlayer.getPlayer(), skill);
this.skill = skill;
}
public McMMOPlayer getMcMMOPlayer() {
@ -27,4 +28,8 @@ public abstract class SkillManager {
public int getActivationChance() {
return activationChance;
}
public SkillType getSkill() {
return skill;
}
}

View File

@ -45,9 +45,9 @@ public class ArcheryCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canSkillShot = Permissions.archeryBonus(player);
canSkillShot = Permissions.bonusDamage(player, skill);
canDaze = Permissions.daze(player);
canRetrieve = Permissions.trackArrows(player);
canRetrieve = Permissions.arrowRetrieval(player);
}
@Override

View File

@ -75,7 +75,7 @@ public class ArcheryManager extends SkillManager {
* @param event The event to modify.
*/
public void skillShot(EntityDamageEvent event) {
if (skillLevel >= Archery.skillShotIncreaseLevel && Permissions.archeryBonus(mcMMOPlayer.getPlayer())) {
if (skillLevel >= Archery.skillShotIncreaseLevel && Permissions.bonusDamage(mcMMOPlayer.getPlayer(), skill)) {
SkillShotEventHandler eventHandler = new SkillShotEventHandler(this, event);
eventHandler.calculateDamageBonus();

View File

@ -52,9 +52,9 @@ public class AxesCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canSkullSplitter = Permissions.skullSplitter(player);
canCritical = Permissions.criticalHit(player);
canBonusDamage = Permissions.axeBonus(player);
canImpact = Permissions.impact(player);
canCritical = Permissions.criticalStrikes(player);
canBonusDamage = Permissions.bonusDamage(player, skill);
canImpact = Permissions.armorImpact(player);
canGreaterImpact = Permissions.greaterImpact(player);
}

View File

@ -67,7 +67,7 @@ public class Excavation {
Player player = mcMMOPlayer.getPlayer();
List<ExcavationTreasure> treasures = new ArrayList<ExcavationTreasure>();
if (Permissions.excavationTreasures(player)) {
if (Permissions.excavationTreasureHunter(player)) {
switch (material) {
case DIRT:
treasures = TreasuresConfig.getInstance().excavationFromDirt;
@ -105,7 +105,7 @@ public class Excavation {
for (ExcavationTreasure treasure : treasures) {
if (mcMMOPlayer.getProfile().getSkillLevel(SkillType.EXCAVATION) >= treasure.getDropLevel()) {
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyExcavation(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.EXCAVATION);
if (Misc.getRandom().nextDouble() * activationChance <= treasure.getDropChance()) {
xp += treasure.getXp();

View File

@ -27,7 +27,7 @@ public class ExcavationCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canGigaDrill = Permissions.gigaDrillBreaker(player);
canTreasureHunt = Permissions.excavationTreasures(player);
canTreasureHunt = Permissions.excavationTreasureHunter(player);
}
@Override

View File

@ -119,7 +119,7 @@ public final class Fishing {
treasureXp = treasure.getXp();
ItemStack treasureDrop = treasure.getDrop();
if (Permissions.fishingMagic(player) && beginMagicHunter(player, skillLevel, treasureDrop, player.getWorld().hasStorm())) {
if (Permissions.magicHunter(player) && beginMagicHunter(player, skillLevel, treasureDrop, player.getWorld().hasStorm())) {
player.sendMessage(LocaleLoader.getString("Fishing.MagicFound"));
}
@ -130,7 +130,9 @@ public final class Fishing {
}
mcMMOPlayer.beginXpGain(SkillType.FISHING, Config.getInstance().getFishingBaseXP() + treasureXp);
event.setExpToDrop(event.getExpToDrop() * getVanillaXpMultiplier(skillLevel));
if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) {
event.setExpToDrop(event.getExpToDrop() * getVanillaXpMultiplier(skillLevel));
}
}
/**
@ -141,7 +143,7 @@ public final class Fishing {
* @return Chosen treasure
*/
private static FishingTreasure checkForTreasure(Player player, int skillLevel) {
if (!Config.getInstance().getFishingDropsEnabled() || !Permissions.fishingTreasures(player)) {
if (!Config.getInstance().getFishingDropsEnabled() || !Permissions.fishingTreasureHunter(player)) {
return null;
}
@ -161,7 +163,7 @@ public final class Fishing {
FishingTreasure treasure = rewards.get(Misc.getRandom().nextInt(rewards.size()));
ItemStack treasureDrop = treasure.getDrop();
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyFishing(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.FISHING);
if (Misc.getRandom().nextDouble() * activationChance > treasure.getDropChance()) {
return null;
@ -190,7 +192,7 @@ public final class Fishing {
return false;
}
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyFishing(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.FISHING);
if (storm) {
activationChance = (int) (activationChance * 0.909);

View File

@ -51,9 +51,9 @@ public class FishingCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canTreasureHunt = Permissions.fishingTreasures(player);
canMagicHunt = Permissions.fishingMagic(player);
canShake = Permissions.shakeMob(player);
canTreasureHunt = Permissions.fishingTreasureHunter(player);
canMagicHunt = Permissions.magicHunter(player);
canShake = Permissions.shake(player);
canFishermansDiet = Permissions.fishermansDiet(player);
}

View File

@ -19,8 +19,8 @@ import org.bukkit.potion.PotionType;
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
import com.gmail.nossr50.skills.utilities.CombatTools;
import com.gmail.nossr50.skills.utilities.PerksUtils;
import com.gmail.nossr50.skills.utilities.SkillType;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
public final class ShakeMob {
private ShakeMob() {}
@ -33,7 +33,7 @@ public final class ShakeMob {
* @param skillLevel Fishing level of the player
*/
public static void process(Player player, LivingEntity mob, int skillLevel) {
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyFishing(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.FISHING);
if (getShakeProbability(skillLevel) <= Misc.getRandom().nextInt(activationChance)) {
return;

View File

@ -50,11 +50,6 @@ public class Herbalism {
public static double hylianLuckMaxChance = AdvancedConfig.getInstance().getHylianLuckChanceMax();
public static int hylianLuckMaxLevel = AdvancedConfig.getInstance().getHylianLucksMaxLevel();
public static boolean greenTerraWalls = Config.getInstance().getHerbalismGreenThumbCobbleWallToMossyWall();
public static boolean greenTerraSmoothBrick = Config.getInstance().getHerbalismGreenThumbSmoothbrickToMossy();
public static boolean greenTerraDirt = Config.getInstance().getHerbalismGreenThumbDirtToGrass();
public static boolean greenTerraCobble = Config.getInstance().getHerbalismGreenThumbCobbleToMossy();
/**
* Handle the farmers diet skill.
*
@ -94,27 +89,27 @@ public class Herbalism {
if (SkillTools.blockBreakSimulate(block, player, false)) {
Material type = block.getType();
if (!Permissions.greenThumbBlock(player, type)) {
return;
}
switch (type) {
case SMOOTH_BRICK:
if (greenTerraSmoothBrick && block.getData() == 0x0) {
if (block.getData() == 0x0) {
block.setData((byte) 0x1);
}
return;
case DIRT:
if (greenTerraDirt) {
block.setType(Material.GRASS);
}
block.setType(Material.GRASS);
return;
case COBBLESTONE:
if (greenTerraCobble) {
block.setType(Material.MOSSY_COBBLESTONE);
}
block.setType(Material.MOSSY_COBBLESTONE);
return;
case COBBLE_WALL:
if (greenTerraWalls && block.getData() == 0x0) {
if (block.getData() == 0x0) {
block.setData((byte) 0x1);
}
return;
@ -190,8 +185,8 @@ public class Herbalism {
xp = customBlock.getXpGain();
}
if (Permissions.herbalismDoubleDrops(player)) {
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyHerbalism(player));
if (Permissions.doubleDrops(player, SkillType.HERBALISM)) {
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.HERBALISM);
double chance = (doubleDropsMaxChance / doubleDropsMaxLevel) * SkillTools.skillCheck(herbLevel, doubleDropsMaxLevel);
if (chance > Misc.getRandom().nextInt(activationChance)) {
@ -255,7 +250,7 @@ public class Herbalism {
return;
}
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyHerbalism(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.HERBALISM);
float chance = (float) (greenThumbMaxChance / greenThumbMaxLevel * herbLevel);
if (chance > greenThumbMaxChance) {
@ -302,7 +297,7 @@ public class Herbalism {
player.setItemInHand(new ItemStack(Material.SEEDS, seeds - 1));
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyHerbalism(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.HERBALISM);
float chance = (float) ((greenThumbMaxChance / greenThumbMaxLevel) * skillLevel);
if (chance > greenThumbMaxChance) chance = (float) greenThumbMaxChance;
@ -319,7 +314,7 @@ public class Herbalism {
int skillLevel = Users.getPlayer(player).getProfile().getSkillLevel(SkillType.HERBALISM);
double chance = (hylianLuckMaxChance / hylianLuckMaxLevel) * SkillTools.skillCheck(skillLevel, hylianLuckMaxLevel);
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyHerbalism(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.HERBALISM);
if (chance > Misc.getRandom().nextInt(activationChance)) {
List<HylianTreasure> treasures = new ArrayList<HylianTreasure>();

View File

@ -69,20 +69,7 @@ public enum HerbalismBlock {
}
public boolean hasGreenThumbPermission(Player player) {
switch (this) {
case CARROT:
return Permissions.greenThumbCarrots(player);
case COCOA:
return Permissions.greenThumbCocoa(player);
case CROPS:
return Permissions.greenThumbWheat(player);
case POTATO:
return Permissions.greenThumbPotatoes(player);
case NETHER_WARTS:
return Permissions.greenThumbNetherwart(player);
default:
return false;
}
return Permissions.greenThumbPlant(player, blockType);
}
public static HerbalismBlock getHerbalismBlock(Material blockType) {

View File

@ -1,5 +1,7 @@
package com.gmail.nossr50.skills.herbalism;
import org.bukkit.Material;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.SkillCommand;
import com.gmail.nossr50.skills.utilities.SkillType;
@ -61,10 +63,10 @@ public class HerbalismCommand extends SkillCommand {
protected void permissionsCheck() {
hasHylianLuck = Permissions.hylianLuck(player);
canGreenTerra = Permissions.greenTerra(player);
canGreenThumbWheat = Permissions.greenThumbWheat(player);
canGreenThumbBlocks = Permissions.greenThumbBlocks(player);
canGreenThumbWheat = Permissions.greenThumbPlant(player, Material.CROPS); //TODO: This isn't really accurate - they could have perms for other crops but not wheat.
canGreenThumbBlocks = (Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLE_WALL) || Permissions.greenThumbBlock(player, Material.SMOOTH_BRICK));
canFarmersDiet = Permissions.farmersDiet(player);
canDoubleDrop = Permissions.herbalismDoubleDrops(player);
canDoubleDrop = Permissions.doubleDrops(player, skill);
doubleDropsDisabled = Herbalism.doubleDropsDisabled;
}

View File

@ -88,9 +88,9 @@ public class MiningCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canBiggerBombs = Permissions.biggerBombs(player);
canBlast = Permissions.blastMining(player);
canBlast = Permissions.remoteDetonation(player);
canDemoExpert = Permissions.demolitionsExpertise(player);
canDoubleDrop = Permissions.miningDoubleDrops(player);
canDoubleDrop = Permissions.doubleDrops(player, skill);
canSuperBreaker = Permissions.superBreaker(player);
doubleDropsDisabled = Mining.doubleDropsDisabled;
}

View File

@ -112,7 +112,7 @@ public class MiningManager extends SkillManager{
MiningBlockEventHandler eventHandler = new MiningBlockEventHandler(this, block);
eventHandler.processXPGain();
if (!Permissions.miningDoubleDrops(mcMMOPlayer.getPlayer())) {
if (!Permissions.doubleDrops(mcMMOPlayer.getPlayer(), skill)) {
return;
}

View File

@ -110,7 +110,7 @@ public class Repair {
for (Entry<Enchantment, Integer> enchant : enchants.entrySet()) {
Enchantment enchantment = enchant.getKey();
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyRepair(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.REPAIR);
if (Misc.getRandom().nextInt(activationChance) <= getEnchantChance(rank)) {
int enchantLevel = enchant.getValue();
@ -237,9 +237,9 @@ public class Repair {
int chance = (int) ((SUPER_REPAIR_CHANCE_MAX / SUPER_REPAIR_MAX_BONUS_LEVEL) * skillLevel);
if (skillLevel >= SUPER_REPAIR_MAX_BONUS_LEVEL) chance = (int) SUPER_REPAIR_CHANCE_MAX;
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyRepair(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.REPAIR);
if (chance > Misc.getRandom().nextInt(activationChance) && Permissions.repairBonus(player)) {
if (chance > Misc.getRandom().nextInt(activationChance) && Permissions.superRepair(player)) {
player.sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
return true;
}

View File

@ -69,17 +69,17 @@ public class RepairCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canSuperRepair = Permissions.repairBonus(player);
canSuperRepair = Permissions.superRepair(player);
canMasterRepair = Permissions.repairMastery(player);
canArcaneForge = Permissions.arcaneForging(player);
canSalvage = Permissions.salvage(player);
canRepairDiamond = Permissions.diamondRepair(player);
canRepairGold = Permissions.goldRepair(player);
canRepairIron = Permissions.ironRepair(player);
canRepairStone = Permissions.stoneRepair(player);
canRepairString = Permissions.stringRepair(player);
canRepairLeather = Permissions.leatherRepair(player);
canRepairWood = Permissions.woodRepair(player);
canRepairDiamond = Permissions.repairDiamond(player);
canRepairGold = Permissions.repairGold(player);
canRepairIron = Permissions.repairIron(player);
canRepairStone = Permissions.repairStone(player);
canRepairString = Permissions.repairString(player);
canRepairLeather = Permissions.repairLeather(player);
canRepairWood = Permissions.repairWood(player);
arcaneBypass = Permissions.arcaneBypass(player);
}

View File

@ -18,13 +18,13 @@ public enum RepairItemType {
public boolean getPermissions(Player player) {
switch (this) {
case ARMOR:
return Permissions.armorRepair(player);
return Permissions.repairArmor(player);
case TOOL:
return Permissions.toolRepair(player);
return Permissions.repairTools(player);
case OTHER:
return Permissions.otherRepair(player);
return Permissions.repairOtherItems(player);
default:
return false;

View File

@ -23,28 +23,28 @@ public enum RepairMaterialType {
public boolean getPermissions(Player player) {
switch (this) {
case STRING:
return Permissions.stringRepair(player);
return Permissions.repairString(player);
case LEATHER:
return Permissions.leatherRepair(player);
return Permissions.repairLeather(player);
case WOOD:
return Permissions.woodRepair(player);
return Permissions.repairWood(player);
case STONE:
return Permissions.stoneRepair(player);
return Permissions.repairStone(player);
case IRON:
return Permissions.ironRepair(player);
return Permissions.repairIron(player);
case GOLD:
return Permissions.goldRepair(player);
return Permissions.repairGold(player);
case DIAMOND:
return Permissions.diamondRepair(player);
return Permissions.repairDiamond(player);
case OTHER:
return Permissions.otherMaterialRepair(player);
return Permissions.repairOtherMaterials(player);
default:
return false;

View File

@ -51,7 +51,7 @@ public class FluxMiningEventHandler {
McMMOPlayer mcMMOPlayer = manager.getMcMMOPlayer();
if (Permissions.secondSmelt(mcMMOPlayer.getPlayer())) {
if (Permissions.doubleDrops(mcMMOPlayer.getPlayer(), manager.getSkill())) {
int chance = (int) ((Mining.doubleDropsMaxChance / Mining.doubleDropsMaxLevel) * (SkillTools.skillCheck(mcMMOPlayer.getProfile().getSkillLevel(SkillType.MINING), Mining.doubleDropsMaxLevel)));
Misc.randomDropItem(location, item, chance);
}

View File

@ -67,11 +67,11 @@ public class SmeltResourceEventHandler {
McMMOPlayer mcMMOPlayer = manager.getMcMMOPlayer();
Player player = mcMMOPlayer.getPlayer();
if (Permissions.mining(player)) {
if (Permissions.skillEnabled(player, SkillType.MINING)) {
mcMMOPlayer.beginXpGain(SkillType.MINING, xp / 2);
}
if (Permissions.repair(player)) {
if (Permissions.skillEnabled(player, SkillType.REPAIR)) {
mcMMOPlayer.beginXpGain(SkillType.REPAIR, xp / 2);
}
}

View File

@ -58,9 +58,9 @@ public class SmeltingCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canFuelEfficiency = Permissions.fuelEfficiency(player);
canSecondSmelt = Permissions.secondSmelt(player);
canSecondSmelt = Permissions.doubleDrops(player, skill);
canFluxMine = Permissions.fluxMining(player);
canVanillaXPBoost = Permissions.smeltingVanillaXPBoost(player);
canVanillaXPBoost = Permissions.vanillaXpBoost(player, skill);
}
@Override

View File

@ -44,11 +44,11 @@ public class SmeltingManager extends SkillManager {
SmeltResourceEventHandler eventHandler = new SmeltResourceEventHandler(this, event);
if (Permissions.smelting(player)) {
if (Permissions.skillEnabled(player, skill)) {
eventHandler.handleXPGain();
}
if (!Permissions.secondSmelt(player)) {
if (!Permissions.doubleDrops(player, skill)) {
return;
}
@ -74,7 +74,7 @@ public class SmeltingManager extends SkillManager {
}
public void vanillaXPBoost(FurnaceExtractEvent event) {
if (skillLevel < Smelting.vanillaXPBoostRank1Level || !Permissions.smeltingVanillaXPBoost(mcMMOPlayer.getPlayer())) {
if (skillLevel < Smelting.vanillaXPBoostRank1Level || !Permissions.vanillaXpBoost(mcMMOPlayer.getPlayer(), skill)) {
return;
}

View File

@ -49,7 +49,7 @@ public class SwordsCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canBleed = Permissions.swordsBleed(player);
canBleed = Permissions.bleed(player);
canCounter = Permissions.counterAttack(player);
canSerratedStrike = Permissions.serratedStrikes(player);
}

View File

@ -60,8 +60,8 @@ public class UnarmedCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canBerserk = Permissions.berserk(player);
canBonusDamage = Permissions.unarmedBonus(player);
canDeflect = Permissions.deflect(player);
canBonusDamage = Permissions.bonusDamage(player, skill);
canDeflect = Permissions.arrowDeflect(player);
canDisarm = Permissions.disarm(player);
canIronGrip = Permissions.ironGrip(player);
}

View File

@ -87,7 +87,7 @@ public class UnarmedManager extends SkillManager {
double chance = (Unarmed.ironGripMaxChance / Unarmed.ironGripMaxBonusLevel) * eventHandler.skillModifier;
if (chance > Misc.getRandom().nextInt(PerksUtils.handleLuckyPerks(Permissions.luckyUnarmed(defender)))) {
if (chance > Misc.getRandom().nextInt(PerksUtils.handleLuckyPerks(defender, skill))) {
eventHandler.sendAbilityMessages();
return true;
}

View File

@ -150,7 +150,7 @@ public enum AbilityType {
return Permissions.berserk(player);
case BLAST_MINING:
return Permissions.blastMining(player);
return Permissions.remoteDetonation(player);
case GIGA_DRILL_BREAKER:
return Permissions.gigaDrillBreaker(player);

View File

@ -87,7 +87,7 @@ public final class CombatTools {
return;
}
if (Permissions.swords(player)) {
if (Permissions.skillEnabled(player, SkillType.SWORDS)) {
McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
PlayerProfile profile = mcMMOPlayer.getProfile();
SwordsManager swordsManager = new SwordsManager(mcMMOPlayer);
@ -97,7 +97,7 @@ public final class CombatTools {
SkillTools.abilityCheck(player, SkillType.SWORDS);
}
if (Permissions.swordsBleed(player)) {
if (Permissions.bleed(player)) {
swordsManager.bleedCheck(target);
}
@ -118,7 +118,7 @@ public final class CombatTools {
return;
}
if (Permissions.axes(player)) {
if (Permissions.skillEnabled(player, SkillType.AXES)) {
McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
PlayerProfile profile = mcMMOPlayer.getProfile();
AxeManager axeManager = new AxeManager(mcMMOPlayer);
@ -127,15 +127,15 @@ public final class CombatTools {
SkillTools.abilityCheck(player, SkillType.AXES);
}
if (Permissions.axeBonus(player)) {
if (Permissions.bonusDamage(player, axeManager.getSkill())) {
axeManager.bonusDamage(event);
}
if (!target.isDead() && Permissions.criticalHit(player)) {
if (!target.isDead() && Permissions.criticalStrikes(player)) {
axeManager.criticalHitCheck(event, target);
}
if (!target.isDead() && Permissions.impact(player)) {
if (!target.isDead() && Permissions.armorImpact(player)) {
axeManager.impact(event, target);
}
@ -156,7 +156,7 @@ public final class CombatTools {
return;
}
if (Permissions.unarmed(player)) {
if (Permissions.skillEnabled(player, SkillType.UNARMED)) {
McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
PlayerProfile profile = mcMMOPlayer.getProfile();
UnarmedManager unarmedManager = new UnarmedManager(mcMMOPlayer);
@ -166,7 +166,7 @@ public final class CombatTools {
SkillTools.abilityCheck(player, SkillType.UNARMED);
}
if (Permissions.unarmedBonus(player)) {
if (Permissions.bonusDamage(player, unarmedManager.getSkill())) {
unarmedManager.bonusDamage(event);
}
@ -210,7 +210,7 @@ public final class CombatTools {
return;
}
if (Permissions.taming(master)) {
if (Permissions.skillEnabled(master, SkillType.TAMING)) {
McMMOPlayer mcMMOPlayer = Users.getPlayer(master);
TamingManager tamingManager = new TamingManager(mcMMOPlayer);
int skillLevel = tamingManager.getSkillLevel();
@ -303,13 +303,13 @@ public final class CombatTools {
return;
}
if (Permissions.archery(shooter)) {
if (Permissions.skillEnabled(shooter, SkillType.ARCHERY)) {
McMMOPlayer mcMMOPlayer = Users.getPlayer(shooter);
ArcheryManager archeryManager = new ArcheryManager(mcMMOPlayer);
archeryManager.skillShot(event);
if (target instanceof Player) {
if (Unarmed.pvpEnabled && ((Player) target).getItemInHand().getType() == Material.AIR && Permissions.deflect((Player) target)) {
if (Unarmed.pvpEnabled && ((Player) target).getItemInHand().getType() == Material.AIR && Permissions.arrowDeflect((Player) target)) {
UnarmedManager unarmedManager = new UnarmedManager(Users.getPlayer((Player) target));
unarmedManager.deflectCheck(event);
}
@ -320,7 +320,7 @@ public final class CombatTools {
}
}
if (!(shooter.getItemInHand().containsEnchantment(Enchantment.ARROW_INFINITE)) && Permissions.trackArrows(shooter)) {
if (!(shooter.getItemInHand().containsEnchantment(Enchantment.ARROW_INFINITE)) && Permissions.arrowRetrieval(shooter)) {
archeryManager.trackArrows(target);
}

View File

@ -11,13 +11,13 @@ public final class PerksUtils {
private PerksUtils() {};
public static int handleCooldownPerks(Player player, int cooldown) {
if (Permissions.cooldownsHalved(player)) {
if (Permissions.halvedCooldowns(player)) {
cooldown *= 0.5;
}
else if (Permissions.cooldownsThirded(player)) {
else if (Permissions.thirdedCooldowns(player)) {
cooldown *= (1.0 / 3.0);
}
else if (Permissions.cooldownsQuartered(player)) {
else if (Permissions.quarteredCooldowns(player)) {
cooldown *= 0.75;
}
@ -25,13 +25,13 @@ public final class PerksUtils {
}
public static int handleActivationPerks(Player player, int ticks, int maxTicks) {
if (Permissions.activationTwelve(player)) {
if (Permissions.twelveSecondActivationBoost(player)) {
ticks += 12;
}
else if (Permissions.activationEight(player)) {
else if (Permissions.eightSecondActivationBoost(player)) {
ticks += 8;
}
else if (Permissions.activationFour(player)) {
else if (Permissions.fourSecondActivationBoost(player)) {
ticks += 4;
}
@ -43,19 +43,19 @@ public final class PerksUtils {
}
public static int handleXpPerks(Player player, int xp) {
if (player.hasPermission("mcmmo.perks.xp.quadruple")) {
if (Permissions.quadrupleXp(player)) {
xp *= 4;
}
else if (player.hasPermission("mcmmo.perks.xp.triple")) {
else if (Permissions.tripleXp(player)) {
xp *= 3;
}
else if (player.hasPermission("mcmmo.perks.xp.150percentboost")) {
else if (Permissions.doubleAndOneHalfXp(player)) {
xp *= 2.5;
}
else if (player.hasPermission("mcmmo.perks.xp.150percentboost")) {
else if (Permissions.doubleXp(player)) {
xp *= 2;
}
else if (player.hasPermission("mcmmo.perks.xp.50percentboost")) {
else if (Permissions.oneAndOneHalfXp(player)) {
xp *= 1.5;
}
@ -68,8 +68,8 @@ public final class PerksUtils {
* @param isLucky true if the player has the appropriate "lucky" perk, false otherwise
* @return the activation chance
*/
public static int handleLuckyPerks(boolean isLucky) {
if (isLucky) {
public static int handleLuckyPerks(Player player, SkillType skill) {
if (Permissions.lucky(player, skill)) {
return LUCKY_SKILL_ACTIVATION_CHANCE;
}

View File

@ -316,11 +316,11 @@ public class SkillTools {
* @return true if the player has combat skills, false otherwise
*/
public static boolean hasCombatSkills(Player player) {
if (Permissions.axes(player)
|| Permissions.archery(player)
|| Permissions.swords(player)
|| Permissions.taming(player)
|| Permissions.unarmed(player)) {
if (Permissions.skillEnabled(player, SkillType.AXES)
|| Permissions.skillEnabled(player, SkillType.ARCHERY)
|| Permissions.skillEnabled(player, SkillType.SWORDS)
|| Permissions.skillEnabled(player, SkillType.TAMING)
|| Permissions.skillEnabled(player, SkillType.UNARMED)) {
return true;
}
@ -334,11 +334,11 @@ public class SkillTools {
* @return true if the player has gathering skills, false otherwise
*/
public static boolean hasGatheringSkills(Player player) {
if (Permissions.excavation(player)
|| Permissions.fishing(player)
|| Permissions.herbalism(player)
|| Permissions.mining(player)
|| Permissions.woodcutting(player)) {
if (Permissions.skillEnabled(player, SkillType.EXCAVATION)
|| Permissions.skillEnabled(player, SkillType.FISHING)
|| Permissions.skillEnabled(player, SkillType.HERBALISM)
|| Permissions.skillEnabled(player, SkillType.MINING)
|| Permissions.skillEnabled(player, SkillType.WOODCUTTING)) {
return true;
}
@ -352,7 +352,9 @@ public class SkillTools {
* @return true if the player has misc skills, false otherwise
*/
public static boolean hasMiscSkills(Player player) {
if (Permissions.acrobatics(player) || Permissions.repair(player)) {
if (Permissions.skillEnabled(player, SkillType.ACROBATICS)
|| Permissions.skillEnabled(player, SkillType.SMELTING)
|| Permissions.skillEnabled(player, SkillType.REPAIR)) {
return true;
}

View File

@ -77,7 +77,7 @@ public final class Woodcutting {
Player player = mcMMOPlayer.getPlayer();
if (Permissions.woodcuttingDoubleDrops(player)) {
if (Permissions.doubleDrops(player, SkillType.WOODCUTTING)) {
checkForDoubleDrop(mcMMOPlayer, block);
}
@ -143,7 +143,7 @@ public final class Woodcutting {
double configDoubleDropChance = ADVANCED_CONFIG.getWoodcuttingDoubleDropChance();
int configDoubleDropMaxLevel = ADVANCED_CONFIG.getWoodcuttingDoubleDropMaxLevel();
int probability = (int) ((configDoubleDropChance / configDoubleDropMaxLevel) * Users.getPlayer(player).getProfile().getSkillLevel(SkillType.WOODCUTTING));
int activationChance = PerksUtils.handleLuckyPerks(Permissions.luckyWoodcutting(player));
int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.WOODCUTTING);
if (probability > configDoubleDropChance) {
probability = (int) configDoubleDropChance;

View File

@ -38,7 +38,7 @@ public class WoodcuttingCommand extends SkillCommand {
@Override
protected void permissionsCheck() {
canTreeFell = Permissions.treeFeller(player);
canDoubleDrop = Permissions.woodcuttingDoubleDrops(player);
canDoubleDrop = Permissions.doubleDrops(player, skill);
canLeafBlow = Permissions.leafBlower(player);
}