mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-28 03:34:43 +02:00
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:
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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>();
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user