mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-12-01 17:36:46 +01:00
Changed AbilityTypes from enum to constants
This commit is contained in:
parent
3d7b6e13c9
commit
5e83632004
51
bukkit/bukkit.yml
Normal file
51
bukkit/bukkit.yml
Normal file
@ -0,0 +1,51 @@
|
||||
# This is the main configuration file for Bukkit.
|
||||
# As you can see, there's actually not that much to configure without any plugins.
|
||||
# For a reference for any variable inside this file, check out the bukkit wiki at
|
||||
# http://wiki.bukkit.org/Bukkit.yml
|
||||
#
|
||||
# If you need help on this file, feel free to join us on irc or leave a message
|
||||
# on the forums asking for advice.
|
||||
#
|
||||
# IRC: #bukkit @ esper.net
|
||||
# (If this means nothing to you, just go to http://webchat.esper.net/?channels=bukkit )
|
||||
# Forums: http://forums.bukkit.org/forums/bukkit-help.6/
|
||||
# Twitter: http://twitter.com/Craftbukkit
|
||||
# Bug tracker: http://leaky.bukkit.org/
|
||||
|
||||
|
||||
settings:
|
||||
allow-end: true
|
||||
warn-on-overload: true
|
||||
spawn-radius: 16
|
||||
permissions-file: permissions.yml
|
||||
update-folder: update
|
||||
ping-packet-limit: 100
|
||||
use-exact-login-location: false
|
||||
plugin-profiling: false
|
||||
connection-throttle: 4000
|
||||
query-plugins: true
|
||||
deprecated-verbose: default
|
||||
spawn-limits:
|
||||
monsters: 70
|
||||
animals: 15
|
||||
water-animals: 5
|
||||
ticks-per:
|
||||
animal-spawns: 400
|
||||
monster-spawns: 1
|
||||
auto-updater:
|
||||
enabled: true
|
||||
on-broken:
|
||||
- warn-console
|
||||
- warn-ops
|
||||
on-update:
|
||||
- warn-console
|
||||
- warn-ops
|
||||
preferred-channel: rb
|
||||
host: dl.bukkit.org
|
||||
suggest-channels: true
|
||||
database:
|
||||
username: bukkit
|
||||
isolation: SERIALIZABLE
|
||||
driver: org.sqlite.JDBC
|
||||
password: walrus
|
||||
url: jdbc:sqlite:{DIR}{NAME}.db
|
56
bukkit/help.yml
Normal file
56
bukkit/help.yml
Normal file
@ -0,0 +1,56 @@
|
||||
# This is the help configuration file for Bukkit.
|
||||
#
|
||||
# By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by
|
||||
# or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to
|
||||
# your server or override the help pages of existing plugin commands.
|
||||
#
|
||||
# This file is divided up into the following parts:
|
||||
# -- general-topics: lists admin defined help topics
|
||||
# -- index-topics: lists admin defined index topics
|
||||
# -- amend-topics: lists topic amendments to apply to existing help topics
|
||||
# -- ignore-plugins: lists any plugins that should be excluded from help
|
||||
#
|
||||
# Examples are given below. When amending command topic, the string <text> will be replaced with the existing value
|
||||
# in the help topic. Color codes can be used in topic text. The color code character is & followed by 0-F.
|
||||
# ================================================================
|
||||
#
|
||||
# Set this to true to list the individual command help topics in the master help.
|
||||
# command-topics-in-master-index: true
|
||||
#
|
||||
# Each general topic will show up as a separate topic in the help index along with all the plugin command topics.
|
||||
# general-topics:
|
||||
# Rules:
|
||||
# shortText: Rules of the server
|
||||
# fullText: |
|
||||
# &61. Be kind to your fellow players.
|
||||
# &B2. No griefing.
|
||||
# &D3. No swearing.
|
||||
# permission: topics.rules
|
||||
#
|
||||
# Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics.
|
||||
# To override the default help index (displayed when the user executes /help), name the index topic "Default".
|
||||
# index-topics:
|
||||
# Ban Commands:
|
||||
# shortText: Player banning commands
|
||||
# preamble: Moderator - do not abuse these commands
|
||||
# permission: op
|
||||
# commands:
|
||||
# - /ban
|
||||
# - /ban-ip
|
||||
# - /banlist
|
||||
#
|
||||
# Topic amendments are used to change the content of automatically generated plugin command topics.
|
||||
# amended-topics:
|
||||
# /stop:
|
||||
# shortText: Stops the server cold....in its tracks!
|
||||
# fullText: <text> - This kills the server.
|
||||
# permission: you.dont.have
|
||||
#
|
||||
# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by
|
||||
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All"
|
||||
# to completely disable automatic help topic generation.
|
||||
# ignore-plugins:
|
||||
# - PluginNameOne
|
||||
# - PluginNameTwo
|
||||
# - PluginNameThree
|
||||
|
0
bukkit/permissions.yml
Normal file
0
bukkit/permissions.yml
Normal file
584
bukkit/plugins/mcMMO/advanced.yml
Normal file
584
bukkit/plugins/mcMMO/advanced.yml
Normal file
@ -0,0 +1,584 @@
|
||||
#
|
||||
# Advanced configuration
|
||||
# Last updated on 1.5.01-SNAPSHOT-b${BUILD_NUMBER}
|
||||
#
|
||||
# For advanced users only! There is no need to change anything here.
|
||||
#
|
||||
# You can customize almost every aspect of every skill here.
|
||||
# Its mainly here if you've customized the experience formula.
|
||||
# Configure at what level you get better with certain abilities.
|
||||
#
|
||||
#####
|
||||
|
||||
#
|
||||
# Settings for the Skills
|
||||
###
|
||||
Skills:
|
||||
General:
|
||||
Ability:
|
||||
# IncreaseLevel: This setting will determine when the length of every ability gets longer with 1 second
|
||||
# EnchantBuff: This setting determines how many enchant levels to use when buffing Super Breaker & Giga Drill Breaker
|
||||
IncreaseLevel: 50
|
||||
EnchantBuff: 5
|
||||
#
|
||||
# Settings for Acrobatics
|
||||
###
|
||||
Acrobatics:
|
||||
Dodge:
|
||||
# ChanceMax: Maximum chance of dodging when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level or higher, the dodge chance will not go higher than <ChanceMax>
|
||||
# DamageModifier: Dodge damage will be divided by this modifier
|
||||
ChanceMax: 20.0
|
||||
MaxBonusLevel: 800
|
||||
DamageModifier: 2.0
|
||||
|
||||
Roll:
|
||||
# ChanceMax: Maximum chance of rolling when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level or higher, the roll chance will not go higher than <ChanceMax>
|
||||
# DamageThreshold: The max damage a player can negate with a roll
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
DamageThreshold: 7.0
|
||||
|
||||
GracefulRoll:
|
||||
# ChanceMax: Maximum chance of graceful rolling when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level or higher, the graceful roll chance will not go higher than <ChanceMax>
|
||||
# DamageThreshold: The max damage a player can negate with a graceful roll
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 500
|
||||
DamageThreshold: 14.0
|
||||
#
|
||||
# Settings for Alchemy
|
||||
###
|
||||
Alchemy:
|
||||
Catalysis:
|
||||
# UnlockLevel: Alchemy level when the Catalysis ability unlocks
|
||||
# MaxBonusLevel: Maximum bonus level of Catalysis, when a player reaches this level his brewing speed will be <MaxSpeed>
|
||||
# MinSpeed: Minimum brewing speed allowed when at <UnlockLevel> or lower
|
||||
# MaxSpeed: Maximum brewing speed allowed when at <MaxBonusLevel> or higher
|
||||
UnlockLevel: 100
|
||||
MaxBonusLevel: 1000
|
||||
MinSpeed: 1.0
|
||||
MaxSpeed: 4.0
|
||||
|
||||
# Rank_Levels: Alchemy level where rank gets unlocked
|
||||
Rank_Levels:
|
||||
Rank_1: 0
|
||||
Rank_2: 125
|
||||
Rank_3: 250
|
||||
Rank_4: 375
|
||||
Rank_5: 500
|
||||
Rank_6: 625
|
||||
Rank_7: 750
|
||||
Rank_8: 875
|
||||
#
|
||||
# Settings for Archery
|
||||
###
|
||||
Archery:
|
||||
SkillShot:
|
||||
# IncreaseLevel: Every <IncreaseLevel> the skillshot bonus will go up by <IncreasePercentage>
|
||||
# IncreasePercentage: This is a percentage value, 0.1 = 10%
|
||||
# MaxBonus: When the <MaxBonus> has been reached, the bonus percentage will not go up anymore. 2.0 = 200%
|
||||
IncreaseLevel: 50
|
||||
IncreasePercentage: 0.1
|
||||
MaxBonus: 2.0
|
||||
MaxDamage: 9.0
|
||||
|
||||
Daze:
|
||||
# ChanceMax: Maximum chance of causing daze to opponents when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Maximum bonus level of Daze, when a player reaches this level his chance of causing a daze will be <ChanceMax>
|
||||
# Modifier: Extra damage for arrows that cause a daze (2 damage = 1 heart)
|
||||
ChanceMax: 50.0
|
||||
MaxBonusLevel: 1000
|
||||
Modifier: 4.0
|
||||
|
||||
Retrieve:
|
||||
# ChanceMax: Maximum chance of retrieving arrows when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Maximum bonus level for Arrow retrieval, at this level the chance of retrieving arrows from mobs is <ChanceMax>
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
# ForceMultiplier: Multiply the force of the bow by this for an XP boost.
|
||||
ForceMultiplier: 2.0
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
Axes:
|
||||
AxeMastery:
|
||||
# MaxBonus: Maximum bonus damage when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Level where <MaxBonus> is reached
|
||||
MaxBonus: 4.0
|
||||
MaxBonusLevel: 200
|
||||
|
||||
CriticalHit:
|
||||
# ChanceMax: Maximum chance of causing a critical hit when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Level where <ChanceMax> of causing critical hits is reached
|
||||
ChanceMax: 37.50
|
||||
MaxBonusLevel: 750
|
||||
# Damage modifier of critical hits for PVP / PVE, when causing a critical hit the damage gets multiplied by the modifier
|
||||
PVP_Modifier: 1.5
|
||||
PVE_Modifier: 2.0
|
||||
|
||||
GreaterImpact:
|
||||
# Chance: Chance of hitting with GreaterImpact, mobs are knocked backwards when successful
|
||||
# KnockbackModifier: Velocity modifier of GreaterImpact hits, this determines how great the knockback is
|
||||
# BonusDamage: Extra damage for GreaterImpact hits
|
||||
Chance: 25.0
|
||||
KnockbackModifier: 1.5
|
||||
BonusDamage: 2.0
|
||||
|
||||
ArmorImpact:
|
||||
# IncreaseLevel: Every <IncreaseLevel> the durability damage goes up with 1
|
||||
# Chance: Chance of hitting with ArmorImpact
|
||||
# MaxPercentageDurabilityDamage: Durability damage cap for ArmorImpact, 20% means that you can never destroy a piece of armor in less than 5 hits
|
||||
IncreaseLevel: 50
|
||||
Chance: 25.0
|
||||
MaxPercentageDurabilityDamage: 20.0
|
||||
|
||||
SkullSplitter:
|
||||
# DamageModifier: Damage will get divided by this modifier
|
||||
DamageModifier: 2.0
|
||||
#
|
||||
# Settings for Fishing
|
||||
###
|
||||
Fishing:
|
||||
# Rank_Levels: Fishing level where rank gets unlocked
|
||||
Rank_Levels:
|
||||
Rank_1: 0
|
||||
Rank_2: 125
|
||||
Rank_3: 250
|
||||
Rank_4: 375
|
||||
Rank_5: 500
|
||||
Rank_6: 625
|
||||
Rank_7: 700
|
||||
Rank_8: 875
|
||||
|
||||
ShakeChance:
|
||||
Rank_1: 15.0
|
||||
Rank_2: 15.0
|
||||
Rank_3: 25.0
|
||||
Rank_4: 35.0
|
||||
Rank_5: 45.0
|
||||
Rank_6: 55.0
|
||||
Rank_7: 65.0
|
||||
Rank_8: 75.0
|
||||
|
||||
# VanillaXPMultiplier: Vanilla XP gained from fishing is multiplied by these values.
|
||||
VanillaXPMultiplier:
|
||||
Rank_1: 1
|
||||
Rank_2: 2
|
||||
Rank_3: 3
|
||||
Rank_4: 3
|
||||
Rank_5: 4
|
||||
Rank_6: 4
|
||||
Rank_7: 5
|
||||
Rank_8: 5
|
||||
|
||||
FishermansDiet:
|
||||
# This determines when Fisherman's Diet adds extra hunger recovery to food
|
||||
RankChange: 200
|
||||
|
||||
IceFishing:
|
||||
# UnlockLevel: Fishing level when the Ice Fishing ability unlocks
|
||||
UnlockLevel: 50
|
||||
|
||||
MasterAngler:
|
||||
# UnlockLevel: Fishing level when the Master Angler ability unlocks
|
||||
# BoatMultiplier: Catch rate is multiplied by this modifier
|
||||
# BiomeModifier: Catch rate is multiplied by this modifier
|
||||
UnlockLevel: 125
|
||||
BoatModifier: 2.0
|
||||
BiomeModifier: 2.0
|
||||
#
|
||||
# Settings for Herbalism
|
||||
###
|
||||
Herbalism:
|
||||
FarmersDiet:
|
||||
# This determines when Farmers Diet adds extra hunger recovery to food
|
||||
RankChange: 200
|
||||
|
||||
GreenThumb:
|
||||
# StageChange: Level value when the GreenThumb stage rank goes up
|
||||
# ChanceMax: Maximum chance of GreenThumb when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level, GreenThumb chance will be <ChanceMax>
|
||||
StageChange: 200
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1500
|
||||
|
||||
DoubleDrops:
|
||||
# ChanceMax: Maximum chance of receiving double drops when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Level when <ChanceMax> of receiving double drops is reached
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
HylianLuck:
|
||||
# ChanceMax: Maximum chance of Hylian Luck when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level, Hylian Luck chance will be <ChanceMax>
|
||||
ChanceMax: 10.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
ShroomThumb:
|
||||
# ChanceMax: Maximum chance of ShroomThumb when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level, ShroomThumb chance will be <ChanceMax>
|
||||
ChanceMax: 50.0
|
||||
MaxBonusLevel: 1500
|
||||
#
|
||||
# Settings for Mining
|
||||
###
|
||||
Mining:
|
||||
DoubleDrops:
|
||||
# ChanceMax: Maximum chance of receiving double drops when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: Level when <ChanceMax> of receiving double drops is reached
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
# BlastMining_Rank: BlastMining rank unlocks
|
||||
BlastMining:
|
||||
Rank_Levels:
|
||||
Rank_1: 125
|
||||
Rank_2: 250
|
||||
Rank_3: 375
|
||||
Rank_4: 500
|
||||
Rank_5: 625
|
||||
Rank_6: 750
|
||||
Rank_7: 875
|
||||
Rank_8: 1000
|
||||
|
||||
# BlastDamageDecrease Ranks: % of damage reduced from TNT explosions
|
||||
BlastDamageDecrease:
|
||||
Rank_1: 0.0
|
||||
Rank_2: 0.0
|
||||
Rank_3: 0.0
|
||||
Rank_4: 25.0
|
||||
Rank_5: 25.0
|
||||
Rank_6: 50.0
|
||||
Rank_7: 50.0
|
||||
Rank_8: 100.0
|
||||
|
||||
# OreBonus Ranks: % of extra ores received when Blast Mining
|
||||
OreBonus:
|
||||
Rank_1: 35.0
|
||||
Rank_2: 40.0
|
||||
Rank_3: 45.0
|
||||
Rank_4: 50.0
|
||||
Rank_5: 55.0
|
||||
Rank_6: 60.0
|
||||
Rank_7: 65.0
|
||||
Rank_8: 70.0
|
||||
|
||||
# DebrisReduction_Rank: % of fewer non-ores received when Blast Mining
|
||||
DebrisReduction:
|
||||
Rank_1: 10.0
|
||||
Rank_2: 20.0
|
||||
Rank_3: 30.0
|
||||
Rank_4: 30.0
|
||||
Rank_5: 30.0
|
||||
Rank_6: 30.0
|
||||
Rank_7: 30.0
|
||||
Rank_8: 30.0
|
||||
|
||||
# DropMultiplier Ranks: # of times each ore will drop
|
||||
DropMultiplier:
|
||||
Rank_1: 1
|
||||
Rank_2: 1
|
||||
Rank_3: 1
|
||||
Rank_4: 1
|
||||
Rank_5: 2
|
||||
Rank_6: 2
|
||||
Rank_7: 3
|
||||
Rank_8: 3
|
||||
|
||||
# BlastRadiusModifier Ranks: Increases the blast radius by this amount
|
||||
BlastRadiusModifier:
|
||||
Rank_1: 1.0
|
||||
Rank_2: 1.0
|
||||
Rank_3: 2.0
|
||||
Rank_4: 2.0
|
||||
Rank_5: 3.0
|
||||
Rank_6: 3.0
|
||||
Rank_7: 4.0
|
||||
Rank_8: 4.0
|
||||
#
|
||||
# Settings for Repair
|
||||
###
|
||||
Repair:
|
||||
RepairMastery:
|
||||
# MaxBonusPercentage: Maximum bonus percentage for Repair Mastery
|
||||
# MaxBonusLevel: On this level, the maximum bonus is reached
|
||||
MaxBonusPercentage: 200.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
SuperRepair:
|
||||
# ChanceMax: Maximum chance of Super Repair when on <MaxBonusLevel> or higher
|
||||
# MaxBonusLevel: On this level, Super Repair chance will be <ChanceMax>
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
ArcaneForging:
|
||||
May_Lose_Enchants: true
|
||||
Rank_Levels:
|
||||
Rank_1: 125
|
||||
Rank_2: 250
|
||||
Rank_3: 375
|
||||
Rank_4: 500
|
||||
Rank_5: 625
|
||||
Rank_6: 750
|
||||
Rank_7: 875
|
||||
Rank_8: 1000
|
||||
Keep_Enchants_Chance:
|
||||
Rank_1: 10.0
|
||||
Rank_2: 20.0
|
||||
Rank_3: 30.0
|
||||
Rank_4: 40.0
|
||||
Rank_5: 50.0
|
||||
Rank_6: 50.0
|
||||
Rank_7: 60.0
|
||||
Rank_8: 60.0
|
||||
Downgrades_Enabled: true
|
||||
Downgrades_Chance:
|
||||
Rank_1: 75.0
|
||||
Rank_2: 50.0
|
||||
Rank_3: 40.0
|
||||
Rank_4: 30.0
|
||||
Rank_5: 25.0
|
||||
Rank_6: 20.0
|
||||
Rank_7: 15.0
|
||||
Rank_8: 10.0
|
||||
#
|
||||
# Settings for Salvage
|
||||
###
|
||||
Salvage:
|
||||
# MaxPercentage: Maximum percentage of materials to be returned when Salvaging
|
||||
# MaxPercentageLevel: On this level, the Salvage percentage will be <MaxPercentage>
|
||||
MaxPercentage: 100.0
|
||||
MaxPercentageLevel: 1000
|
||||
|
||||
# AdvancedSalvage_UnlockLevel: The level at which Advance Salvage become available
|
||||
AdvancedSalvage:
|
||||
UnlockLevel: 350
|
||||
|
||||
ArcaneSalvage:
|
||||
# EnchantLossEnabled: When salvaging enchanted items, the enchants may be lost
|
||||
# EnchantDowngradeEnabled: When salvaging enchanted items, the enchants may be downgraded
|
||||
EnchantLossEnabled: true
|
||||
EnchantDowngradeEnabled: true
|
||||
Rank_Levels:
|
||||
Rank_1: 125
|
||||
Rank_2: 250
|
||||
Rank_3: 375
|
||||
Rank_4: 500
|
||||
Rank_5: 625
|
||||
Rank_6: 750
|
||||
Rank_7: 875
|
||||
Rank_8: 1000
|
||||
|
||||
# ExtractFullEnchant: Chance to extract the full enchant at each ArcaneSalvage rank
|
||||
ExtractFullEnchant:
|
||||
Rank_1: 2.5
|
||||
Rank_2: 5.0
|
||||
Rank_3: 7.5
|
||||
Rank_4: 10.0
|
||||
Rank_5: 12.5
|
||||
Rank_6: 17.5
|
||||
Rank_7: 25.0
|
||||
Rank_8: 32.5
|
||||
|
||||
# ExtractPartialEnchant: Chance to extract the partial enchant at each ArcaneSalvage rank
|
||||
ExtractPartialEnchant:
|
||||
Rank_1: 2.0
|
||||
Rank_2: 2.5
|
||||
Rank_3: 5.0
|
||||
Rank_4: 7.5
|
||||
Rank_5: 10.0
|
||||
Rank_6: 12.5
|
||||
Rank_7: 15.0
|
||||
Rank_8: 17.5
|
||||
#
|
||||
# Settings for Smelting
|
||||
###
|
||||
Smelting:
|
||||
FuelEfficiency:
|
||||
# Multiplier: The furnace burn time will be multiplied by this value.
|
||||
# MaxBonusLevel: On this level, the efficiency multiplier will stop increasing
|
||||
Multiplier: 3.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
SecondSmelt:
|
||||
# ChanceMax: Maximum chance of triggering Second Smelt
|
||||
# MaxBonusLevel: On this level, the chance to cause Second Smelt will be <ChanceMax>
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
FluxMining:
|
||||
# UnlockLevel: Level when Flux Mining becomes available
|
||||
# Chance: Chance for Flux Mining to activate
|
||||
UnlockLevel: 250
|
||||
Chance: 33.0
|
||||
|
||||
# Rank_Levels: Smelting level where rank gets unlocked
|
||||
Rank_Levels:
|
||||
Rank_1: 125
|
||||
Rank_2: 250
|
||||
Rank_3: 375
|
||||
Rank_4: 500
|
||||
Rank_5: 625
|
||||
Rank_6: 750
|
||||
Rank_7: 875
|
||||
Rank_8: 1000
|
||||
|
||||
# VanillaXPMultiplier: Vanilla XP gained from smelting ores is multiplied by these values.
|
||||
VanillaXPMultiplier:
|
||||
Rank_1: 1
|
||||
Rank_2: 2
|
||||
Rank_3: 3
|
||||
Rank_4: 3
|
||||
Rank_5: 4
|
||||
Rank_6: 4
|
||||
Rank_7: 5
|
||||
Rank_8: 5
|
||||
|
||||
#
|
||||
# Settings for Swords
|
||||
###
|
||||
Swords:
|
||||
Bleed:
|
||||
# ChanceMax: Maximum chance of triggering bleeding
|
||||
# MaxBonusLevel: On this level, the chance to cause Bleeding will be <ChanceMax>
|
||||
ChanceMax: 75.0
|
||||
MaxBonusLevel: 750
|
||||
|
||||
# These settings determine how long the Bleeding effect lasts
|
||||
MaxTicks: 3
|
||||
BaseTicks: 2
|
||||
|
||||
Counter:
|
||||
# RequiresBlock: Determines if blocking is required to trigger counter attack
|
||||
RequiresBlock: true
|
||||
|
||||
# ChanceMax: Maximum chance of triggering a counter attack
|
||||
# MaxBonusLevel: On this level, the chance to Counter will be <ChanceMax>
|
||||
ChanceMax: 30.0
|
||||
MaxBonusLevel: 600
|
||||
|
||||
# DamageModifier: Damaged caused by the damager will get divided by this modifier and dealt back to the damager
|
||||
DamageModifier: 2.0
|
||||
|
||||
SerratedStrikes:
|
||||
# DamageModifier: Damage will get divided by this modifier
|
||||
# BleedTicks: This determines how long the bleeding effect of SerratedStrikes lasts
|
||||
DamageModifier: 4.0
|
||||
BleedTicks: 5
|
||||
#
|
||||
# Settings for Taming
|
||||
###
|
||||
Taming:
|
||||
Gore:
|
||||
# ChanceMax: Maximum chance of triggering gore
|
||||
# MaxBonusLevel: On this level, the chance to cause Gore will be <ChanceMax>
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
# BleedTicks: Determines the length of the bleeding effect
|
||||
# Modifier: Damage will get multiplied by this modifier
|
||||
BleedTicks: 2
|
||||
Modifier: 2.0
|
||||
|
||||
FastFood:
|
||||
# UnlockLevel: Level when FastFood unlocks
|
||||
# Chance: The chance for wolves to heal hp when inflicting damage
|
||||
UnlockLevel: 50
|
||||
Chance: 50.0
|
||||
|
||||
EnvironmentallyAware:
|
||||
# UnlockLevel: Level when EnvironmentallyAware unlocks
|
||||
UnlockLevel: 100
|
||||
|
||||
ThickFur:
|
||||
# UnlockLevel: Level when ThickFur unlocks
|
||||
# Modifier: Damage will get divided by this modifier
|
||||
UnlockLevel: 250
|
||||
Modifier: 2.0
|
||||
|
||||
HolyHound:
|
||||
# UnlockLevel: Level when HolyHound unlocks
|
||||
UnlockLevel: 375
|
||||
|
||||
ShockProof:
|
||||
# UnlockLevel: Level when ShockProof unlocks
|
||||
# Modifier: Damage will get divided by this modifier
|
||||
UnlockLevel: 500
|
||||
Modifier: 6.0
|
||||
|
||||
SharpenedClaws:
|
||||
# UnlockLevel: Level when SharpenedClaws unlocks
|
||||
# Bonus: This bonus will get added to the damage caused
|
||||
UnlockLevel: 750
|
||||
Bonus: 2.0
|
||||
|
||||
CallOfTheWild:
|
||||
# MinHorseJumpStrength: The minimum jump strength a summoned horse must have
|
||||
# MaxHorseJumpStrength: The maximum jump strength a summoned horse can have
|
||||
MinHorseJumpStrength: 0.7
|
||||
MaxHorseJumpStrength: 2.0
|
||||
#
|
||||
# Settings for Unarmed
|
||||
###
|
||||
Unarmed:
|
||||
Disarm:
|
||||
# ChanceMax: Maximum chance of disarming other players
|
||||
# MaxBonusLevel: Level when the maximum chance to disarm is reached
|
||||
# AntiTheft: Determines if only the disarmed player can retrieve disarmed items
|
||||
ChanceMax: 33.0
|
||||
MaxBonusLevel: 1000
|
||||
AntiTheft: false
|
||||
|
||||
Deflect:
|
||||
# ChanceMax: Maximum chance of deflecting arrows
|
||||
# MaxBonusLevel: Level when the maximum chance to deflect is reached
|
||||
ChanceMax: 50.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
IronGrip:
|
||||
# ChanceMax: Maximum chance of preventing being disarmed
|
||||
# MaxBonusLevel: Level when the maximum chance to prevent being disarmed is reached
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
|
||||
IronArm:
|
||||
# BonusMin: Minimum bonus damage for unarmed
|
||||
# BonusMax: Maximum bonus damage for unarmed
|
||||
# IncreaseLevel: Bonus damage increases every increase level
|
||||
BonusMin: 3.0
|
||||
BonusMax: 8.0
|
||||
IncreaseLevel: 50
|
||||
#
|
||||
# Settings for Woodcutting
|
||||
###
|
||||
Woodcutting:
|
||||
LeafBlower:
|
||||
# UnlockLevel: At this level, the passive ability LeafBlower unlocks
|
||||
UnlockLevel: 100
|
||||
|
||||
DoubleDrops:
|
||||
# ChanceMax: Maximum chance of receiving double drops
|
||||
# MaxBonusLevel: Level when the maximum chance of receiving double drops is reached
|
||||
ChanceMax: 100.0
|
||||
MaxBonusLevel: 1000
|
||||
#
|
||||
# Customize the kraken!
|
||||
###
|
||||
Kraken:
|
||||
Enabled: true
|
||||
Tries_Before_Release: 50
|
||||
Health: 50.0
|
||||
Name: The Kraken
|
||||
Attack_Interval_Seconds: 1
|
||||
Attack_Damage: 1.0
|
||||
Global_Effects: false
|
||||
Allow_Escaping: false
|
||||
Unleashed_Message:
|
||||
Server: (PLAYER) has unleashed the kraken!
|
||||
Player: THE KRAKEN HAS BEEN UNLEASHED!
|
||||
Defeated_Message:
|
||||
Escape: You have escaped from the kraken!
|
||||
Killed: You have slain the kraken!
|
@ -12,37 +12,37 @@ public final class AbilityAPI {
|
||||
private AbilityAPI() {}
|
||||
|
||||
public static boolean berserkEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.BERSERK);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.berserk);
|
||||
}
|
||||
|
||||
public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GIGA_DRILL_BREAKER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.gigaDrillBreaker);
|
||||
}
|
||||
|
||||
public static boolean greenTerraEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GREEN_TERRA);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.greenTerra);
|
||||
}
|
||||
|
||||
public static boolean serratedStrikesEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SERRATED_STRIKES);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.serratedStrikes);
|
||||
}
|
||||
|
||||
public static boolean skullSplitterEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SKULL_SPLITTER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.skullSplitter);
|
||||
}
|
||||
|
||||
public static boolean superBreakerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SUPER_BREAKER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.superBreaker);
|
||||
}
|
||||
|
||||
public static boolean treeFellerEnabled(Player player) {
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.TREE_FELLER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.treeFeller);
|
||||
}
|
||||
|
||||
public static boolean isAnyAbilityEnabled(Player player) {
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
for (AbilityType ability : AbilityType.values()) {
|
||||
for (AbilityType ability : AbilityType.getAbilities()) {
|
||||
if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||
return true;
|
||||
}
|
||||
@ -56,31 +56,31 @@ public final class AbilityAPI {
|
||||
}
|
||||
|
||||
public static void setBerserkCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.BERSERK, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.berserk, cooldown);
|
||||
}
|
||||
|
||||
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.GIGA_DRILL_BREAKER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.gigaDrillBreaker, cooldown);
|
||||
}
|
||||
|
||||
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.GREEN_TERRA, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.greenTerra, cooldown);
|
||||
}
|
||||
|
||||
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.SERRATED_STRIKES, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.serratedStrikes, cooldown);
|
||||
}
|
||||
|
||||
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.SKULL_SPLITTER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.skullSplitter, cooldown);
|
||||
}
|
||||
|
||||
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.SUPER_BREAKER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.superBreaker, cooldown);
|
||||
}
|
||||
|
||||
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.TREE_FELLER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(AbilityType.treeFeller, cooldown);
|
||||
}
|
||||
|
||||
public static boolean isBleeding(LivingEntity entity) {
|
||||
|
@ -644,7 +644,7 @@ public final class ExperienceAPI {
|
||||
int powerLevel = 0;
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
|
||||
for (SkillType type : SkillType.nonChildSkills) {
|
||||
for (SkillType type : SkillType.getNonChildSkills()) {
|
||||
powerLevel += profile.getSkillLevel(type);
|
||||
}
|
||||
|
||||
@ -665,7 +665,7 @@ public final class ExperienceAPI {
|
||||
int powerLevel = 0;
|
||||
PlayerProfile profile = getOfflineProfile(uuid);
|
||||
|
||||
for (SkillType type : SkillType.nonChildSkills) {
|
||||
for (SkillType type : SkillType.getNonChildSkills()) {
|
||||
powerLevel += profile.getSkillLevel(type);
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ public abstract class ExperienceCommand implements TabExecutor {
|
||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], SkillType.skillNames, new ArrayList<String>(SkillType.skillNames.size()));
|
||||
return StringUtil.copyPartialMatches(args[1], SkillType.getSkillNames(), new ArrayList<String>(SkillType.getSkillNames().size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
@ -125,7 +125,7 @@ public abstract class ExperienceCommand implements TabExecutor {
|
||||
|
||||
protected void editValues(Player player, PlayerProfile profile, SkillType skill, int value) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
handleCommand(player, profile, skillType, value);
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ public class SkillresetCommand implements TabExecutor {
|
||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], SkillType.skillNames, new ArrayList<String>(SkillType.skillNames.size()));
|
||||
return StringUtil.copyPartialMatches(args[1], SkillType.getSkillNames(), new ArrayList<String>(SkillType.getSkillNames().size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
@ -148,7 +148,7 @@ public class SkillresetCommand implements TabExecutor {
|
||||
|
||||
protected void editValues(Player player, PlayerProfile profile, SkillType skill) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
handleCommand(player, profile, skillType);
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ public class HardcoreCommand extends HardcoreModeCommand {
|
||||
@Override
|
||||
protected boolean checkEnabled(SkillType skill) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.skillList) {
|
||||
for (SkillType skillType : SkillType.getSkillList()) {
|
||||
if (!skillType.getHardcoreStatLossEnabled()) {
|
||||
return false;
|
||||
}
|
||||
@ -52,7 +52,7 @@ public class HardcoreCommand extends HardcoreModeCommand {
|
||||
|
||||
private void toggle(boolean enable, SkillType skill) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
skillType.setHardcoreStatLossEnabled(enable);
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ public class VampirismCommand extends HardcoreModeCommand {
|
||||
@Override
|
||||
protected boolean checkEnabled(SkillType skill) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.skillList) {
|
||||
for (SkillType skillType : SkillType.getSkillList()) {
|
||||
if (!skillType.getHardcoreVampirismEnabled()) {
|
||||
return false;
|
||||
}
|
||||
@ -52,7 +52,7 @@ public class VampirismCommand extends HardcoreModeCommand {
|
||||
|
||||
private void toggle(boolean enable, SkillType skill) {
|
||||
if (skill == null) {
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
skillType.setHardcoreVampirismEnabled(enable);
|
||||
}
|
||||
}
|
||||
|
@ -53,17 +53,17 @@ public class InspectCommand implements TabExecutor {
|
||||
sender.sendMessage(LocaleLoader.getString("Inspect.OfflineStats", playerName));
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Stats.Header.Gathering"));
|
||||
for (SkillType skill : SkillType.gatheringSkills) {
|
||||
for (SkillType skill : SkillType.getGatheringSkills()) {
|
||||
sender.sendMessage(CommandUtils.displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Stats.Header.Combat"));
|
||||
for (SkillType skill : SkillType.combatSkills) {
|
||||
for (SkillType skill : SkillType.getCombatSkills()) {
|
||||
sender.sendMessage(CommandUtils.displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Stats.Header.Misc"));
|
||||
for (SkillType skill : SkillType.miscSkills) {
|
||||
for (SkillType skill : SkillType.getMiscSkills()) {
|
||||
sender.sendMessage(CommandUtils.displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class MccooldownCommand implements TabExecutor {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Header"));
|
||||
player.sendMessage(LocaleLoader.getString("mcMMO.NoSkillNote"));
|
||||
|
||||
for (AbilityType ability : AbilityType.values()) {
|
||||
for (AbilityType ability : AbilityType.getAbilities()) {
|
||||
if (!ability.getPermissions(player)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public class MctopCommand implements TabExecutor {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], SkillType.skillNames, new ArrayList<String>(SkillType.skillNames.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], SkillType.getSkillNames(), new ArrayList<String>(SkillType.getSkillNames().size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
@ -303,17 +303,17 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
writer.append(":");
|
||||
writer.append(profile.getSkillLevel(SkillType.taming)).append(":");
|
||||
writer.append(profile.getSkillXpLevel(SkillType.taming)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.BERSERK)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.GIGA_DRILL_BREAKER)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.TREE_FELLER)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.GREEN_TERRA)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.SERRATED_STRIKES)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.SKULL_SPLITTER)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.SUPER_BREAKER)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.berserk)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.gigaDrillBreaker)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.treeFeller)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.greenTerra)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.serratedStrikes)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.skullSplitter)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.superBreaker)).append(":");
|
||||
writer.append(":");
|
||||
writer.append(profile.getSkillLevel(SkillType.fishing)).append(":");
|
||||
writer.append(profile.getSkillXpLevel(SkillType.fishing)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.BLAST_MINING)).append(":");
|
||||
writer.append((int) profile.getAbilityDATS(AbilityType.blastMining)).append(":");
|
||||
writer.append(System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR).append(":");
|
||||
MobHealthbarType mobHealthbarType = profile.getMobHealthbarType();
|
||||
writer.append(mobHealthbarType == null ? Config.getInstance().getMobHealthbarDefault().toString() : mobHealthbarType.toString()).append(":");
|
||||
@ -367,7 +367,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
|
||||
Map<SkillType, Integer> skills = new HashMap<SkillType, Integer>();
|
||||
|
||||
for (SkillType skill : SkillType.nonChildSkills) {
|
||||
for (SkillType skill : SkillType.getNonChildSkills()) {
|
||||
skills.put(skill, getPlayerRank(playerName, playerStatHash.get(skill)));
|
||||
}
|
||||
|
||||
@ -1077,7 +1077,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
private PlayerProfile loadFromLine(String[] character) {
|
||||
Map<SkillType, Integer> skills = getSkillMapFromLine(character); // Skill levels
|
||||
Map<SkillType, Float> skillsXp = new HashMap<SkillType, Float>(); // Skill & XP
|
||||
Map<AbilityType, Integer> skillsDATS = new EnumMap<AbilityType, Integer>(AbilityType.class); // Ability & Cooldown
|
||||
Map<AbilityType, Integer> skillsDATS = new HashMap<AbilityType, Integer>(); // Ability & Cooldown
|
||||
MobHealthbarType mobHealthbarType;
|
||||
|
||||
// TODO on updates, put new values in a try{} ?
|
||||
@ -1097,17 +1097,17 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
skillsXp.put(SkillType.alchemy, (float) Integer.valueOf(character[40]));
|
||||
|
||||
// Taming - Unused
|
||||
skillsDATS.put(AbilityType.SUPER_BREAKER, Integer.valueOf(character[32]));
|
||||
skillsDATS.put(AbilityType.superBreaker, Integer.valueOf(character[32]));
|
||||
// Repair - Unused
|
||||
skillsDATS.put(AbilityType.TREE_FELLER, Integer.valueOf(character[28]));
|
||||
skillsDATS.put(AbilityType.BERSERK, Integer.valueOf(character[26]));
|
||||
skillsDATS.put(AbilityType.GREEN_TERRA, Integer.valueOf(character[29]));
|
||||
skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, Integer.valueOf(character[27]));
|
||||
skillsDATS.put(AbilityType.treeFeller, Integer.valueOf(character[28]));
|
||||
skillsDATS.put(AbilityType.berserk, Integer.valueOf(character[26]));
|
||||
skillsDATS.put(AbilityType.greenTerra, Integer.valueOf(character[29]));
|
||||
skillsDATS.put(AbilityType.gigaDrillBreaker, Integer.valueOf(character[27]));
|
||||
// Archery - Unused
|
||||
skillsDATS.put(AbilityType.SERRATED_STRIKES, Integer.valueOf(character[30]));
|
||||
skillsDATS.put(AbilityType.SKULL_SPLITTER, Integer.valueOf(character[31]));
|
||||
skillsDATS.put(AbilityType.serratedStrikes, Integer.valueOf(character[30]));
|
||||
skillsDATS.put(AbilityType.skullSplitter, Integer.valueOf(character[31]));
|
||||
// Acrobatics - Unused
|
||||
skillsDATS.put(AbilityType.BLAST_MINING, Integer.valueOf(character[36]));
|
||||
skillsDATS.put(AbilityType.blastMining, Integer.valueOf(character[36]));
|
||||
|
||||
try {
|
||||
mobHealthbarType = MobHealthbarType.valueOf(character[38]);
|
||||
|
@ -315,14 +315,14 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
+ " mining = ?, woodcutting = ?, unarmed = ?"
|
||||
+ ", herbalism = ?, excavation = ?, swords = ?"
|
||||
+ ", axes = ?, blast_mining = ? WHERE user_id = ?");
|
||||
statement.setLong(1, profile.getAbilityDATS(AbilityType.SUPER_BREAKER));
|
||||
statement.setLong(2, profile.getAbilityDATS(AbilityType.TREE_FELLER));
|
||||
statement.setLong(3, profile.getAbilityDATS(AbilityType.BERSERK));
|
||||
statement.setLong(4, profile.getAbilityDATS(AbilityType.GREEN_TERRA));
|
||||
statement.setLong(5, profile.getAbilityDATS(AbilityType.GIGA_DRILL_BREAKER));
|
||||
statement.setLong(6, profile.getAbilityDATS(AbilityType.SERRATED_STRIKES));
|
||||
statement.setLong(7, profile.getAbilityDATS(AbilityType.SKULL_SPLITTER));
|
||||
statement.setLong(8, profile.getAbilityDATS(AbilityType.BLAST_MINING));
|
||||
statement.setLong(1, profile.getAbilityDATS(AbilityType.superBreaker));
|
||||
statement.setLong(2, profile.getAbilityDATS(AbilityType.treeFeller));
|
||||
statement.setLong(3, profile.getAbilityDATS(AbilityType.berserk));
|
||||
statement.setLong(4, profile.getAbilityDATS(AbilityType.greenTerra));
|
||||
statement.setLong(5, profile.getAbilityDATS(AbilityType.gigaDrillBreaker));
|
||||
statement.setLong(6, profile.getAbilityDATS(AbilityType.serratedStrikes));
|
||||
statement.setLong(7, profile.getAbilityDATS(AbilityType.skullSplitter));
|
||||
statement.setLong(8, profile.getAbilityDATS(AbilityType.blastMining));
|
||||
statement.setInt(9, id);
|
||||
success = (statement.executeUpdate() != 0);
|
||||
statement.close();
|
||||
@ -425,7 +425,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
|
||||
try {
|
||||
connection = getConnection(PoolIdentifier.MISC);
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
String skillName = skillType.getName().toLowerCase();
|
||||
String sql = "SELECT COUNT(*) AS rank FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id WHERE " + skillName + " > 0 " +
|
||||
"AND " + skillName + " > (SELECT " + skillName + " FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id " +
|
||||
@ -1228,7 +1228,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
private PlayerProfile loadFromResult(String playerName, ResultSet result) throws SQLException {
|
||||
Map<SkillType, Integer> skills = new HashMap<SkillType, Integer>(); // Skill & Level
|
||||
Map<SkillType, Float> skillsXp = new HashMap<SkillType, Float>(); // Skill & XP
|
||||
Map<AbilityType, Integer> skillsDATS = new EnumMap<AbilityType, Integer>(AbilityType.class); // Ability & Cooldown
|
||||
Map<AbilityType, Integer> skillsDATS = new HashMap<AbilityType, Integer>(); // Ability & Cooldown
|
||||
MobHealthbarType mobHealthbarType;
|
||||
UUID uuid;
|
||||
|
||||
@ -1267,17 +1267,17 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
skillsXp.put(SkillType.alchemy, result.getFloat(OFFSET_XP + 13));
|
||||
|
||||
// Taming - Unused - result.getInt(OFFSET_DATS + 1)
|
||||
skillsDATS.put(AbilityType.SUPER_BREAKER, result.getInt(OFFSET_DATS + 2));
|
||||
skillsDATS.put(AbilityType.superBreaker, result.getInt(OFFSET_DATS + 2));
|
||||
// Repair - Unused - result.getInt(OFFSET_DATS + 3)
|
||||
skillsDATS.put(AbilityType.TREE_FELLER, result.getInt(OFFSET_DATS + 4));
|
||||
skillsDATS.put(AbilityType.BERSERK, result.getInt(OFFSET_DATS + 5));
|
||||
skillsDATS.put(AbilityType.GREEN_TERRA, result.getInt(OFFSET_DATS + 6));
|
||||
skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, result.getInt(OFFSET_DATS + 7));
|
||||
skillsDATS.put(AbilityType.treeFeller, result.getInt(OFFSET_DATS + 4));
|
||||
skillsDATS.put(AbilityType.berserk, result.getInt(OFFSET_DATS + 5));
|
||||
skillsDATS.put(AbilityType.greenTerra, result.getInt(OFFSET_DATS + 6));
|
||||
skillsDATS.put(AbilityType.gigaDrillBreaker, result.getInt(OFFSET_DATS + 7));
|
||||
// Archery - Unused - result.getInt(OFFSET_DATS + 8)
|
||||
skillsDATS.put(AbilityType.SERRATED_STRIKES, result.getInt(OFFSET_DATS + 9));
|
||||
skillsDATS.put(AbilityType.SKULL_SPLITTER, result.getInt(OFFSET_DATS + 10));
|
||||
skillsDATS.put(AbilityType.serratedStrikes, result.getInt(OFFSET_DATS + 9));
|
||||
skillsDATS.put(AbilityType.skullSplitter, result.getInt(OFFSET_DATS + 10));
|
||||
// Acrobatics - Unused - result.getInt(OFFSET_DATS + 11)
|
||||
skillsDATS.put(AbilityType.BLAST_MINING, result.getInt(OFFSET_DATS + 12));
|
||||
skillsDATS.put(AbilityType.blastMining, result.getInt(OFFSET_DATS + 12));
|
||||
|
||||
try {
|
||||
mobHealthbarType = MobHealthbarType.valueOf(result.getString(OFFSET_OTHER + 2));
|
||||
@ -1357,10 +1357,10 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
resultSet = statement.executeQuery("SHOW INDEX FROM `" + tablePrefix + "skills` WHERE `Key_name` LIKE 'idx\\_%'");
|
||||
resultSet.last();
|
||||
|
||||
if (resultSet.getRow() != SkillType.nonChildSkills.size()) {
|
||||
if (resultSet.getRow() != SkillType.getNonChildSkills().size()) {
|
||||
mcMMO.p.getLogger().info("Indexing tables, this may take a while on larger databases");
|
||||
|
||||
for (SkillType skill : SkillType.nonChildSkills) {
|
||||
for (SkillType skill : SkillType.getNonChildSkills()) {
|
||||
String skill_name = skill.getName().toLowerCase();
|
||||
|
||||
try {
|
||||
|
@ -8,5 +8,6 @@ public enum UpgradeType {
|
||||
DROP_SQL_PARTY_NAMES,
|
||||
DROP_SPOUT,
|
||||
ADD_ALCHEMY,
|
||||
ADD_UUIDS;
|
||||
ADD_UUIDS,
|
||||
ADD_INDEX_NAMES;
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public class McMMOPlayer {
|
||||
* If in the future someone wants to remove this, don't forget to also remove what is in the SkillType enum. - bm01
|
||||
*/
|
||||
try {
|
||||
for (SkillType skillType : SkillType.skillList) {
|
||||
for (SkillType skillType : SkillType.getSkillList()) {
|
||||
skillManagers.put(skillType, skillType.getManagerClass().getConstructor(McMMOPlayer.class).newInstance(this));
|
||||
}
|
||||
}
|
||||
@ -120,7 +120,7 @@ public class McMMOPlayer {
|
||||
mcMMO.p.getPluginLoader().disablePlugin(mcMMO.p);
|
||||
}
|
||||
|
||||
for (AbilityType abilityType : AbilityType.values()) {
|
||||
for (AbilityType abilityType : AbilityType.getAbilities()) {
|
||||
abilityMode.put(abilityType, false);
|
||||
abilityInformed.put(abilityType, true); // This is intended
|
||||
}
|
||||
@ -202,7 +202,7 @@ public class McMMOPlayer {
|
||||
* Reset the mode of all abilities.
|
||||
*/
|
||||
public void resetAbilityMode() {
|
||||
for (AbilityType ability : AbilityType.values()) {
|
||||
for (AbilityType ability : AbilityType.getAbilities()) {
|
||||
// Correctly disable and handle any special deactivate code
|
||||
new AbilityDisableTask(this, ability).run();
|
||||
}
|
||||
@ -389,7 +389,7 @@ public class McMMOPlayer {
|
||||
public int getPowerLevel() {
|
||||
int powerLevel = 0;
|
||||
|
||||
for (SkillType type : SkillType.nonChildSkills) {
|
||||
for (SkillType type : SkillType.getNonChildSkills()) {
|
||||
if (type.getPermissions(player)) {
|
||||
powerLevel += getSkillLevel(type);
|
||||
}
|
||||
@ -751,7 +751,7 @@ public class McMMOPlayer {
|
||||
profile.setAbilityDATS(ability, System.currentTimeMillis() + (ticks * Misc.TIME_CONVERSION_FACTOR));
|
||||
setAbilityMode(ability, true);
|
||||
|
||||
if (ability == AbilityType.SUPER_BREAKER || ability == AbilityType.GIGA_DRILL_BREAKER) {
|
||||
if (ability == AbilityType.superBreaker || ability == AbilityType.gigaDrillBreaker) {
|
||||
SkillUtils.handleAbilitySpeedIncrease(player);
|
||||
}
|
||||
|
||||
@ -773,7 +773,7 @@ public class McMMOPlayer {
|
||||
return;
|
||||
}
|
||||
|
||||
for (AbilityType abilityType : AbilityType.values()) {
|
||||
for (AbilityType abilityType : AbilityType.getAbilities()) {
|
||||
if (getAbilityMode(abilityType)) {
|
||||
return;
|
||||
}
|
||||
|
@ -43,11 +43,11 @@ public class PlayerProfile {
|
||||
|
||||
mobHealthbarType = Config.getInstance().getMobHealthbarDefault();
|
||||
|
||||
for (AbilityType abilityType : AbilityType.values()) {
|
||||
for (AbilityType abilityType : AbilityType.getAbilities()) {
|
||||
abilityDATS.put(abilityType, 0);
|
||||
}
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
skills.put(skillType, 0);
|
||||
skillsXp.put(skillType, 0F);
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.gmail.nossr50.datatypes.skills;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -7,82 +10,118 @@ import org.bukkit.entity.Player;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.BlockUtils;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
|
||||
public enum AbilityType {
|
||||
BERSERK(
|
||||
public class AbilityType {
|
||||
private static List<AbilityType> abilityTypes = new ArrayList<AbilityType>();
|
||||
|
||||
public static final AbilityType berserk = new AbilityType(
|
||||
"BERSERK",
|
||||
"Unarmed.Skills.Berserk.On",
|
||||
"Unarmed.Skills.Berserk.Off",
|
||||
"Unarmed.Skills.Berserk.Other.On",
|
||||
"Unarmed.Skills.Berserk.Refresh",
|
||||
"Unarmed.Skills.Berserk.Other.Off"),
|
||||
"Unarmed.Skills.Berserk.Other.Off") {
|
||||
@Override
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
return (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW);
|
||||
}
|
||||
};
|
||||
|
||||
SUPER_BREAKER(
|
||||
public static final AbilityType superBreaker = new AbilityType(
|
||||
"SUPER_BREAKER",
|
||||
"Mining.Skills.SuperBreaker.On",
|
||||
"Mining.Skills.SuperBreaker.Off",
|
||||
"Mining.Skills.SuperBreaker.Other.On",
|
||||
"Mining.Skills.SuperBreaker.Refresh",
|
||||
"Mining.Skills.SuperBreaker.Other.Off"),
|
||||
"Mining.Skills.SuperBreaker.Other.Off") {
|
||||
@Override
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
return BlockUtils.affectedBySuperBreaker(blockState);
|
||||
}
|
||||
};
|
||||
|
||||
GIGA_DRILL_BREAKER(
|
||||
public static final AbilityType gigaDrillBreaker = new AbilityType(
|
||||
"GIGA_DRILL_BREAKER",
|
||||
"Excavation.Skills.GigaDrillBreaker.On",
|
||||
"Excavation.Skills.GigaDrillBreaker.Off",
|
||||
"Excavation.Skills.GigaDrillBreaker.Other.On",
|
||||
"Excavation.Skills.GigaDrillBreaker.Refresh",
|
||||
"Excavation.Skills.GigaDrillBreaker.Other.Off"),
|
||||
"Excavation.Skills.GigaDrillBreaker.Other.Off") {
|
||||
@Override
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
return BlockUtils.affectedByGigaDrillBreaker(blockState);
|
||||
}
|
||||
};
|
||||
|
||||
GREEN_TERRA(
|
||||
public static final AbilityType greenTerra = new AbilityType(
|
||||
"GREEN_TERRA",
|
||||
"Herbalism.Skills.GTe.On",
|
||||
"Herbalism.Skills.GTe.Off",
|
||||
"Herbalism.Skills.GTe.Other.On",
|
||||
"Herbalism.Skills.GTe.Refresh",
|
||||
"Herbalism.Skills.GTe.Other.Off"),
|
||||
"Herbalism.Skills.GTe.Other.Off") {
|
||||
@Override
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
return BlockUtils.canMakeMossy(blockState);
|
||||
}
|
||||
};
|
||||
|
||||
SKULL_SPLITTER(
|
||||
public static final AbilityType skullSplitter = new AbilityType(
|
||||
"SKULL_SPLITTER",
|
||||
"Axes.Skills.SS.On",
|
||||
"Axes.Skills.SS.Off",
|
||||
"Axes.Skills.SS.Other.On",
|
||||
"Axes.Skills.SS.Refresh",
|
||||
"Axes.Skills.SS.Other.Off"),
|
||||
"Axes.Skills.SS.Other.Off");
|
||||
|
||||
TREE_FELLER(
|
||||
public static final AbilityType treeFeller = new AbilityType(
|
||||
"TREE_FELLER",
|
||||
"Woodcutting.Skills.TreeFeller.On",
|
||||
"Woodcutting.Skills.TreeFeller.Off",
|
||||
"Woodcutting.Skills.TreeFeller.Other.On",
|
||||
"Woodcutting.Skills.TreeFeller.Refresh",
|
||||
"Woodcutting.Skills.TreeFeller.Other.Off"),
|
||||
"Woodcutting.Skills.TreeFeller.Other.Off") {
|
||||
@Override
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
return BlockUtils.isLog(blockState);
|
||||
}
|
||||
};
|
||||
|
||||
SERRATED_STRIKES(
|
||||
public static final AbilityType serratedStrikes = new AbilityType(
|
||||
"SERRATED_STRIKES",
|
||||
"Swords.Skills.SS.On",
|
||||
"Swords.Skills.SS.Off",
|
||||
"Swords.Skills.SS.Other.On",
|
||||
"Swords.Skills.SS.Refresh",
|
||||
"Swords.Skills.SS.Other.Off"),
|
||||
"Swords.Skills.SS.Other.Off");
|
||||
|
||||
/**
|
||||
* Has cooldown - but has to share a skill with Super Breaker, so needs special treatment
|
||||
*/
|
||||
BLAST_MINING(
|
||||
public static final AbilityType blastMining = new AbilityType(
|
||||
"BLAST_MINING",
|
||||
null,
|
||||
null,
|
||||
"Mining.Blast.Other.On",
|
||||
"Mining.Blast.Refresh",
|
||||
null),
|
||||
;
|
||||
null);
|
||||
|
||||
private String name;
|
||||
private String abilityOn;
|
||||
private String abilityOff;
|
||||
private String abilityPlayer;
|
||||
private String abilityRefresh;
|
||||
private String abilityPlayerOff;
|
||||
|
||||
private AbilityType(String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) {
|
||||
this.abilityOn = abilityOn;
|
||||
private AbilityType(String name, String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) {
|
||||
this.name = name;
|
||||
this.abilityOn = abilityOn;
|
||||
this.abilityOff = abilityOff;
|
||||
this.abilityPlayer = abilityPlayer;
|
||||
this.abilityRefresh = abilityRefresh;
|
||||
this.abilityPlayerOff = abilityPlayerOff;
|
||||
abilityTypes.add(this);
|
||||
}
|
||||
|
||||
public int getCooldown() {
|
||||
@ -119,7 +158,7 @@ public enum AbilityType {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String baseString = name();
|
||||
String baseString = name;
|
||||
String[] substrings = baseString.split("_");
|
||||
String formattedString = "";
|
||||
|
||||
@ -145,34 +184,9 @@ public enum AbilityType {
|
||||
* @return true if the player has permissions, false otherwise
|
||||
*/
|
||||
public boolean getPermissions(Player player) {
|
||||
switch (this) {
|
||||
case BERSERK:
|
||||
return Permissions.berserk(player);
|
||||
|
||||
case BLAST_MINING:
|
||||
return Permissions.remoteDetonation(player);
|
||||
|
||||
case GIGA_DRILL_BREAKER:
|
||||
return Permissions.gigaDrillBreaker(player);
|
||||
|
||||
case GREEN_TERRA:
|
||||
return Permissions.greenTerra(player);
|
||||
|
||||
case SERRATED_STRIKES:
|
||||
return Permissions.serratedStrikes(player);
|
||||
|
||||
case SKULL_SPLITTER:
|
||||
return Permissions.skullSplitter(player);
|
||||
|
||||
case SUPER_BREAKER:
|
||||
return Permissions.superBreaker(player);
|
||||
|
||||
case TREE_FELLER:
|
||||
return Permissions.treeFeller(player);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return player.hasPermission("mcmmo.ability."
|
||||
+ SkillType.byAbility(this).getName().toLowerCase()
|
||||
+ "." + name.replace("_", "").toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -182,24 +196,10 @@ public enum AbilityType {
|
||||
* @return true if the block is affected by this ability, false otherwise
|
||||
*/
|
||||
public boolean blockCheck(BlockState blockState) {
|
||||
switch (this) {
|
||||
case BERSERK:
|
||||
return (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW);
|
||||
|
||||
case GIGA_DRILL_BREAKER:
|
||||
return BlockUtils.affectedByGigaDrillBreaker(blockState);
|
||||
|
||||
case GREEN_TERRA:
|
||||
return BlockUtils.canMakeMossy(blockState);
|
||||
|
||||
case SUPER_BREAKER:
|
||||
return BlockUtils.affectedBySuperBreaker(blockState);
|
||||
|
||||
case TREE_FELLER:
|
||||
return BlockUtils.isLog(blockState);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static List<AbilityType> getAbilities() {
|
||||
return abilityTypes;
|
||||
}
|
||||
}
|
||||
|
@ -57,32 +57,32 @@ public class SkillType {
|
||||
MISC
|
||||
}
|
||||
|
||||
public static List<String> skillNames = new ArrayList<String>();
|
||||
public static List<SkillType> skillList = new ArrayList<SkillType>();
|
||||
private static List<String> skillNames = new ArrayList<String>();
|
||||
private static List<SkillType> skillList = new ArrayList<SkillType>();
|
||||
|
||||
public static List<SkillType> childSkills = new ArrayList<SkillType>();
|
||||
public static List<SkillType> nonChildSkills = new ArrayList<SkillType>();
|
||||
private static List<SkillType> childSkills = new ArrayList<SkillType>();
|
||||
private static List<SkillType> nonChildSkills = new ArrayList<SkillType>();
|
||||
|
||||
public static List<SkillType> combatSkills = new ArrayList<SkillType>();
|
||||
public static List<SkillType> gatheringSkills = new ArrayList<SkillType>();
|
||||
public static List<SkillType> miscSkills = new ArrayList<SkillType>();
|
||||
private static List<SkillType> combatSkills = new ArrayList<SkillType>();
|
||||
private static List<SkillType> gatheringSkills = new ArrayList<SkillType>();
|
||||
private static List<SkillType> miscSkills = new ArrayList<SkillType>();
|
||||
|
||||
|
||||
public static final SkillType acrobatics = createSkill("ACROBATICS" , AcrobaticsManager.class , AcrobaticsCommand.class , false, Color.WHITE, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.DODGE, SecondaryAbility.GRACEFUL_ROLL, SecondaryAbility.ROLL));
|
||||
public static final SkillType alchemy = createSkill("ALCHEMY" , AlchemyManager.class , AlchemyCommand.class , false, Color.FUCHSIA, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.CATALYSIS, SecondaryAbility.CONCOCTIONS));
|
||||
public static final SkillType archery = createSkill("ARCHERY" , ArcheryManager.class , ArcheryCommand.class , false, Color.MAROON, SkillUseType.COMBAT, ImmutableList.of(SecondaryAbility.DAZE, SecondaryAbility.RETRIEVE, SecondaryAbility.SKILL_SHOT));
|
||||
public static final SkillType axes = createSkill("AXES" , AxesManager.class , AxesCommand.class , false, Color.AQUA, SkillUseType.COMBAT, AbilityType.SKULL_SPLITTER, ToolType.AXE, ImmutableList.of(SecondaryAbility.ARMOR_IMPACT, SecondaryAbility.AXE_MASTERY, SecondaryAbility.CRITICAL_HIT, SecondaryAbility.GREATER_IMPACT));
|
||||
public static final SkillType excavation = createSkill("EXCAVATION" , ExcavationManager.class , ExcavationCommand.class , false, Color.fromRGB(139, 69, 19), SkillUseType.GATHERING, AbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL, ImmutableList.of(SecondaryAbility.EXCAVATION_TREASURE_HUNTER));
|
||||
public static final SkillType axes = createSkill("AXES" , AxesManager.class , AxesCommand.class , false, Color.AQUA, SkillUseType.COMBAT, AbilityType.skullSplitter, ToolType.AXE, ImmutableList.of(SecondaryAbility.ARMOR_IMPACT, SecondaryAbility.AXE_MASTERY, SecondaryAbility.CRITICAL_HIT, SecondaryAbility.GREATER_IMPACT));
|
||||
public static final SkillType excavation = createSkill("EXCAVATION" , ExcavationManager.class , ExcavationCommand.class , false, Color.fromRGB(139, 69, 19), SkillUseType.GATHERING, AbilityType.gigaDrillBreaker, ToolType.SHOVEL, ImmutableList.of(SecondaryAbility.EXCAVATION_TREASURE_HUNTER));
|
||||
public static final SkillType fishing = createSkill("FISHING" , FishingManager.class , FishingCommand.class , false, Color.NAVY, SkillUseType.GATHERING, ImmutableList.of(SecondaryAbility.FISHERMANS_DIET, SecondaryAbility.FISHING_TREASURE_HUNTER, SecondaryAbility.ICE_FISHING, SecondaryAbility.MAGIC_HUNTER, SecondaryAbility.MASTER_ANGLER, SecondaryAbility.SHAKE));
|
||||
public static final SkillType herbalism = createSkill("HERBALISM" , HerbalismManager.class , HerbalismCommand.class , false, Color.GREEN, SkillUseType.GATHERING, AbilityType.GREEN_TERRA, ToolType.HOE, ImmutableList.of(SecondaryAbility.FARMERS_DIET, SecondaryAbility.GREEN_THUMB_PLANT, SecondaryAbility.GREEN_THUMB_BLOCK, SecondaryAbility.HERBALISM_DOUBLE_DROPS, SecondaryAbility.HYLIAN_LUCK, SecondaryAbility.SHROOM_THUMB));
|
||||
public static final SkillType mining = createSkill("MINING" , MiningManager.class , MiningCommand.class , false, Color.GRAY, SkillUseType.GATHERING, AbilityType.SUPER_BREAKER, ToolType.PICKAXE, ImmutableList.of(SecondaryAbility.MINING_DOUBLE_DROPS));
|
||||
public static final SkillType herbalism = createSkill("HERBALISM" , HerbalismManager.class , HerbalismCommand.class , false, Color.GREEN, SkillUseType.GATHERING, AbilityType.greenTerra, ToolType.HOE, ImmutableList.of(SecondaryAbility.FARMERS_DIET, SecondaryAbility.GREEN_THUMB_PLANT, SecondaryAbility.GREEN_THUMB_BLOCK, SecondaryAbility.HERBALISM_DOUBLE_DROPS, SecondaryAbility.HYLIAN_LUCK, SecondaryAbility.SHROOM_THUMB));
|
||||
public static final SkillType mining = createSkill("MINING" , MiningManager.class , MiningCommand.class , false, Color.GRAY, SkillUseType.GATHERING, AbilityType.superBreaker, ToolType.PICKAXE, ImmutableList.of(SecondaryAbility.MINING_DOUBLE_DROPS));
|
||||
public static final SkillType repair = createSkill("REPAIR" , RepairManager.class , RepairCommand.class , false, Color.SILVER, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.ARCANE_FORGING, SecondaryAbility.REPAIR_MASTERY, SecondaryAbility.SUPER_REPAIR));
|
||||
public static final SkillType salvage = createSkill("SALVAGE" , SalvageManager.class , SalvageCommand.class , true, Color.ORANGE, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.ADVANCED_SALVAGE, SecondaryAbility.ARCANE_SALVAGE));
|
||||
public static final SkillType smelting = createSkill("SMELTING" , SmeltingManager.class , SmeltingCommand.class , true, Color.YELLOW, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.FLUX_MINING, SecondaryAbility.FUEL_EFFICIENCY, SecondaryAbility.SECOND_SMELT));
|
||||
public static final SkillType swords = createSkill("SWORDS" , SwordsManager.class , SwordsCommand.class , false, Color.fromRGB(178, 34, 34), SkillUseType.COMBAT, AbilityType.SERRATED_STRIKES, ToolType.SWORD, ImmutableList.of(SecondaryAbility.BLEED, SecondaryAbility.COUNTER));
|
||||
public static final SkillType swords = createSkill("SWORDS" , SwordsManager.class , SwordsCommand.class , false, Color.fromRGB(178, 34, 34), SkillUseType.COMBAT, AbilityType.serratedStrikes, ToolType.SWORD, ImmutableList.of(SecondaryAbility.BLEED, SecondaryAbility.COUNTER));
|
||||
public static final SkillType taming = createSkill("TAMING" , TamingManager.class , TamingCommand.class , false, Color.PURPLE, SkillUseType.COMBAT, ImmutableList.of(SecondaryAbility.BEAST_LORE, SecondaryAbility.CALL_OF_THE_WILD, SecondaryAbility.ENVIROMENTALLY_AWARE, SecondaryAbility.FAST_FOOD, SecondaryAbility.GORE, SecondaryAbility.HOLY_HOUND, SecondaryAbility.SHARPENED_CLAWS, SecondaryAbility.SHOCK_PROOF, SecondaryAbility.THICK_FUR));
|
||||
public static final SkillType unarmed = createSkill("UNARMED" , UnarmedManager.class , UnarmedCommand.class , false, Color.BLACK, SkillUseType.COMBAT, AbilityType.BERSERK, ToolType.FISTS, ImmutableList.of(SecondaryAbility.BLOCK_CRACKER, SecondaryAbility.DEFLECT, SecondaryAbility.DISARM, SecondaryAbility.IRON_ARM, SecondaryAbility.IRON_GRIP));
|
||||
public static final SkillType woodcutting = createSkill("WOODCUTTING", WoodcuttingManager.class , WoodcuttingCommand.class , false, Color.OLIVE, SkillUseType.GATHERING, AbilityType.TREE_FELLER, ToolType.AXE, ImmutableList.of(SecondaryAbility.LEAF_BLOWER, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS));
|
||||
public static final SkillType unarmed = createSkill("UNARMED" , UnarmedManager.class , UnarmedCommand.class , false, Color.BLACK, SkillUseType.COMBAT, AbilityType.berserk, ToolType.FISTS, ImmutableList.of(SecondaryAbility.BLOCK_CRACKER, SecondaryAbility.DEFLECT, SecondaryAbility.DISARM, SecondaryAbility.IRON_ARM, SecondaryAbility.IRON_GRIP));
|
||||
public static final SkillType woodcutting = createSkill("WOODCUTTING", WoodcuttingManager.class , WoodcuttingCommand.class , false, Color.OLIVE, SkillUseType.GATHERING, AbilityType.treeFeller, ToolType.AXE, ImmutableList.of(SecondaryAbility.LEAF_BLOWER, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS));
|
||||
|
||||
|
||||
private String name;
|
||||
|
@ -211,7 +211,7 @@ public class BlockListener implements Listener {
|
||||
ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager();
|
||||
excavationManager.excavationBlockCheck(blockState);
|
||||
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER)) {
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.gigaDrillBreaker)) {
|
||||
excavationManager.gigaDrillBreaker(blockState);
|
||||
}
|
||||
}
|
||||
@ -301,12 +301,12 @@ public class BlockListener implements Listener {
|
||||
ItemStack heldItem = player.getItemInHand();
|
||||
|
||||
if (HiddenConfig.getInstance().useEnchantmentBuffs()) {
|
||||
if ((ItemUtils.isPickaxe(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER)) || (ItemUtils.isShovel(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER))) {
|
||||
if ((ItemUtils.isPickaxe(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.superBreaker)) || (ItemUtils.isShovel(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.gigaDrillBreaker))) {
|
||||
SkillUtils.removeAbilityBuff(heldItem);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) && !BlockUtils.affectedBySuperBreaker(blockState)) || (mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER) && !BlockUtils.affectedByGigaDrillBreaker(blockState))) {
|
||||
if ((mcMMOPlayer.getAbilityMode(AbilityType.superBreaker) && !BlockUtils.affectedBySuperBreaker(blockState)) || (mcMMOPlayer.getAbilityMode(AbilityType.gigaDrillBreaker) && !BlockUtils.affectedByGigaDrillBreaker(blockState))) {
|
||||
SkillUtils.handleAbilitySpeedDecrease(player);
|
||||
}
|
||||
}
|
||||
@ -333,7 +333,7 @@ public class BlockListener implements Listener {
|
||||
*
|
||||
* We don't need to check permissions here because they've already been checked for the ability to even activate.
|
||||
*/
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.TREE_FELLER) && BlockUtils.isLog(blockState) && Config.getInstance().getTreeFellerSoundsEnabled()) {
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.treeFeller) && BlockUtils.isLog(blockState) && Config.getInstance().getTreeFellerSoundsEnabled()) {
|
||||
player.playSound(blockState.getLocation(), Sound.FIZZ, Misc.FIZZ_VOLUME, Misc.getFizzPitch());
|
||||
}
|
||||
}
|
||||
@ -365,13 +365,13 @@ public class BlockListener implements Listener {
|
||||
*
|
||||
* We don't need to check permissions here because they've already been checked for the ability to even activate.
|
||||
*/
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState)) {
|
||||
if (mcMMOPlayer.getAbilityMode(AbilityType.greenTerra) && BlockUtils.canMakeMossy(blockState)) {
|
||||
if (mcMMOPlayer.getHerbalismManager().processGreenTerra(blockState)) {
|
||||
blockState.update(true);
|
||||
}
|
||||
}
|
||||
else if (mcMMOPlayer.getAbilityMode(AbilityType.BERSERK) && heldItem.getType() == Material.AIR) {
|
||||
if (AbilityType.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
|
||||
else if (mcMMOPlayer.getAbilityMode(AbilityType.berserk) && heldItem.getType() == Material.AIR) {
|
||||
if (AbilityType.berserk.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
|
||||
event.setInstaBreak(true);
|
||||
player.playSound(block.getLocation(), Sound.ITEM_PICKUP, Misc.POP_VOLUME, Misc.getPopPitch());
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
if ((mcMMOPlayer.isUsingUnarmed() && ItemUtils.isSharable(dropStack)) || mcMMOPlayer.getAbilityMode(AbilityType.BERSERK)) {
|
||||
if ((mcMMOPlayer.isUsingUnarmed() && ItemUtils.isSharable(dropStack)) || mcMMOPlayer.getAbilityMode(AbilityType.berserk)) {
|
||||
boolean pickupSuccess = Unarmed.handleItemPickup(player.getInventory(), drop);
|
||||
boolean cancel = Config.getInstance().getUnarmedItemPickupDisabled() || pickupSuccess;
|
||||
event.setCancelled(cancel);
|
||||
@ -681,7 +681,7 @@ public class PlayerListener implements Listener {
|
||||
String lowerCaseCommand = command.toLowerCase();
|
||||
|
||||
// Do these ACTUALLY have to be lower case to work properly?
|
||||
for (SkillType skill : SkillType.skillList) {
|
||||
for (SkillType skill : SkillType.getSkillList()) {
|
||||
String skillName = skill.toString().toLowerCase();
|
||||
String localizedName = skill.getLocalizedName().toLowerCase();
|
||||
|
||||
|
@ -206,7 +206,8 @@ public class mcMMO extends JavaPlugin {
|
||||
*/
|
||||
@Override
|
||||
public void onDisable() {
|
||||
try {
|
||||
try
|
||||
{
|
||||
Alchemy.finishAllBrews(); // Finish all partially complete AlchemyBrewTasks to prevent vanilla brewing continuation on restart
|
||||
UserManager.saveAll(); // Make sure to save player information if the server shuts down
|
||||
UserManager.clearAll();
|
||||
|
@ -49,7 +49,7 @@ public class McrankCommandDisplayTask extends BukkitRunnable {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Heading"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Player", playerName));
|
||||
|
||||
for (SkillType skill : SkillType.nonChildSkills) {
|
||||
for (SkillType skill : SkillType.getNonChildSkills()) {
|
||||
if (!skill.getPermissions(player)) {
|
||||
continue;
|
||||
}
|
||||
@ -60,6 +60,7 @@ public class McrankCommandDisplayTask extends BukkitRunnable {
|
||||
|
||||
rank = skills.get(null);
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Overall", (rank == null ? LocaleLoader.getString("Commands.mcrank.Unranked") : rank)));
|
||||
player.removeMetadata(mcMMO.databaseCommandKey, mcMMO.p);
|
||||
}
|
||||
|
||||
public void displayBoard() {
|
||||
|
@ -59,7 +59,7 @@ public class FormulaConversionTask extends BukkitRunnable {
|
||||
private void editValues(PlayerProfile profile) {
|
||||
mcMMO.p.debug("========================================================================");
|
||||
mcMMO.p.debug("Conversion report for " + profile.getPlayerName() + ":");
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
int oldLevel = profile.getSkillLevel(skillType);
|
||||
int oldXPLevel = profile.getSkillXpLevel(skillType);
|
||||
int totalOldXP = mcMMO.getFormulaManager().calculateTotalExperience(oldLevel, oldXPLevel);
|
||||
|
@ -32,20 +32,13 @@ public class AbilityDisableTask extends BukkitRunnable {
|
||||
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
|
||||
switch (ability) {
|
||||
case SUPER_BREAKER:
|
||||
case GIGA_DRILL_BREAKER:
|
||||
SkillUtils.handleAbilitySpeedDecrease(player);
|
||||
// Fallthrough
|
||||
|
||||
case BERSERK:
|
||||
if (Config.getInstance().getRefreshChunksEnabled()) {
|
||||
resendChunkRadiusAt(player, 1);
|
||||
}
|
||||
// Fallthrough
|
||||
|
||||
default:
|
||||
break;
|
||||
if(ability == AbilityType.superBreaker || ability == AbilityType.gigaDrillBreaker) {
|
||||
SkillUtils.handleAbilitySpeedDecrease(player);
|
||||
}
|
||||
else if(ability == AbilityType.berserk) {
|
||||
if (Config.getInstance().getRefreshChunksEnabled()) {
|
||||
resendChunkRadiusAt(player, 1);
|
||||
}
|
||||
}
|
||||
|
||||
EventUtils.callAbilityDeactivateEvent(player, ability);
|
||||
|
@ -43,7 +43,7 @@ public class AxesManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canUseSkullSplitter(LivingEntity target) {
|
||||
return target.isValid() && mcMMOPlayer.getAbilityMode(AbilityType.SKULL_SPLITTER) && Permissions.skullSplitter(getPlayer());
|
||||
return target.isValid() && mcMMOPlayer.getAbilityMode(AbilityType.skullSplitter) && Permissions.skullSplitter(getPlayer());
|
||||
}
|
||||
|
||||
public boolean canActivateAbility() {
|
||||
|
@ -22,7 +22,7 @@ public class ChildConfig extends AutoUpdateConfigLoader {
|
||||
|
||||
FamilyTree.clearRegistrations(); // when reloading, need to clear statics
|
||||
|
||||
for (SkillType skill : SkillType.childSkills) {
|
||||
for (SkillType skill : SkillType.getChildSkills()) {
|
||||
plugin.debug("Finding parents of " + skill.getLocalizedName());
|
||||
|
||||
Set<SkillType> parentSkills = new HashSet<SkillType>();
|
||||
|
@ -65,7 +65,7 @@ public class HerbalismManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canGreenTerraBlock(BlockState blockState) {
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState);
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.greenTerra) && BlockUtils.canMakeMossy(blockState);
|
||||
}
|
||||
|
||||
public boolean canActivateAbility() {
|
||||
@ -73,7 +73,7 @@ public class HerbalismManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canGreenTerraPlant() {
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA);
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.greenTerra);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,16 +101,16 @@ public class MiningManager extends SkillManager {
|
||||
|
||||
TNTPrimed tnt = player.getWorld().spawn(targetBlock.getLocation(), TNTPrimed.class);
|
||||
|
||||
SkillUtils.sendSkillMessage(player, AbilityType.BLAST_MINING.getAbilityPlayer(player));
|
||||
SkillUtils.sendSkillMessage(player, AbilityType.blastMining.getAbilityPlayer(player));
|
||||
player.sendMessage(LocaleLoader.getString("Mining.Blast.Boom"));
|
||||
|
||||
tnt.setMetadata(mcMMO.tntMetadataKey, mcMMOPlayer.getPlayerMetadata());
|
||||
tnt.setFuseTicks(0);
|
||||
targetBlock.setType(Material.AIR);
|
||||
|
||||
mcMMOPlayer.setAbilityDATS(AbilityType.BLAST_MINING, System.currentTimeMillis());
|
||||
mcMMOPlayer.setAbilityInformed(AbilityType.BLAST_MINING, false);
|
||||
new AbilityCooldownTask(mcMMOPlayer, AbilityType.BLAST_MINING).runTaskLaterAsynchronously(mcMMO.p, AbilityType.BLAST_MINING.getCooldown() * Misc.TICK_CONVERSION_FACTOR);
|
||||
mcMMOPlayer.setAbilityDATS(AbilityType.blastMining, System.currentTimeMillis());
|
||||
mcMMOPlayer.setAbilityInformed(AbilityType.blastMining, false);
|
||||
new AbilityCooldownTask(mcMMOPlayer, AbilityType.blastMining).runTaskLaterAsynchronously(mcMMO.p, AbilityType.blastMining.getCooldown() * Misc.TICK_CONVERSION_FACTOR);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -285,7 +285,7 @@ public class MiningManager extends SkillManager {
|
||||
}
|
||||
|
||||
private boolean blastMiningCooldownOver() {
|
||||
int timeRemaining = mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING);
|
||||
int timeRemaining = mcMMOPlayer.calculateTimeRemaining(AbilityType.blastMining);
|
||||
|
||||
if (timeRemaining > 0) {
|
||||
getPlayer().sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining));
|
||||
|
@ -39,7 +39,7 @@ public class SwordsManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canUseSerratedStrike() {
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.SERRATED_STRIKES) && Permissions.serratedStrikes(getPlayer());
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.serratedStrikes) && Permissions.serratedStrikes(getPlayer());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,7 +38,7 @@ public class UnarmedManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canUseBerserk() {
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.BERSERK) && Permissions.berserk(getPlayer());
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.berserk) && Permissions.berserk(getPlayer());
|
||||
}
|
||||
|
||||
public boolean canDisarm(LivingEntity target) {
|
||||
|
@ -38,7 +38,7 @@ public class WoodcuttingManager extends SkillManager {
|
||||
}
|
||||
|
||||
public boolean canUseTreeFeller(ItemStack heldItem) {
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.TREE_FELLER) && Permissions.treeFeller(getPlayer()) && ItemUtils.isAxe(heldItem);
|
||||
return mcMMOPlayer.getAbilityMode(AbilityType.treeFeller) && Permissions.treeFeller(getPlayer()) && ItemUtils.isAxe(heldItem);
|
||||
}
|
||||
|
||||
protected boolean canGetDoubleDrops() {
|
||||
|
@ -177,7 +177,7 @@ public class EventUtils {
|
||||
experienceChanged = event.getExperienceChanged();
|
||||
PlayerProfile playerProfile = UserManager.getPlayer(player).getProfile();
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
String skillName = skillType.toString();
|
||||
int playerSkillLevel = playerProfile.getSkillLevel(skillType);
|
||||
|
||||
@ -215,7 +215,7 @@ public class EventUtils {
|
||||
McMMOPlayer killerPlayer = UserManager.getPlayer(killer);
|
||||
PlayerProfile victimProfile = UserManager.getPlayer(victim).getProfile();
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
String skillName = skillType.toString();
|
||||
int victimSkillLevel = victimProfile.getSkillLevel(skillType);
|
||||
|
||||
|
@ -23,7 +23,7 @@ public final class HardcoreManager {
|
||||
HashMap<String, Integer> levelChanged = new HashMap<String, Integer>();
|
||||
HashMap<String, Float> experienceChanged = new HashMap<String, Float>();
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
if (!skillType.getHardcoreStatLossEnabled()) {
|
||||
break;
|
||||
}
|
||||
@ -62,7 +62,7 @@ public final class HardcoreManager {
|
||||
HashMap<String, Integer> levelChanged = new HashMap<String, Integer>();
|
||||
HashMap<String, Float> experienceChanged = new HashMap<String, Float>();
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
if (!skillType.getHardcoreVampirismEnabled()) {
|
||||
break;
|
||||
}
|
||||
@ -107,7 +107,7 @@ public final class HardcoreManager {
|
||||
public static boolean isStatLossEnabled() {
|
||||
boolean enabled = false;
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
if (skillType.getHardcoreStatLossEnabled()) {
|
||||
enabled = true;
|
||||
break;
|
||||
@ -125,7 +125,7 @@ public final class HardcoreManager {
|
||||
public static boolean isVampirismEnabled() {
|
||||
boolean enabled = false;
|
||||
|
||||
for (SkillType skillType : SkillType.nonChildSkills) {
|
||||
for (SkillType skillType : SkillType.getNonChildSkills()) {
|
||||
if (skillType.getHardcoreVampirismEnabled()) {
|
||||
enabled = true;
|
||||
break;
|
||||
|
@ -85,7 +85,7 @@ public final class Motd {
|
||||
* @param player Target player
|
||||
*/
|
||||
public static void displayXpPerks(Player player) {
|
||||
for (SkillType skill : SkillType.skillList) {
|
||||
for (SkillType skill : SkillType.getSkillList()) {
|
||||
if (PerksUtils.handleXpPerks(player, 1, skill) > 1) {
|
||||
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.XP.Name"), LocaleLoader.getString("Perks.XP.Desc")));
|
||||
return;
|
||||
@ -126,7 +126,7 @@ public final class Motd {
|
||||
* @param player Target player
|
||||
*/
|
||||
public static void displayLuckyPerks(Player player) {
|
||||
for (SkillType skill : SkillType.skillList) {
|
||||
for (SkillType skill : SkillType.getSkillList()) {
|
||||
if (Permissions.lucky(player, skill)) {
|
||||
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login")));
|
||||
return;
|
||||
|
@ -61,7 +61,7 @@ public final class CommandRegistrationManager {
|
||||
private static String permissionsMessage = LocaleLoader.getString("mcMMO.NoPermission");
|
||||
|
||||
private static void registerSkillCommands() {
|
||||
for (SkillType skill : SkillType.skillList) {
|
||||
for (SkillType skill : SkillType.getSkillList()) {
|
||||
String commandName = skill.toString().toLowerCase();
|
||||
String localizedName = skill.getLocalizedName().toLowerCase();
|
||||
|
||||
|
@ -181,7 +181,7 @@ public final class CommandUtils {
|
||||
* @param display The sender to display stats to
|
||||
*/
|
||||
public static void printGatheringSkills(Player inspect, CommandSender display) {
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), SkillType.gatheringSkills);
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), SkillType.getGatheringSkills());
|
||||
}
|
||||
|
||||
public static void printGatheringSkills(Player player) {
|
||||
@ -195,7 +195,7 @@ public final class CommandUtils {
|
||||
* @param display The sender to display stats to
|
||||
*/
|
||||
public static void printCombatSkills(Player inspect, CommandSender display) {
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), SkillType.combatSkills);
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), SkillType.getCombatSkills());
|
||||
}
|
||||
|
||||
public static void printCombatSkills(Player player) {
|
||||
@ -209,7 +209,7 @@ public final class CommandUtils {
|
||||
* @param display The sender to display stats to
|
||||
*/
|
||||
public static void printMiscSkills(Player inspect, CommandSender display) {
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), SkillType.miscSkills);
|
||||
printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), SkillType.getMiscSkills());
|
||||
}
|
||||
|
||||
public static void printMiscSkills(Player player) {
|
||||
|
@ -76,7 +76,7 @@ public class ScoreboardManager {
|
||||
Collections.shuffle(colors, Misc.getRandom());
|
||||
|
||||
int i = 0;
|
||||
for (SkillType type : SkillType.skillList) {
|
||||
for (SkillType type : SkillType.getSkillList()) {
|
||||
// Include child skills
|
||||
skillLabelBuilder.put(type, getShortenedName(colors.get(i) + type.getLocalizedName(), false));
|
||||
|
||||
@ -84,7 +84,7 @@ public class ScoreboardManager {
|
||||
abilityLabelBuilder.put(type.getAbility(), getShortenedName(colors.get(i) + type.getAbility().getName()));
|
||||
|
||||
if (type == SkillType.mining) {
|
||||
abilityLabelBuilder.put(AbilityType.BLAST_MINING, getShortenedName(colors.get(i) + AbilityType.BLAST_MINING.getName()));
|
||||
abilityLabelBuilder.put(AbilityType.blastMining, getShortenedName(colors.get(i) + AbilityType.blastMining.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ public class ScoreboardManager {
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (SkillType type : SkillType.skillList) {
|
||||
for (SkillType type : SkillType.getSkillList()) {
|
||||
// Include child skills
|
||||
skillLabelBuilder.put(type, getShortenedName(ChatColor.GREEN + type.getLocalizedName()));
|
||||
|
||||
@ -102,14 +102,14 @@ public class ScoreboardManager {
|
||||
abilityLabelBuilder.put(type.getAbility(), getShortenedName(ChatColor.AQUA + type.getAbility().getName()));
|
||||
|
||||
if (type == SkillType.mining) {
|
||||
abilityLabelBuilder.put(AbilityType.BLAST_MINING, getShortenedName(ChatColor.AQUA + AbilityType.BLAST_MINING.getName()));
|
||||
abilityLabelBuilder.put(AbilityType.blastMining, getShortenedName(ChatColor.AQUA + AbilityType.blastMining.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (AbilityType type : AbilityType.values()) {
|
||||
abilityLabelSkillBuilder.put(type, getShortenedName((type == AbilityType.BLAST_MINING ? ChatColor.BLUE : ChatColor.AQUA) + type.getName()));
|
||||
for (AbilityType type : AbilityType.getAbilities()) {
|
||||
abilityLabelSkillBuilder.put(type, getShortenedName((type == AbilityType.blastMining ? ChatColor.BLUE : ChatColor.AQUA) + type.getName()));
|
||||
}
|
||||
|
||||
skillLabels = skillLabelBuilder.build();
|
||||
|
@ -428,10 +428,10 @@ public class ScoreboardWrapper {
|
||||
|
||||
if (targetSkill == SkillType.mining) {
|
||||
// Special-Case: Mining has two abilities, both with cooldowns
|
||||
Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.SUPER_BREAKER));
|
||||
Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.BLAST_MINING));
|
||||
int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.SUPER_BREAKER), 0);
|
||||
int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING), 0);
|
||||
Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.superBreaker));
|
||||
Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.blastMining));
|
||||
int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.superBreaker), 0);
|
||||
int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.blastMining), 0);
|
||||
|
||||
cooldownSB.setScore(secondsSB);
|
||||
cooldownBM.setScore(secondsBM);
|
||||
@ -460,7 +460,7 @@ public class ScoreboardWrapper {
|
||||
case COOLDOWNS_BOARD:
|
||||
boolean anyCooldownsActive = false;
|
||||
|
||||
for (AbilityType ability : AbilityType.values()) {
|
||||
for (AbilityType ability : AbilityType.getAbilities()) {
|
||||
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0);
|
||||
|
||||
if (seconds != 0) {
|
||||
@ -494,7 +494,7 @@ public class ScoreboardWrapper {
|
||||
|
||||
// Calculate power level here
|
||||
int powerLevel = 0;
|
||||
for (SkillType skill : SkillType.nonChildSkills) { // Don't include child skills, makes the list too long
|
||||
for (SkillType skill : SkillType.getNonChildSkills()) { // Don't include child skills, makes the list too long
|
||||
int level = newProfile.getSkillLevel(skill);
|
||||
|
||||
powerLevel += level;
|
||||
@ -527,7 +527,7 @@ public class ScoreboardWrapper {
|
||||
Integer rank;
|
||||
Player player = mcMMO.p.getServer().getPlayerExact(playerName);
|
||||
|
||||
for (SkillType skill : SkillType.nonChildSkills) {
|
||||
for (SkillType skill : SkillType.getNonChildSkills()) {
|
||||
if (!skill.getPermissions(player)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ public class SkillUtils {
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
SkillType skill = mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) ? SkillType.mining : SkillType.excavation;
|
||||
SkillType skill = mcMMOPlayer.getAbilityMode(AbilityType.superBreaker) ? SkillType.mining : SkillType.excavation;
|
||||
int ticks = PerksUtils.handleActivationPerks(player, 2 + (mcMMOPlayer.getSkillLevel(skill) / AdvancedConfig.getInstance().getAbilityLength()), skill.getAbility().getMaxLength()) * Misc.TICK_CONVERSION_FACTOR;
|
||||
|
||||
PotionEffect abilityBuff = new PotionEffect(PotionEffectType.FAST_DIGGING, duration + ticks, amplifier + 10);
|
||||
@ -229,7 +229,7 @@ public class SkillUtils {
|
||||
}
|
||||
|
||||
private static boolean isLocalizedSkill(String skillName) {
|
||||
for (SkillType skill : SkillType.skillList) {
|
||||
for (SkillType skill : SkillType.getSkillList()) {
|
||||
if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".SkillName"))) {
|
||||
return true;
|
||||
}
|
||||
|
@ -7,3 +7,4 @@ Upgrades_Finished:
|
||||
DROP_SQL_PARTY_NAMES: false
|
||||
DROP_SPOUT: false
|
||||
ADD_ALCHEMY: false
|
||||
ADD_INDEX_NAMES: true
|
Loading…
Reference in New Issue
Block a user