mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-01-18 08:25:27 +01:00
Add a new child skill: Ranching
This commit is contained in:
parent
f0dcfb0346
commit
1ee82df723
@ -0,0 +1,146 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.skills.ranching.Ranching;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
|
||||
public class RanchingCommand extends SkillCommand {
|
||||
private String multipleBirthChance;
|
||||
private String multipleBirthChanceLucky;
|
||||
private int masterHerderTime;
|
||||
private String shearsMasteryChance;
|
||||
private String shearsMasteryChanceLucky;
|
||||
private String artisanButcherChance;
|
||||
private String artisanButcherChanceLucky;
|
||||
private int carnivoresDietRank;
|
||||
|
||||
private boolean canMultipleBirth;
|
||||
private boolean canMasterHerder;
|
||||
private boolean canShearsMastery;
|
||||
private boolean canArtisanButcher;
|
||||
private boolean canCarnivoresDiet;
|
||||
|
||||
public RanchingCommand() {
|
||||
super(SkillType.RANCHING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations() {
|
||||
// MULTIPLE BIRTH
|
||||
if (canMultipleBirth) {
|
||||
String[] multipleBirthStrings = calculateAbilityDisplayValues(Ranching.multipleBirthIncreaseLevel, Ranching.multipleBirthMaxChance);
|
||||
multipleBirthChance = multipleBirthStrings[0];
|
||||
multipleBirthChanceLucky = multipleBirthStrings[1];
|
||||
}
|
||||
|
||||
// MASTER HERDER
|
||||
if (canMasterHerder) {
|
||||
int masterHerderTime = (int) (300 - (skillValue / Ranching.masterHerderIncreaseLevel) * 10);
|
||||
|
||||
if (masterHerderTime < Ranching.masterHerderMinimumSeconds) {
|
||||
masterHerderTime = Ranching.masterHerderMinimumSeconds;
|
||||
}
|
||||
}
|
||||
|
||||
// SHEARS MASTERY
|
||||
if (canShearsMastery) {
|
||||
String[] shearsMasteryStrings = calculateAbilityDisplayValues(Ranching.shearsMasteryMaxLevel, Ranching.shearsMasteryMaxChance);
|
||||
shearsMasteryChance = shearsMasteryStrings[0];
|
||||
shearsMasteryChanceLucky = shearsMasteryStrings[1];
|
||||
}
|
||||
|
||||
// ARTISAN BUTCHER
|
||||
if (canArtisanButcher) {
|
||||
String[] artisanButcherStrings = calculateAbilityDisplayValues(Ranching.artisanButcherMaxLevel, Ranching.artisanButcherMaxChance);
|
||||
artisanButcherChance = artisanButcherStrings[0];
|
||||
artisanButcherChanceLucky = artisanButcherStrings[1];
|
||||
}
|
||||
|
||||
// CARNIVORES DIET
|
||||
if (canCarnivoresDiet) {
|
||||
carnivoresDietRank = calculateRank(Ranching.carnivoresDietMaxLevel, Ranching.carnivoresDietRankLevel1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck() {
|
||||
canMultipleBirth = Permissions.multipleBirth(player);
|
||||
canMasterHerder = Permissions.masterHerder(player);
|
||||
canShearsMastery = Permissions.shearsMastery(player);
|
||||
canArtisanButcher = Permissions.artisanButcher(player);
|
||||
canCarnivoresDiet = Permissions.carnivoresDiet(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean effectsHeaderPermissions() {
|
||||
return canMultipleBirth || canMasterHerder || canShearsMastery || canArtisanButcher || canCarnivoresDiet;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void effectsDisplay() {
|
||||
luckyEffectsDisplay();
|
||||
|
||||
if (canMultipleBirth) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Ranching.Effect.0"), LocaleLoader.getString("Ranching.Effect.1")));
|
||||
}
|
||||
|
||||
if (canMasterHerder) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Ranching.Effect.2"), LocaleLoader.getString("Ranching.Effect.3")));
|
||||
}
|
||||
|
||||
if (canShearsMastery) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Ranching.Effect.4"), LocaleLoader.getString("Ranching.Effect.5")));
|
||||
}
|
||||
|
||||
if (canArtisanButcher) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Ranching.Effect.6"), LocaleLoader.getString("Ranching.Effect.7")));
|
||||
}
|
||||
|
||||
if (canCarnivoresDiet) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Ranching.Effect.8"), LocaleLoader.getString("Ranching.Effect.9")));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean statsHeaderPermissions() {
|
||||
return canMultipleBirth || canMasterHerder || canShearsMastery || canArtisanButcher || canCarnivoresDiet;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void statsDisplay() {
|
||||
if (canMultipleBirth) {
|
||||
int unlockLevel = Ranching.multipleBirthIncreaseLevel;
|
||||
|
||||
if (skillValue < unlockLevel) {
|
||||
player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Ranching.Ability.Locked.0", unlockLevel)));
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString("Ranching.Ability.MultipleBirth", multipleBirthChance) + (isLucky ? LocaleLoader.getString("Perks.lucky.bonus", multipleBirthChanceLucky) : ""));
|
||||
}
|
||||
}
|
||||
|
||||
if (canMasterHerder) {
|
||||
int unlockLevel = Ranching.masterHerderIncreaseLevel;
|
||||
|
||||
if (skillValue < unlockLevel) {
|
||||
player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Ranching.Ability.Locked.1", unlockLevel)));
|
||||
}
|
||||
else {
|
||||
player.sendMessage(LocaleLoader.getString("Ranching.Ability.MasterHerder", masterHerderTime));
|
||||
}
|
||||
}
|
||||
|
||||
if (canShearsMastery) {
|
||||
player.sendMessage(LocaleLoader.getString("Ranching.Ability.ShearsMastery", shearsMasteryChance) + (isLucky ? LocaleLoader.getString("Perks.lucky.bonus", shearsMasteryChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canArtisanButcher) {
|
||||
player.sendMessage(LocaleLoader.getString("Ranching.Ability.ArtisanButcher", artisanButcherChance) + (isLucky ? LocaleLoader.getString("Perks.lucky.bonus", artisanButcherChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canCarnivoresDiet) {
|
||||
player.sendMessage(LocaleLoader.getString("Ranching.Ability.CarnivoresDiet", carnivoresDietRank));
|
||||
}
|
||||
}
|
||||
}
|
@ -180,6 +180,38 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
|
||||
public double getBlastRadiusModifierRank7() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank7", 4.0); }
|
||||
public double getBlastRadiusModifierRank8() { return config.getDouble("Skills.Mining.BlastRadiusModifier_Rank8", 4.0); }
|
||||
|
||||
/* RANCHING */
|
||||
public int getMultipleBirthIncreasekLevel() { return config.getInt("Skills.Ranching.MultipleBirth_IncreaseLevel", 50); }
|
||||
public int getMultipleBirthMaxChance() { return config.getInt("Skills.Ranching.MultipleBirth_ChanceMax", 30); }
|
||||
public int getMultipleBirthLitterModifier() { return config.getInt("Skills.Ranching.MultipleBirth_LitterModifier", 30); }
|
||||
|
||||
public int getMasterHerderIncreaseLevel() { return config.getInt("Skills.Ranching.MultipleBirth_IncreaseLevel", 50); }
|
||||
public int getMasterHerderMaxLevel() { return config.getInt("Skills.Ranching.MultipleBirth_MaxBonusLevel", 500); }
|
||||
public int getMasterHerderMinimumSeconds() { return config.getInt("Skills.Ranching.MultipleBirth_MinimumSeconds", 120); }
|
||||
|
||||
public int getShearsMasteryMaxLevel() { return config.getInt("Skills.Ranching.ShearsMastery_MaxBonusLevel", 500); }
|
||||
public int getShearsMasteryMaxChance() { return config.getInt("Skills.Ranching.ShearsMastery_ChanceMax", 20); }
|
||||
public int getShearsMasteryMaxBonus() { return config.getInt("Skills.Ranching.ShearsMastery_MaxBonus", 3); }
|
||||
|
||||
public int getArtisanButcherMaxLevel() { return config.getInt("Skills.Ranching.ArtisanButcher_MaxBonusLevel", 500); }
|
||||
public int getArtisanButcherMaxChance() { return config.getInt("Skills.Ranching.ArtisanButcher_ChanceMax", 20); }
|
||||
public int getArtisanButcherMaxBonus() { return config.getInt("Skills.Ranching.ArtisanButcher_MaxBonus", 3); }
|
||||
|
||||
public int getCarnivoresDietRankChange() { return config.getInt("Skills.Ranching.Carnivores_Diet_RankChange", 200); }
|
||||
|
||||
public int getRanchingVanillaXPBoostRank1Level() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank1Level", 100); }
|
||||
public int getRanchingVanillaXPBoostRank2Level() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank2Level", 300); }
|
||||
public int getRanchingVanillaXPBoostRank3Level() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank3Level", 500); }
|
||||
public int getRanchingVanillaXPBoostRank4Level() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank4Level", 700); }
|
||||
public int getRanchingVanillaXPBoostRank5Level() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank5Level", 900); }
|
||||
public int getRanchingVanillaXPBoostRank1Multiplier() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank1Multiplier", 2); }
|
||||
public int getRanchingVanillaXPBoostRank2Multiplier() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank2Multiplier", 3); }
|
||||
public int getRanchingVanillaXPBoostRank3Multiplier() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank3Multiplier", 4); }
|
||||
public int getRanchingVanillaXPBoostRank4Multiplier() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank4Multiplier", 5); }
|
||||
public int getRanchingVanillaXPBoostRank5Multiplier() { return config.getInt("Skills.Ranching.VanillaXPBoost_Rank5Multiplier", 6); }
|
||||
|
||||
|
||||
|
||||
/* REPAIR */
|
||||
public double getRepairMasteryMaxBonus() { return config.getDouble("Skills.Repair.RepairMastery_MaxBonusPercentage", 200.0D); }
|
||||
public int getRepairMasteryMaxLevel() { return config.getInt("Skills.Repair.RepairMastery_MaxBonusLevel", 1000); }
|
||||
|
@ -29,6 +29,7 @@ import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.ranching.RanchingManager;
|
||||
import com.gmail.nossr50.skills.repair.Repair;
|
||||
import com.gmail.nossr50.skills.repair.RepairManager;
|
||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||
@ -149,6 +150,10 @@ public class McMMOPlayer {
|
||||
return (MiningManager) skillManagers.get(SkillType.MINING);
|
||||
}
|
||||
|
||||
public RanchingManager getRanchingManager() {
|
||||
return (RanchingManager) skillManagers.get(SkillType.RANCHING);
|
||||
}
|
||||
|
||||
public RepairManager getRepairManager() {
|
||||
return (RepairManager) skillManagers.get(SkillType.REPAIR);
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.ranching.RanchingManager;
|
||||
import com.gmail.nossr50.skills.repair.RepairManager;
|
||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||
import com.gmail.nossr50.skills.swords.SwordsManager;
|
||||
@ -40,7 +41,8 @@ public enum SkillType {
|
||||
SWORDS(SwordsManager.class, Color.fromRGB(178, 34, 34), AbilityType.SERRATED_STRIKES, ToolType.SWORD),
|
||||
TAMING(TamingManager.class, Color.PURPLE),
|
||||
UNARMED(UnarmedManager.class, Color.BLACK, AbilityType.BERSERK, ToolType.FISTS),
|
||||
WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, AbilityType.TREE_FELLER, ToolType.AXE);
|
||||
WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, AbilityType.TREE_FELLER, ToolType.AXE),
|
||||
RANCHING(RanchingManager.class, Color.ORANGE);
|
||||
|
||||
private Class<? extends SkillManager> managerClass;
|
||||
private Color runescapeColor;
|
||||
@ -134,6 +136,7 @@ public enum SkillType {
|
||||
public boolean isChildSkill() {
|
||||
switch (this) {
|
||||
case SMELTING:
|
||||
case RANCHING:
|
||||
return true;
|
||||
|
||||
default:
|
||||
|
@ -44,6 +44,8 @@ import com.gmail.nossr50.skills.archery.Archery;
|
||||
import com.gmail.nossr50.skills.fishing.Fishing;
|
||||
import com.gmail.nossr50.skills.herbalism.Herbalism;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.ranching.Ranching;
|
||||
import com.gmail.nossr50.skills.ranching.RanchingManager;
|
||||
import com.gmail.nossr50.skills.taming.Taming;
|
||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
@ -355,13 +357,20 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
LivingEntity entity = event.getEntity();
|
||||
Player player = event.getEntity().getKiller();
|
||||
|
||||
if (Misc.isNPCEntity(entity)) {
|
||||
if (Misc.isNPCEntity(entity) || Misc.isNPCEntity(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
BleedTimerTask.remove(entity);
|
||||
Archery.arrowRetrievalCheck(entity);
|
||||
|
||||
if (Permissions.carnivoresDiet(player)) {
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
RanchingManager ranchingManager = mcMMOPlayer.getRanchingManager();
|
||||
ranchingManager.handleArtisanButcher(entity);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -510,6 +519,22 @@ public class EntityListener implements Listener {
|
||||
}
|
||||
return;
|
||||
|
||||
case COOKED_CHICKEN: /* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
|
||||
case GRILLED_PORK: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
|
||||
case COOKED_BEEF: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
|
||||
if (Permissions.carnivoresDiet(player)) {
|
||||
event.setFoodLevel(UserManager.getPlayer(player).getRanchingManager().handleCarnivoresDiet(Ranching.carnivoresDietRankLevel1, newFoodLevel));
|
||||
}
|
||||
return;
|
||||
|
||||
case RAW_CHICKEN: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
||||
case PORK: /* RESTORES 2 1/2 HUNGER - RESTORES 4 HUNGER @ 1000 */
|
||||
case RAW_BEEF: /* RESTORES 2 1/2 HUNGER - RESTORES 4 HUNGER @ 1000 */
|
||||
if (Permissions.carnivoresDiet(player)) {
|
||||
event.setFoodLevel(UserManager.getPlayer(player).getRanchingManager().handleCarnivoresDiet(Ranching.carnivoresDietRankLevel2, newFoodLevel));
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
@ -5,7 +5,9 @@ import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@ -19,12 +21,15 @@ import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.event.player.PlayerShearEntityEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.chat.ChatManager;
|
||||
@ -43,6 +48,8 @@ import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.ranching.Ranching;
|
||||
import com.gmail.nossr50.skills.ranching.RanchingManager;
|
||||
import com.gmail.nossr50.skills.repair.Repair;
|
||||
import com.gmail.nossr50.skills.repair.RepairManager;
|
||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||
@ -519,6 +526,68 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor PlayerInteractEntityEvent events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Entity entity = event.getRightClicked();
|
||||
|
||||
if (Misc.isNPCEntity(player) || player.getGameMode() == GameMode.CREATIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
ItemStack inHand = player.getItemInHand();
|
||||
|
||||
/* RANCHING */
|
||||
if (entity instanceof Ageable) {
|
||||
Ageable ageable = (Ageable) entity;
|
||||
RanchingManager ranchingManager = mcMMOPlayer.getRanchingManager();
|
||||
|
||||
if (Permissions.skillEnabled(player, SkillType.RANCHING) && ageable.canBreed() && ranchingManager.isBreedFood(entity, inHand)) {
|
||||
entity.setMetadata(mcMMO.animalBreedKey, new FixedMetadataValue(plugin, player.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor PlayerShearEntityEvent events.
|
||||
*
|
||||
* @param event The event to watch
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerShearEntity(PlayerShearEntityEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Entity entity = event.getEntity();
|
||||
|
||||
if (Misc.isNPCEntity(player) || player.getGameMode() == GameMode.CREATIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
/* RANCHING */
|
||||
RanchingManager ranchingManager = mcMMOPlayer.getRanchingManager();
|
||||
|
||||
/* Shears Mastery */
|
||||
if (Permissions.shearsMastery(player)) {
|
||||
if (entity.getType() == EntityType.SHEEP) {
|
||||
ranchingManager.handleShearsMasterySheep(entity);
|
||||
}
|
||||
else if (entity.getType() == EntityType.MUSHROOM_COW) {
|
||||
ranchingManager.handleShearsMasteryMooshroom(entity);
|
||||
}
|
||||
}
|
||||
|
||||
if (Permissions.skillEnabled(player, SkillType.RANCHING)) {
|
||||
ranchingManager.applyXpGain(Ranching.shearExperience);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor PlayerChat events.
|
||||
*
|
||||
|
@ -92,6 +92,7 @@ public class mcMMO extends JavaPlugin {
|
||||
public final static String infiniteArrowKey = "mcMMO: Infinite Arrow";
|
||||
public final static String bowForceKey = "mcMMO: Bow Force";
|
||||
public final static String arrowDistanceKey = "mcMMO: Arrow Distance";
|
||||
public final static String animalBreedKey = "mcMMO: Tracked Animal";
|
||||
|
||||
public static FixedMetadataValue metadataValue;
|
||||
|
||||
|
@ -0,0 +1,60 @@
|
||||
package com.gmail.nossr50.skills.ranching;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
|
||||
public class Ranching {
|
||||
// The order of the values is extremely important, a few methods depend on it to work properly
|
||||
protected enum Tier {
|
||||
FIVE(5) {
|
||||
@Override public int getLevel() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank5Level(); }
|
||||
@Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank5Multiplier(); }},
|
||||
FOUR(4) {
|
||||
@Override public int getLevel() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank4Level(); }
|
||||
@Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank4Multiplier(); }},
|
||||
THREE(3) {
|
||||
@Override public int getLevel() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank3Level(); }
|
||||
@Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank3Multiplier(); }},
|
||||
TWO(2) {
|
||||
@Override public int getLevel() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank2Level(); }
|
||||
@Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank2Multiplier(); }},
|
||||
ONE(1) {
|
||||
@Override public int getLevel() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank1Level(); }
|
||||
@Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getRanchingVanillaXPBoostRank1Multiplier(); }};
|
||||
|
||||
int numerical;
|
||||
|
||||
private Tier(int numerical) {
|
||||
this.numerical = numerical;
|
||||
}
|
||||
|
||||
public int toNumerical() {
|
||||
return numerical;
|
||||
}
|
||||
|
||||
abstract protected int getLevel();
|
||||
abstract protected int getVanillaXPBoostModifier();
|
||||
}
|
||||
|
||||
public static int multipleBirthIncreaseLevel = AdvancedConfig.getInstance().getMultipleBirthIncreasekLevel();
|
||||
public static int multipleBirthMaxChance = AdvancedConfig.getInstance().getMultipleBirthMaxChance();
|
||||
public static int multipleBirthLitterModifier = AdvancedConfig.getInstance().getMultipleBirthLitterModifier();
|
||||
|
||||
public static int masterHerderIncreaseLevel = AdvancedConfig.getInstance().getMultipleBirthIncreasekLevel();
|
||||
public static int masterHerderMaxLevel = AdvancedConfig.getInstance().getMasterHerderMaxLevel();
|
||||
public static int masterHerderMinimumSeconds = AdvancedConfig.getInstance().getMasterHerderMinimumSeconds();
|
||||
|
||||
public static int shearsMasteryMaxLevel = AdvancedConfig.getInstance().getShearsMasteryMaxLevel();
|
||||
public static int shearsMasteryMaxChance = AdvancedConfig.getInstance().getShearsMasteryMaxChance();
|
||||
public static int shearsMasteryMaxBonus = AdvancedConfig.getInstance().getShearsMasteryMaxBonus();
|
||||
|
||||
public static int artisanButcherMaxLevel = AdvancedConfig.getInstance().getArtisanButcherMaxLevel();
|
||||
public static int artisanButcherMaxChance = AdvancedConfig.getInstance().getArtisanButcherMaxChance();
|
||||
public static int artisanButcherMaxBonus = AdvancedConfig.getInstance().getArtisanButcherMaxBonus();
|
||||
|
||||
public static int carnivoresDietRankLevel1 = AdvancedConfig.getInstance().getCarnivoresDietRankChange();
|
||||
public static int carnivoresDietRankLevel2 = carnivoresDietRankLevel1 * 2;
|
||||
public static int carnivoresDietMaxLevel = carnivoresDietRankLevel1 * 5;
|
||||
|
||||
public static float shearExperience = 10;
|
||||
public static float breedExperience = 10;
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
package com.gmail.nossr50.skills.ranching;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Sheep;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.ranching.Ranching.Tier;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
|
||||
public class RanchingManager extends SkillManager {
|
||||
public RanchingManager(McMMOPlayer mcMMOPlayer) {
|
||||
super(mcMMOPlayer, SkillType.RANCHING);
|
||||
}
|
||||
|
||||
public boolean canUseMultipleBirth() {
|
||||
return getSkillLevel() >= Ranching.multipleBirthIncreaseLevel && Permissions.multipleBirth(getPlayer());
|
||||
}
|
||||
|
||||
public boolean canUseMasterHerder() {
|
||||
return getSkillLevel() >= Ranching.masterHerderIncreaseLevel && Permissions.masterHerder(getPlayer());
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean canUseVanillaXpBoost() {
|
||||
return getSkillLevel() >= Ranching.Tier.ONE.getLevel() && Permissions.vanillaXpBoost(getPlayer(), skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Carnivore's Diet ability
|
||||
*
|
||||
* @param rankChange The # of levels to change rank for the food
|
||||
* @param eventFoodLevel The initial change in hunger from the event
|
||||
* @return the modified change in hunger for the event
|
||||
*/
|
||||
public int handleCarnivoresDiet(int rankChange, int eventFoodLevel) {
|
||||
return SkillUtils.handleFoodSkills(getPlayer(), skill, eventFoodLevel, Ranching.carnivoresDietRankLevel1, Ranching.carnivoresDietMaxLevel, rankChange);
|
||||
}
|
||||
|
||||
public void handleShearsMasterySheep(Entity entity) {
|
||||
if (SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Ranching.shearsMasteryMaxChance, Ranching.shearsMasteryMaxLevel)) {
|
||||
Location location = entity.getLocation();
|
||||
Sheep sheep = (Sheep) entity;
|
||||
MaterialData wool = new MaterialData(Material.WOOL, sheep.getColor().getDyeData());
|
||||
|
||||
Misc.randomDropItems(location, wool.toItemStack(), Ranching.shearsMasteryMaxBonus);
|
||||
}
|
||||
}
|
||||
|
||||
public void handleShearsMasteryMooshroom(Entity entity) {
|
||||
if (SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Ranching.shearsMasteryMaxChance, Ranching.shearsMasteryMaxLevel)) {
|
||||
Location location = entity.getLocation();
|
||||
ItemStack itemStack = new ItemStack(Material.RED_MUSHROOM);
|
||||
|
||||
Misc.randomDropItems(location, itemStack, Ranching.shearsMasteryMaxBonus);
|
||||
}
|
||||
}
|
||||
|
||||
public void handleArtisanButcher(Entity entity) {
|
||||
if (SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Ranching.artisanButcherMaxChance, Ranching.artisanButcherMaxLevel)) {
|
||||
Material material = null;
|
||||
|
||||
switch (entity.getType()) {
|
||||
case CHICKEN:
|
||||
material = Material.RAW_CHICKEN;
|
||||
break;
|
||||
case COW:
|
||||
material = Material.RAW_BEEF;
|
||||
break;
|
||||
case PIG:
|
||||
material = Material.PORK;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
Misc.randomDropItems(entity.getLocation(), new ItemStack(material), Ranching.artisanButcherMaxBonus);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the vanilla XP boost for Ranching
|
||||
*
|
||||
* @param experience The amount of experience initially awarded by the event
|
||||
* @return the modified event damage
|
||||
*/
|
||||
public int handleVanillaXpBoost(int experience) {
|
||||
return experience * getVanillaXpMultiplier();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the vanilla XP multiplier
|
||||
*
|
||||
* @return the vanilla XP multiplier
|
||||
*/
|
||||
private int getVanillaXpMultiplier() {
|
||||
int skillLevel = getSkillLevel();
|
||||
|
||||
for (Tier tier : Tier.values()) {
|
||||
if (skillLevel >= tier.getLevel()) {
|
||||
return tier.getVanillaXPBoostModifier();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void handleMasterHerder(Entity entity, ItemStack inHand) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public boolean isBreedFood(Entity entity, ItemStack inHand) {
|
||||
// TODO Auto-generated method stub
|
||||
// Check if the entity and the item type match
|
||||
return false;
|
||||
}
|
||||
}
|
@ -166,6 +166,13 @@ public final class Permissions {
|
||||
public static boolean remoteDetonation(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.mining.blastmining.detonate"); }
|
||||
public static boolean superBreaker(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.mining.superbreaker"); }
|
||||
|
||||
/* RANCHING */
|
||||
public static boolean multipleBirth(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.ranching.multiplebirth"); }
|
||||
public static boolean masterHerder(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.ranching.masterherder"); }
|
||||
public static boolean shearsMastery(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.ranching.shearsmastery"); }
|
||||
public static boolean artisanButcher(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.ranching.artisanbutcher"); }
|
||||
public static boolean carnivoresDiet(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.ranching.carnivoresdiet"); }
|
||||
|
||||
/* REPAIR */
|
||||
public static boolean arcaneForging(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.repair.arcaneforging"); }
|
||||
public static boolean repairMastery(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.repair.repairmastery"); }
|
||||
|
@ -40,6 +40,7 @@ import com.gmail.nossr50.commands.skills.ExcavationCommand;
|
||||
import com.gmail.nossr50.commands.skills.FishingCommand;
|
||||
import com.gmail.nossr50.commands.skills.HerbalismCommand;
|
||||
import com.gmail.nossr50.commands.skills.MiningCommand;
|
||||
import com.gmail.nossr50.commands.skills.RanchingCommand;
|
||||
import com.gmail.nossr50.commands.skills.RepairCommand;
|
||||
import com.gmail.nossr50.commands.skills.SmeltingCommand;
|
||||
import com.gmail.nossr50.commands.skills.SwordsCommand;
|
||||
@ -102,6 +103,10 @@ public final class CommandRegistrationManager {
|
||||
command.setExecutor(new MiningCommand());
|
||||
break;
|
||||
|
||||
case RANCHING:
|
||||
command.setExecutor(new RanchingCommand());
|
||||
break;
|
||||
|
||||
case REPAIR:
|
||||
command.setExecutor(new RepairCommand());
|
||||
break;
|
||||
|
@ -244,6 +244,7 @@ public class SkillUtils {
|
||||
public static boolean hasMiscSkills(Player player) {
|
||||
return Permissions.skillEnabled(player, SkillType.ACROBATICS)
|
||||
|| Permissions.skillEnabled(player, SkillType.SMELTING)
|
||||
|| Permissions.skillEnabled(player, SkillType.RANCHING)
|
||||
|| Permissions.skillEnabled(player, SkillType.REPAIR);
|
||||
}
|
||||
|
||||
|
@ -9,3 +9,6 @@
|
||||
Smelting:
|
||||
- Mining
|
||||
- Repair
|
||||
Ranching:
|
||||
- Herbalism
|
||||
- Taming
|
@ -628,6 +628,7 @@ Guides.Herbalism=[[DARK_AQUA]]About Herbalism:\n[[YELLOW]]Herbalism is about col
|
||||
Guides.Mining=[[DARK_AQUA]]About Mining:\n[[YELLOW]]Mining consists of mining stone and ores. It provides bonuses\n[[YELLOW]]to the amount of materials dropped while mining.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill, you must mine with a pickaxe in hand.\n[[YELLOW]]Only certain blocks award XP.\n\n[[DARK_AQUA]]Compatible Materials:\n[[YELLOW]]Stone, Coal Ore, Iron Ore, Gold Ore, Diamond Ore, Redstone Ore,\n[[YELLOW]]Lapis Ore, Obsidian, Mossy Cobblestone, Ender Stone,\n[[YELLOW]]Glowstone, and Netherrack.\n\n[[DARK_AQUA]]How to use Super Breaker:\n[[YELLOW]]With a pickaxe in your hand, right click to ready your tool.\n[[YELLOW]]Once in this state, you have about 4 seconds to make contact\n[[YELLOW]]with Mining compatible materials, which will activate Super\n[[YELLOW]]Breaker.\n\n[[DARK_AQUA]]What is Super Breaker?\n[[YELLOW]]Super Breaker is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It triples your chance of extra items dropping and\n[[YELLOW]]enables instant break on Mining materials.\n\n[[DARK_AQUA]]How to use Blast Mining:\n[[YELLOW]]With a detonator in hand, which is a flint & steel by default,\n[[YELLOW]]crouch and right-click on TNT from a distance. This will cause the TNT\n[[YELLOW]]to instantly explode.\n\n[[DARK_AQUA]]How does Blast Mining work?\n[[YELLOW]]Blast Mining is an ability with a cooldown tied to the Mining\n[[YELLOW]]skill. It gives bonuses when mining with TNT and allows you\n[[YELLOW]]to remote detonate TNT. There are three parts to Blast Mining.\n[[YELLOW]]The first part is Bigger Bombs, which increases blast radius.\n[[YELLOW]]The second is Demolitions Expert, which decreases damage\n[[YELLOW]]from TNT explosions. The third part simply increases the\n[[YELLOW]]amount of ores dropped from TNT and decreases the\n[[YELLOW]]debris dropped.
|
||||
Guides.Page.Invalid=Not a valid page number!
|
||||
Guides.Page.OutOfRange=That page does not exist, there are only {0} total pages.
|
||||
Guides.Ranching=Coming soon...
|
||||
Guides.Repair=[[DARK_AQUA]]About Repair:\n[[YELLOW]]Repair allows you to use an iron block to repair armor and\n[[YELLOW]]tools, or a gold block to salvage armor and tools.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Repair tools or armor using the mcMMO Anvil. This is an\n[[YELLOW]]iron block by default and should not be confused with\n[[YELLOW]]the Vanilla Minecraft Anvil.\n[[DARK_AQUA]]How can I use Repair?\n[[YELLOW]]Place down a mcMMO Anvil and right-click to repair the item \n[[YELLOW]]you're currently holding. This consumes 1 item on every use.\n\n[[DARK_AQUA]]How does Repair Mastery work?\n[[YELLOW]]Repair Mastery increases the repair amount. The extra amount\n[[YELLOW]]repaired is influenced by your Repair skill level.\n\n[[DARK_AQUA]]How does Super Repair work?\n[[YELLOW]]Super Repair is a passive ability. When repairing an item,\n[[YELLOW]]it grants players a chance to repair an item with\n[[YELLOW]]double effectiveness.\n\n\n\n\n[[DARK_AQUA]]How does Arcane Forging work?\n[[YELLOW]]This passive ability allows you to repair items with a certain\n[[YELLOW]]chance of maintaining its enchantments. The enchants may be\n[[YELLOW]]kept at their existing levels, downgraded to a lower level,\n[[YELLOW]]or lost entirely.\n\n\n\n[[DARK_AQUA]]How does Salvage work?\n[[YELLOW]]Place down a mcMMO Salvage Anvil and right-click to salvage\n[[YELLOW]]the item you're currently holding.\n[[YELLOW]]This will break the item apart en give back the used ingots.\n[[YELLOW]]Note: You can only salvage fully repaired tools or armor.
|
||||
Guides.Swords=[[DARK_AQUA]]About Swords:\n[[YELLOW]]This skill awards combat bonuses to anyone fighting with a\n[[YELLOW]]sword.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]XP is gained based on the amount of damage dealt to mobs or \n[[YELLOW]]other players when wielding a sword.\n\n[[DARK_AQUA]]How does Serrated Strikes work?\n[[YELLOW]]Serrated Strikes is an active ability, you can activate it by\n[[YELLOW]]right-clicking with a sword. This ability allows you to deal \n[[YELLOW]]an AoE (Area of Effect) hit. This AoE will do a bonus 25%\n[[YELLOW]]damage and will inflict a bleed effect that lasts for 5 ticks.\n\n\n\n[[DARK_AQUA]]How does Counter Attack work?\n[[YELLOW]]Counter Attack is a passive ability. When taking hits from mobs,\n[[YELLOW]]you will have a chance to reflect 50% of the damage that was \n[[YELLOW]]taken.\n\n\n\n\n[[DARK_AQUA]]How does Bleed work?\n[[YELLOW]]Bleed causes enemies to take damage every two seconds. The \n[[YELLOW]]target will bleed until the effect wears off, or death, \n[[YELLOW]]whichever comes first.\n[[YELLOW]]The duration of the bleed is increased by your sword skill.
|
||||
Guides.Smelting=Coming soon...
|
||||
@ -737,6 +738,29 @@ Smelting.FluxMining.Success=[[GREEN]]That ore smelted itself!
|
||||
Smelting.Listener=Smelting:
|
||||
Smelting.SkillName=SMELTING
|
||||
|
||||
#RANCHING
|
||||
Ranching.Ability.MultipleBirth=[[RED]]Multiple Birth Chance: [[YELLOW]]{0}
|
||||
Ranching.Ability.MasterHerder=[[RED]]Decreased Cooldown: [[YELLOW]]{0}
|
||||
Ranching.Ability.ShearsMastery=[[RED]]Shear Mastery Chance: [[YELLOW]]{0}
|
||||
Ranching.Ability.ArtisanButcher=[[RED]]Artisan Butcher Chance: [[YELLOW]]{0}
|
||||
Ranching.Ability.CarnivoresDiet=[[RED]]Carnivores Diet: [[YELLOW]]Rank {0}
|
||||
Ranching.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (MULTIPLE BIRTH)
|
||||
Ranching.Ability.Locked.1=LOCKED UNTIL {0}+ SKILL (MASTER HERDER)
|
||||
Ranching.Effect.0=Multiple Birth
|
||||
Ranching.Effect.1=Chance for animals to have twins
|
||||
Ranching.Effect.2=Master Herder
|
||||
Ranching.Effect.3=Decrease the cooldown between breeds
|
||||
Ranching.Effect.4=Vanilla XP Boost
|
||||
Ranching.Effect.5=Increase vanilla XP gained while breeding
|
||||
Ranching.Effect.6=Shears Mastery
|
||||
Ranching.Effect.7=Gives a chance to gain more wool
|
||||
Ranching.Effect.8=Artisan Butcher
|
||||
Ranching.Effect.9=Gives a chance to loot more meat
|
||||
Ranching.Effect.10=Carnivores Diet
|
||||
Ranching.Effect.11=Improves hunger restored from meat
|
||||
Ranching.Listener=Ranching:
|
||||
Ranching.SkillName=RANCHING
|
||||
|
||||
#COMMAND DESCRIPTIONS
|
||||
Commands.Description.addlevels=Add mcMMO levels to a user
|
||||
Commands.Description.adminchat=Toggle mcMMO admin chat on/off or send admin chat messages
|
||||
|
@ -86,6 +86,8 @@ commands:
|
||||
description: Detailed mcMMO skill info
|
||||
acrobatics:
|
||||
description: Detailed mcMMO skill info
|
||||
ranching:
|
||||
description: Detailed mcMMO skill info
|
||||
repair:
|
||||
description: Detailed mcMMO skill info
|
||||
fishing:
|
||||
@ -147,6 +149,7 @@ permissions:
|
||||
mcmmo.ability.fishing.all: true
|
||||
mcmmo.ability.herbalism.all: true
|
||||
mcmmo.ability.mining.all: true
|
||||
mcmmo.ability.ranching.all: true
|
||||
mcmmo.ability.repair.all: true
|
||||
mcmmo.ability.smelting.all: true
|
||||
mcmmo.ability.swords.all: true
|
||||
@ -419,6 +422,29 @@ permissions:
|
||||
description: Allows double drop chance when mining
|
||||
mcmmo.ability.mining.superbreaker:
|
||||
description: Allows access to the Super Breaker ability
|
||||
mcmmo.ability.ranching.*:
|
||||
default: false
|
||||
description: Allows access to all Ranching abilities
|
||||
children:
|
||||
mcmmo.ability.ranching.all: true
|
||||
mcmmo.ability.ranching.all:
|
||||
description: Allows access to all Ranching abilities
|
||||
children:
|
||||
mcmmo.ability.ranching.multiplebirth: true
|
||||
mcmmo.ability.ranching.masterherder: true
|
||||
mcmmo.ability.ranching.shearsmastery: true
|
||||
mcmmo.ability.ranching.artisanbutcher: true
|
||||
mcmmo.ability.ranching.carnivoresdiet: true
|
||||
mcmmo.ability.ranching.multiplebirth:
|
||||
description: Allows access to the Multiple Birth ability
|
||||
mcmmo.ability.ranching.masterherder:
|
||||
description: Allows access to the Master Herder ability
|
||||
mcmmo.ability.ranching.shearsmastery:
|
||||
description: Allows access to the Shears Mastery ability
|
||||
mcmmo.ability.ranching.artisanbutcher:
|
||||
description: Allows access to the Artisan Butcher ability
|
||||
mcmmo.ability.ranching.carnivoresdiet:
|
||||
description: Allows access to the Carnivores Diet ability
|
||||
mcmmo.ability.repair.*:
|
||||
default: false
|
||||
description: Allows access to all Repair abilities
|
||||
@ -687,6 +713,7 @@ permissions:
|
||||
mcmmo.commands.mobhealth: true
|
||||
mcmmo.commands.party.all: true
|
||||
mcmmo.commands.ptp.all: true
|
||||
mcmmo.commands.ranching: true
|
||||
mcmmo.commands.repair: true
|
||||
mcmmo.commands.smelting: true
|
||||
mcmmo.commands.swords: true
|
||||
@ -869,6 +896,7 @@ permissions:
|
||||
mcmmo.commands.mctop.fishing: true
|
||||
mcmmo.commands.mctop.herbalism: true
|
||||
mcmmo.commands.mctop.mining: true
|
||||
mcmmo.commands.mctop.ranching: true
|
||||
mcmmo.commands.mctop.repair: true
|
||||
mcmmo.commands.mctop.smelting: true
|
||||
mcmmo.commands.mctop.swords: true
|
||||
@ -889,6 +917,8 @@ permissions:
|
||||
description: Allows access to the mctop command for fishing
|
||||
mcmmo.commands.mctop.herbalism:
|
||||
description: Allows access to the mctop command for herbalism
|
||||
mcmmo.commands.mctop.ranching:
|
||||
description: Allows access to the mctop command for ranching
|
||||
mcmmo.commands.mctop.mining:
|
||||
description: Allows access to the mctop command for mining
|
||||
mcmmo.commands.mctop.repair:
|
||||
@ -1017,6 +1047,8 @@ permissions:
|
||||
mcmmo.commands.ptp.world.all: true
|
||||
mcmmo.commands.ptp.world.all:
|
||||
description: Implies access to all mcmmo.commands.ptp.world permissions
|
||||
mcmmo.commands.ranching:
|
||||
description: Allows access to the ranching command
|
||||
mcmmo.commands.repair:
|
||||
description: Allows access to the repair command
|
||||
mcmmo.commands.skillreset.*:
|
||||
@ -1036,6 +1068,7 @@ permissions:
|
||||
mcmmo.commands.skillreset.herbalism: true
|
||||
mcmmo.commands.skillreset.mining: true
|
||||
mcmmo.commands.skillreset.others.all: true
|
||||
mcmmo.commands.skillreset.ranching: true
|
||||
mcmmo.commands.skillreset.repair: true
|
||||
mcmmo.commands.skillreset.smelting: true
|
||||
mcmmo.commands.skillreset.swords: true
|
||||
@ -1074,6 +1107,7 @@ permissions:
|
||||
mcmmo.commands.skillreset.others.fishing: true
|
||||
mcmmo.commands.skillreset.others.herbalism: true
|
||||
mcmmo.commands.skillreset.others.mining: true
|
||||
mcmmo.commands.skillreset.others.ranching: true
|
||||
mcmmo.commands.skillreset.others.repair: true
|
||||
mcmmo.commands.skillreset.others.smelting: true
|
||||
mcmmo.commands.skillreset.others.swords: true
|
||||
@ -1096,6 +1130,8 @@ permissions:
|
||||
description: Allows access to the skillreset command for herbalism for other players
|
||||
mcmmo.commands.skillreset.others.mining:
|
||||
description: Allows access to the skillreset command for mining for other players
|
||||
mcmmo.commands.skillreset.others.ranching:
|
||||
description: Allows access to the skillreset command for ranching for other players
|
||||
mcmmo.commands.skillreset.others.repair:
|
||||
description: Allows access to the skillreset command for repair for other players
|
||||
mcmmo.commands.skillreset.others.smelting:
|
||||
@ -1108,6 +1144,8 @@ permissions:
|
||||
description: Allows access to the skillreset command for unarmed for other players
|
||||
mcmmo.commands.skillreset.others.woodcutting:
|
||||
description: Allows access to the skillreset command for woodcutting for other players
|
||||
mcmmo.commands.skillreset.ranching:
|
||||
description: Allows access to the skillreset command for ranching
|
||||
mcmmo.commands.skillreset.repair:
|
||||
description: Allows access to the skillreset command for repair
|
||||
mcmmo.commands.skillreset.smelting:
|
||||
@ -1163,6 +1201,7 @@ permissions:
|
||||
mcmmo.commands.xplock.fishing: true
|
||||
mcmmo.commands.xplock.herbalism: true
|
||||
mcmmo.commands.xplock.mining: true
|
||||
mcmmo.commands.xplock.ranching: true
|
||||
mcmmo.commands.xplock.repair: true
|
||||
mcmmo.commands.xplock.smelting: true
|
||||
mcmmo.commands.xplock.swords: true
|
||||
@ -1183,6 +1222,8 @@ permissions:
|
||||
description: Allows access to the xplock command for fishing
|
||||
mcmmo.commands.xplock.herbalism:
|
||||
description: Allows access to the xplock command for herbalism
|
||||
mcmmo.commands.xplock.ranching:
|
||||
description: Allows access to the xplock command for ranching
|
||||
mcmmo.commands.xplock.mining:
|
||||
description: Allows access to the xplock command for mining
|
||||
mcmmo.commands.xplock.repair:
|
||||
@ -1330,6 +1371,7 @@ permissions:
|
||||
mcmmo.perks.lucky.fishing: true
|
||||
mcmmo.perks.lucky.herbalism: true
|
||||
mcmmo.perks.lucky.mining: true
|
||||
mcmmo.perks.lucky.ranching: true
|
||||
mcmmo.perks.lucky.repair: true
|
||||
mcmmo.perks.lucky.smelting: true
|
||||
mcmmo.perks.lucky.swords: true
|
||||
@ -1357,6 +1399,9 @@ permissions:
|
||||
mcmmo.perks.lucky.mining:
|
||||
default: false
|
||||
description: Gives Mining abilities & skills a 33.3% better chance to activate.
|
||||
mcmmo.perks.lucky.ranching:
|
||||
default: false
|
||||
description: Gives Ranching abilities & skills a 33.3% better chance to activate.
|
||||
mcmmo.perks.lucky.repair:
|
||||
default: false
|
||||
description: Gives Repair abilities & skills a 33.3% better chance to activate.
|
||||
@ -1425,6 +1470,7 @@ permissions:
|
||||
mcmmo.skills.fishing: true
|
||||
mcmmo.skills.herbalism: true
|
||||
mcmmo.skills.mining: true
|
||||
mcmmo.skills.ranching: true
|
||||
mcmmo.skills.repair: true
|
||||
mcmmo.skills.swords: true
|
||||
mcmmo.skills.smelting: true
|
||||
@ -1473,6 +1519,12 @@ permissions:
|
||||
mcmmo.ability.mining.all: true
|
||||
mcmmo.commands.mining: true
|
||||
mcmmo.commands.xplock.mining: true
|
||||
mcmmo.skills.ranching:
|
||||
description: Allows access to the Ranching skill
|
||||
children:
|
||||
mcmmo.ability.ranching.all: true
|
||||
mcmmo.commands.ranching: true
|
||||
mcmmo.commands.xplock.ranching: true
|
||||
mcmmo.skills.repair:
|
||||
description: Allows access to the Repair skill
|
||||
children:
|
||||
|
Loading…
x
Reference in New Issue
Block a user