mcMMO/src/main/java/com/gmail/nossr50/datatypes/SkillType.java

108 lines
3.4 KiB
Java
Raw Normal View History

2012-01-09 20:00:13 +01:00
package com.gmail.nossr50.datatypes;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
2012-01-09 20:00:13 +01:00
public enum SkillType
{
2012-03-26 23:31:15 +02:00
ACROBATICS(LoadProperties.levelCapAcrobatics, LoadProperties.acrobaticsxpmodifier),
2012-01-09 20:00:13 +01:00
ALL, //This one is just for convenience
2012-03-26 23:31:15 +02:00
ARCHERY(LoadProperties.levelCapArchery, LoadProperties.archeryxpmodifier),
AXES(AbilityType.SKULL_SPLIITER, LoadProperties.levelCapAxes, ToolType.AXE, LoadProperties.axesxpmodifier),
EXCAVATION(AbilityType.GIGA_DRILL_BREAKER, LoadProperties.levelCapExcavation, ToolType.SHOVEL, LoadProperties.excavationxpmodifier),
FISHING(LoadProperties.levelCapFishing, LoadProperties.fishingxpmodifier),
HERBALISM(AbilityType.GREEN_TERRA, LoadProperties.levelCapHerbalism, ToolType.HOE, LoadProperties.herbalismxpmodifier),
MINING(AbilityType.SUPER_BREAKER, LoadProperties.levelCapMining, ToolType.PICKAXE, LoadProperties.miningxpmodifier),
REPAIR(LoadProperties.levelCapRepair, LoadProperties.repairxpmodifier),
SWORDS(AbilityType.SERRATED_STRIKES, LoadProperties.levelCapSwords, ToolType.SWORD, LoadProperties.swordsxpmodifier),
TAMING(LoadProperties.levelCapTaming, LoadProperties.tamingxpmodifier),
UNARMED(AbilityType.BERSERK, LoadProperties.levelCapUnarmed, ToolType.FISTS, LoadProperties.unarmedxpmodifier),
WOODCUTTING(AbilityType.TREE_FELLER, LoadProperties.levelCapWoodcutting, ToolType.AXE, LoadProperties.woodcuttingxpmodifier);
private AbilityType ability;
private int maxLevel;
private ToolType tool;
2012-03-26 23:31:15 +02:00
private double xpModifier;
private SkillType()
{
this.ability = null;
this.maxLevel = 0;
this.tool = null;
2012-03-26 23:31:15 +02:00
this.xpModifier = 0;
}
2012-03-26 23:31:15 +02:00
private SkillType(AbilityType ability, int maxLevel, ToolType tool, double xpModifier)
{
this.ability = ability;
this.maxLevel = maxLevel;
this.tool = tool;
2012-03-26 23:31:15 +02:00
this.xpModifier = xpModifier;
}
2012-03-26 23:31:15 +02:00
private SkillType(int maxLevel, double xpModifier)
{
2012-03-26 23:31:15 +02:00
this(null, maxLevel, null, xpModifier);
}
public AbilityType getAbility()
{
return this.ability;
}
public int getMaxLevel()
{
if(maxLevel > 0)
return maxLevel;
else
return Integer.MAX_VALUE;
}
2012-03-26 23:31:15 +02:00
public ToolType getTool() {
return tool;
}
public boolean getPermissions(Player player)
{
switch(this)
{
case ACROBATICS:
return mcPermissions.getInstance().acrobatics(player);
case ARCHERY:
return mcPermissions.getInstance().archery(player);
case AXES:
return mcPermissions.getInstance().axes(player);
case EXCAVATION:
return mcPermissions.getInstance().excavation(player);
case FISHING:
return mcPermissions.getInstance().fishing(player);
case HERBALISM:
return mcPermissions.getInstance().herbalism(player);
case MINING:
return mcPermissions.getInstance().mining(player);
case REPAIR:
return mcPermissions.getInstance().repair(player);
case SWORDS:
return mcPermissions.getInstance().swords(player);
case TAMING:
return mcPermissions.getInstance().taming(player);
case UNARMED:
return mcPermissions.getInstance().unarmed(player);
case WOODCUTTING:
return mcPermissions.getInstance().woodcutting(player);
}
return false;
}
2012-03-26 23:31:15 +02:00
public double getXpModifier() {
return xpModifier;
}
public int getSkillLevel(Player player) {
return Users.getProfile(player).getSkillLevel(this);
}
2012-01-09 20:00:13 +01:00
}