upload src

This commit is contained in:
Indyuce 2019-08-26 18:40:40 +02:00
commit 1c35076ded
446 changed files with 38566 additions and 0 deletions

210
config.yml Normal file
View File

@ -0,0 +1,210 @@
# --------------------------------------------------------------
#
# Thanks for using MMOItems!
#
# --------------------------------------------------------------
# Notifies players with the 'mmoitems.update-notify' perm node when
# they join the server if a new update is available for download.
# Requires /reload when changed.
update-notify: true
# The plugin takes a few milliseconds to read the item data from the item
# config and a few hundred MICROseconds to actually generate it. Caching the
# item allows to skip the first step which reduces ~6 times the delay needed
# to generate any mmoitem.
#
# However, it does take up much more RAM space. Toggle it on if you have
# too many items which makes item generation time consuming. Toggle it off
# to get some spare memory.
use-item-caching: true
# Default: 2.5 ; critical strikes deal 2.5x damage.
# Can be increased by 'Critical Strike Power'
crit-coefficient: 2.5
# By default, all player inventories will be updated every
# 10 ticks which corresponds to 2 inventory updates a second.
inventory-update-delay: 10
# Changes the default value for some stats.
default:
attack-speed: 0.67
range: 16
blunt-rating: 33
recoil: 0.1
# Enable/disable the item glow feature. Make sure you
# reload your server when changing this option. This
# option might take extra performance so consider toggling
# it off if you have players or mobs dropping many items.
item-glow: true
item-upgrading:
# Display name suffix for upgraded items.
name-suffix: '&f &a+#lvl#'
soulbound:
# Edit soulbound damage when players try to use
# items which are not bound to themselves.
damage:
base: 2
per-lvl: 2
# Default and max. values of armor stats. These systems
# all have a cooldown which can be reduced using the
# '*** Cooldown Reduction' item stat.
mitigation:
block:
power:
default: 25.0
max: 75.0
rating-max: 80.0
cooldown:
base: 5.0
max-reduction: 80.0
dodge:
knockback:
enabled: true
force: 1
rating-max: 80.0
cooldown:
base: 5.0
max-reduction: 80.0
parry:
knockback-force: 1.0
rating-max: 80.0
cooldown:
base: 8.0
max-reduction: 80.0
# Enable, disable and customize the weapon effects here.
# Weapon effects depend on the item type & type set.
item-ability:
staff:
enabled: true
cooldown: 30
power: 1
gauntlet:
enabled: true
cooldown: 60
power: 1
blunt:
aoe:
enabled: true
cooldown: 2
stun:
enabled: true
chance: 5
cooldown: 30
power: 1
slashing:
enabled: true
cooldown: 2
piercing:
enabled: true
cooldown: 4
gem-sockets:
# Define the text you need to enter in the
# item gem sockets if you want to create an
# uncolored gem socket i.e a socket for any type of gem.
uncolored: 'Uncolored'
advanced-workbench:
# Define on what actions the adv workbench will open.
open-when:
# When enabled, players can open the adv. workbench
# by right-clicking a workbench while NOT sneaking.
simple-click: false
# When enabled, players can open the adv. workbench
# by right-clicking a workbench WHILE SNEAKING.
shift-click: true
# Players can click the anvil in the advanced workbench
# to see all the available advanced crafting recipes.
recipe-list: true
# Use this option if your chat management plugin is having
# conflicts with the MMOItems chat input feature. This will
# bring up an anvil GUI which you can input text in instead
# of using the chat.
anvil-text-input: false
# Players can't use their weapon/abilities when holding
# two-handed item and one other item simultaneously.
# When toggled off, players still receive slow 4.
two-handed-item-restriction: true
# You can select what char will be used to create
# the item ability cooldown progress bar.
cooldown-progress-bar-char:
# When toggled off, players can't damage each other using item abilities.
ability-player-damage: true
# Displays a message on the action bar instead of on the chat.
# Can be used to reduce chat spam.
# Might interfere with other action bar plugins.
action-bar-display:
ability-cooldown: true
not-enough-mana: true
not-enough-stamina: true
two-handed: true
cant-use-item: true
mitigation: true
item-break: false
# Displays in-game damage indicators.
# Requires HolographicDisplays/Holograms to work.
# Requires /reload when enabled/disabled.
game-indicators:
damage:
enabled: true
decimal-format: '0.#'
format: '&c-#'
# format: '&c&l✦ #'
heal:
enabled: true
decimal-format: '0.#'
format: '&a+#'
# format: '&a&l❤ #'
# Unregisters all crafting recipes. Requires /reload.
# Also disables the advanced workbench when disabling advanced craftings.
disable-craftings:
vanilla: false
advanced: false
# "repair" prevents players from repairing MMOItems.
# "smelt" prevents players from smelting MMOItems.
# 'enchant" disables enchanting for MMOItems.
# "craft" prevents players from using MMOItems as ingredients.
# "arrow-shooting" prevents players from shooting any MMOItem that is an arrow.
disable-interactions:
interact: false
repair: false
enchant: false
smelt: false
craft: false
arrow-shooting: false
# Block types that can't be broken by an ability/item effect
block-blacklist:
- OBSIDIAN
- BEDROCK
# Allows/disables the permissions needed in order to use items/abilities.
# General permission node for abilities: mmoitems.ability.ability-id
# Ex: - mmoitems.ability.fire-meteor
# - mmoitems.ability.slow
# - mmoitems.ability.cursed-fangs
# etc.
permissions:
abilities: false
items: true
# Disables non MMOItems from being crafted in the vanilla workbench.
# Add [] if the list is empty.
disable-vanilla-recipes: []
# - DIAMOND_PICKAXE
# - IRON_BLOCK

View File

@ -0,0 +1,72 @@
# Name which will be displayed
# when opening the station
name: 'Arcane Forge (#page#/#max#)'
# The maximum amount of items in the crafting queue ie. the
# max number of items players are able to craft simultaneously.
max-queue-size: 10
# Configure GUI items here
items:
fill:
material: AIR
no-recipe:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Recipe'
no-queue-item:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Item in Queue'
# Station recipes
recipes:
magic-essence:
output:
type: MATERIAL
id: MAGIC_ESSENCE
amount: 1
crafting-time: 5
conditions:
- 'level 5'
ingredients:
- 'mmoitem MATERIAL MAGIC_FRAGMENT 3 Magic_Fragment'
arcane-helmet:
output:
type: ARMOR
id: ARCANE_HELM
amount: 1
crafting-time: 7
conditions:
- 'level 4'
ingredients:
- 'mmoitem MATERIAL MAGIC_ESSENCE 6 Magic_Essence'
steel-chestplate:
output:
type: ARMOR
id: ARCANE_CHESTPLATE
amount: 1
crafting-time: 7
conditions:
- 'level 4'
ingredients:
- 'mmoitem MATERIAL MAGIC_ESSENCE 9 Magic_Essence'
steel-leggings:
output:
type: ARMOR
id: ARCANE_LEGGINGS
amount: 1
crafting-time: 7
conditions:
- 'level 4'
ingredients:
- 'mmoitem MATERIAL MAGIC_ESSENCE 8 Magic_Essence'
steel-boots:
output:
type: ARMOR
id: ARCANE_BOOTS
amount: 1
crafting-time: 7
conditions:
- 'level 4'
ingredients:
- 'mmoitem MATERIAL MAGIC_ESSENCE 5 Magic_Essence'

View File

@ -0,0 +1,151 @@
# Name which will be displayed
# when opening the station
name: 'Mythical Forge (#page#/#max#)'
# The maximum amount of items in the crafting queue ie. the
# max number of items players are able to craft simultaneously.
max-queue-size: 10
# Configure GUI items here
items:
fill:
material: AIR
no-recipe:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Recipe'
no-queue-item:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Item in Queue'
# Station recipes
recipes:
soulstealer:
output:
type: SWORD
id: SOULSTEALER
amount: 1
crafting-time: 20
conditions:
- 'level 24'
ingredients:
- 'mmoitem MISCELLANEOUS HUMAN_SOUL 8 Human_Soul'
- 'mmoitem SWORD STEEL_SWORD 1 Steel_Sword'
fire-essence:
output:
type: MATERIAL
id: FIRE_ESSENCE
amount: 1
crafting-time: 5
conditions:
- 'level 15'
ingredients:
- 'vanilla BLAZE_POWDER . 4 Blaze_Powder'
fire-totem:
output:
type: CATALYST
id: FIRE_TOTEM
amount: 1
crafting-time: 30
conditions:
- 'level 10'
ingredients:
- 'mmoitem MATERIAL FIRE_ESSENCE 8 Fire_Essence'
- 'vanilla BLAZE_ROD . 1 Blaze_Rod'
- 'vanilla BLAZE_POWDER . 4 Blaze_Powder'
blaze-soul:
output:
type: GEM_STONE
id: BLAZE_SOUL
amount: 1
crafting-time: 20
conditions:
- 'level 12'
ingredients:
- 'mmoitem MATERIAL FIRE_ESSENCE 5 Fire_Essence'
hell-bow:
output:
type: BOW
id: HELL_BOW
amount: 1
crafting-time: 20
conditions:
- 'level 24'
ingredients:
- 'mmoitem MATERIAL FIRE_ESSENCE 2 Fire_Essence'
- 'vanilla BOW . 1 Bow'
fire-greatlance:
output:
type: LANCE
id: FIRE_GREATLANCE
amount: 1
crafting-time: 35
conditions:
- 'level 30'
ingredients:
- 'mmoitem MATERIAL FIRE_ESSENCE 4 Fire_Essence'
molten-blade:
output:
type: GREATSWORD
id: MOLTEN_BLADE
amount: 1
crafting-time: 20
conditions:
- 'level 20'
ingredients:
- 'mmoitem MATERIAL FIRE_ESSENCE 13 Fire_Essence'
- 'mmoitem SWORD STEEL_SWORD 1 Steel_Sword'
wither-essence:
output:
type: MATERIAL
id: WITHER_ESSENCE
amount: 1
crafting-time: 5
conditions:
- 'level 20'
ingredients:
- 'vanilla WITHER_SKELETON_SKULL'
marking-bow:
output:
type: BOW
id: MARKING_BOW
amount: 1
crafting-time: 20
conditions:
- 'level 20'
ingredients:
- 'vanilla BOW . 1 Bow'
- 'mmoitem MATERIAL WITHER_ESSENCE 1 Wither_Essence'
cursed-wither-skull:
output:
type: ARMOR
id: CURSED_WITHER_SKULL
amount: 1
crafting-time: 10
conditions:
- 'level 15'
ingredients:
- 'vanilla IRON_HELMET'
- 'mmoitem MATERIAL WITHER_ESSENCE 1 Wither_Essence'
dead-pharaoh-helmet:
output:
type: ARMOR
id: DEAD_PHARAOH_HELMET
amount: 1
crafting-time: 10
conditions:
- 'level 10'
ingredients:
- 'vanilla DIAMOND'
- 'vanilla SKELETON_SKULL'
mossy-skeleton-skull:
output:
type: ARMOR
id: MOSSY_SKELETON_SKULL
amount: 1
crafting-time: 10
conditions:
- 'level 17'
ingredients:
- 'vanilla MOSSY_COBBLESTONE'
- 'vanilla SKELETON_SKULL'

View File

@ -0,0 +1,180 @@
# Name which will be displayed
# when opening the station
name: 'Steel Crafting Station (#page#/#max#)'
# The maximum amount of items in the crafting queue ie. the
# max number of items players are able to craft simultaneously.
max-queue-size: 10
# Configure GUI items here
items:
fill:
material: AIR
no-recipe:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Recipe'
no-queue-item:
material: GRAY_STAINED_GLASS_PANE
name: '&aNo Item in Queue'
# Station recipes
recipes:
steel-sword:
# The item which the recipe gives
output:
type: SWORD
id: STEEL_SWORD
amount: 1
# Time it takes to craft the item
crafting-time: 3
# Recipe options
options:
hide-when-locked: false
# Conditions to unlock the recipe
conditions:
- 'level 5'
- 'perms mmoitems.recipe.steel-sword mmoitems.recipe.station.steel'
# Ingredients needed for the recipe
# Format 1: 'mmoitem <ITEM_TYPE> <ITEM_ID> <amount> <gui_display_name>'
# Format 2: 'vanilla <MATERIAL> <display_name> <amount> <gui_display_name>'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 4 Steel_Ingot'
- 'vanilla STICK . 2 Wooden_Stick'
steel-sword-upgrade:
item:
type: SWORD
id: STEEL_SWORD
conditions:
- 'level 5'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 4 Steel_Ingot'
two-handed-steel-sword:
output:
type: GREATSWORD
id: TWO_HANDED_STEEL_SWORD
amount: 1
crafting-time: 10
conditions:
- 'level 8'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 8 Steel_Ingot'
- 'vanilla STICK . 4 Wooden_Stick'
katana:
output:
type: SWORD
id: KATANA
amount: 1
crafting-time: 20
conditions:
- 'level 15'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 6 Steel_Ingot'
- 'vanilla IRON_INGOT . 2 Iron_Ingot'
- 'vanilla STICK . 3 Wooden_Stick'
steel-helmet:
output:
type: ARMOR
id: STEEL_HELMET
amount: 1
crafting-time: 7
conditions:
- 'level 8'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 6 Steel_Ingot'
steel-chestplate:
output:
type: ARMOR
id: STEEL_CHESTPLATE
amount: 1
crafting-time: 7
conditions:
- 'level 8'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 9 Steel_Ingot'
steel-leggings:
output:
type: ARMOR
id: STEEL_LEGGINGS
amount: 1
crafting-time: 7
conditions:
- 'level 8'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 8 Steel_Ingot'
steel-boots:
output:
type: ARMOR
id: STEEL_BOOTS
amount: 1
crafting-time: 7
conditions:
- 'level 8'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 5 Steel_Ingot'
steel-ingot:
output:
type: MATERIAL
id: STEEL_INGOT
amount: 3
conditions:
- 'level 6'
ingredients:
- 'vanilla IRON_INGOT . 4 Iron_Ingot'
steel-dagger:
output:
type: DAGGER
id: STEEL_DAGGER
amount: 1
crafting-time: 6
conditions:
- 'level 20'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 4 Steel_Ingot'
- 'vanilla STICK . 2 Wooden_Stick'
hardened-steel-claymore:
output:
type: GREATSWORD
id: HARDENED_STEEL_CLAYMORE
amount: 1
crafting-time: 20
conditions:
- 'level 13'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 15 Steel_Ingot'
- 'vanilla STICK . 4 Wooden_Stick'
stiff-greatstaff:
output:
type: GREATSTAFF
id: STIFF_GREATSTAFF
amount: 1
conditions:
- 'level 6'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 4 Steel_Ingot'
- 'vanilla STICK . 10 Wooden_Stick'
steel-pickaxe:
output:
type: TOOL
id: STEEL_PICKAXE
amount: 1
conditions:
- 'level 6'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 4 Steel_Ingot'
- 'vanilla STICK . 3 Wooden_Stick'
steel-shovel:
output:
type: TOOL
id: STEEL_SHOVEL
amount: 1
conditions:
- 'level 6'
ingredients:
- 'mmoitem MATERIAL STEEL_INGOT 2 Steel_Ingot'
- 'vanilla STICK . 3 Wooden_Stick'

54
default/drops.yml Normal file
View File

@ -0,0 +1,54 @@
# You can create as many subtables as you
# want for each monster/block/mythic mob.
#
# 'coef' is the subtable coefficient. If a subtable has coef=1 and
# another subtable has coef=3, then the first subtable has 1 (his coefficient)
# chance out of 4 (sum of all subtable coefficients) to be selected.
# The higher the coefficient is, the higher the chance to be the selected subtable.
#
# When a drop table is read, a random subtable is chosen
# among all subtables. It then reads the subtable items.
#
# The subtable names do not matter, just make sure every
# subtable in a drop table has a different name.
#
# Subtable Item Format: [chance to drop],[min amount]-[max amount],[unidentification chance]
# or [chance to drop],[amount],[unidentification chance]
# '50,1-3,10' means:
# - 50% chance of dropping
# - 1 to 3 items will drop
# - 10% chance of being unidentified (for each item)
# Blocks Drop Tables
# Read when a block is mined/broken by a player.
blocks:
DIAMOND_ORE:
rare-diamond:
coef: 1
disable-silk-touch: true
items:
MATERIAL:
RARE_DIAMOND: 100,2-3,0
# Monsters Drop Tables
# Read when any monster dies.
monsters:
BLAZE:
fire-essence-table:
coef: 1
items:
MATERIAL:
fire-essence: 7,1-2,0
ZOMBIE:
rock-table:
coef: 7
items:
CONSUMABLE:
ROCK: 50,1-3,10
coin-table:
coef: 1
items:
MISCELLANEOUS:
GOLD_COIN: 1,1-10,0

66
default/item-sets.yml Normal file
View File

@ -0,0 +1,66 @@
# Item sets let you create links betweens the different items you create.
# By wearing multiple items from the same set, the player will benefit from
# set bonuses which incites him to use items from the same type.
# This is a very powerful system for RPG items.
#
# You can also use potion effects as set bonuses, e.g
# - speed: 2 gives permanent Speed II
# - increase_damage: 3 gives permanent Strength III
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
#
# You may also add abilities as full set bonuses. The ability ID
# must start with 'ability-' but it is only used as reference.
# You can configure the ability cast mode, type & modifiers as usual.
ARCANE:
name: '&2Arcane Set'
bonuses:
'3':
magic-damage: 20
'4':
max-mana: 30
speed: 1
lore-tag:
- '&7Arcane Set Bonus:'
- '&8[3] +20% Magic Damage'
- '&8[4] 30 Max Mana'
- '&8[4] Permanent Speed I'
STEEL:
name: '&8Steel Set'
bonuses:
'3':
damage-reduction: 5
'4':
damage-reduction: 5
lore-tag:
- '&7Steel Set Bonus:'
- '&8[3] +5% Damage Reduction'
- '&8[4] +5% Damage Reduction'
GINGERBREAD:
name: '&cGingerbread Set'
bonuses:
'4':
damage-reduction: 6
jump: 3
lore-tag:
- '&7Gingerbread Set Bonus:'
- '&8[4] +5% Damage Reduction'
- '&8[4] Permanent Jump III'
# Not used by default, but works.
HATRED:
name: '&cHatred Set'
bonuses:
'2':
damage-reduction: 6
ability-1:
type: LIFE_ENDER
cooldown: 30
mode: ON_HIT
lore-tag:
- '&7Hatred Set Bonus:'
- '&8[2] -6% Damage Taken'
- '&8[2] Summons a devastating fire meteor on hit.'

183
default/item-tiers.yml Normal file
View File

@ -0,0 +1,183 @@
# 'name' is used to display the tier in the item lore.
#
# 'deconstruct-item' is the drop table for the item
# that drops when deconstructing an item.
#
# Tier IDs (TRASH,COMMON...) are case sensitive.
TRASH:
name: '&8&lTRASH'
unidentification:
range: 6
name: 'Trash'
prefix: '&8'
deconstruct-item: {}
COMMON:
name: '&7&lCOMMON'
parent: TRASH
unidentification:
range: 6
name: 'Common'
prefix: '&7'
deconstruct-item: {}
UNCOMMON:
# Tier name displayed in the item lore.
name: '&8&lUNCOMMON'
# Unidentified items display the item tier.
unidentification:
# Only applies for items with a required
# levels. Corresponds to the range within
# which the required level is located.
range: 6
# Tier name displayed in lore.
name: 'Uncommon'
# unidentification item name prefix.
prefix: '&8'
item-glow:
# When enabled, dropped items display
# an item hint (looks like a hologram).
hint: true
# Item glow color. List (line 400+):
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Color.html
color: 'GRAY'
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
UNCOMMON_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 2
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
RARE:
name: '&6&lRARE'
unidentification:
name: 'Rare'
range: 6
prefix: '&6'
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
RARE_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 3
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
VERY_RARE:
name: '&e&lVERY RARE'
unidentification:
name: 'Very Rare'
prefix: '&e'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
VERY_RARE_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 3
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
LEGENDARY:
name: '&b&lLEGENDARY'
unidentification:
name: 'Legendary'
prefix: '&b'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
LEGENDARY_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 4
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
MYTHICAL:
name: '&5&lMYTHICAL'
unidentification:
name: 'Mythical'
prefix: '&5'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
MYTHICAL_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 5
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
EPIC:
name: '&4&lEPIC'
unidentification:
name: 'Epic'
prefix: '&4'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
EPIC_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 6
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
MAGICAL:
name: '&2&lMAGICAL'
unidentification:
name: 'Magical'
prefix: '&2'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
MAGICAL_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 3
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0
UNIQUE:
name: '&c&lUNIQUE'
unidentification:
name: 'Unique'
prefix: '&c'
range: 6
deconstruct-item:
sucess:
coef: 1
items:
MATERIAL:
UNIQUE_WEAPON_ESSENCE: 100,1-1,0
lose:
coef: 9
items:
MATERIAL:
WEAPON_POWDER: 100,1-1,0

505
default/item-types.yml Normal file
View File

@ -0,0 +1,505 @@
# Default item types. These cannot be removed. They
# may be used as 'parents' to create new item types
# which will behave just like another item type. Parents
# generate their own config file at /language/item_type.yml
# Every item type has its template for unidentified items.
# If you don't specify one like the default SWORD item type,
# it will use the default (not translated) english one.
# Used as reference when using /mmoitems commands
SWORD:
# The display parameter is used to display the item in both
# the item brower and the recipe list when shifting a
# workbench. You can use durability for custom textures.
# In 1.14, durability is replaced by CustomModelData.
display: IRON_SWORD:0
# Name displayed in the item lore.
name: 'Sword'
# Template of an unidentified item.
unident-item:
name: '&f#prefix#Unidentified Sword'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
DAGGER:
display: IRON_SWORD
name: 'Dagger'
unident-item:
name: '&f#prefix#Unidentified Dagger'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
SPEAR:
display: STICK
name: 'Spear'
unident-item:
name: '&f#prefix#Unidentified Spear'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
HAMMER:
display: IRON_SHOVEL
name: 'Hammer'
unident-item:
name: '&f#prefix#Unidentified Hammer'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GAUNTLET:
display: IRON_HORSE_ARMOR
name: 'Gauntlet'
unident-item:
name: '&f#prefix#Unidentified Gauntlet'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
WHIP:
display: LEAD
name: 'Whip'
unident-item:
name: '&f#prefix#Unidentified Whip'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
STAFF:
display: STICK
name: 'Staff'
unident-item:
name: '&f#prefix#Unidentified Staff'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
BOW:
display: BOW
name: 'Bow'
unident-item:
name: '&f#prefix#Unidentified Bow'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
CROSSBOW:
display: WOODEN_PICKAXE
name: 'Crossbow'
unident-item:
name: '&f#prefix#Unidentified Crossbow'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
MUSKET:
display: IRON_HORSE_ARMOR
name: 'Musket'
unident-item:
name: '&f#prefix#Unidentified Musket'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
LUTE:
display: GOLDEN_HORSE_ARMOR
name: 'Lute'
unident-item:
name: '&f#prefix#Unidentified Lute'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
CATALYST:
display: DIAMOND
name: 'Catalyst'
unident-item:
name: '&f#prefix#Unidentified Catalyst'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
OFF_CATALYST:
display: DIAMOND
name: 'Catalyst'
unident-item:
name: '&f#prefix#Unidentified Catalyst'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
ACCESSORY:
display: EMERALD
name: 'Accessory'
unident-item:
name: '&f#prefix#Unidentified Accessory'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
ARMOR:
display: GOLDEN_CHESTPLATE
name: 'Armor'
unident-item:
name: '&f#prefix#Unidentified Armor'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
TOOL:
display: IRON_PICKAXE
name: 'Tool'
unident-item:
name: '&f#prefix#Unidentified Tool'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
CONSUMABLE:
display: APPLE
name: 'Consumable'
unident-item:
name: '&f#prefix#Unidentified Consumable'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
MISCELLANEOUS:
display: WATER_BUCKET
name: 'Miscellaneous'
unident-item:
name: '&f#prefix#Unidentified Misc Item'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GEM_STONE:
display: EMERALD
name: 'Gem Stone'
unident-item:
name: '&f#prefix#Unidentified Gem'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
# Default subtypes
GREATSWORD:
display: IRON_SWORD
name: 'Greatsword'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Greatsword'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
LONG_SWORD:
display: IRON_SWORD:0
name: 'Long Sword'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Long Sword'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
KATANA:
display: IRON_SWORD
name: 'Katana'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Katana'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
THRUSTING_SWORD:
display: IRON_SWORD
name: 'Thrusting Sword'
parent: 'DAGGER'
unident-item:
name: '&f#prefix#Unidentified Thrusting Dagger'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
AXE:
display: IRON_AXE
name: 'Axe'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Axe'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GREATAXE:
display: IRON_AXE
name: 'Greataxe'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Greataxe'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
HALBERD:
display: IRON_AXE
name: 'Halberd'
parent: 'SWORD'
unident-item:
name: '&f#prefix#Unidentified Halberd'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
LANCE:
display: STICK
name: 'Lance'
parent: 'SPEAR'
unident-item:
name: '&f#prefix#Unidentified Lance'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GREATHAMMER:
display: IRON_AXE
name: 'Greathammer'
parent: 'HAMMER'
unident-item:
name: '&f#prefix#Unidentified Greathammer'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GREATSTAFF:
display: STICK
name: 'Greatstaff'
parent: 'HAMMER'
unident-item:
name: '&f#prefix#Unidentified Greatstaff'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
STAVE:
display: IRON_AXE
name: 'Stave'
parent: 'HAMMER'
unident-item:
name: '&f#prefix#Unidentified Stave'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
TOME:
display: BOOK
name: 'Tome'
parent: 'CATALYST'
unident-item:
name: '&f#prefix#Unidentified Tome'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
TALISMAN:
display: GOLD_NUGGET
name: 'Talisman'
parent: 'CATALYST'
unident-item:
name: '&f#prefix#Unidentified Talisman'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
WAND:
display: STICK
name: 'Wand'
parent: 'STAFF'
unident-item:
name: '&f#prefix#Unidentified Wand'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
GREATBOW:
display: BOW
name: 'Greatbow'
parent: 'BOW'
unident-item:
name: '&f#prefix#Unidentified Greatbow'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
SHIELD:
display: SHIELD
name: 'Shield'
parent: CATALYST
unident-item:
name: '&f#prefix#Unidentified Shield'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'
MATERIAL:
display: PAPER
name: 'Material'
parent: 'MISCELLANEOUS'
unident-item:
name: '&f#prefix#Unidentified Material'
lore:
- '&7This item is unidentified. I must'
- '&7find a way to identify it!'
- '{tier}'
- '{tier}&8Item Info:'
- '{range}&8- &7Lvl Range: &e#range#'
- '{tier}&8- &7Item Tier: #prefix##tier#'

562
default/item/armor.yml Normal file
View File

@ -0,0 +1,562 @@
MYTHRIL_CHAINMAIL:
material: CHAINMAIL_CHESTPLATE
name: '&b--] &fMythril Chainmail &b[--'
block-power: 50.0=70.0
block-rating: 10.0=15.0
armor: 5
element:
ice:
defense: 8.0
light:
defense: 6.4
gem-sockets:
- Red
- Blue
required-level: 4.0
tier: UNCOMMON
STEEL_HELMET:
material: IRON_HELMET
block-power: 5.0=7.0
block-rating: 5.0=8.0
required-level: 3.0
name: '&fSteel Helm'
armor: 2.5
lore:
- '&7Slightly better than an iron helmet.'
tier: COMMON
knockback-resistance: 0.01=0.03
gem-sockets:
- Green
advanced-craft-enabled: true
set: STEEL
advanced-craft:
'4':
material: AIR
durability: 0
amount: 1
name: ''
'6':
material: AIR
durability: 0
amount: 1
name: ''
'7':
material: AIR
durability: 0
amount: 1
name: ''
'8':
material: AIR
durability: 0
amount: 1
name: ''
'3':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'0':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'1':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'5':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'2':
type: MATERIAL
id: STEEL_INGOT
amount: 1
STEEL_CHESTPLATE:
material: IRON_CHESTPLATE
block-power: 5.0=7.0
block-rating: 5.0=8.0
required-level: 3.0
name: '&fSteel Chestplate'
armor: 6.5
lore:
- '&7Slightly better than an iron chestplate.'
tier: COMMON
knockback-resistance: 0.01=0.03
gem-sockets:
- Blue
advanced-craft-enabled: true
set: STEEL
advanced-craft:
'1':
material: AIR
durability: 0
amount: 1
name: ''
'3':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'7':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'6':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'8':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'5':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'4':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'0':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'2':
type: MATERIAL
id: STEEL_INGOT
amount: 1
STEEL_LEGGINGS:
material: IRON_LEGGINGS
block-power: 5.0=7.0
block-rating: 5.0=8.0
required-level: 3.0
name: '&fSteel Leggings'
armor: 5.5
lore:
- '&7Slightly better than iron leggings.'
tier: COMMON
knockback-resistance: 0.01=0.03
gem-sockets:
- Blue
advanced-craft-enabled: true
set: STEEL
advanced-craft:
'4':
material: AIR
durability: 0
amount: 1
name: ''
'7':
material: AIR
durability: 0
amount: 1
name: ''
'8':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'6':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'3':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'0':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'1':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'2':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'5':
type: MATERIAL
id: STEEL_INGOT
amount: 1
STEEL_BOOTS:
material: IRON_BOOTS
block-power: 5.0=7.0
block-rating: 5.0=8.0
required-level: 3.0
name: '&fSteel Boots'
armor: 2.5
lore:
- '&7Slightly better than iron boots.'
tier: COMMON
knockback-resistance: 0.01=0.03
gem-sockets:
- Green
advanced-craft-enabled: true
set: STEEL
advanced-craft:
'0':
material: AIR
durability: 0
amount: 1
name: ''
'1':
material: AIR
durability: 0
amount: 1
name: ''
'2':
material: AIR
durability: 0
amount: 1
name: ''
'4':
material: AIR
durability: 0
amount: 1
name: ''
'7':
material: AIR
durability: 0
amount: 1
name: ''
'6':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'3':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'8':
type: MATERIAL
id: STEEL_INGOT
amount: 1
'5':
type: MATERIAL
id: STEEL_INGOT
amount: 1
CURSED_WITHER_SKULL:
material: WITHER_SKELETON_SKULL
name: '&7Cursed Wither Skull'
required-level: 30.0
tier: UNIQUE
gem-sockets:
- Red
- Blue
armor: 3.0
durability: 3
armor-toughness: 2.0
perm-effects:
ABSORPTION: 1
lore:
- '&7Grants a permanent &62'
- '&6hearts &7absorption shield.'
durability: 1.0
element:
light:
defense: 67.4
fire:
defense: 53.4
advanced-craft-enabled: true
advanced-craft:
'4':
type: MATERIAL
id: UNIQUE_WEAPON_ESSENCE
amount: 1
'8':
material: BONE
amount: 1
durability: 0
name: ''
'7':
material: BONE
amount: 1
durability: 0
name: ''
'6':
material: BONE
amount: 1
durability: 0
name: ''
'5':
material: BONE
amount: 1
durability: 0
name: ''
'2':
material: BONE
amount: 1
durability: 0
name: ''
'1':
material: BONE
amount: 1
durability: 0
name: ''
'0':
material: BONE
amount: 1
durability: 0
name: ''
'3':
material: BONE
amount: 1
durability: 0
name: ''
HUGE_MOTHRON_WINGS:
material: ELYTRA
max-durability: 5.0
two-handed: false
name: '&eHuge Mothron Wings'
tier: RARE
unbreakable: true
movement-speed: -0.03
will-break: false
ARCANE_HELM:
material: LEATHER_HELMET
name: '&5Arcane Helm'
tier: RARE
required-level: 4.0
max-mana: 10.0
dye-color: 100 100 255
armor: 2.0
magic-damage: 15.0
item-particles:
type: GALAXY
particle: SPELL_WITCH
set: ARCANE
ARCANE_CHESTPLATE:
material: LEATHER_CHESTPLATE
name: '&5Arcane Tunic'
tier: RARE
required-level: 4.0
max-mana: 10.0
dye-color: 100 100 255
armor: 6.0
magic-damage: 15.0
ability:
on-hit:
type: WITHER
mode: WHEN_HIT
cooldown: 9.0
amplifier: 2.0
item-particles:
type: GALAXY
particle: SPELL_WITCH
lore:
- '&2Enemies trying to attack you'
- '&2will be violently inflicted a wither'
- '&2effect for a short period of time.'
set: ARCANE
ARCANE_LEGGINGS:
material: LEATHER_LEGGINGS
name: '&5Arcane Leggings'
tier: RARE
required-level: 4.0
max-mana: 10.0
dye-color: 100 100 255
armor: 5.0
magic-damage: 15.0
item-particles:
type: GALAXY
particle: SPELL_WITCH
gem-sockets:
- Blue
- Green
set: ARCANE
ARCANE_BOOTS:
material: LEATHER_BOOTS
name: '&5Arcane Boots'
tier: RARE
required-level: 4.0
max-mana: 10.0
dye-color: 100 100 255
armor: 2.0
magic-damage: 15.0
item-particles:
type: GALAXY
particle: SPELL_WITCH
lore:
- '&2Greatly increases your'
- '&2fall damage reduction.'
fall-damage-reduction: 40.0=50.0
set: ARCANE
GINGERBREAD_HELM:
material: LEATHER_HELMET
dye-color: 255 150 100
name: '&cGingerbread Helmet'
required-level: 2.0
lore:
- '&eEarned during X-Mas 2018!'
set: GINGERBREAD
parry-rating: 5.0
max-health: 2.0
armor: 2.0
regeneration: 10.0
item-particles:
type: OFFSET
particle: REDSTONE
color:
red: 255
green: 100
blue: 100
GINGERBREAD_TUNIC:
material: LEATHER_CHESTPLATE
dye-color: 255 130 130
name: '&cGingerbread Tunic'
required-level: 2.0
lore:
- '&eEarned during X-Mas 2018!'
set: GINGERBREAD
parry-rating: 5.0
max-health: 2.0
armor: 6.0
regeneration: 10.0
item-particles:
type: OFFSET
particle: REDSTONE
color:
red: 255
green: 100
blue: 100
GINGERBREAD_LEGGINGS:
material: LEATHER_LEGGINGS
dye-color: 255 140 120
name: '&cGingerbread Leggings'
required-level: 2.0
lore:
- '&eEarned during X-Mas 2018!'
set: GINGERBREAD
parry-rating: 5.0
max-health: 2.0
armor: 5.0
regeneration: 10.0
item-particles:
type: OFFSET
particle: REDSTONE
color:
red: 255
green: 100
blue: 100
GINGERBREAD_BOOTS:
material: LEATHER_BOOTS
dye-color: 255 150 150
name: '&cGingerbread Boots'
required-level: 2.0
lore:
- '&eEarned during X-Mas 2018!'
set: GINGERBREAD
parry-rating: 5.0
max-health: 2.0
armor: 2.0
regeneration: 10.0
item-particles:
type: OFFSET
particle: REDSTONE
color:
red: 255
green: 100
blue: 100
DEAD_PHARAOH_HELMET:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGU1NWRmOTc5YWI3OTc0OWY4YjU1MWI0MjM5YTQ2OWFhNzY5ZDliNDYwNTBhYWJkOWY2ZDFjZWU1M2VkMzYifX19
uuid: 852deb36-af4a-412f-ac76-2b06dc123ed2
name: '&cDead Pharaoh Helmet'
disable-interaction: true
item-particles:
type: FIREFLIES
particle: SMOKE_NORMAL
fire-damage-reduction: 30.0
armor: 4.0
undead-damage: 30.0
lore:
- '&7This powerful forgotten helmet'
- '&7will greatly increase your power'
- '&7against undead creatures.'
required-level: 9.0
MOSSY_SKELETON_SKULL:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWE2MzE0ZWFjMzQ0MTZjZTEwYWIyMmMyZTFjNGRjYjQ3MmEzZmViOThkNGUwNGQzZmJiYjg1YTlhNDcxYjE4In19fQ
uuid: f455a085-3f09-43ac-8be1-175204d1a6ad
name: '&8Mossy Skeleton Skull'
required-level: 6.0
armor: 3.5
knockback-resistance: 0.1
movement-speed: -0.01
disable-interaction: true
SKELETON_CROWN:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGM3OGQyMTAyZGI3NWYxYjM3NDRhNWU3ZTliYWNjZjg4ZmRhNGNjNDk3OWViYzBhODFiN2Q5ZWI1NzIxYzAifX19
uuid: ccb901e7-0919-463d-9bdd-ee9acae8e0e2
name: '&eSkeleton Crown'
required-level: 9.0
armor: 3.0
movement-speed: 0.01
ability:
ability1:
type: LIFE_ENDER
mode: WHEN_HIT
damage: 3.0
cooldown: 9.0
lore:
- '&7Every 9 seconds, summons a'
- '&cdeadly meteor&7 at your attacker,'
- '&7dealing &c4&7 damage while briefly'
- '&7knocking them away.'
disable-interaction: true
WYVERN_CAP:
material: GOLDEN_HELMET
name: '&fWyvern Cap'
required-level: 10.0
hide-enchants: false
enchants:
unbreaking: 9
armor: 2.5
fall-damage-reduction: 70.0
perm-effects:
JUMP: 2
lore:
- '&7Grants permanent jump boost II'
advanced-craft:
'4':
amount: 1
material: AIR
durability: 0
name: ''
'6':
amount: 1
material: AIR
durability: 0
name: ''
'7':
amount: 1
material: AIR
durability: 0
name: ''
'8':
amount: 1
material: AIR
durability: 0
name: ''
'3':
type: TOME
id: WYVERN_FEATHER
amount: 1
'5':
type: TOME
id: WYVERN_FEATHER
amount: 1
'2':
type: TOME
id: WYVERN_FEATHER
amount: 1
'0':
type: TOME
id: WYVERN_FEATHER
amount: 1
'1':
type: TOME
id: WYVERN_SOUL
amount: 1

110
default/item/axe.yml Normal file
View File

@ -0,0 +1,110 @@
BUTCHER_AXE:
material: IRON_AXE
name: '&cButcher&f''s Axe'
tier: '&8Uncommon'
critical-strike-chance: 5.0
critical-strike-power: 248.0
attack-damage: 6.0
attack-speed: 0.7
ability:
right-click:
type: CIRCULAR_SLASH
mode: RIGHT_CLICK
knockback: 3.0
cooldown: 39.0
damage: 6.0
element:
darkness:
damage: 3.2
gem-sockets:
- Uncolored
craft-enabled: true
craft:
- IRON_BLOCK IRON_BLOCK AIR
- IRON_BLOCK STICK AIR
- AIR STICK AIR
BONE_CRACKER:
material: STONE_AXE
disable-repairing: true
disable-enchanting: true
unbreakable: false
two-handed: true
tier: COMMON
armor-toughness: 2.0
gem-sockets:
- Uncolored
name: '&fBone Cracker'
attack-damage: 10.0=12.0
attack-speed: 0.4=0.5
required-level: 4.0
durability: 10.0=100.0
SKULL_BREAKER:
material: IRON_AXE
attack-damage: 16.0=18.0
attack-speed: 0.3=0.4
name: '&f&lSKULL BREAKER'
tier: COMMON
two-handed: true
movement-speed: -0.02
lore:
- '&7Its large blade &cslow&7 its targets'
- '&7when smashing it on their skull.'
required-level: 9.0
required-class:
- Brute
- Warrior
SILVER_AXE:
material: IRON_AXE
custom-model-data: 1.0
name: '&fSilver Axe'
attack-damage: 9.0=10.0
attack-speed: 0.9=1.0
critical-strike-chance: 5.0=7.0
ability:
ability1:
type: CIRCULAR_SLASH
damage: 6.0
cooldown: 20.0
mode: SHIFT_RIGHT_CLICK
lore:
- '&7Every &c20 &7seconds, shift and'
- '&7right-click to perform a devastating'
- '&7circular slash, dealing &c6 &7damage'
- '&7and knocking back nearby targets.'
advanced-craft:
'0':
material: AIR
amount: 1
name: ''
'3':
material: AIR
amount: 1
name: ''
'6':
material: AIR
amount: 1
name: ''
'8':
material: AIR
amount: 1
name: ''
'7':
material: STICK
amount: 1
name: ''
'4':
material: STICK
amount: 1
name: ''
'2':
type: MATERIAL
id: SILVER_INGOT
amount: 1
'1':
type: MATERIAL
id: SILVER_INGOT
amount: 1
'5':
type: MATERIAL
id: SILVER_INGOT
amount: 1

54
default/item/bow.yml Normal file
View File

@ -0,0 +1,54 @@
HELL_BOW:
material: BOW
enchants:
unbreaking: 10
infinity: 1
hide-enchants: true
unbreakable: true
tier: '&6Rare'
attack-damage: 10.0=13.0
critical-strike-chance: 10.0=60.0
critical-strike-power: 10.0=15.0
element:
fire:
damage: 14.0
ability:
right-click:
type: FIREBOLT
mode: SHIFT_LEFT_CLICK
cooldown: 20.0
damage: 4.0
ignite: 6.0
gem-sockets:
- Red
- Red
- Green
name: '&cHell Bow'
pve-damage: 20.0=30.0
arrow-particles:
amount: 5
offset: 0.05
particle: FLAME
speed: 0.08
MARKING_BOW:
material: BOW
enchants:
unbreaking: 3
name: '&8Marking Bow'
attack-damage: 7.0
arrow-particles:
particle: SMOKE_NORMAL
amount: 3
speed: 0.05
ability:
ability1:
type: WEAKEN_TARGET
mode: ON_HIT
extra-damage: 60.0
dodge-rating: 10.0
damage-reduction: -5.0
required-level: 10.0
lore:
- '&7Shoot an entity to &cmark &7it. The'
- '&7next attack against this entity'
- '&7will deal &c60%&7 extra damage.'

49
default/item/catalyst.yml Normal file
View File

@ -0,0 +1,49 @@
NATURES_GIFT:
material: OAK_SAPLING
disable-crafting: true
name: '&9Magical Catalyst'
lore:
- '&7No one knows where it was'
- '&7found. Hold it in your hands'
- '&7to &bdouble &7your regeneration!'
magic-damage: 10=20
required-level: 4.0
required-class:
- Wizard
- Paladin
hide-enchants: true
enchants:
unbreaking: 1
regeneration: 90.0=110.0
WARRIOR_AMULET:
material: GRAY_DYE
name: '&fWarrior Amulet'
disable-crafting: true
hide-enchants: true
enchants:
unbreaking: 1
damage-reduction: 5.0
regeneration: 8.0
FORGOTTEN_IDOL:
material: GOLD_NUGGET
enchants:
unbreaking: 1
hide-enchants: true
name: '&eForgotten Idol'
required-level: 19.0
weapon-damage: 30.0=40.0
FIRE_TOTEM:
material: BLAZE_ROD
hide-enchants: true
enchants:
unbreaking: 1
name: '&fFire Totem'
tier: RARE
fire-damage-reduction: 80.0=90.0
required-level: 10.0
disable-crafting: true
LUCKY_CHARM:
material: RABBIT_FOOT
name: '&fLucky Charm'
tier: NORMAL
critical-strike-chance: 2.5

334
default/item/consumable.yml Normal file
View File

@ -0,0 +1,334 @@
SANDWITCH:
material: BREAD
name: '&cSand&6witch'
restore:
health: 0
food: 5
saturation: 0
effects:
POISON: 10,2
lore:
- '&7Are you really that hungry?!'
item-cooldown: 15
ROCK:
material: COBBLESTONE
name: '&fRock'
lore:
- '&7Use it to sharpen your weapons,'
- '&7or &ndamage&7 your enemies.'
tier: TRASH
item-cooldown: 3
repair: 3.0
ability:
right-click:
type: ITEM_THROW
mode: RIGHT_CLICK
damage: 2.0
cooldown: 3
SCROLL_OF_IDENTIFICATION:
material: PAPER
name: '&fScroll of Identification'
tier: '&8Uncommon'
can-identify: true
craft-enabled: true
craft:
- AIR AIR AIR
- PAPER DIAMOND PAPER
- AIR AIR AIR
inedible: true
ITEM_CRUSHER:
material: IRON_AXE
required-level: 3.0
can-deconstruct: true
name: '&f&lItem Crusher'
RECALL_POTION:
material: POTION
hide-potion-effects: true
name: '&9Recall Potion'
lore:
- '&7Brings you back home.'
potion-color: 100 100 255
commands:
'1':
format: spawn
item-cooldown: 60.0
FIREBALL_SCROLL:
material: PAPER
item-cooldown: 30.0
required-level: 15.0
tier: MAGICAL
ability:
right-click:
type: FIREBOLT
mode: RIGHT_CLICK
damage: 5.0
cooldown: 0.0
ignite: 3.0
name: '&cFireball Scroll I'
FIREBALL_SCROLL_II:
material: PAPER
item-cooldown: 25.0
required-level: 17
tier: MAGICAL
ability:
right-click:
type: FIREBOLT
mode: RIGHT_CLICK
damage: 10.0
cooldown: 0.0
ignite: 5.0
name: '&cFireball Scroll II'
FIREBALL_SCROLL_III:
material: PAPER
item-cooldown: 20.0
required-level: 20.0
tier: MAGICAL
ability:
right-click:
type: FIREBOLT
mode: RIGHT_CLICK
damage: 15.0
cooldown: 0.0
ignite: 7.0
name: '&cFireball Scroll III'
APPLE_OF_DISCORD:
material: GOLDEN_APPLE
durability: 1.0
name: '&6[ Apple of Discord ]'
required-level: 4.0
restore:
health: 1.0
food: 15.0
saturation: 1.0
item-cooldown: 50.0
effects:
ABSORPTION: 40.0,2
REGENERATION: 40.0,2
SPEED: 40.0,2
SHARP_FLINT:
material: FLINT
name: '&fSharp Flint'
tier: COMMON
repair: 20.0
DEATH_STEW:
material: MUSHROOM_STEW
name: '&fDeath Soup'
lore:
- '&8&oDon''t you dare drinking that...'
tier: UNIQUE
effects:
HARM: 1.0,100
KARTOFFELSALAT:
material: RABBIT_STEW
name: '&9Kartoffelsalat'
tier: COMMON
restore-stamina: 10.0
restore:
food: 3.0
saturation: 10.0
item-cooldown: 30.0
lore:
- '&7Very punchy, yet hard to finish.'
LARGE_HEALTH_POTION:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTFlN2ViMmU0NjFlOTZlNjMxY2JhMGMwY2RhYTU0NDg4MDYzMDJlZGFlOTFiNjFkYWZjMjgxYWU1ODRkOCJ9fX0=
uuid: 701aa558-c1b0-4eb7-81e4-79b1af25283c
name: '&fLarge Health Potion'
item-cooldown: 10.0
restore:
health: 10.0
consume-sound: ENTITY_GENERIC_DRINK
LARGE_MANA_POTION:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2FmNmRjNjdjZTc1YjcyMjJhYzM5ZTA1MzZlMDkwNzI0OWY4NTUxNmVmZDEzODViZWM5MGJlMzNkZDUzZGUwNyJ9fX0=
uuid: 0b4b6108-eb50-4a35-ae8b-53d5c2ad2a84
name: '&fLarge Mana Potion'
restore-mana: 30.0=40.0
item-cooldown: 15.0
consume-sound: ENTITY_GENERIC_DRINK
TACO:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTQ5ZDNkODg5Y2ZmNjU1YzYyMjgzNDE4NDU1MjA1YjAzYWU3N2ZmYjdlZTE4ZGQwM2FjMGE0ZmZiODk1NjE1YiJ9fX0=
uuid: c8113aeb-0b63-4654-9e8f-54416fd2fde8
name: '&fTaco'
restore:
health: 3.0
food: 8.0
saturation: 10.0
item-cooldown: 2.0
lore:
- '&7&oA hot & tasty taco!'
BURGER:
material: PLAYER_HEAD
item-cooldown: 3.0
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTUwMzkxYjEzODNkOWVmOWU2ZTdiZjVmODJkMWNmODgyZDgxZTJiMDA0ZGUzNjlmNzI5ZWRhMDRiMmVhNjNkMyJ9fX0=
uuid: 076dd3bf-0d76-497b-9745-40ed9402a311
restore:
health: 4.0
food: 10.0
saturation: 9.0
restore-stamina: 30.0
name: '&fTasty Burger'
lore:
- '&7&oMmmmh, yummy!'
WEIRD_CANDY_BAG:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODdmNTA0Y2RiZjViMjExMjFiODIxODUyOGRjZTU2NzUwNWQ0NTY3ZDdlNzJjZDQzYTQ2M2NkNTFjODAxM2E2In19fQ==
uuid: efdf121e-209f-49a2-9c56-d0bf058f33ae
name: '&9Weird Candy Bag'
item-cooldown: 3.0
restore:
food: 4.0
effects:
CONFUSION: 30.0,1
SUSHI_ROLL:
material: PLAYER_HEAD
skull-texture:
value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmVlYzc2NDBlNDMyNDBjODE2N2IxNjc3ZWFiZmZhYWQ5ZjYyODA2Y2NiZTI2NzMyNGM5N2NlYjcyOWQzMDNhIn19fQ==
uuid: b7c55ea2-d4cc-467e-85c7-dd8052c1675b
name: '&fSushi Roll'
lore:
- '&7&oSushis are leggit the'
- '&7&obest food on Earth.'
item-cooldown: 0.5
restore:
health: 1.0
effects:
SPEED: 1.0,1
SOULBINDER1:
material: ENDER_EYE
name: '&fApprentice Soulbinder'
disable-interaction: true
soulbound-level: 1.0
soulbinding-chance: 70.0
SOULCRUSHER1:
material: ENDER_PEARL
name: '&fNovice Soulcrusher'
disable-interaction: true
soulbound-level: 1.0
soulbound-break-chance: 30.0
SOULBINDER2:
material: ENDER_EYE
name: '&fIntermediate Soulbinder'
disable-interaction: true
soulbound-level: 2.0
soulbinding-chance: 80.0
SOULCRUSHER2:
material: ENDER_PEARL
name: '&fIntermediate Soulcrusher'
disable-interaction: true
soulbound-level: 2.0
soulbound-break-chance: 40.0
SOULBINDER3:
material: ENDER_EYE
name: '&fArcane Soulbinder'
disable-interaction: true
soulbound-level: 3.0
soulbinding-chance: 90.0
SOULCRUSHER3:
material: ENDER_PEARL
name: '&fArcane Soulcrusher'
disable-interaction: true
soulbound-level: 3.0
soulbound-break-chance: 50.0
SANTA_COOKIE:
material: COOKIE
name: '&cS&fa&cn&ft&ca''&fs &cC&fo&co&fk&ci&fe'
lore:
- '&7&oWhere are the darn cookies!'
restore:
saturation: 12.0
consume-sound: ENTITY_PLAYER_BURP
item-cooldown: 2.0
effects:
SPEED: 1.0,2
ENDER_NOTE:
material: PAPER
ability:
right-click:
type: BLINK
mode: RIGHT_CLICK
cooldown: 180
range: 150.0
name: '&5Ender Tome'
item-cooldown: 179.99
consume-sound: ENTITY_ENDERMAN_TELEPORT
lore:
- '&7Teleports you &5miles&7 away.'
effects:
HARM: 0.1,2
THROW_COAL:
material: COAL
ability:
right-click:
type: ITEM_THROW
cooldown: 3.0
damage: 3.0
mode: RIGHT_CLICK
name: '&fThrowable Coal'
lore:
- '&fChuck them at your friends'
item-cooldown: 3.0
disable-right-click-consume: false
inedible: false
disable-crafting: false
disable-smelting: false
EGGNOG:
material: EGG
name: '&6Eggnog'
disable-interaction: true
disable-crafting: true
item-cooldown: 3.0
restore:
health: 2.0
food: 2.0
saturation: 4.0
commands:
'1':
format: me Mmmmmh!
cooldown: 3.0
advanced-craft:
'0':
material: AIR
amount: 1
name: ''
'1':
material: AIR
amount: 1
name: ''
'2':
material: AIR
amount: 1
name: ''
'3':
material: AIR
amount: 1
name: ''
'5':
material: AIR
amount: 1
name: ''
'6':
material: AIR
amount: 1
name: ''
'8':
material: AIR
amount: 1
name: ''
'4':
material: SUGAR
amount: 1
name: ''
'7':
material: EGG
amount: 1
name: ''
lore:
- '&eEarned during X-Mas 2018!'
- '&e&oA fresh & cold eggnog!'

49
default/item/dagger.yml Normal file
View File

@ -0,0 +1,49 @@
STEEL_DAGGER:
material: IRON_SWORD
name: '&fSteel Dagger'
attack-damage: 4.5=5.0
attack-speed: 1.8=2.0
pvp-damage: 15.0=20.0
movement-speed: 0.02
critical-strike-chance: 50.0=60.0
gem-sockets:
- Uncolored
- Blue
ability:
right-click:
type: THRUST
mode: RIGHT_CLICK
damage: 4.3
cooldown: 5.0
stamina: 20.0
tier: COMMON
required-level: 5.0
required-class:
- Rogue
- Archer
DRACULA_DAGGER:
material: IRON_SWORD
tier: RARE
required-level: 15.0
attack-damage: 7.0=8.0
name: '&fDracula''s Dagger'
attack-speed: 1.6=1.7
critical-strike-chance: 15.0
fall-damage-reduction: 43.0
regeneration: 40.0=45.0
gem-sockets:
- Uncolored
- Red
ability:
on-hit:
type: VAMPIRISM
mode: ON_HIT
drain: 3.0
cooldown: 4.0
lore:
- '&7Every 4sec, hitting an'
- '&7enemy &cdrains&7 his health,'
- '&7healing you for &c1.5 heart&7.'
enchants:
unbreaking: 10
hide-enchants: true

View File

@ -0,0 +1,63 @@
RUBY:
material: EMERALD
name: '&fRuby of Strength'
critical-strike-power: 10.0=12.0
attack-damage: 1.0=2.0
required-level: 5.0
disable-crafting: true
GEM_OF_ACCURACY:
material: DIAMOND
disable-crafting: true
name: '&fGem of Accuracy'
success-rate: 90.0=99.0
attack-speed: 0.05=0.1
tier: COMMON
critical-strike-chance: 10.0=15.0
gem-color: Blue
displayed-type: Blue Gem Stone
GEM_OF_LIFE:
material: RED_DYE
max-health: 4.0
name: '&fGem of Life'
item-type-restriction:
- ARMOR
gem-color: Red
displayed-type: Red Armor Gem Stone
block-power: 3.0
disable-crafting: true
NATURE_GIFT:
material: EMERALD
name: '&fNature''s Gift'
displayed-type: Green Gem Stone
regeneration: 50.0=70.0
fire-damage-reduction: 20.0=30.0
required-level: 6.0
SPITEFUL_OPAQUE_DIAMOND:
material: DIAMOND
name: '&9Spiteful Opaque Diamond'
success-rate: 10.0=12.0
attack-damage: 3.0=4.0
armor: 2.0
disable-crafting: true
gem-color: Blue
displayed-type: Blue Gem Stone
GOLDEN_RELIC:
material: GOLD_NUGGET
name: '&eGolden Relic'
lore:
- '&7Apply it onto &eany&7 socket.'
- '&7'
critical-strike-chance: 10.0=20.0
required-level: 20.0
disable-crafting: true
BLAZE_SOUL:
material: ORANGE_DYE
disable-crafting: true
name: '&cBlaze Soul'
required-level: 15.0
displayed-type: Red Gem Stone
hide-enchants: true
enchants:
unbreaking: 1
fire-damage-reduction: 50.0=60.0
success-rate: 60.0=80.0

View File

@ -0,0 +1,19 @@
STIFF_GREATSTAFF:
material: STICK
name: '&fStiff Greatstaff'
attack-damage: 10.0=12.0
required-level: 6.0
attack-speed: 0.9
ability:
on-hit:
type: STUN
mode: ON_HIT
cooldown: 15.0
lore:
- '&7So heavy it &cstuns&7 enemies on hit.'
disable-crafting: true
disable-smelting: true
block-rating: 5.0
blunt-rating: 75.0
dodge-rating: -30.0
tier: COMMON

147
default/item/greatsword.yml Normal file
View File

@ -0,0 +1,147 @@
HARDENED_STEEL_CLAYMORE:
material: IRON_SWORD
name: '&fHardened Steel Claymore'
required-level: 13.0
tier: RARE
required-class:
- Warrior
- Paladin
attack-damage: 5.0=6.0
attack-speed: 1.2=1.4
critical-strike-chance: 12.0
critical-strike-power: 24.0
two-handed: true
unbreakable: true
enchants:
sharpness: 4
knockback: 2
gem-sockets:
- Red
- Blue
perm-effects:
FAST_DIGGING: 3
ability:
right-click:
type: CIRCULAR_SLASH
mode: RIGHT_CLICK
damage: 7.2
cooldown: 19.0
on-hit:
type: SHOCK
mode: ON_HIT
duration: 1.3
cooldown: 25.0
max-durability: 1000.0
CANDY_CANE_SWORD:
material: WOODEN_SWORD
name: '&fC&ca&fn&cd&fy &cC&fa&cn&fe &cS&fw&co&fr&cd'
attack-damage: 8.0
unbreakable: true
attack-speed: 1.6=1.8
lore:
- '&7This sword embodies the christmas spirit.'
- '&7Hit a monster to release it!'
- ''
- '&eEarned during X-Mas 2018!'
regeneration: 30.0=40.0
critical-strike-chance: 20.0
critical-strike-power: 60.0
ability:
on-hit:
type: DEATH_MARK
mode: ON_HIT
cooldown: 10.0
MOLTEN_BLADE:
material: GOLDEN_SWORD
enchants:
knockback: 2
name: '&cMolten Blade'
attack-speed: 1.3
attack-damage: 11.0
advanced-craft:
'0':
material: AIR
durability: 0
amount: 1
name: ''
'2':
material: AIR
durability: 0
amount: 1
name: ''
'6':
material: AIR
durability: 0
amount: 1
name: ''
'8':
material: AIR
durability: 0
amount: 1
name: ''
'7':
material: BLAZE_ROD
amount: 1
durability: 0
name: ''
'4':
type: MATERIAL
id: FIRE_ESSENCE
amount: 1
'3':
type: MATERIAL
id: FIRE_ESSENCE
amount: 1
'1':
type: MATERIAL
id: FIRE_ESSENCE
amount: 1
'5':
type: MATERIAL
id: FIRE_ESSENCE
amount: 1
ability:
ability1:
type: MAGMA_FISSURE
mode: ON_HIT
cooldown: 13.0
lore:
- '&7Every 13s, your next melee'
- '&7attack summons a devastating'
- '&cmagma fissure&7 that dashes to'
- '&7your target, &cigniting &7it and'
- '&7dealing &cdamage&7 upon landing.'
magic-damage: 30.0
unbreakable: true
two-handed: true
TWO_HANDED_STEEL_SWORD:
material: IRON_SWORD
name: '&fTwo Handed Steel Sword'
enchants:
sharpness: 4
knockback: 1
unbreaking: 6
two-handed: true
unbreakable: true
attack-damage: 7.0=10.0
attack-speed: 0.8=1.0
critical-strike-chance: 7.0=10.0
critical-strike-power: 170.0=210.0
required-level: 2.0
element:
ice:
damage: 7.0
gem-sockets:
- Blue
- Blue
tier: UNCOMMON
ability:
right-click:
type: CIRCULAR_SLASH
mode: RIGHT_CLICK
cooldown: 8.0
damage: 4.0
lore:
- '&7Right click to &c&nsmash&7 nearby'
- '&7enemies for &c4&7 damage.'
hide-enchants: true

28
default/item/halberd.yml Normal file
View File

@ -0,0 +1,28 @@
DOUBLE_OR_NOTHING:
material: IRON_AXE
lore:
- '&7&oA very powerful yet hard'
- '&7&oto manipulate weapon...'
- '&7&oBe very careful!'
critical-strike-power: 800.0=900.0
critical-strike-chance: 48.0=52.0
attack-damage: 1.4=1.5
attack-speed: 1.0=1.1
required-level: 10.0
enchants:
unbreaking: 5
hide-enchants: true
name: '&b&l&o"Double or Nothing"'
gem-sockets:
- Red
- Uncolored
- Green
- Blue
ability:
on-hit:
type: SLOW
mode: ON_HIT
cooldown: 30.0
duration: 4.0
amplifier: 2.0
pvp-damage: 12.0

23
default/item/hammer.yml Normal file
View File

@ -0,0 +1,23 @@
SANTAMMER:
material: IRON_AXE
item-particles:
particle: REDSTONE
type: HELIX
color:
red: 50
green: 255
blue: 50
name: '&7S&fa&7n&ft&fa&7m&fm&7e&fr'
attack-damage: 9.7
attack-speed: 0.6
enchants:
unbreaking: 3
required-level: 15.0
critical-strike-power: 10.0
ability:
on-hit:
type: STUN
mode: ON_HIT
cooldown: 15.0
lore:
- '&eEarned during X-Mas 2018!'

24
default/item/lance.yml Normal file
View File

@ -0,0 +1,24 @@
FIRE_GREATLANCE:
material: BLAZE_ROD
required-level: 30.0
attack-damage: 14.0=15.0
attack-speed: 1.1
name: '&fFire Greatlance'
ability:
on-hit:
type: LIFE_ENDER
mode: ON_HIT
damage: 10.0
cooldown: 30.0
lore:
- '&7Every 40s in combat, casts'
- '&7a devastating &6fire comet'
- '&7that wipes out any life form'
- '&7nearby whenever it lands.'
item-particles:
type: DOUBLE_RINGS
particle: FLAME
radius: 1.3
rotation-speed: 0.4
disable-crafting: true
two-handed: true

224
default/item/material.yml Normal file
View File

@ -0,0 +1,224 @@
STEEL_INGOT:
material: IRON_INGOT
name: '&fSteel Ingot'
disable-repairing: true
disable-crafting: true
lore:
- '&7Can be used at the steel crafting'
- '&7station to craft advanced gear.'
UNCOMMON_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft uncommon items.'
name: '&eUncommon Weapon Essence'
disable-crafting: true
disable-smelting: true
WITHER_ESSENCE:
material: BLACK_DYE
name: '&8Wither Essence'
disable-crafting: true
RARE_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft rare items.'
name: '&eRare Weapon Essence'
disable-crafting: true
disable-smelting: true
VERY_RARE_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft very rare items.'
name: '&eVery rare Weapon Essence'
disable-crafting: true
disable-smelting: true
LEGENDARY_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft legendary items.'
name: '&eLegendary Weapon Essence'
disable-crafting: true
disable-smelting: true
MYTHICAL_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft mythical items.'
name: '&eMythical Weapon Essence'
disable-crafting: true
disable-smelting: true
EPIC_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft epic items.'
name: '&eEpic Weapon Essence'
disable-crafting: true
disable-smelting: true
MAGICAL_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft magical items.'
name: '&eMagical Weapon Essence'
disable-crafting: true
disable-smelting: true
UNIQUE_WEAPON_ESSENCE:
material: BLAZE_POWDER
enchants:
unbreaking: 1
hide-enchants: true
lore:
- '&7Can be used to craft unique items.'
name: '&eUnique Weapon Essence'
disable-crafting: true
disable-smelting: true
WEAPON_POWDER:
material: GUNPOWDER
tier: TRASH
name: '&7Broken Weapon Powder'
lore:
- '&7Can be used as regular gunpowder.'
- '&7Obtained when deconstructing an item.'
MAGIC_FRAGMENT:
material: MAGENTA_DYE
disable-crafting: true
tier: RARE
name: '&8Magic Fragment'
MAGIC_ESSENCE:
material: BOOK
disable-crafting: true
tier: RARE
name: '&5Magic Essence'
FIRE_ESSENCE:
material: BLAZE_POWDER
disable-crafting: true
name: '&bFire Essence'
hide-enchants: true
enchants:
unbreaking: 1
advanced-craft:
'8':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'7':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'6':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'5':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'2':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'1':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'0':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'3':
material: BLAZE_POWDER
amount: 1
durability: 0
name: ''
'4':
material: BLAZE_ROD
amount: 1
durability: 0
name: ''
RARE_DIAMOND:
material: DIAMOND
enchants:
unbreaking: 1
hide-enchants: true
disable-crafting: true
name: '&bRare Diamond'
SILVER_COIN:
material: IRON_NUGGET
name: '&fSilver Coin'
lore:
- '&7A very shiny silver coin.'
enchants:
unbreaking: 1
hide-enchants: true
disable-crafting: true
SILVER_INGOT:
material: IRON_INGOT
name: '&fSilver Ingot'
lore:
- '&7A very shiny silver ingot.'
enchants:
unbreaking: 1
hide-enchants: true
disable-crafting: true
advanced-craft:
'7':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'6':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'3':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'8':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'4':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'5':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'0':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'1':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1
'2':
type: MISCELLANEOUS
id: SILVER_COIN
amount: 1

View File

@ -0,0 +1,21 @@
GOLD_COIN:
material: GOLD_NUGGET
name: '&fGold Coin'
lore:
- '&7A very shiny gold coin.'
enchants:
unbreaking: 1
hide-enchants: true
disable-crafting: true
HUMAN_SOUL:
material: PHANTOM_MEMBRANE
disable-repairing: false
disable-enchanting: false
hide-enchants: true
enchants:
unbreaking: 1
name: '&6Human Soul'
disable-crafting: true
lore:
- '&7&oYou hear the screams of'
- '&7&oyour enemies... or friends.'

64
default/item/shield.yml Normal file
View File

@ -0,0 +1,64 @@
PALADIN_SHIELD:
material: SHIELD
name: '&f&m--[&e Paladin Shield &f&m]--'
tier: RARE
two-handed: false
max-health: 8.0
armor: 6.0
armor-thoughness: 3.0
unbreakable: true
block-power: 50.0
block-rating: 20.0
perm-effects:
SLOW: 3
gem-sockets:
- Red
- Red
required-level: 15.0
shield-pattern:
color: YELLOW
'0':
pattern: CURLY_BORDER
color: ORANGE
'1':
pattern: STRIPE_MIDDLE
color: YELLOW
MAGICAL_SHIELD:
material: SHIELD
required-level: 5.0
tier: MAGICAL
perm-effects:
SLOW: 4
DAMAGE_RESISTANCE: 4
gem-sockets:
- Red
- Red
shield-pattern:
color: WHITE
'0':
pattern: STRAIGHT_CROSS
color: YELLOW
'1':
pattern: FLOWER
color: ORANGE
'2':
pattern: BORDER
color: YELLOW
name: '&fMagical Shield'
lore:
- '&7A rudimentary shield to'
- '&7carry your gem stones.'
block-rating: 5.0
block-power: 5.0=7.0
ABSORBING_SHIELD:
material: SHIELD
required-level: 15.0
shield-pattern:
color: BLUE
name: '&9Absorbing Shield'
unbreakable: true
damage-reduction: 50.0=60.0
movement-speed: -0.03
two-handed: true
disable-smelting: false
disable-crafting: true

76
default/item/staff.yml Normal file
View File

@ -0,0 +1,76 @@
EARTH_STAFF:
material: JUNGLE_SAPLING
name: '&fEarth Staff'
enchants:
unbreaking: 1
hide-enchants: true
movement-speed: 0.005
attack-damage: 16.0=18.0
attack-speed: 0.4
critical-strike-chance: 18.0
critical-strike-power: 49.0
range: 15.0
two-handed: true
perm-effects:
JUMP: 2
craft-enabled: true
craft:
- JUNGLE_SAPLING EMERALD JUNGLE_SAPLING
- EMERALD STICK EMERALD
- JUNGLE_SAPLING EMERALD JUNGLE_SAPLING
element:
earth:
damage: 23.0
gem-sockets:
- Blue
- Blue
ability:
right-click:
type: EARTHQUAKE
mode: SHIFT_LEFT_CLICK
cooldown: 28.0
damage: 5.0
amplifier: 2.0
duration: 2.0
on-hit:
type: SLOW
mode: ON_HIT
cooldown: 39.0
amplifier: 4.0
duration: 2.0
lore:
- '&7An extremely powerful weapon.'
- '&7Use it &f&nwisely&7.'
tier: '&eVery Rare'
disable-crafting: true
disable-smelting: true
disable-interaction: true
required-level: 30.0
LIGHTNING_STAFF:
material: STICK
name: '&f&lLightning Staff'
required-level: 3.0
attack-damage: 8.0=12.0
attack-speed: 0.3=0.5
staff-spirit: LIGHTNING_SPIRIT
gem-sockets:
- Blue
- Blue
range: 45.0
ability:
on-hit:
type: STARFALL
mode: ON_HIT
damage: 5.0
cooldown: 30.0
BONE_STAFF:
material: BONE
disable-interaction: false
disable-crafting: true
required-level: 3.0
attack-damage: 4.0=6.0
attack-speed: 0.4
tier: TRASH
magic-damage: 5.0=9.0
lore: []
name: '&fBone Staff'

203
default/item/sword.yml Normal file
View File

@ -0,0 +1,203 @@
CUTLASS:
material: IRON_SWORD
attack-damage: 6.0=8.0
attack-speed: 1.6=1.8
lore:
- '&7Slightly better than an iron sword.'
required-level: 3.0
tier: COMMON
name: '&fSharp Cutlass'
max-durability: 300.0
FALCON_BLADE:
material: GOLDEN_SWORD
name: '&e&nFalcon Blade'
required-level: 10.0
attack-damage: 7.0=9.0
attack-speed: 1.6=2.0
critical-strike-chance: 50.0=70.0
gem-sockets:
- Blue
- Green
ability:
on-hit:
type: STUN
mode: ON_HIT
duration: 1.0
cooldown: 9.0
unbreakable: true
perm-effects:
SPEED: 1
hide-enchants: true
enchants:
unbreaking: 1
disable-enchanting: true
disable-crafting: true
disable-repairing: true
disable-smelting: true
tier: EPIC
advanced-craft:
'0':
material: AIR
durability: 0
amount: 1
name: ''
'2':
material: AIR
durability: 0
amount: 1
name: ''
'6':
material: AIR
durability: 0
amount: 1
name: ''
'8':
material: AIR
durability: 0
amount: 1
name: ''
'4':
material: GOLDEN_SWORD
amount: 1
durability: 0
name: ''
'5':
type: MATERIAL
id: EPIC_WEAPON_ESSENCE
amount: 1
'7':
type: MATERIAL
id: EPIC_WEAPON_ESSENCE
amount: 1
'3':
type: MATERIAL
id: EPIC_WEAPON_ESSENCE
amount: 1
'1':
type: MATERIAL
id: EPIC_WEAPON_ESSENCE
amount: 1
KATANA:
material: IRON_SWORD
attack-damage: 7.0
lore:
- '&7&oA very sharp & light sword'
- '&7&oforged by a hundred years'
- '&7&oof smithing mastery.'
attack-speed: 2.0
tier: RARE
movement-speed: 0.02
critical-strike-chance: 10.0
name: '&fKatana'
max-durability: 800.0
SOULSTEALER:
material: IRON_SWORD
enchants:
unbreaking: 9
name: '&cThe Soulstealer'
attack-damage: 7.0=7.5
attack-speed: 1.6=1.7
mana-cost: 2.0
critical-strike-chance: 30.0
max-health: 2.0
required-level: 10.0
ability:
ability1:
type: VAMPIRISM
mode: ON_HIT
cooldown: 7.0
advanced-craft:
'7':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'6':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'3':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'8':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'5':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'2':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'0':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'1':
type: MISCELLANEOUS
id: HUMAN_SOUL
amount: 1
'4':
type: SWORD
id: SILVER_SWORD
amount: 1
lore:
- '&7Drains &c10%&7 of the damage'
- '&7dealt as health points.'
STEEL_SWORD:
material: IRON_SWORD
name: '&fSteel Sword'
attack-damage: 6=7
attack-speed: 1.6=1.65
lore:
- '&7May be upgraded.'
required-level: 6.0
upgrade:
template: weapon-default
SILVER_SWORD:
material: IRON_SWORD
name: '&fSilver Sword'
attack-damage: 6.0
attack-speed: 1.6
lore:
- '&7May be upgraded.'
required-level: 4.0
advanced-craft:
'0':
material: AIR
amount: 1
name: ''
'2':
material: AIR
amount: 1
name: ''
'3':
material: AIR
amount: 1
name: ''
'5':
material: AIR
amount: 1
name: ''
'6':
material: AIR
amount: 1
name: ''
'8':
material: AIR
amount: 1
name: ''
'4':
type: MATERIAL
id: SILVER_INGOT
amount: 1
'1':
type: MATERIAL
id: SILVER_INGOT
amount: 1
'7':
material: STICK
amount: 1
name: ''

47
default/item/tome.yml Normal file
View File

@ -0,0 +1,47 @@
AMPLIFICATION_TOME:
material: ENCHANTED_BOOK
name: '&9Amplification Tome'
required-level: 9.0
lore:
- '&7It emits a strong magical aura.'
- '&7Hold it to &5greatly enhance'
- '&7your magical powers.'
magic-damage: 80.0=90.0
WYVERN_FEATHER:
material: FEATHER
disable-crafting: true
name: '&fWyvern Feather'
fall-damage-reduction: 65.0
WYVERN_SOUL:
material: ENDER_EYE
name: '&fWyvern Soul'
disable-interaction: true
disable-crafting: true
enchants:
unbreaking: 1
perm-effects:
LEVITATION: 2
hide-enchants: true
TOME_OF_ACCURACY:
material: ENCHANTED_BOOK
disable-repairing: true
name: '&eTome of Accuracy'
critical-strike-power: 25.0=30.0
critical-strike-chance: 5.0=10.0
lore:
- '&7Increases your critical power.'
NAUGHTY_SPELL_BOOK:
material: ENCHANTED_BOOK
disable-repairing: true
name: '&8Naughty Spell Book'
required-level: 20.0
ability:
right-click:
type: CURSED_BEAM
mode: RIGHT_CLICK
cooldown: 30.0
damage: 6.0
lore:
- '&7Right click to cast a &5cursed beam&7.'
- '&7This magic projectile deals &57'
- '&5damage &7to the first enemy it hits.'

18
default/item/tool.yml Normal file
View File

@ -0,0 +1,18 @@
STEEL_PICKAXE:
material: IRON_PICKAXE
name: '&fSteel Pickaxe'
max-durability: 1000
tier: COMMON
lore:
- '&7A much more durable iron pick.'
will-break: true
unbreakable: true
STEEL_SHOVEL:
material: IRON_SHOVEL
name: '&fSteel Shovel'
max-durability: 1000
tier: COMMON
lore:
- '&7A much more durable iron spade.'
will-break: true
unbreakable: true

45
default/item/wand.yml Normal file
View File

@ -0,0 +1,45 @@
OAK_WAND:
material: STICK
name: '&f<wood> Wand'
required-level: 1.0
range: 20.0
attack-damage: 2.0=5.0
attack-speed: 1.0=1.3
critical-strike-chance: 8.0=10.0
ability:
right-click:
type: SPARKLE
mode: RIGHT_CLICK
damage: 3.0
cooldown: 15.0
BLAZE_WAND:
material: BLAZE_ROD
hide-enchants: true
enchants:
unbreaking: 1
required-level: 45.0
attack-damage: 10.0=20.0
attack-speed: 1.0=1.4
critical-strike-chance: 20.0
range: 20.0=25.0
tier: VERY_RARE
perm-effects:
FIRE_RESISTANCE: 1
ability:
on-hit:
type: BURN
mode: ON_HIT
cooldown: 40.0
duration: 5.0
right-click:
type: FIREBOLT
mode: RIGHT_CLICK
damage: 5.0
ignite: 3.0
cooldown: 20.0
gem-sockets:
- Red
- Red
- Blue
name: '&c&lBlaze Wand'
disable-crafting: true

BIN
default/legacy-configs.zip Normal file

Binary file not shown.

109
default/lore-format.yml Normal file
View File

@ -0,0 +1,109 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {sbar} will stay whatever is below them.
lore-format:
# - '{bar}&8&m--------&f&l &nGeneral&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
# - '{bar}&8&m--------&f&l &nStatistics&8 &m-------------'
- '{bar}'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
# - '{bar}&8&m--------&2&l &nElements&8 &m--------------'
- '{bar}'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
- '{bar}'
- '#effects#'
# - '{bar}&8&m--------&b&l &nAbilities&8 &m--------------'
- '{bar}'
- '#abilities#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
# - '#perm-effects#'
# - '{bar}&8&m--------&e&l &nGem Stones&8 &m-----------'
- '{bar}'
- '#gem-stones#'
# - '{sbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,70 @@
# Name placeholders can be used in the item display name
# A placeholder will return a random element of each list.
# To use a placeholder, simply add <placeholder> inside the name of your item.
#
# e.g:
# TEST_ITEM:
# material: IRON_SWORD
# display-name: '<lms-sword> Iron Sword'
#
# You can put multiple of the same placeholder in each
# list to give some placeholder less chance to be chosen.
# These placeholders will be harder to obtain.
lms:
- 'Large'
- 'Medium'
- 'Small'
lms-sword:
- 'Long'
- 'Normal'
- 'Normal'
- 'Normal'
- 'Short'
- 'Short'
- 'Short'
cs:
- 'Factory New'
- 'Minimal Wear'
- 'Field Tested'
- 'Well Worn'
- 'Battle Scarred'
mythical:
- 'Epic'
- 'Mythical'
- 'Mystic'
- 'Legendary'
- 'Unreal'
- 'Godly'
greekGod:
- 'Poseidon'
- 'Zeus'
- 'Hephaistos'
- 'Hares'
- 'Athena'
- 'Hermes'
wood:
- 'Oak'
- 'Birch'
- 'Jungle'
- 'Spruce'
- 'Dark Oak'
- 'Acacia'
gem-stone:
- 'Lapis'
- 'Topaz'
- 'Ruby'
- 'Emerald'
- 'Diamond'
- 'Amethyst'
- 'Sapphire'
- 'Amber'
ore:
- 'Gold'
- 'Iron'
- 'Silver'
- 'Platinum'
- 'Palladium'
- 'Adamantite'
- 'Orichalcum'
- 'Cobalt'

10
default/read-me.txt Normal file
View File

@ -0,0 +1,10 @@
If you want to import a language into MMOItems, simply drag & drop
the contents of a language folder into the /MMOItems/language folder.
Make sure you have all the files at the end, and restart your server.
!! Some item stats use lore to store their data and thus will NO LONGER work on older items if
you change their corresponding translation in the /MMOItems/language/stats.yml file, including:
- custom durability
So make sure you translate them before creating items with these options! Translations
may sometimes be incomplete often due to big updates not including translation upgrates.

4
default/stations.yml Normal file
View File

@ -0,0 +1,4 @@
ingredients:
mmoitem:
positive:
negative:

104
default/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&7➸ Attack Damage: &f#'
attack-speed: '&7➸ Attack Speed: &f#'
critical-strike-chance: '&7■ Crit Strike Chance: &f<plus>#%'
critical-strike-power: '&7■ Crit Strike Power: &f<plus>#%'
range: '&7■ Range: &f#'
mana-cost: '&9■ Uses # Mana'
stamina-cost: '&9■ Uses # Stamina'
arrow-velocity: '&7■ Arrow Velocity: &f#%'
blunt-power: '&7■ Blunt Power: &f#'
blunt-rating: '&7■ Blunt Rating: &f#%'
two-handed: '&7■ Two Handed'
knockback: '&7■ Knockback: &f#'
recoil: '&7■ Recoil: &f#%'
note-weight: '&7■ Note Weight: &f#'
# Extra Damage
pve-damage: '&7■ PvE Damage: &f<plus>#%'
pvp-damage: '&7■ PvP Damage: &f<plus>#%'
magic-damage: '&7■ Magic Damage: &f<plus>#%'
weapon-damage: '&7■ Weapon Damage: &f<plus>#%'
undead-damage: '&7■ Undead Damage: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ Block Power: &f<plus>#%'
block-rating: '&7■ Block Rating: &f<plus>#%'
block-cooldown-reduction: '&7■ Block Cooldown Reduction: &f<plus>#%'
dodge-rating: '&7■ Dodge Rating: &f<plus>#%'
dodge-cooldown-reduction: '&7■ Dodge Cooldown Reduction: &f<plus>#%'
parry-rating: '&7■ Parry Rating: &f<plus>#%'
parry-cooldown-reduction: '&7■ Parry Cooldown Reduction: &f<plus>#%'
armor: '&7✠ Armor: &f<plus>#'
armor-toughness: '&7✠ Armor Toughness: &f<plus>#'
knockback-resistance: '&7✠ Knockback Resistance: &f<plus>#%'
max-health: '&c❤ Health: <plus>#'
movement-speed: '&7■ Movement Speed: &f<plus>#'
regeneration: '&7■ Health Regeneration: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ Damage Reduction: &f<plus>#%'
fall-damage-reduction: '&7■ Fall Damage Reduction: &f<plus>#%'
fire-damage-reduction: '&7■ Fire Damage Reduction: &f<plus>#%'
magic-damage-reduction: '&7■ Magic Damage Reduction: &f<plus>#%'
physical-damage-reduction: '&7■ Physical Damage Reduction: &f<plus>#%'
# Extra Options
max-mana: '&7■ Max Mana: &f<plus>#'
perm-effect: '&7■ Permanent &f#'
command: '&7■ Command: &f#c &7(&f#d&7s)'
item-cooldown: '&7■ &f#&7s Cooldown'
# Consumables
restore-health: '&7■ Restores &f# &7Health'
restore-food: '&7■ Restores &f# &7Food'
restore-saturation: '&7■ Restores &f# &7Saturation'
restore-mana: '&7■ Restores &f# &7Mana'
restore-stamina: '&7■ Restores &f# &7Stamina'
effect: '&7■ Grants &f#e &7for &f#d&7s'
repair: '&7■ Repair: &f#'
can-identify: '&7■ Can identify items.'
can-deconstruct: '&7■ Can deconstruct tiered items.'
success-rate: '&7■ Success Rate: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Empty # Gem Socket'
filled-gem-socket: '&a◆ #'
when-applied: '&aWhen Applied:'
gem-stone-lore: '&8&l[&2&l*&8&l] &aDrag onto an item &7to apply!'
# Soulbound
soulbinding-chance: '&7■ Has a &a#%&7 chance to bind your item.'
soulbound-break-chance: '&7■ Has a &a#%&7 chance to break soulbounds.'
soulbound-level: '&7■ Level &e# &7Soulbound'
# Tool Enchants
autosmelt: '&7■ &fAutosmelt'
bouncing-crack: '&7■ &fBouncing Crack'
# General
item-type: '&c#'
tier: '# ITEM'
required-class: '&7# Item'
required-level: '&eRequires Lvl #'
# Elemental Damage
fire-damage: '&c❖ #% Fire Damage'
ice-damage: '&b❖ #% Ice Damage'
earth-damage: '&2❖ #% Earth Damage'
wind-damage: '&7❖ #% Wind Damage'
thunder-damage: '&e❖ #% Thunder Damage'
water-damage: '&3❖ #% Water Damage'
# Elemental Defense
fire-defense: '&c❖ #% Fire Defense'
ice-defense: '&b❖ #% Ice Defense'
earth-defense: '&2❖ #% Earth Defense'
wind-defense: '&7❖ #% Wind Defense'
thunder-defense: '&e❖ #% Thunder Defense'
water-defense: '&3❖ #% Water Defense'

View File

@ -0,0 +1,22 @@
# Template ID, only used as reference. This is the
# text you need to enter in the edition GUI in order
# to setup item upgrading for a specific item.
weapon-default:
# Every time the item is upgraded, its attack damage
# is increased by 3% (relative to the current value)
attack-damage: 3%
# Every time it is upgraded, it gets +2% aboslute
# critical strike chance (independant of current val.)
critical-strike-chance: 2
pve-damage: 1%
armor-template-example:
armor: 3%
armor-toughness: 2%
block-rating: 5%
dodge-rating: 5%
parry-rating: 5%

54
default/use-states.yml Normal file
View File

@ -0,0 +1,54 @@
# For every durability state, please specify the minimum durability in
# percents the item needs to have in order to be on that state, and
# the tag that will be displayed on the item when it is in that state.
10:
use-ratio:
max: 100
min: 90
lore-tag: '&7Durability: &a■■■■■■■■■■'
9:
use-ratio:
max: 90
min: 80
lore-tag: '&7Durability: &a■■■■■■■■■&f■'
8:
use-ratio:
max: 80
min: 70
lore-tag: '&7Durability: &a■■■■■■■■&f■■'
7:
use-ratio:
max: 70
min: 60
lore-tag: '&7Durability: &a■■■■■■■&f■■■'
6:
use-ratio:
max: 60
min: 50
lore-tag: '&7Durability: &a■■■■■■&f■■■■'
5:
use-ratio:
max: 50
min: 40
lore-tag: '&7Durability: &e■■■■■&f■■■■■'
4:
use-ratio:
max: 40
min: 30
lore-tag: '&7Durability: &e■■■&f■■■■■■■'
3:
use-ratio:
max: 30
min: 20
lore-tag: '&7Durability: &c■■&f■■■■■■■■'
2:
use-ratio:
max: 20
min: 10
lore-tag: '&7Durability: &c■&f■■■■■■■■■'
1:
use-ratio:
max: 10
min: 0
lore-tag: '&7Durability: &f■■■■■■■■■■'

View File

@ -0,0 +1,97 @@
# Translated by TUCAOEVER
# Data: 10-13-2018
ability:
shulker-missile: 武装导弹
overload: 强制过载
magical-shield: 法力护盾
heal: 细胞再生
fire-meteor: 火球术
leap: 撤离
light-dash: 急袭
burn: 点燃
starfall: 流星陨落
wither: 凋零
vampirism: 吸血
shockwave: 震荡
sparkle: 神明之力
smite: 重击
corrupt: 腐蚀
tnt-throw: TNT 投掷
arcane-hail: 绝对领域
grand-heal: 生命之树
firebolt: 烈焰光束
magical-path: 法术之翼
earthquake: 地震
stun: 昏迷
swiftness: 迅捷
holy-missile: 上帝审判
black-hole: 黑洞
slow: 减速
circular-slash: 死亡之眼
cursed-beam: 诅咒光束
thrust: 穿透
heavy-charge: 无畏冲锋
item-throw: 物品投掷
corrupted-fangs: 腐蚀之牙
ice-crystal: 冰霜结晶
blind: 失明
shock: 震撼
shadow-veil: 铁幕
poison: 中毒
lightning-beam: 祝福光束
blink: 闪现
sky-smash: 击飞
bloodbath: 血祭
confuse: 眩晕
bouncy-fireball: 弹射火球
burning-hands: 烈焰护符
throw-up: 投掷
frog-mode: 青蛙模式
death-mark: 死亡标记
life-ender: 生命伴侣
freezing-curse: 寒冰诅咒
firefly: 萤火
bunny-mode: 兔子模式
item-bomb: 物品爆炸
freeze: Freeze
blizzard: Blizzard
tactical-grenade: Tactical Grenade
ignite: Ignite
rain-of-arrows: Rain of Arrows
eggpocalypse: Eggpocalypse
minor-explosion: Minor Explosion
regen-ally: Regen Ally
contamination: Contamination
corrosion: Corrosion
weaken-target: Weaken Target
chicken-wraith: Chicken Wraith
targeted-fireball: Targeted Fireball
magma-fissure: Magma Fissure
modifier:
duration: 持续时间
damage: 伤害
mana: 法力消耗
stamina: 体力消耗
cooldown: 冷却时间
effect-duration: 效果持续时间
radius: 半径
power: 伤害加成
heal: 生命
knockback: 击退
force: 影响
length: 距离
amplifier: 增益
drain: 磨损
knock-up: 唤醒
limit: 限制
ignite: 点燃
range: 范围
amount: 数量
speed: 速度
jump-force: 强制跳跃
slow-amplifier: 减速等级
slow-duration: 减速持续时间
inaccuracy: Inaccuracy
max-ignite: Max Ignite
extra-damage: Extra Damage

View File

@ -0,0 +1,15 @@
staff-spirit:
nether-spirit: '&7■ Nether Spirit'
void-spirit: '&7■ Void Spirit'
mana-spirit: '&7■ Mana Spirit'
lightning-spirit: '&7■ Lightning Spirit'
xray-spirit: '&7■ X-Ray Spirit'
thunder-spirit: '&7■ Thunder Spirit'
sunfire-spirit: '&7■ Sunfire Spirit'
lute-attack:
wave: '&7■ Wave Melody'
circular: '&7■ Circular Melody'
slash: '&7■ Slashing Melody'
simple: '&7■ Simple Melody'
brute: '&7■ Brute Melody'
heavy: '&7■ Heavy Melody'

View File

@ -0,0 +1,23 @@
condition:
stamina:
positive: '&a✔ Requires #stamina# Stamina'
negative: '&c✖ Requires #stamina# Stamina'
level:
positive: '&a✔ Requires Level #level#'
negative: '&c✖ Requires Level #level#'
mana:
positive: '&a✔ Requires #mana# Mana'
negative: '&c✖ Requires #mana# Mana'
class:
positive: '&a✔ Required Class: #class#'
negative: '&c✖ Required Class: #class#'
food:
positive: '&a✔ Requires #food# Food'
negative: '&c✖ Requires #food# Food'
ingredient:
mmoitem:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'
vanilla:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'

View File

@ -0,0 +1,20 @@
UNIDENTIFIED_ITEM:
name: '&kUnidentified'
lore:
- '&e&oThis item is &c&o&nunidentified&e&o.'
- '&e&oI''ll have to find a way to identify this.'
BACK:
name: Back
lore: []
NEXT_PAGE:
name: Next Page
lore: []
PREVIOUS_PAGE:
name: Previous Page
lore: []
NO_ITEM:
name: '- No Item -'
lore: []
NO_GEM_STONE:
name: '- Empty Gem Socket -'
lore: []

View File

@ -0,0 +1,109 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {sbar} will stay whatever is below them.
lore-format:
# - '{bar}&8&m--------&f&l &nGeneral&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
# - '{bar}&8&m--------&f&l &nStatistics&8 &m-------------'
- '{bar}'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
# - '{bar}&8&m--------&2&l &nElements&8 &m--------------'
- '{bar}'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
- '{bar}'
- '#effects#'
# - '{bar}&8&m--------&b&l &nAbilities&8 &m--------------'
- '{bar}'
- '#abilities#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
# - '#perm-effects#'
# - '{bar}&8&m--------&e&l &nGem Stones&8 &m-----------'
- '{bar}'
- '#gem-stones#'
# - '{sbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,42 @@
hands-too-charged: 请将需要改变属性的物品置于手中
spell-on-cooldown: '#progress#'
item-on-cooldown: '#progress#'
not-enough-perms-command: 你没有权限执行该命令
attack-blocked: '阻挡 #percent#% 伤害'
attack-dodged: 格挡攻击
attack-parried: 闪避攻击
not-enough-levels: '&f[&c&l等级受限&f]'
soulbound-restriction: '&f[&5&l灵魂绑定&f]'
not-enough-perms: '&f[&6&l权限受限&f]'
broken-item: 物品已损坏 请先修复该物品
item-broke: '#item# 已损坏'
zero-durability: 物品已无耐久值 请先修复该物品
not-enough-mana: '&f[&b&l法力值受限&f]'
not-enough-stamina: '&f[&d&l体力值受限&f]'
wrong-class: '&f[&9&l职业受限&f]'
successfully-identified: '&2成功识别 #item#'
successfully-deconstructed: '&c成功拆解 #item#'
gem-stone-applied: '&f[&b&l+&f] #gem# 镶嵌至 #item# 成功 ✔'
gem-stone-broke: '&f[&c&l-&f] #gem# 镶嵌至 #item# 失败 x'
repaired-item: '修复 #amount# x #item#'
gave-item: '&f给予 #amount# x #item# 至 #player#'
received-item: '&f获得 #amount# x #item#'
cant-update-item: 无法更新物品
update-item: 更新完成
empty-workbench-first: '&c请先清空合成台'
not-enough-perms-craft: '&c你没有权限制作该物品'
cant-bind-item: '该物品绑定至 #player# 绑定等级 #level# 若需重新绑定请破坏原绑定'
no-soulbound: 无绑定
cant-bind-stacked: 无法绑定堆叠物品
unsuccessful-soulbound: 绑定失败
unsuccessful-soulbound-break: 无法破坏绑定
low-soulbound-level: '绑定等级 #level# 若需重新绑定 绑定等级需高于该绑定等级'
successfully-bind-item: '成功绑定 绑定等级 #level# 绑定物品 #item#'
successfully-break-bind: '绑定破坏 绑定等级 #level#'
soulbound-item-lore: '&f绑定至 #player# &8| &n绑定等级 &7&l#level#'
soulbound-command-no: 无绑定
soulbound-command-info: '物品绑定至 #player# 绑定等级 #level#'
advanced-workbench: 高级合成台
advanced-recipes: 高级合成
gem-stats: 宝石数据
click-advanced-recipe: '#d &7点击以查看高级合成'

View File

@ -0,0 +1,30 @@
# Translation by tucaoever
# Date: 10-13-2018
speed: 速度提升
slow: 缓慢
fast-digging: 急迫
slow-digging: 挖掘疲劳
increase-damage: 力量
heal: 生命恢复
harm: 伤害
jump: 跳跃提升
confusion: 眩晕
regeneration: 生命恢复
damage-resistance: 抗性提升
fire-resistance: 火焰保护
water-breathing: 水下呼吸
invisibility: 隐身
blindness: 失明
night-vision: 夜视
hunger: 饥饿
weakness: 虚弱
poison: 中毒
wither: 凋零
health-boost: 生命提升
absorption: 伤害吸收
saturation: 饱和
glowing: 发光
levitation: 悬浮
luck: 幸运
unluck: 不幸

104
language/chinese/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&7➸ 攻击伤害: &f#'
attack-speed: '&7➸ 攻击速度: &f#'
critical-strike-chance: '&7■ 暴击概率: &f<plus>#%'
critical-strike-power: '&7■ 暴击附加: &f<plus>#%'
range: '&7■ 范围: &f#'
mana-cost: '&9■ 消耗 # 法力值'
stamina-cost: '&9■ 消耗 # 体力'
arrow-velocity: '&7■ 箭矢速度: &f#%'
blunt-power: '&7■ AOE 伤害半径: &f#'
blunt-rating: '&7■ AOE 伤害比例: &f#%'
two-handed: '&7■ 双持'
knockback: '&7■ 击退: &f#'
recoil: '&7■ 后坐力: &f#%'
note-weight: '&7■ Note Weight: &f#'
# Extra Damage
pve-damage: '&7■ PvE 伤害加成: &f<plus>#%'
pvp-damage: '&7■ PvP 伤害加成: &f<plus>#%'
magic-damage: '&7■ 法术伤害加成: &f<plus>#%'
weapon-damage: '&7■ 武器伤害加成: &f<plus>#%'
undead-damage: '&7■ 不死生物伤害加成: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ 阻挡: &f<plus>#%'
block-rating: '&7■ 阻挡概率: &f<plus>#%'
block-cooldown-reduction: '&7■ 阻挡冷却缩减: &f<plus>#%'
dodge-rating: '&7■ 闪避几率: &f<plus>#%'
dodge-cooldown-reduction: '&7■ 闪避冷却缩减: &f<plus>#%'
parry-rating: '&7■ 招架几率: &f<plus>#%'
parry-cooldown-reduction: '&7■ 招架冷却缩减: &f<plus>#%'
armor: '&7✠ 护甲[B]: &f<plus>#'
armor-toughness: '&7✠ 护甲[A]: &f<plus>#'
knockback-resistance: '&7✠ 击退保护: &f<plus>#%'
max-health: '&c❤ 生命值: <plus>#'
movement-speed: '&7■ 移动速度: &f<plus>#'
regeneration: '&7■ 生命恢复: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ 伤害减免: &f<plus>#%'
fall-damage-reduction: '&7■ 摔落伤害减免: &f<plus>#%'
fire-damage-reduction: '&7■ 火焰伤害减免: &f<plus>#%'
magic-damage-reduction: '&7■ 魔法伤害减免: &f<plus>#%'
physical-damage-reduction: '&7■ Physical Damage Reduction: &f<plus>#%'
# Extra Options
max-mana: '&7■ 最大法力值加成: &f<plus>#'
perm-effect: '&7■ 效果 &f#'
command: '&7■ 指令: &f#c &7(&f#d&7s)'
item-cooldown: '&7■ &f#&7 秒 冷却'
# Consumables
restore-health: '&7■ 恢复 &f# &7生命值'
restore-food: '&7■ 恢复 &f# &7饥饿值'
restore-saturation: '&7■ 恢复 &f# &7饱和度'
restore-mana: '&7■ 恢复 &f# &7法力值'
restore-stamina: '&7■ 恢复 &f# &7法力值'
effect: '&7■ 获得 &f#e &7持续 &f#d&7 秒'
repair: '&7■ 修复: &f#'
can-identify: '&7■ 可识别'
can-deconstruct: '&7■ 可分解'
success-rate: '&7■ 成功概率: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Empty # Gem Socket'
filled-gem-socket: '&a◆ #'
when-applied: '&a镶嵌时间:'
gem-stone-lore: '&8&l[&2&l*&8&l] 放置宝石以镶嵌'
# Soulbound
soulbinding-chance: '&7■ &a#%&7 几率绑定物品'
soulbound-break-chance: '&7■ &a#%&7 几率破坏绑定'
soulbound-level: '&7■ 绑定等级 &e#'
# Tool Enchants
autosmelt: '&7■ &f自动熔炼'
bouncing-crack: '&7■ &f 范围破坏'
# General
item-type: '&7> 类型: #'
tier: '&7[&f&l品质&7]: #'
required-class: '&7> &9&l职业限制&7&l: #'
required-level: '&7> &c&l等级限制&7&l: #'
# Elemental Damage
fire-damage: '&c❖ #% 火属性伤害'
ice-damage: '&b❖ #% 冰属性伤害'
earth-damage: '&2❖ #% 地属性伤害'
wind-damage: '&7❖ #% 风属性伤害'
thunder-damage: '&e❖ #% 电属性伤害'
water-damage: '&3❖ #% 水属性伤害'
# Elemental Defence
fire-defense: '&c❖ #% 火属性防御'
ice-defense: '&b❖ #% 冰属性防御'
earth-defense: '&2❖ #% 地属性防御'
wind-defense: '&7❖ #% 风属性防御'
thunder-defense: '&e❖ #% 电属性防御'
water-defense: '&3❖ #% 水属性防御'

View File

@ -0,0 +1,105 @@
ability:
overload: Surchage
shulker-missile: Missile de Shulker
magical-shield: Ecu magique
heal: Soins
fire-meteor: Météorite
leap: Bond
light-dash: Dash léger
burn: Embrasement
starfall: Court-circuit
wither: Wither
vampirism: Vol de vie
shockwave: Onde de choc
smite: Châtiment
sparkle: Etincelle
corrupt: Dépravation
tnt-throw: Lancer de TNT
firebolt: Boule de feu
earthquake: Tremblement de terre
stun: Etourdissement
swiftness: Agilité
holy-missile: Projectile béni
black-hole: Trou noir
slow: Ralentissement
circular-slash: Attaque circulaire
cursed-beam: Projectile maudit
heavy-charge: Charge puissante
thrust: Coup d'estoc
item-throw: Lancer d'objet
corrupted-fangs: Crocs maudits
ice-crystal: Crystal de glace
blind: Aveuglement
shock: Choc
shadow-veil: Voile ténébreuse
poison: Poison
blink: Téléportation
sky-smash: Uppercut
bloodbath: Bain de sang
confuse: Confusion
hoearthquake: Trembl'houement de terre
freeze: Gel
blizzard: Blizzard
bouncy-fireball: Boule de feu rebondissante
burning-hands: Mains flamboyantes
tactical-grenade: Grenade tactique
ignite: Combustion
throw-up: Vommissement
minor-explosion: Explosion mineure
frog-mode: Mode grenouille
regen-ally: Régénération amie
lightning-beam: Foudroiement
death-mark: Marque de la mort
contamination: Contamination
corrosion: Corrosion
explosive-turkey: Poulet explosif
snowman-turret: Tourelle de neige
arcane-hail: Grêle des arcanes
grand-heal: Guérison générale
magical-path: Chemin magique
life-ender: Terminateur de vie
present-throw: Lancement de cadeau
weaken-target: Faiblesse
chicken-wraith: Soulèvement des poulets
freezing-curse: Malédiction de gel
arcane-rift: Faille des arcanes
targeted-fireball: Boule de feu guidée
firefly: Papillons de feu
frozen-aura: Aura glaciale
magma-fissure: Fissure de magma
bunny-mode: Mode lapin
item-bomb: Bombe artisanale
modifier:
damage: Dégats
mana: Mana
stamina: Stamina
cooldown: Délai
radius: Rayon
duration: Durée
effect-duration: Durée d'effet
power: Puissance
heal: Soin
knockback: Recul
force: Force
length: Longueur
amplifier: Puissance d'effet
drain: Drain
knock-up: Recul
limit: Limite
ignite: Enflammement
range: Portée
amount: Quantité
inaccuracy: Imprécision
speed: Vitesse
max-ignite: Enflammement maximum
jump-force: Puissance de saut
extra-damage: Dégats supplémentaires
slow-duration: Temps de ralentissement
slow-amplifier: Niveau de ralentissement
cast-mode:
on-hit: A l'impact
when-hit: A l'impact*
left-click: Clic gauche
right-click: Clic droit
shift-left-click: Shift Clic gauche
shift-right-click: Shift Clic droit

View File

@ -0,0 +1,14 @@
staff-spirit:
nether-spirit: '&7■ Esprit du Nether'
void-spirit: '&7■ Esprit du Néant'
mana-spirit: '&7■ Esprit du Mana'
lightning-spirit: '&7■ Esprit de la Foudre'
xray-spirit: '&7■ Esprit du Rayon-X'
thunder-spirit: '&7■ Esprit de l''Orage'
sunfire-spirit: '&7■ Esprit du Rayon de Soleil'
lute-attack:
wave: '&7■ Attaques par vague'
circular: '&7■ Attaques circulaires'
simple: '&7■ Attaques simples'
brute: '&7■ Attaques brutales'
slash: '&7■ Attaques Slash'

View File

@ -0,0 +1,23 @@
condition:
stamina:
positive: '&a✔ Requiert #stamina# Stamina'
negative: '&c✖ Requiert #stamina# Stamina'
level:
positive: '&a✔ Niveau #level# requis'
negative: '&c✖ Niveau #level# requis'
mana:
positive: '&a✔ Requiert #mana# Mana'
negative: '&c✖ Requiert #mana# Mana'
class:
positive: '&a✔ Classe: #class#'
negative: '&c✖ Classe: #class#'
food:
positive: '&a✔ Nourriture requise: #food#'
negative: '&c✖ Nourriture requise: #food#'
ingredient:
mmoitem:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'
vanilla:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'

34
language/french/items.yml Normal file
View File

@ -0,0 +1,34 @@
NO_ITEM:
name: '&c- Aucun objet -'
lore: []
NO_TYPE:
name: '&c- Aucun type -'
lore: []
TYPE_DISPLAY:
name: '&a#type# &8(Cliquer pour explorer)'
lore:
- '&7Cette catégorie regroupe &6#recipes#&7 recettes.'
PREVIOUS_PAGE:
name: '&aPage précédente'
lore: []
NEXT_PAGE:
name: '&aPage suivante'
lore: []
BACK:
name: '&aPrécedent'
lore: []
RECIPE_LIST:
name: '&aRecettes avancées'
lore: []
RECIPE_DISPLAY:
name: '&a&lFabriquer&f #name#'
lore:
- '{conditions}'
- '#condition_level#'
- '{crafting_time}'
- '{crafting_time}&7Temps de réalisation: &c#crafting-time#&7s'
- ''
- '&8Ingrédients:'
- '#ingredients#'
- ''
- '&eCliquez pour fabriquer cet objet!'

View File

@ -0,0 +1,109 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {sbar} will stay whatever is below them.
lore-format:
# - '{bar}&8&m--------&f&l &nGeneral&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
# - '{bar}&8&m--------&f&l &nStatistics&8 &m-------------'
- '{bar}'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
# - '{bar}&8&m--------&2&l &nElements&8 &m--------------'
- '{bar}'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
- '{bar}'
- '#effects#'
# - '{bar}&8&m--------&b&l &nAbilities&8 &m--------------'
- '{bar}'
- '#abilities#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
# - '#perm-effects#'
# - '{bar}&8&m--------&e&l &nGem Stones&8 &m-----------'
- '{bar}'
- '#gem-stones#'
# - '{sbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,40 @@
hands-too-charged: 'Vos mains sont trop chargées, vous ne pouvez rien faire.'
spell-on-cooldown: '#progress# &eYou devez attendre #left# seconde#s#.'
item-on-cooldown: Cet objet est en récupération.
not-enough-perms-command: 'Vous n''avez pas la permission.'
attack-blocked: 'Vous avez bloqué #percent#% des dégats!'
attack-dodged: 'Vous avez esquivé une attaque.'
attack-parried: 'Vous avez parré une attaque.'
not-enough-levels: 'Vous n''avez pas le niveau nécessaire pour utiliser cet objet.'
soulbound-restriction: 'Cet objet est lié à un autre joueur, vous ne pouvez donc pas l''utiliser.'
not-enough-perms: 'Vous n''avez pas la permission.'
item-broke: 'Votre objet #item#&c est cassé.'
zero-durability: 'Cet objet est cassé, vous devez d''abord le réparer.'
not-enough-mana: 'Vous n''avez pas assez de mana.'
not-enough-stamina: 'Vous n''avez pas assez d''énergie.'
wrong-class: 'Vous n''avez pas la classe requise.'
successfully-identified: 'Vous avez identifié cet objet: #item#&e.'
successfully-deconstructed: 'Vous avez décomposé cet object: #item#&e.'
gem-stone-applied: 'Vous avez appliqué votre gemme &f#gem#&e sur votre objet &f#item#&e.'
gem-stone-broke: 'Vous avez cassé votre gemme (#gem#) en essayant de l''appliquer sur votre #item#.'
repaired-item: 'Vous avez réparé &f#item#&e de &f#amount# &epoints de durabilité.'
received-item: '&eVous avez reçu &f#item#&e#amount#.'
empty-workbench-first: 'Videz la grille de fabrication dans un premier temps.'
not-enough-perms-craft: 'Vous n''avez pas la permission d''utiliser cette recette.'
cant-bind-item: 'Cet objet est lié à #player# par un lien d''âme de niveau #level#. Vous devez dans un premier temps le détruire.'
no-soulbound: 'Cet objet n''est lié à aucune personne.'
cant-bind-stacked: 'Vous ne pouvez pas créer un lien d''âme sur des objets stackés.'
unsuccessful-soulbound: 'Vous avez raté votre lien d''âme.'
unsuccessful-soulbound-break: 'Votre n''avez pas réussi à créer un lien d''âme.'
low-soulbound-level: 'Vous avez besoin d''un objet d''un niveau de lien d''âme supérieur.'
successfully-bind-item: 'Vous avez appliqué un lien d''âme de niveau &6#level# &esur votre &6#item#&e.'
successfully-break-bind: 'Vous avez rompu le lien d''âme de niveau &6#level#&e avec brio.'
soulbound-item-lore: '&7//&4Lié à #player#//&4Lien d''âme de niv. #level#'
not-enough-materials: 'Vous n''avez pas assez de matériaux pour fabriquer cet objet.'
conditions-not-met: 'Vous ne pouvez pas fabriquer cet objet.'
crafting-canceled: 'Vous avez interrompu la fabrication de votre objet.'
already-crafting: 'Vous fabriquez déjà un autre objet!'
crafting-subtitle: '#bar# Temps restant: &e#left#'
advanced-workbench: 'Etabli avancé'
advanced-recipes: 'Recettes avancées'
click-advanced-recipe: '#d Cliquez pour afficher cette recette.'

View File

@ -0,0 +1,30 @@
speed: Vitesse
slow: Lenteur
fast-digging: Vitesse de minage
slow-digging: Lenteur de minage
increase-damage: Force
heal: Soins
harm: Dégats
jump: Saut
confusion: Confusion
regeneration: Régénération
damage-resistance: Résistance aux dégats
fire-resistance: Résistance au feu
water-breathing: Respiration
invisibility: Invisibilité
blindness: Aveuglement
night-vision: Nyctalopie
hunger: Faim
weakness: Faiblesse
poison: Poison
wither: Wither
health-boost: Vie améliorée
absorption: Absorption
saturation: Saturation
glowing: Brillance
levitation: Lévitation
luck: Chance
unluck: Malchance
slow-falling: Chute lente
conduit-power: Force du conduit
dolphins-grace: Grâce du dauphin

104
language/french/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&7➸ Dégats d''attaque: &f#'
attack-speed: '&7➸ Vitesse d''attaque: &f#'
critical-strike-chance: '&7■ Chance de coup critique: &f<plus>#%'
critical-strike-power: '&7■ Puissance de coup critique: &f<plus>#%'
range: '&7■ Portée: &f#'
mana-cost: '&9■ Consomme # Mana'
stamina-cost: '&9■ Consomme # Stamina'
arrow-velocity: '&7■ Vitesse de projectile: &f#%'
blunt-power: '&7■ Puissance de contendance: &f#'
blunt-rating: '&7■ Ratio de contendance: &f#%'
two-handed: '&7■ A deux mains'
knockback: '&7■ Recul: &f#'
recoil: '&7■ Recul visuel: &f#%'
note-weight: '&7■ Poids des notes: &f#'
# Extra Damage
pve-damage: '&7■ Dégats PvE: &f<plus>#%'
pvp-damage: '&7■ Dégats PvP: &f<plus>#%'
magic-damage: '&7■ Dégats magiques: &f<plus>#%'
weapon-damage: '&7■ Dégats physiques: &f<plus>#%'
undead-damage: '&7■ Dégats contre les morts-vivants: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ Puissance de blocage: &f<plus>#%'
block-rating: '&7■ Chance de blocage: &f<plus>#%'
block-cooldown-reduction: '&7■ Réduction du délai de blocage: &f<plus>#%'
dodge-rating: '&7■ Chance d''esquive: &f<plus>#%'
dodge-cooldown-reduction: '&7■ Réduction du délai d''esquive: &f<plus>#%'
parry-rating: '&7■ Chance de parrade: &f<plus>#%'
parry-cooldown-reduction: '&7■ Réduction du délai de parrade: &f<plus>#%'
armor: '&7✠ Armure: &f<plus>#'
armor-toughness: '&7✠ Robustesse: &f<plus>#'
knockback-resistance: '&7✠ Résistance au recul: &f<plus>#%'
max-health: '&c❤ Points de vie: <plus>#'
movement-speed: '&7■ Vitesse de déplacement: &f<plus>#'
regeneration: '&7■ Régénération de PV: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ Réduction de dégats: &f<plus>#%'
fall-damage-reduction: '&7■ Réduction de dégats de chute: &f<plus>#%'
fire-damage-reduction: '&7■ Réduction de dégats de feu: &f<plus>#%'
magic-damage-reduction: '&7■ Réduction de dégats magiques: &f<plus>#%'
physical-damage-reduction: '&7■ Réduction de dégats physiques: &f<plus>#%'
# Extra Options
max-mana: '&7■ Mana Max: &f<plus>#'
perm-effect: '&7■ &f# &7 permanent'
command: '&7■ Commande: &f#c &7(&f#d&7s)'
item-cooldown: '&7■ &f#&7s de récupération'
# Consumables
restore-health: '&7■ Restaure &f# &7Health'
restore-food: '&7■ Restaure &f# &7Food'
restore-saturation: '&7■ Restaure &f# &7Saturation'
restore-mana: '&7■ Restaure &f# &7Mana'
restore-stamina: '&7■ Restaure &f# &7Stamina'
effect: '&7■ Octroit &f#e &7for &f#d&7s'
repair: '&7■ Répare &f# &7utilisations'
can-identify: '&7■ Peut identifier des objets.'
can-deconstruct: '&7■ Peut décomposer des objets.'
success-rate: '&7■ Chance de réussite: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Emplacement de gemme # vide'
filled-gem-socket: '&a◆ #'
when-applied: '&aQuand appliqué:'
gem-stone-lore: '&8&l[&2&l*&8&l] &aDéposez la &7sur un objet pour l''appliquer!'
# Soulbound
soulbinding-chance: '&7■ Chance de créer un soulbound: &a#%'
soulbound-break-chance: '&7■ Chance de détruire un soulbound: &a#%'
soulbound-level: '&7■ &7Soulbound de niv. &e#'
# Tool Enchants
autosmelt: '&7■ &fAutosmelt'
bouncing-crack: '&7■ &fBouncing Crack'
# General
item-type: '&c#'
tier: '#'
required-class: '&7Classe requise: #'
required-level: '&eRequiert niv. #'
# Elemental Damage
fire-damage: '&c❖ #% Dégats de feu'
ice-damage: '&b❖ #% Dégats de glace'
earth-damage: '&2❖ #% Dégats de terre'
wind-damage: '&7❖ #% Dégats de vent'
thunder-damage: '&e❖ #% Dégats électriques'
water-damage: '&3❖ #% Dégats d''eau'
# Elemental Defense
fire-defense: '&c❖ #% Défense de feu'
ice-defense: '&b❖ #% Défense de glace'
earth-defense: '&2❖ #% Défense de terre'
wind-defense: '&7❖ #% Défense de vent'
thunder-defense: '&e❖ #% Défense électrique'
water-defense: '&3❖ #% Défense d''eau'

View File

@ -0,0 +1,105 @@
ability:
overload: Przeladowanie
freeze: Zamrozenie
magical-shield: Magiczna Tarcza
bouncy-fireball: Skoczna Kula Ognia
burning-hands: Plomienne Rece
fire-meteor: Ognisty Meteor
light-dash: Blyskawiczny Ped
tactical-grenade: Granat Taktyczny
ignite: Podpalenie
sparkle: Iskra
tnt-throw: Rzut TNT
rain-of-arrows: Deszcz Strzal
earthquake: Trzesienie Ziemi
stun: Ogluszenie
holy-missile: Swiety Pocisk
black-hole: Czarna Dziura
throw-up: Podrzut
circular-slash: Okrezne Ciecie
cursed-beam: Przeklety Promien
slow: Spowolnienie
thrust: Pchniecie
heavy-charge: Ciezka Szarza
item-throw: Rzut Przedmiotem
shock: Szok
minor-explosion: Mniejsza Eksplozja
shadow-veil: Zaslona Cieni
frog-mode: Tryb Zaby
regen-ally: Ulecz Sojusznika
lightning-beam: Piorun
death-mark: Znak Smierci
confuse: Dezorientacja
shulker-missile: Pocisk Shulkera
contamination: Skazenie
heal: Uzdrowienie
corrosion: Korozja
leap: Skok
explosive-turkey: Wybuchowy Indyk
hoearthquake: Moc Farmera
burn: Spalenie
starfall: Upadek Gwiazdy
wither: Uschniecie
shockwave: Fala Uderzeniowa
vampirism: Wampiryzm
smite: Cios
snowman-turret: Wiezyczka Balwanow
corrupt: Skazenie
arcane-hail: Tajemne Pozdrowienie
firebolt: Ognisty Pocisk
grand-heal: Wielkie Uleczenie
magical-path: Magiczna Sciezka
life-ender: Kres Zycia
swiftness: Szybkosc
present-throw: Rzut Prezentem
weaken-target: Oslabienie Celu
chicken-wraith: Widmo Kurczaka
freezing-curse: Mrozna Klatwa
arcane-rift: Tajemne Rozszczepienie
targeted-fireball: Wycelowana Kula Ognia
corrupted-fangs: Skazone Kly
ice-crystal: Krysztal Lodu
blind: Oslepienie
firefly: Swietlik
poison: Otruj
blink: Mrugniecie
sky-smash: Podniebne Zderzenie
frozen-aura: Mrozna Aura
bunny-mode: Tryb Krolika
magma-fissure: Magmowa Rozpadlina
bloodbath: Masakra
item-bomb: Bomba
modifier:
damage: Obrazenia
mana: Mana
stamina: Wytrzymalosc
cooldown: Czas Oczekiwania
radius: Zasieg
duration: Czas Trwania
amplifier: Wzmacniacz
inaccuracy: Niecelnosc
force: Sila
power: Moc
ignite: Podpalenie
speed: Szybkosc
knockback: Odrzucenie
length: Dlugosc
knock-up: Rozgrzewka
max-ignite: Maksymalne Rozpalenie
limit: Limit
jump-force: Sila Skoku
heal: Uleczenie
effect-duration: Dlugosc Trwania Efektu
drain: Wyczerpanie
extra-damage: Dodatkowe Obrazenia
range: Zasieg
amount: Ilosc
slow-duration: Dlugosc Spowolnienia
slow-amplifier: Wzmocnienie Spowolnienia
cast-mode:
on-hit: Po uderzeniu
when-hit: Kiedy Uderzony
left-click: LPM
right-click: PPM
shift-left-click: Shift + LPM
shift-right-click: Shift + PPM

View File

@ -0,0 +1,14 @@
staff-spirit:
nether-spirit: '&7■ Dusza Netheru'
void-spirit: '&7■ Dusza Pustki'
mana-spirit: '&7■ Dusza Many'
lightning-spirit: '&7■ Dusza Blyskawic'
xray-spirit: '&7■ Dusza X-Raya'
thunder-spirit: '&7■ Dusza Burzy'
sunfire-spirit: '&7■ Dusza Ognia Slonecznego'
lute-attack:
wave: '&7■ Ataki fali'
circular: '&7■ Ataki okrezne'
simple: '&7■ Ataki proste'
brute: '&7■ Ataki brutalne'
slash: '&7■ Ataki ciecia'

View File

@ -0,0 +1,23 @@
condition:
stamina:
positive: '&a✔ Requires #stamina# Stamina'
negative: '&c✖ Requires #stamina# Stamina'
level:
positive: '&a✔ Requires Level #level#'
negative: '&c✖ Requires Level #level#'
mana:
positive: '&a✔ Requires #mana# Mana'
negative: '&c✖ Requires #mana# Mana'
class:
positive: '&a✔ Required Class: #class#'
negative: '&c✖ Required Class: #class#'
food:
positive: '&a✔ Requires #food# Food'
negative: '&c✖ Requires #food# Food'
ingredient:
mmoitem:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'
vanilla:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'

30
language/polish/items.yml Normal file
View File

@ -0,0 +1,30 @@
UNIDENTIFIED_ITEM:
name: '&kNiezidentyfikowany'
lore:
- '&e&oTen przedmiot jest &c&o&nniezindentyfikowany&e&o.'
- '&e&oMusisz znalezc sposob by go zidentyfikowac'
TYPE_DISPLAY:
name: '#type# &8(Nacisnij by przegladac)'
lore:
- '&7Jest &6#recipes#&7 dostepnych przepisow.'
RECIPE_LIST:
name: Zaawansowane przepisy
lore: []
BACK:
name: Wroc
lore: []
NEXT_PAGE:
name: Nastepna Strona
lore: []
PREVIOUS_PAGE:
name: Poprzednia strona
lore: []
NO_ITEM:
name: '- Brak Przedmiotu -'
lore: []
NO_TYPE:
name: '- Brak rodzaju -'
lore: []
NO_GEM_STONE:
name: '- Puste gniazdo na klejnot -'
lore: []

View File

@ -0,0 +1,109 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {superbar} will stay whatever is below them.
lore-format:
# - '{bar}&8&m--------&f&l &nGeneral&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
# - '{bar}&8&m--------&f&l &nStatistics&8 &m-------------'
- '{bar}'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
# - '{bar}&8&m--------&2&l &nElements&8 &m--------------'
- '{bar}'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
- '{bar}'
- '#effects#'
# - '{bar}&8&m--------&b&l &nAbilities&8 &m--------------'
- '{bar}'
- '#abilities#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
# - '#perm-effects#'
# - '{bar}&8&m--------&e&l &nGem Stones&8 &m-----------'
- '{bar}'
- '#gem-stones#'
# - '{superbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,49 @@
hands-too-charged: Nie mozesz nic zrobic, twoje rece sa zbyt naladowane
spell-on-cooldown: '#progress# &eMusisz poczekac #left# second#s# przed rzuceniem
tego zaklecia.'
item-on-cooldown: Ten przedmiot nie jest jeszcze gotowy!
not-enough-perms-command: Nie masz wystarczajacych uprawnien!
attack-blocked: 'Wlasnie zablokowales #percent#% z obrazen z tego ataku!'
attack-dodged: Wlasnie uniknales ataku!
attack-parried: Wlasnie sparowales atak!
not-enough-levels: Nie masz wystarczajacego poziomu by uzyc tego przedmiotu!
soulbound-restriction: Ten przedmiot jest przypisany do innego gracza, nie mozesz
go uzyc!
not-enough-perms: Nie masz wystarczajacych uprawnien by tego uzyc!
broken-item: Ten przedmiot jest zniszczony, musisz go naprawic.
item-broke: 'Twoj #item#&c zostal zniszczony.'
zero-durability: Twoj przedmiot nie ma juz wytrzymalosci, napraw go by go uzywac.
not-enough-mana: Nie masz wystarczajaco many!
not-enough-stamina: Nie masz wystarczajaco staminy!
wrong-class: Nie masz odpowiedniej klasy!
successfully-identified: 'Udalo ci sie zidentyfikowac #item#&e.'
successfully-deconstructed: 'Udalo ci sie rozlozyc #item#&e.'
gem-stone-applied: Udalo ci sie wlozyc &f#gem#&e do twojego &f#item#&e.
gem-stone-broke: Twoj klejnot &f#gem#&c zostal zniszczony kiedy probowales wlozyc
go do &f#item#&c.
repaired-item: Udalo ci sie naprawic &f#item#&e za &f#amount# &euzyc.
gave-item: '&eDales &f#item#&e#amount# dla &f#player#&e.'
received-item: '&eOtrzymales &f#item#&e#amount#.'
cant-update-item: Nie bylo mozliwe ulepszenie twojego przedmiotu.
update-item: Udalo sie ulepszyc twoj przedmiot.
empty-workbench-first: Oproznij stol warsztatowy
not-enough-perms-craft: Nie posiadasz uprawnien by wytworzyc ten przedmiot
cant-bind-item: 'Ten przedmiot jest aktualnie przypisany do #player# za pomoca wiezu
poziomu #level#. Musisz najpierw przerwac wiez'
no-soulbound: Ten przedmiot nie jest przypisany do nikogo.
cant-bind-stacked: Nie mozesz przywiazach zestackowanych przedmiotow.
unsuccessful-soulbound: Twoja proba zwiazania nie udala sie.
unsuccessful-soulbound-break: Nie byles w stanie przerwac wiezu.
low-soulbound-level: 'Ten przedmiot jest jest przypisany wiezem poziomu #level#. Potrzebujesz
wiekszego poziomu wiezu na twoim przedmiocie by zerwac ten wiaz.'
successfully-bind-item: Udalo ci sie uzyc przywiazania poziomu &6#level# &e na twoim
&6#item#&e.
successfully-break-bind: Udalo ci sie przerwac przywiazanie poziomu &6#level# do &eprzedmiotu!
soulbound-item-lore: '&7//&4Przypisany do #player#//&4Lvl #level#'
soulbound-command-no: Ten przedmiot nie jest do nikogo przypisany
soulbound-command-info: Twoj przedmiot jest przypisany do &6#player# &eza pomoca wiezu
poziomu &6#level# &e.
advanced-workbench: Zaawansowany stol warsztatowy
advanced-recipes: Zaawansowane przepisy
gem-stats: Klejnoty
click-advanced-recipe: '#d Kliknij by poznac przepis.'

View File

@ -0,0 +1,32 @@
speed: Szybkosc
slow: Spowolnienie
fast-digging: Szybkie Kopanie
slow-digging: Wolne Kopanie
increase-damage: Sila
heal: Uzdrowienie
harm: Uszkodzenie
jump: Skok
confusion: Dezorientacja
regeneration: Regeneracja
damage-resistance: Odpornosc Na Obrazenia
fire-resistance: Odpornosc Na Ogien
water-breathing: Oddychanie Pod Woda
invisibility: Niewidzialnosc
blindness: Oslepienie
night-vision: Widzenie W Ciemnosci
hunger: Glod
weakness: Oslabienie
poison: Trucizna
wither: Uschniecie
health-boost: Doladowanie Zdrowia
absorption: Absorbcja
saturation: Nasycenie
glowing: Swiecenie
levitation: Lewitacja
luck: Szczescie
unluck: Pech
slow-falling: Powolne opadanie
conduit-power: Przewodnia Potega
dolphins-grace: Wdziecznosc Delfinow
bad-omen: Zly Omen
hero-of-the-village: Bohater Wioski

104
language/polish/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&7➸ Obrazenia: &f#'
attack-speed: '&7➸ Szybkosc Ataku: &f#'
critical-strike-chance: '&7■ Szansa na krytyka: &f<plus>#%'
critical-strike-power: '&7■ Sila krytyka: &f<plus>#%'
range: '&7■ Zasieg: &f#'
mana-cost: '&9■ Uzywa # Many'
stamina-cost: '&9■ Uzywa # Wytrzymalosci'
arrow-velocity: '&7■ Predkosc Strzaly: &f#%'
blunt-power: '&7■ Sila Obuchowa: &f#%'
blunt-rating: '&7■ Klasa Obuchu: &f#%'
two-handed: '&7■ Dwureczny'
knockback: '&7■ Odrzut: &f#'
recoil: '&7■ Odrzut: &f#%'
note-weight: '&7■ Waga: &f#'
# Extra Damage
pve-damage: '&7■ Obrazenia PvE: &f<plus>#%'
pvp-damage: '&7■ Obrazenia PvP: &f<plus>#%'
magic-damage: '&7■ Obrazenia Magiczne: &f<plus>#%'
weapon-damage: '&7■ Obrazenia Od Broni: &f<plus>#%'
undead-damage: '&7■ Obrazenia Dla Nieumarlych: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ Sila Bloku: &f<plus>#%'
block-rating: '&7■ Klasa Bloku: &f<plus>#%'
block-cooldown-reduction: '&7■ Zmniejszenie Czasu Odnowienia Bloku: &f<plus>#%'
dodge-rating: '&7■ Klasa Uniku: &f<plus>#%'
dodge-cooldown-reduction: '&7■ Zmniejszenie Czasu Odnowienia Uniku: &f<plus>#%'
parry-rating: '&7■ Klasa Parowania: &f<plus>#%'
parry-cooldown-reduction: '&7■ Zmniejszenie Czasu Odnowienia Parowania: &f<plus>#%'
armor: '&7✠ Pancerz: &f<plus>#'
armor-toughness: '&7✠ Wytrzymalosc Pancerza: &f<plus>#'
knockback-resistance: '&7✠ Odpornosc Na Odepchniecie: &f<plus>#%'
max-health: '&c❤ Zdrowie: <plus>#'
movement-speed: '&7■ Szybkosc Ruchu: &f<plus>#'
regeneration: '&7■ Regeneracja Zdrowia: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ Zmniejszenie Obrazen: &f<plus>#%'
fall-damage-reduction: '&7■ Zmniejszenie Obrazen Od Upadku: &f<plus>#%'
fire-damage-reduction: '&7■ Zmniejszenie Obrazen Od Ognia: &f<plus>#%'
magic-damage-reduction: '&7■ Zmniejszenie Obrazen Magicznych: &f<plus>#%'
physical-damage-reduction: '&7■ Zmniejszenie Obrazen Psychicznych: &f<plus>#%'
# Extra Options
max-mana: '&7■ Maksymalna Mana: &f<plus>#'
perm-effect: '&7■ Staly &f#'
command: '&7■ Komenda: &f#c &7(&f#cd&7s)'
item-cooldown: '&7■ &f#&7s Czas Odnowienia'
# Consumables
restore-health: '&7■ Odnawia &f# &7Zdrowia'
restore-food: '&7■ Odnawia &f# &7Jedzenia'
restore-saturation: '&7■ Odnawia &f# &7Nasycenia'
restore-mana: '&7■ Odnawia &f# &7Many'
restore-stamina: '&7■ Odnawia &f# &7Wytrzymalosci'
effect: '&7■ Zapewnia &f#e &7na &f#d&7s'
repair: '&7■ Napraw: &f#'
can-identify: '&7■ Moze identyfikowac przedmioty.'
can-deconstruct: '&7■ Moze rozkladac wielopoziomowe przedmioty.'
success-rate: '&7■ Szansa na sukces: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Puste Miejsce Na Klejnot'
filled-gem-socket: '&a◆ #'
when-applied: '&aKiedy Wlozony:'
gem-stone-lore: '&8&l[&2&l*&8&l] &aPrzesun na przedmiot &7by uzyc!'
# Soulbound
soulbinding-chance: '&7■ Ma &a#%&7 szansy by przywiazac twoj przedmiot.'
soulbound-break-chance: '&7■ Ma &a#%&7 szansy by zlamac twoje wiezi.'
soulbound-level: '&7■ Wiez poziomu &e# &7'
# Tool Enchants
autosmelt: '&7■ &fAutomatyczne Wytapianie'
bouncing-crack: '&7■Skoczne Pekniecie &f'
# General
item-type: '&c#'
tier: '# PRZEDMIOT'
required-class: '&7# Przedmiot'
required-level: '&ePoziom #'
# Elemental Damage
fire-damage: '&c❖ #% Obrazenia Od Ognia'
ice-damage: '&b❖ #% Obrazenia Od Lodu'
earth-damage: '&2❖ #% Obrazenia Od Ziemi'
wind-damage: '&7❖ #% Obrazenia Od Wiatru'
thunder-damage: '&e❖ #% Obrazenia Od Burzy'
water-damage: '&3❖ #% Obrazenia Od Wody'
# Elemental Defense
fire-defense: '&c❖ #% Odpornosc Na Ogien'
ice-defense: '&b❖ #% Odpornosc Na Lod'
earth-defense: '&2❖ #% Odpornosc Na Ziemie'
wind-defense: '&7❖ #% Odpornosc Na Wiatr'
thunder-defense: '&e❖ #% Odpornosc Na Burze'
water-defense: '&3❖ #% Odpornosc Na Wode'

View File

@ -0,0 +1,105 @@
ability:
overload: Перегрузка
freeze: Заморозка
magical-shield: Магический Щит
blizzard: Снежная Буря
bouncy-fireball: Скачущий Огненный Шар
burning-hands: Горящие Руки
fire-meteor: Огненный Метеор
light-dash: Бросок
tactical-grenade: Тактическая Граната
ignite: Поджог
sparkle: Искра
tnt-throw: Бросок TNT
earthquake: Землятрясение
stun: Оглушение
holy-missile: Святая Ракета
black-hole: Черная Дыра
cursed-beam: Проклятый Луч
circular-slash: Круговое Рассечение
throw-up: Подбрасывание
slow: Замедление
heavy-charge: Тяжелый Выпад
thrust: Колющий Удар
item-throw: Бросок Предмета
shock: Шок
minor-explosion: Небольшой Взрыв
shadow-veil: Исчезновение
frog-mode: Режим Лягушки
regen-ally: Исцеление Союзников
lightning-beam: Удар Молнией
death-mark: Метка Смерти
confuse: Сбивание
shulker-missile: Снаряд Шалкера
contamination: Заражение
heal: Восстановление
corrosion: Коррозия
leap: Прыжок
explosive-turkey: Взрывной Турк
hoearthquake: Большая Вскопка
burn: Поджог
starfall: Звездопад
wither: Иссушение
shockwave: Ударная Волна
vampirism: Вампризм
snowman-turret: Турель - Снеговик
smite: Молния
corrupt: Искажение
arcane-hail: Волшебный Дождь
firebolt: Огненный Шар
grand-heal: Массовое Исцеление
magical-path: Магия Полета
life-ender: Месть Эндера
swiftness: Ускорение
present-throw: Бросок Подарка
weaken-target: Ослабление Противника
chicken-wraith: Куриный Призрак
freezing-curse: Проклятие Заморозки
arcane-rift: Чародейский Разлом
targeted-fireball: Нацеленный огненный Шар
corrupted-fangs: Клыки Искажения
ice-crystal: Ледяной Кристалл
blind: Слепота
firefly: Светлячок
poison: Яд
blink: Блинк
frozen-aura: Аура Обморожения
sky-smash: Воздушный Бросок
magma-fissure: Трещина Магмы
bunny-mode: Режим Кролика
bloodbath: Резня
item-bomb: Бомба
modifier:
damage: Урон
mana: Мана
stamina: Стамина
cooldown: Перезарядка
radius: Радиус
duration: Длителньость
amplifier: Усиление
power: Мощь
inaccuracy: Неточность
force: Сила
ignite: Поджог
speed: Скорость
knockback: Отбрасывание
length: Длина
knock-up: Вертикальное Отбрасывание
max-ignite: Максимальная длительность Горения
limit: Лимит
jump-force: Сила Прыжка
heal: Восстановление
effect-duration: Длительность Эффекта
drain: Вампризм
extra-damage: Дополнительный урон
range: Дальность
amount: Количество
slow-duration: Длительность Замедления
slow-amplifier: Усиление Замедления
cast-mode:
on-hit: При Попадании
when-hit: При получении Урона
left-click: Левый Клик
right-click: Правый Клик
shift-left-click: Шифт + Левый Клик
shift-right-click: Шифт + Првый Клик

View File

@ -0,0 +1,14 @@
staff-spirit:
nether-spirit: '&7■ Дух Ада'
void-spirit: '&7■ Дух Пустоты'
mana-spirit: '&7■ Дух Маны'
lightning-spirit: '&7■ Дух Молнии'
xray-spirit: '&7■ Дух X-Ray '
thunder-spirit: '&7■ Дух Грозы'
sunfire-spirit: '&7■ Дух Солнца'
lute-attack:
wave: '&7■ Волновая Атака'
circular: '&7■ Круговая Атака'
simple: '&7■ Простая Атака'
brute: '&7■ Грубая Атака'
slash: '&7■ Разящая Атака'

View File

@ -0,0 +1,23 @@
condition:
stamina:
positive: '&a✔ Требуется #stamina# ед. Стамины'
negative: '&c✖ Требуется #stamina# ед. Стамины'
level:
positive: '&a✔ Требуется #level# Уровень'
negative: '&c✖ Требуется #level# Уровень'
mana:
positive: '&a✔ Требуется #mana# ед. Маны'
negative: '&c✖ Требуется #mana# ед. Маны'
class:
positive: '&a✔ Required Class: #class#'
negative: '&c✖ Required Class: #class#'
food:
positive: '&a✔ Требуется #food# ед. Еды'
negative: '&c✖ Требуется #food# ед. Еды'
ingredient:
mmoitem:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'
vanilla:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'

View File

@ -0,0 +1,60 @@
NO_ITEM:
name: '&c- Нет Предмета -'
lore: []
NO_TYPE:
name: '&c- Нет Типа -'
lore: []
TYPE_DISPLAY:
name: '&a#type# &8(Нажмите, чтобы просмотреть)'
lore:
- '&7Есть &6#recipes#&7 доступных рецептов.'
PREVIOUS_PAGE:
name: '&aПредыдущая Страница'
lore: []
NEXT_PAGE:
name: '&aСледующая Страница'
lore: []
PREVIOUS_IN_QUEUE:
name: '&aПредыдущая'
lore: []
NEXT_IN_QUEUE:
name: '&aСледующая'
lore: []
BACK:
name: '&aНазад'
lore: []
RECIPE_LIST:
name: '&aУлучшенные Рецепты'
lore: []
CRAFTING_RECIPE_DISPLAY:
name: '&a&lСоздание&f #name#'
lore:
- '{conditions}'
- '#condition_level#'
- '{crafting_time}'
- '{crafting_time}&7Время Создания: &c#crafting-time#&7s'
- ''
- '&8Ингредиенты:'
- '#ingredients#'
- ''
- '&eНажмите, чтобы скрафтить!'
UPGRADING_RECIPE_DISPLAY:
name: '&e&lУлучшение&f #name#'
lore:
- '{conditions}'
- '#condition_level#'
- ''
- '&8Ингредиенты:'
- '#ingredients#'
- ''
- '&eНажмите, чтобы улучшить!'
QUEUE_ITEM_DISPLAY:
name: '&6&lОчередь&f #name#'
lore:
- '{ready}&7&oЭтот предмет был успешно создан.'
- '{queue}&7&oЭтот предмет находиться в очереди создания.'
- '{queue}'
- '{queue}&7Времени Осталось: &c#left#'
- ''
- '{ready}&eНажмите, чтобы взять!'
- '{queue}&eНажмите, чтобы отменить.'

View File

@ -0,0 +1,105 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {sbar} will stay whatever is below them.
lore-format:
- '{bar}&8&m--------&f&l &nОсновная Информация&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
- '{bar}&8&m--------&f&l &nСтатистика&8 &m-------------'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
- '{bar}&8&m--------&2&l &nЭлементы&8 &m--------------'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
- '{bar}&8&m--------&b&l &nЭффекты&8 &m---------------'
- '#effects#'
- '{bar}&8&m--------&b&l &nСпособности&8 &m--------------'
- '#abilities#'
- '{bar}&8&m--------&b&l &nЭффекты&8 &m---------------'
- '#perm-effects#'
- '{bar}&8&m--------&e&l &nСамоцветы&8 &m-----------'
- '#gem-stones#'
# - '{sbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,48 @@
received-item: Вы получили &6#item#&e#amount#.
hands-too-charged: Вы не можете ничего сделать, ваши руки слишком напряжены.
spell-on-cooldown: '#progress# &eВы должны подождать #left# сек.#s#, преждем чем использовать это
заклинание.'
item-on-cooldown: Этот предмет перезарежается!
not-enough-perms-command: У вас недостаточно прав.
attack-blocked: 'Вы заблокировали #percent#% от урона!'
attack-dodged: Вы уклонились от атаки!
attack-parried: Вы парировали атаку!
not-enough-levels: У вас недостаточно уровня, чтобы использовать этот предмет!
soulbound-restriction: Этот предмет привязан к другому игроку, вы не можете использовать его!
not-enough-perms: У вас недостаточно прав, чтобы использовать это.
wrong-class: У вас нет правильного класса, чтобы использовать этот предмет!
not-enough-mana: У вас недостаточно маны!
not-enough-stamina: У вас недостаточно стамины!
item-broke: 'Ваш #item#&c сломался.'
zero-durability: Этот предмет сломан, вам сначала нужно его починить.
successfully-identified: Вы успешно идентифицировали &6#item#&e.
successfully-deconstructed: Вы успешно деконструировали &6#item#&e.
gem-stone-applied: Вы успешно вставили самоцвет &6#gem#&e в ваш &6#item#&e.
gem-stone-broke: Ваш самоцвет &6#gem#&c сломался пока Вы пытались вставить его в &6#item#&c.
repaired-item: Вы успешно почнили &6#item#&e на &6#amount# ед. &eпрочности.
advanced-workbench: Улучшенный Верстак
empty-workbench-first: Пожалуйста, сначала очистите верстак.
not-enough-perms-craft: У вас недостаточно прав, чтобы создать этот предмет.
advanced-recipes: Улучшенные Рецепты
click-advanced-recipe: '#d Нажмите, чтобы увидеть этот рецепт.'
cant-bind-item: 'Этот предмет связан с #player# #level# уровнем персонализации.
Сначала Вы должны сломать эту свзяь.'
no-soulbound: Этот предмет не привязан ни к кому.
cant-bind-stacked: Вы не можете связать предметы в стаке.
unsuccessful-soulbound: Ваша персонализация не удалась.
unsuccessful-soulbound-break: Вы не смогли сломать связь.
low-soulbound-level: 'Этот предмет имеет #level# уровень персонализации. Вам понадобится более высокий уровень персонализации
на вашем расходнике, чтобы сломать эту свзять.'
successfully-bind-item: Вы успешно наложили &6#level# уровень &eперсонализации на ваш
&6#item#&e.
successfully-break-bind: Вы успешно сломали &6#level# уровень &eперсонализации!
soulbound-item-lore: '&4Связано с #player#//&4#level# уровнем Персонализации'
max-upgrades-hit: Этот предмет не может быть больше улучшен.
upgrade-fail: Ваше улучшение не удалось, и Вы потеряли расходник.
wrong-upgrade-reference: Вы не можете улучшить этот предмет с этим расходником.
upgrade-success: Вы успешно улучшили ваш &6#item#&e!
not-have-item-upgrade: У вас нет предмета для улучшения!
not-enough-materials: У вас недостаточно материалов, чтобы создать это.
conditions-not-met: Вы не можете создать этот предмет.
crafting-canceled: Вы отменили рецепт создания.
crafting-queue-full: В настоящее время очередь создания заполнена.

View File

@ -0,0 +1,30 @@
speed: Скорость
slow: Замедление
fast-digging: Спешка
slow-digging: Усталость
increase-damage: Сила
heal: Исцеление
harm: Моментальный Урон
jump: Прыгучесть
confusion: Тошнота
regeneration: Регенерация
damage-resistance: Сопротивление
fire-resistance: Огнестойкость
water-breathing: Подводное дыхание
invisibility: Невидимость
blindness: Слепота
night-vision: Ночное зрение
hunger: Голод
weakness: Слабость
poison: Отравление
wither: Иссушение
health-boost: Прилив здоровья
absorption: Поглощение
saturation: Насыщение
glowing: Свечение
levitation: Левитация
luck: Удача
unluck: Невезение
slow-falling: Медленное Падение
conduit-power: Морская Сила
dolphins-grace: Дельфинья Грация

104
language/russian/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&4➸ Уровень Атаки: #'
attack-speed: '&c➸ Скорость Атаки: #'
critical-strike-chance: '&7■ Шанс Критической Атаки: &f<plus>#%'
critical-strike-power: '&7■ Сила Критической Атаки: &f<plus>#%'
range: '&7■ Радиус: &f#'
mana-cost: '&9■ Маны за Использование: #'
stamina-cost: '&9■ Стамины за Использование: #'
arrow-velocity: '&7■ Arrow Velocity: &f#%'
blunt-power: '&7■ Сила Блока: &f#'
blunt-rating: '&7■ Шанс Блока: &f#%'
two-handed: '&7■ &cДвуручное'
knockback: '&7■ Отталкивание: &f#'
recoil: '&7■ Отдача: &f#%'
note-weight: '&7■ Примечание Вес: &f#'
# Extra Damage
pve-damage: '&7■ PvE Урон: &f<plus>#%'
pvp-damage: '&7■ PvP Урон: &f<plus>#%'
magic-damage: '&7■ Магический Урон: &f<plus>#%'
weapon-damage: '&7■ Урон от Оружия: &f<plus>#%'
undead-damage: '&7■ Урон по Нежити: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ Сила Блокирования: &f<plus>#%'
block-rating: '&7■ Шанс Блокирования: &f<plus>#%'
block-cooldown-reduction: '&7■ Уменьшение Перезарядки Блокирования: &f<plus>#%'
dodge-rating: '&7■ Шанс Уклонения: &f<plus>#%'
dodge-cooldown-reduction: '&7■ Уменьшение Перезарядки Уклонения: &f<plus>#%'
parry-rating: '&7■ Шанс Парирования: &f<plus>#%'
parry-cooldown-reduction: '&7■ Уменьшение Перезарядки Парирования: &f<plus>#%'
armor: '&7✠ Защита: &f<plus>#'
armor-toughness: '&7✠ Прочность Брони: &f<plus>#'
knockback-resistance: '&7✠ Сопротивление Отталкиванию: &f<plus>#%'
max-health: '&c❤ Здоровье: <plus>#'
movement-speed: '&7■ Скорость Передвижения: &f<plus>#'
regeneration: '&7■ Регенерация Здоровья: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ Снижение Урона: &f<plus>#%'
fall-damage-reduction: '&7■ Снижение Урона от Падения: &f<plus>#%'
fire-damage-reduction: '&7■ Снижение Урона от Огня: &f<plus>#%'
magic-damage-reduction: '&7■ Снижение Урона от Магии: &f<plus>#%'
physical-damage-reduction: '&7■ Physical Damage Reduction: &f<plus>#%'
# Extra Options
max-mana: '&9■ Максимальная Мана: <plus>#'
perm-effect: '&7■ Бесконечный &f#'
command: '&7■ Команда: &f#c &7(&f#d&7s)'
item-cooldown: '&7■ &f#&7 сек перезарядка'
# Consumables
restore-health: '&7■ Восстанавливает &f# &7Здоровья'
restore-food: '&7■ Восстанавливает &f# &7Еды'
restore-saturation: '&7■ Восстанавливает &f# &7Насыщения'
restore-mana: '&7■ Восстанавливает &f# &7Маны'
restore-stamina: '&7■ Восстанавливает &f# &7Стамины'
effect: '&7■ Даёт &f#e &7на &f#d&7сек'
repair: '&7■ Ремонт: &f#'
can-identify: '&7■ Может идентифицировать предметы.'
can-deconstruct: '&7■ Может разобрать тировые предметы.'
success-rate: '&7■ Шанс Успеха: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Пустой # слотя для Самоцвета'
filled-gem-socket: '&a◆ #'
when-applied: '&aКогда Применён:'
gem-stone-lore: '&8&l[&2&l*&8&l] &aПеретащите на предмет, чтобы &7применить!'
# Soulbound
soulbinding-chance: '&7■ Имеет &a#%&7 шанс связать предмет.'
soulbound-break-chance: '&7■ имеет &a#%&7 шанс убрать персонализацию.'
soulbound-level: '&7■ Уровень &e# &7Персонализации'
# Tool Enchants
autosmelt: '&7■ &fАвтоплавлка'
bouncing-crack: '&7■ &fТрещина'
# General
item-type: '&c■ #'
tier: '# Предмет'
required-class: '&7Требуется Класс: &7#'
required-level: '&eНеобходимый Уровень: #'
# Elemental Damage
fire-damage: '&c❖ #% Урон Огнём'
ice-damage: '&b❖ #% Урон Льдом'
earth-damage: '&2❖ #% Урон Землёй'
wind-damage: '&7❖ #% Урон Ветром'
thunder-damage: '&e❖ #% Урон Молнией'
water-damage: '&3❖ #% Урон Водой'
# Elemental Defense
fire-defense: '&c❖ #% Защита от Огня'
ice-defense: '&b❖ #% Защита от Льда'
earth-defense: '&2❖ #% Защита от Земли'
wind-defense: '&7❖ #% Защита от Ветра'
thunder-defense: '&e❖ #% Защита от Молнии'
water-defense: '&3❖ #% Защита от Воды'

View File

@ -0,0 +1,76 @@
ability:
overload: Sobrecarga
magical-shield: Escudo Mágico
bouncy-fireball: Bouncy Fireball
burning-hands: Arma flameante
fire-meteor: Meteorito
light-dash: Embestida de Luz
sparkle: Destellos
tnt-throw: TNT
earthquake: Terremoto
stun: Aturdir
holy-missile: Misil sagrado
black-hole: Agujero negro
slow: Relentizar
throw-up: Maldición Podrida
circular-slash: Circulo mortal
cursed-beam: Viga maldita
thrust: Thrust
heavy-charge: Super carga
item-throw: Lanzar
shock: Electrocutar
shadow-veil: Velo de Sombras
frog-mode: Modo rana
lightning-beam: Rayo de luz
death-mark: Marca mortal
confuse: Confusión
shulker-missile: Misil Shulker
heal: Cura
leap: Salto
burn: Quemar
starfall: Lluvia de Estrellas
wither: Wither
shockwave: Onda de Choque
vampirism: Vampirismo
smite: Herida profunda
corrupt: Corrupción
arcane-hail: Maldición del protector
grand-heal: Gran meditación
firebolt: Rayo de Fuego
magical-path: Botas mágicas
life-ender: Diluvio Letal
swiftness: Rapidez
freezing-curse: Congelar
ice-crystal: Cristal de hielo
blind: Cegar
firefly: Mariposa
poison: Veneno
blink: Teletransporte
sky-smash: Aplaste Aéreo
bloodbath: Baño de sangre
bunny-mode: Modo conejo
item-bomb: Bomba
modifier:
damage: '&7Daño'
mana: Mana
stamina: '&7Stamina'
cooldown: '&7Enfriamiento'
radius: '&7Radio'
duration: '&7Duración'
power: '&7Poder'
ignite: '&7Ignición'
speed: '&7Velocidad'
knockback: '&7Empuje'
length: '&7Longitud'
limit: '&7Límite'
force: '&7Fuerza'
amplifier: '&7Mejora'
jump-force: '&7Fuerza de salto'
slow-amplifier: '&7Mejora de relentización'
effect-duration: '&7Duración del efecto'
heal: '&7Curación'
knock-up: '&7Aturdir'
drain: '&7Drenar'
range: '&7Rango'
amount: '&7Cantidad'
slow-duration: '&7Tiempo de relentización'

View File

@ -0,0 +1,15 @@
staff-spirit:
nether-spirit: '&7■ Nether Spirit'
void-spirit: '&7■ Void Spirit'
mana-spirit: '&7■ Mana Spirit'
lightning-spirit: '&7■ Lightning Spirit'
xray-spirit: '&7■ X-Ray Spirit'
thunder-spirit: '&7■ Thunder Spirit'
sunfire-spirit: '&7■ Sunfire Spirit'
lute-attack:
wave: '&7■ Wave Melody'
circular: '&7■ Circular Melody'
slash: '&7■ Slashing Melody'
simple: '&7■ Simple Melody'
brute: '&7■ Brute Melody'
heavy: '&7■ Heavy Melody'

View File

@ -0,0 +1,23 @@
condition:
stamina:
positive: '&a✔ Requires #stamina# Stamina'
negative: '&c✖ Requires #stamina# Stamina'
level:
positive: '&a✔ Requires Level #level#'
negative: '&c✖ Requires Level #level#'
mana:
positive: '&a✔ Requires #mana# Mana'
negative: '&c✖ Requires #mana# Mana'
class:
positive: '&a✔ Required Class: #class#'
negative: '&c✖ Required Class: #class#'
food:
positive: '&a✔ Requires #food# Food'
negative: '&c✖ Requires #food# Food'
ingredient:
mmoitem:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'
vanilla:
positive: '&8✔ &7#amount# #item#'
negative: '&c✖ &7#amount# #item#'

View File

@ -0,0 +1,21 @@
UNIDENTIFIED_ITEM:
name: '&kSin identificar'
lore:
- '&e&oEste ítem esta &c&o&nsin identificar&e&o.'
- '&e&oBusca una manera de identificarlo.'
- '&e&oPodría ser un objeto raro o común.'
BACK:
name: Volver
lore: []
NEXT_PAGE:
name: Página siguiente
lore: []
PREVIOUS_PAGE:
name: Página anterior
lore: []
NO_ITEM:
name: '- Sin ítem -'
lore: []
NO_GEM_STONE:
name: '- Espacio para gema vacío -'
lore: []

View File

@ -0,0 +1,109 @@
# This is the way stats are organized in the item lore.
# You can remove or change line positions as much as you like to.
# Make sure each line ONLY has the placeholder as text.
#
# The lines starting with {bar} are strips that will be
# removed from the lore if there is nothing under it.
# The lines starting with {sbar} will stay whatever is below them.
lore-format:
# - '{bar}&8&m--------&f&l &nGeneral&8 &m--------------'
- '#item-type#'
- '{bar}'
- '#required-class#'
- '#required-level#'
- '#durability-state#'
- '#success-rate#'
- '{bar}'
- '#soulbound#'
# - '{bar}&8&m--------&f&l &nStatistics&8 &m-------------'
- '{bar}'
- '#can-identify#'
- '#can-deconstruct#'
- '#attack-damage#'
- '#knockback#'
- '#recoil#'
- '#note-weight#'
- '#attack-speed#'
- '#critical-strike-chance#'
- '#critical-strike-power#'
- '#range#'
- '#pvp-damage#'
- '#pve-damage#'
- '#blunt-power#'
- '#blunt-rating#'
- '#weapon-damage#'
- '#magic-damage#'
- '#damage-reduction#'
- '#fall-damage-reduction#'
- '#fire-damage-reduction#'
- '#magic-damage-reduction#'
- '#physical-damage-reduction#'
- '#undead-damage#'
- '#regeneration#'
- '#block-power#'
- '#block-rating#'
- '#dodge-rating#'
- '#parry-rating#'
- '#block-cooldown-reduction#'
- '#dodge-cooldown-reduction#'
- '#parry-cooldown-reduction#'
- '#armor#'
- '#armor-toughness#'
- '#knockback-resistance#'
- '#max-health#'
- '#max-mana#'
- '#movement-speed#'
- '#staff-spirit#'
- '#lute-attack-effect#'
- '#two-handed#'
- '#autosmelt#'
- '#bouncing-crack#'
- '#restore-health#'
- '#restore-food#'
- '#restore-mana#'
- '#restore-stamina#'
- '#soulbinding-chance#'
- '#soulbound-break-chance#'
- '#soulbound-level#'
- '#repair#'
- '#item-cooldown#'
- '#mana-cost#'
- '#stamina-cost#'
# - '{bar}&8&m--------&2&l &nElements&8 &m--------------'
- '{bar}'
- '#fire-damage#'
- '#fire-defense#'
- '#ice-damage#'
- '#ice-defense#'
- '#wind-damage#'
- '#wind-defense#'
- '#earth-damage#'
- '#earth-defense#'
- '#thunder-damage#'
- '#thunder-defense#'
- '#water-damage#'
- '#water-defense#'
- '#light-damage#'
- '#light-defense#'
- '#darkness-damage#'
- '#darkness-defense#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
- '{bar}'
- '#effects#'
# - '{bar}&8&m--------&b&l &nAbilities&8 &m--------------'
- '{bar}'
- '#abilities#'
# - '{bar}&8&m--------&b&l &nEffects&8 &m---------------'
# - '#perm-effects#'
# - '{bar}&8&m--------&e&l &nGem Stones&8 &m-----------'
- '{bar}'
- '#gem-stones#'
# - '{sbar}&8&m--------------------------------'
- '{bar}'
- '#lore#'
- '#gem-stone-lore#'
- '{bar}'
- '#set#'
- '{bar}'
- '#tier#'

View File

@ -0,0 +1,33 @@
hands-too-charged: Estás usando un ítem a dos manos, no puedes hacer eso.
spell-on-cooldown: '#progress# &e#left# Segundo#s#'
item-on-cooldown: Aún no esta listo!
item-command-on-cooldown: Aún no esta listo!
not-enough-perms-command: '&fComando desconocido usa "/ayuda" para mas info'
attack-blocked: 'Has bloqueado #percent#% de daño recibido!'
attack-dodged: Has esquivado un ataque!
not-enough-levels: '&e&lNo tienes nivel suficiente para usar este ítem'
not-enough-perms: '&c&lNo puedes hacer eso.'
not-enough-mana: No tienes mana suficiente!
not-enough-stamina: No tienes suficiente resistencia!
not-identified: No puedes usar un ítem sin identificar.
wrong-class: You don't have the right class!
successfully-identified: 'Ítem identificado: #item#&e.'
successfully-deconstructed: 'Has destruido: #item#&e.'
gem-stone-applied: Has aplicado &f#gem#&e a &f#item#&e.
repaired-item: Has reparado &f#item#&e por &f#amount# &ede durabilidad.
gave-item: '&eHas dado &f#item#&e#amount# a &f#player#&e.'
received-item: '&a&l➱ &eHas recibido &f#item#&e#amount#.'
cant-update-item: El ítem no se puede actualizar.
update-item: Ítem actualizado.
empty-workbench-first: Primero vacía la mesa de creación.
not-enough-perms-craft: '&fComando desconocido usa "/ayuda" para mas info'
miss-spell: Fallaste &c#spell#&e.
advanced-workbench: Mesa de creación avanzada
advanced-recipes: Recetas avanzadas
gem-stats: Estadísticas de gemas
click-advanced-recipe: Clic para ver la receta.
attack-parried: Has reflejado un ataque!
gem-stone-broke: La gema &f#gem#&c se ha roto al intentar aplicarse a &f#item#&c.
broken-item: This item is broken, you first need to repair it.
item-broke: 'Your #item#&c broke.'
zero-durability: Your item has no durability left. Repair it in order to use it again.

View File

@ -0,0 +1,27 @@
speed: Velocidad
slow: Relentización
fast-digging: Fast Digging
slow-digging: Slow Digging
increase-damage: Aumento de daño
heal: Curación
harm: Daño instantaneo
jump: Salto
confusion: Confusión
regeneration: Regeneración
damage-resistance: Resistencia
fire-resistance: Inmunidad al fuego
water-breathing: Respiración
invisibility: Invisibilidad
blindness: Ceguera
night-vision: Visión nocturna
hunger: Hambre
weakness: Debilidad
poison: Toxicidad
wither: Wither
health-boost: Mejora de vida
absorption: Absorción
saturation: Saturación
glowing: Brillo
levitation: Levitación
luck: Suerte
unluck: Mala suerte

104
language/spanish/stats.yml Normal file
View File

@ -0,0 +1,104 @@
# Weapon Stats
attack-damage: '&7➸ Daño: &f#'
attack-speed: '&7➸ Velocidad de ataque: &f#'
critical-strike-chance: '&7■ Indice de crítico: &f<plus>#%'
critical-strike-power: '&7■ Poder de crítico: &f<plus>#%'
range: '&7■ Rango: &f#'
mana-cost: '&9■ Usa # de Mana'
stamina-cost: '&9■ Usa # de Stamina'
arrow-velocity: '&7■ Velocidad de flecha: &f#%'
blunt-power: '&7■ Penetración de flecha: &f#'
blunt-rating: '&7■ Indice de penetración: &f#%'
two-handed: '&7■ A dos manos'
knockback: '&7■ Empuje: &f#'
recoil: '&7■ Retroceso: &f#%'
note-weight: '&7■ Note Weight: &f#'
# Extra Damage
pve-damage: '&7■ Daño PVE: &f<plus>#%'
pvp-damage: '&7■ Daño PVP: &f<plus>#%'
magic-damage: '&7■ Daño mágico: &f<plus>#%'
weapon-damage: '&7■ Weapon Damage: &f<plus>#%'
undead-damage: '&7■ Daño a monstruos: &f<plus>#%'
# Abilities
ability-format: '&2#c: #a'
ability-modifier: '&2#m: #v'
ability-splitter: '&2'
# Armor Stats
block-power: '&7■ Bloqueo: &f<plus>#%'
block-rating: '&7■ Indice de bloqueo: &f<plus>#%'
block-cooldown-reduction: '&7■ Reducción de enfriamento de bloqueo: &f<plus>#%'
dodge-rating: '&7■ Indice de evasión: &f<plus>#%'
dodge-cooldown-reduction: '&7■ Reducción de enfriamiento de evasión: &f<plus>#%'
parry-rating: '&7■ Indice de reflejar: &f<plus>#%'
parry-cooldown-reduction: '&7■ Reducción de enfriamiento de reflejar: &f<plus>#%'
armor: '&7✠ Defensa: &f<plus>#'
armor-toughness: '&7✠ Resistencia de armadura: &f<plus>#'
knockback-resistance: '&7✠ Resistencia al empuje: &f<plus>#%'
max-health: '&c❤ Vida máxima: <plus>#'
movement-speed: '&7■ Velocidad: &f<plus>#'
regeneration: '&7■ Regeneración de vida: &f<plus>#%'
# Damage Reduction
damage-reduction: '&7■ Reducción de daño: &f<plus>#%'
fall-damage-reduction: '&7■ Reducción de daño por caída: &f<plus>#%'
fire-damage-reduction: '&7■ Reducción de daño por fuego: &f<plus>#%'
magic-damage-reduction: '&7■ Reducción de daño mágico: &f<plus>#%'
physical-damage-reduction: '&7■ Physical Damage Reduction: &f<plus>#%'
# Extra Options
max-mana: '&7■ Mana máximo: &f<plus>#'
perm-effect: '&7■ Permanente &f#'
command: '&7■ Comando: &f#c &7(&f#d&7s)'
item-cooldown: '&7■ &7Se puede usar cada #&7s'
# Consumables
restore-health: '&7■ Restaura &f# &7de vida'
restore-food: '&7■ Restaura &f# &7de hambre'
restore-saturation: '&7■ Restaura &f# &7de saturación'
restore-mana: '&7■ Restaura &f# &7de mana'
restore-stamina: '&7■ Restaura &f# &7de aguante'
effect: '&7■ Al consumir otorga &f#e &7por &f#d&7s'
repair: '&7■ Repara: &f#'
can-identify: '&7■ Puede identificar objetos.'
can-deconstruct: '&7■ Puede destruir objetos usados.'
success-rate: '&7■ Indice de éxito: &a&l#%'
# Gem Stones
empty-gem-socket: '&a◆ Espacio para # gema'
filled-gem-socket: '&a◆ #'
when-applied: '&aAl aplicar:'
gem-stone-lore: '&8&l[&2&l♦&8&l] &aArrastra y suelta en un objeto &7para aplicar!'
# Soulbound
soulbinding-chance: '&7■ Has a &a#%&7 chance to bind your item.'
soulbound-break-chance: '&7■ Has a &a#%&7 chance to break soulbounds.'
soulbound-level: '&7■ Level &e# &7Soulbound'
# Tool Enchants
autosmelt: '&7■ &fAutosmelt'
bouncing-crack: '&7■ &fBouncing Crack'
# General
item-type: '&c#'
tier: '# ITEM'
required-class: '&7# Objeto'
required-level: '&eRequiere Nvl #'
# Elemental Damage
fire-damage: '&c❖ #% Daño de fuego'
ice-damage: '&b❖ #% Daño de hielo'
earth-damage: '&2❖ #% Daño de tierra'
wind-damage: '&7❖ #% Daño de viento'
thunder-damage: '&e❖ #% Dañp de triemp'
water-damage: '&3❖ #% Daño de agua'
# Elemental Defense
fire-defense: '&c❖ #% Defemsa al fuego'
ice-defense: '&b❖ #% Defensa al hielo'
earth-defense: '&2❖ #% Defensa de la tierra'
wind-defense: '&7❖ #% Defensa al viento'
thunder-defense: '&e❖ #% Defensa al trueno'
water-defense: '&3❖ #% Defensa al agua'

47
plugin.yml Normal file
View File

@ -0,0 +1,47 @@
name: MMOItems
version: 4.7.13
main: net.Indyuce.mmoitems.MMOItems
author: Indyuce
softdepend: [WorldGuard,Holograms,Residence,BossShopPro,SkillAPI,MMOCore,MythicMobs]
api-version: 1.13
commands:
advancedworkbench:
description: Opens the advanced workbench.
aliases: [advancedwb,awb]
mmoitems:
description: MMOItems main command.
aliases: [mi]
updateitem:
description: Update the item you are holding.
aliases: [upitem,itemup]
permissions:
mmoitems.admin:
description: Access to admin commands.
default: op
mmoitems.awb:
description: Access to /advancedworkbench.
default: op
mmoitems.update:
description: Access to /updateitem.
default: op
mmoitems.bypass.item:
description: Bypasses item permission restriction.
default: false
mmoitems.bypass.ability:
description: Bypasses ability permission restriction.
default: false
mmoitems.bypass.class:
description: Bypasses item class restriction.
default: false
mmoitems.bypass.soulbound:
description: Bypasses soulbound restriction.
default: false
mmoitems.bypass.level:
description: Bypasses item level restriction.
default: false
mmoitems.update-notify:
description: Receive a notification when a new update is available.
default: op
mmoitems.soulbound:
description: Allows to use /soulbound.
default: op

View File

@ -0,0 +1,416 @@
package net.Indyuce.mmoitems;
import java.io.File;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.SoulboundInfo;
import net.Indyuce.mmoitems.api.player.PlayerData;
import net.Indyuce.mmoitems.command.AdvancedWorkbenchCommand;
import net.Indyuce.mmoitems.command.MMOItemsCommand;
import net.Indyuce.mmoitems.command.UpdateItemCommand;
import net.Indyuce.mmoitems.command.completion.MMOItemsCompletion;
import net.Indyuce.mmoitems.command.completion.UpdateItemCompletion;
import net.Indyuce.mmoitems.comp.AdvancedEnchantmentsHook;
import net.Indyuce.mmoitems.comp.MMOItemsMetrics;
import net.Indyuce.mmoitems.comp.MMOItemsRewardTypes;
import net.Indyuce.mmoitems.comp.RealDualWieldHook;
import net.Indyuce.mmoitems.comp.flags.DefaultFlags;
import net.Indyuce.mmoitems.comp.flags.FlagPlugin;
import net.Indyuce.mmoitems.comp.flags.ResidenceFlags;
import net.Indyuce.mmoitems.comp.flags.WorldGuardFlags;
import net.Indyuce.mmoitems.comp.holograms.CMIPlugin;
import net.Indyuce.mmoitems.comp.holograms.HologramSupport;
import net.Indyuce.mmoitems.comp.holograms.HologramsPlugin;
import net.Indyuce.mmoitems.comp.holograms.HolographicDisplaysPlugin;
import net.Indyuce.mmoitems.comp.inventory.DefaultPlayerInventory;
import net.Indyuce.mmoitems.comp.inventory.PlayerInventory;
import net.Indyuce.mmoitems.comp.inventory.RPGInventoryHook;
import net.Indyuce.mmoitems.comp.itemglow.ItemGlowListener;
import net.Indyuce.mmoitems.comp.itemglow.NoGlowListener;
import net.Indyuce.mmoitems.comp.mmocore.MMOCoreMMOLoader;
import net.Indyuce.mmoitems.comp.mythicmobs.MythicMobsHook;
import net.Indyuce.mmoitems.comp.placeholderapi.DefaultParser;
import net.Indyuce.mmoitems.comp.placeholderapi.PlaceholderAPIParser;
import net.Indyuce.mmoitems.comp.placeholderapi.PlaceholderParser;
import net.Indyuce.mmoitems.comp.rpg.DefaultHook;
import net.Indyuce.mmoitems.comp.rpg.RPGHandler;
import net.Indyuce.mmoitems.gui.PluginInventory;
import net.Indyuce.mmoitems.gui.listener.GuiListener;
import net.Indyuce.mmoitems.listener.AdvancedWorkbenchListener;
import net.Indyuce.mmoitems.listener.CustomDurability;
import net.Indyuce.mmoitems.listener.DisableInteractions;
import net.Indyuce.mmoitems.listener.ElementListener;
import net.Indyuce.mmoitems.listener.ItemUse;
import net.Indyuce.mmoitems.listener.PlayerListener;
import net.Indyuce.mmoitems.listener.version.Listener_v1_13;
import net.Indyuce.mmoitems.manager.AbilityManager;
import net.Indyuce.mmoitems.manager.ConfigManager;
import net.Indyuce.mmoitems.manager.CraftingManager;
import net.Indyuce.mmoitems.manager.DamageManager;
import net.Indyuce.mmoitems.manager.DropTableManager;
import net.Indyuce.mmoitems.manager.EntityManager;
import net.Indyuce.mmoitems.manager.ItemManager;
import net.Indyuce.mmoitems.manager.PluginUpdateManager;
import net.Indyuce.mmoitems.manager.RecipeManager;
import net.Indyuce.mmoitems.manager.SetManager;
import net.Indyuce.mmoitems.manager.StatManager;
import net.Indyuce.mmoitems.manager.TierManager;
import net.Indyuce.mmoitems.manager.TypeManager;
import net.Indyuce.mmoitems.manager.UpdaterManager;
import net.Indyuce.mmoitems.manager.UpgradeManager;
import net.Indyuce.mmoitems.version.ServerVersion;
import net.Indyuce.mmoitems.version.SpigotPlugin;
import net.Indyuce.mmoitems.version.nms.NMSHandler;
public class MMOItems extends JavaPlugin {
public static MMOItems plugin;
private ServerVersion version;
private RecipeManager recipeManager;
private ConfigManager configManager;
private StatManager statManager;
private EntityManager entityManager;
private DamageManager damageManager;
private DropTableManager dropTableManager;
private UpdaterManager itemUpdaterManager;
private TypeManager typeManager;
private TierManager tierManager;
private ItemManager itemManager;
private SetManager setManager;
private UpgradeManager upgradeManager;
private AbilityManager abilityManager = new AbilityManager();
private CraftingManager stationRecipeManager = new CraftingManager();
private PluginUpdateManager pluginUpdateManager = new PluginUpdateManager();
private RPGHandler rpgPlugin;
private PlaceholderParser placeholderParser = new DefaultParser();
private HologramSupport hologramSupport;
private FlagPlugin flagPlugin = new DefaultFlags();
private PlayerInventory inventory = new DefaultPlayerInventory();
private NMSHandler nms;
public void onLoad() {
plugin = this;
version = new ServerVersion(Bukkit.getServer().getClass());
try {
getLogger().log(Level.INFO, "Detected Bukkit Version: " + version.toString());
nms = (NMSHandler) Class.forName("net.Indyuce.mmoitems.version.nms.NMSHandler_" + version.toString().substring(1)).newInstance();
} catch (Exception e) {
getLogger().log(Level.INFO, "Your server version is not compatible.");
Bukkit.getPluginManager().disablePlugin(this);
return;
// nms = new NMSHandler_Reflection();
}
try {
if (getServer().getPluginManager().getPlugin("WorldGuard") != null && version.isStrictlyHigher(1, 12)) {
flagPlugin = new WorldGuardFlags();
getLogger().log(Level.INFO, "Hooked onto WorldGuard");
}
} catch (Exception e) {
getLogger().log(Level.WARNING, "Could not initialize support with WorldGuard 7+");
}
if (Bukkit.getPluginManager().getPlugin("MMOCore") != null)
new MMOCoreMMOLoader();
saveDefaultConfig();
statManager = new StatManager();
typeManager = new TypeManager();
}
public void onEnable() {
new SpigotPlugin(39267, this).checkForUpdate();
new MMOItemsMetrics();
if (!getDataFolder().exists())
getDataFolder().mkdir();
abilityManager.registerDefaultAbilities();
abilityManager.stopRegistration();
configManager = new ConfigManager();
itemManager = new ItemManager();
tierManager = new TierManager();
setManager = new SetManager();
upgradeManager = new UpgradeManager();
getLogger().log(Level.INFO, "Loading crafting stations, please wait..");
stationRecipeManager.reload();
Bukkit.getPluginManager().registerEvents(entityManager = new EntityManager(), this);
Bukkit.getPluginManager().registerEvents(damageManager = new DamageManager(), this);
Bukkit.getPluginManager().registerEvents(dropTableManager = new DropTableManager(), this);
Bukkit.getPluginManager().registerEvents(itemUpdaterManager = new UpdaterManager(), this);
Bukkit.getPluginManager().registerEvents(new ItemUse(), this);
Bukkit.getPluginManager().registerEvents(new PlayerListener(), this);
Bukkit.getPluginManager().registerEvents(new CustomDurability(), this);
Bukkit.getPluginManager().registerEvents(new DisableInteractions(), this);
Bukkit.getPluginManager().registerEvents(new GuiListener(), this);
Bukkit.getPluginManager().registerEvents(new ElementListener(), this);
if (version.isStrictlyHigher(1, 12))
Bukkit.getPluginManager().registerEvents(new Listener_v1_13(), this);
/*
* this class implements the Listener, if the option
* perm-effects-apply-on-move is enabled the loop will not apply perm
* effects and this class will be registered as a listener. starts with
* a 5s delay to let the other plugins time to load nicely
*/
Bukkit.getScheduler().runTaskTimer(this, () -> Bukkit.getOnlinePlayers().forEach(player -> PlayerData.get(player).updateEffects()), 100, 20);
/*
* this tasks updates twice a second player inventories on the server.
* allows now to use a glitchy itemEquipEvent. must be called after
* loading the config since it checks for a config option
*/
Bukkit.getScheduler().runTaskTimer(this, () -> Bukkit.getOnlinePlayers().forEach(player -> PlayerData.get(player).checkForInventoryUpdate()), 100, getConfig().getInt("inventory-update-delay"));
if (!getConfig().getBoolean("disable-craftings.advanced"))
Bukkit.getPluginManager().registerEvents(new AdvancedWorkbenchListener(), this);
if (Bukkit.getPluginManager().getPlugin("Residence") != null) {
flagPlugin = new ResidenceFlags();
getLogger().log(Level.INFO, "Hooked onto Residence");
}
if (Bukkit.getPluginManager().getPlugin("RPGInventory") != null) {
inventory = new RPGInventoryHook(this);
getLogger().log(Level.INFO, "Hooked onto RPGInventory");
}
if (Bukkit.getPluginManager().getPlugin("AdvancedEnchantments") != null) {
Bukkit.getPluginManager().registerEvents(new AdvancedEnchantmentsHook(), this);
getLogger().log(Level.INFO, "Hooked onto AdvancedEnchantments");
}
if (Bukkit.getPluginManager().getPlugin("HolographicDisplays") != null) {
hologramSupport = new HolographicDisplaysPlugin();
getLogger().log(Level.INFO, "Hooked onto HolographicDisplays");
} else if (Bukkit.getPluginManager().getPlugin("CMI") != null) {
hologramSupport = new CMIPlugin();
getLogger().log(Level.INFO, "Hooked onto CMI Holograms");
} else if (Bukkit.getPluginManager().getPlugin("Holograms") != null) {
hologramSupport = new HologramsPlugin();
getLogger().log(Level.INFO, "Hooked onto Holograms");
}
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
getLogger().log(Level.INFO, "Hooked onto PlaceholderAPI");
placeholderParser = new PlaceholderAPIParser();
}
if (Bukkit.getPluginManager().getPlugin("MythicMobs") != null) {
Bukkit.getPluginManager().registerEvents(new MythicMobsHook(), this);
getLogger().log(Level.INFO, "Hooked onto MythicMobs");
}
if (getConfig().getBoolean("item-glow")) {
if (Bukkit.getPluginManager().getPlugin("GlowAPI") != null && Bukkit.getPluginManager().getPlugin("PacketListenerApi") != null) {
Bukkit.getPluginManager().registerEvents(new ItemGlowListener(), this);
getLogger().log(Level.INFO, "Hooked onto GlowAPI (Item Glow)");
} else
Bukkit.getPluginManager().registerEvents(new NoGlowListener(), this);
}
if (Bukkit.getPluginManager().getPlugin("RealDualWield") != null) {
Bukkit.getPluginManager().registerEvents(new RealDualWieldHook(), this);
getLogger().log(Level.INFO, "Hooked onto RealDualWield");
}
if (Bukkit.getPluginManager().getPlugin("BossShopPro") != null) {
/*
* runs async because of plugin loading order issues, this way it
* only registers after BossShop is initialized
*/
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
new MMOItemsRewardTypes().register();
getLogger().log(Level.INFO, "Hooked onto BossShopPro (async)");
});
}
findRpgPlugin();
// compatibility with /reload
Bukkit.getOnlinePlayers().forEach(player -> PlayerData.load(player));
// advanced recipes
getLogger().log(Level.INFO, "Loading recipes, please wait...");
recipeManager = new RecipeManager();
// commands
getCommand("mmoitems").setExecutor(new MMOItemsCommand());
getCommand("advancedworkbench").setExecutor(new AdvancedWorkbenchCommand());
getCommand("updateitem").setExecutor(new UpdateItemCommand());
// tab completion
getCommand("mmoitems").setTabCompleter(new MMOItemsCompletion());
getCommand("updateitem").setTabCompleter(new UpdateItemCompletion());
}
public void onDisable() {
// save player data
PlayerData.getLoaded().forEach(data -> data.save());
// save item updater data
ConfigFile updater = new ConfigFile("/dynamic", "updater");
updater.getConfig().getKeys(false).forEach(key -> updater.getConfig().set(key, null));
itemUpdaterManager.getDatas().forEach(data -> data.save(updater.getConfig()));
updater.save();
// drop abandonned soulbound items
SoulboundInfo.getAbandonnedInfo().forEach(info -> info.dropItems());
// close inventories
for (Player player : Bukkit.getOnlinePlayers())
if (player.getOpenInventory() != null && player.getOpenInventory().getTopInventory().getHolder() instanceof PluginInventory)
player.closeInventory();
}
public String getPrefix() {
return ChatColor.YELLOW + "MI" + ChatColor.DARK_GRAY + "> " + ChatColor.GRAY;
}
public File getJarFile() {
return plugin.getFile();
}
public CraftingManager getCrafting() {
return stationRecipeManager;
}
public UpdaterManager getUpdater() {
return itemUpdaterManager;
}
public SetManager getSets() {
return setManager;
}
public NMSHandler getNMS() {
return nms;
}
public FlagPlugin getFlags() {
return flagPlugin;
}
public void setFlags(FlagPlugin value) {
flagPlugin = value;
}
public RPGHandler getRPG() {
return rpgPlugin;
}
public void setRPG(RPGHandler handler) {
rpgPlugin = handler;
}
public PluginUpdateManager getUpdates() {
return pluginUpdateManager;
}
public PlayerInventory getInventory() {
return inventory;
}
public void setPlayerInventory(PlayerInventory value) {
inventory = value;
}
public ServerVersion getVersion() {
return version;
}
public StatManager getStats() {
return statManager;
}
public TierManager getTiers() {
return tierManager;
}
public EntityManager getEntities() {
return entityManager;
}
public DamageManager getDamage() {
return damageManager;
}
public DropTableManager getDropTables() {
return dropTableManager;
}
public AbilityManager getAbilities() {
return abilityManager;
}
public RecipeManager getRecipes() {
return recipeManager;
}
public ConfigManager getLanguage() {
return configManager;
}
public TypeManager getTypes() {
return typeManager;
}
public UpgradeManager getUpgrades() {
return upgradeManager;
}
public PlaceholderParser getPlaceholderParser() {
return placeholderParser;
}
public HologramSupport getHolograms() {
return hologramSupport;
}
public ItemManager getItems() {
return itemManager;
}
public void findRpgPlugin() {
if (rpgPlugin != null)
return;
for (RPGHandler.PluginEnum plugin : RPGHandler.PluginEnum.values())
if (Bukkit.getPluginManager().getPlugin(plugin.getName()) != null) {
setRPG(plugin.load());
getLogger().log(Level.INFO, "Hooked onto " + plugin.getName());
return;
}
setRPG(new DefaultHook());
}
public boolean isBlacklisted(Material material) {
return getConfig().getStringList("block-blacklist").contains(material.name());
}
public void debug(Object... message) {
if (!getConfig().getBoolean("debug"))
return;
for (Object line : message) {
getLogger().log(Level.INFO, "Debug> " + line.toString());
Bukkit.getOnlinePlayers().forEach(online -> online.sendMessage(ChatColor.YELLOW + "Debug> " + ChatColor.WHITE + line.toString()));
}
}
}

View File

@ -0,0 +1,289 @@
package net.Indyuce.mmoitems;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import org.apache.commons.codec.binary.Base64;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.api.util.AltChar;
import net.Indyuce.mmoitems.stat.type.ItemStat;
public class MMOUtils {
private static final Random random = new Random();
public static String getSkullTextureURL(ItemStack i) {
try {
ItemMeta meta = i.getItemMeta();
Field profileField = meta.getClass().getDeclaredField("profile");
profileField.setAccessible(true);
Collection<Property> properties = ((GameProfile) profileField.get(i.getItemMeta())).getProperties().get("textures");
Property property = properties.toArray(new Property[properties.size()])[0];
return new String(Base64.decodeBase64(property.getValue())).replace("{textures:{SKIN:{url:\"", "").replace("\"}}}", "");
} catch (Exception e) {
return "";
}
}
public static String getProgressBar(double ratio, int n, String barChar) {
String bar = "";
for (int k = 0; k < n; k++)
bar += barChar;
return bar.substring(0, (int) (ratio * n)) + ChatColor.WHITE + bar.substring((int) (ratio * n));
}
public static void giveOrDrop(Player player, ItemStack item) {
for (ItemStack drop : player.getInventory().addItem(item).values())
player.getWorld().dropItem(player.getLocation(), drop);
}
// random offset between -a and a
public static double rdm(double a) {
return (random.nextDouble() - .5) * 2 * a;
}
public static int getEffectDuration(PotionEffectType type) {
// confusion takes a lot of time to decay
// night vision flashes your screen for the last 10sec of effect
if (type.equals(PotionEffectType.NIGHT_VISION) || type.equals(PotionEffectType.CONFUSION))
return 260;
// takes some time to decay
if (type.equals(PotionEffectType.BLINDNESS))
return 140;
// otherwise 4sec is high enough to maintain the effect even when the
// server laggs
return 80;
}
public static String getDisplayName(ItemStack i) {
if (!i.hasItemMeta())
return MMOUtils.caseOnWords(i.getType().name().toLowerCase().replace("_", " "));
return i.getItemMeta().hasDisplayName() ? i.getItemMeta().getDisplayName() : MMOUtils.caseOnWords(i.getType().name().toLowerCase().replace("_", " "));
}
public static Integer[] getSocketSlots(List<String> lore) {
List<Integer> list = new ArrayList<Integer>();
for (int j = 0; j < lore.size(); j++)
if (lore.get(j).equals(ItemStat.translate("empty-gem-socket").replace("#d", AltChar.diamond)))
list.add(j);
return list.toArray(new Integer[list.size()]);
}
public static boolean twoHandedCase(Player player) {
int normal = 0;
int twoHanded = 0;
for (ItemStack item : new ItemStack[] { player.getInventory().getItemInMainHand(), player.getInventory().getItemInOffHand() }) {
if (item.getType() != Material.AIR)
normal++;
if (MMOItems.plugin.getNMS().getNBTItem(item).getBoolean("MMOITEMS_TWO_HANDED"))
twoHanded++;
}
return twoHanded > 0 && normal > 1;
}
public static String caseOnWords(String s) {
StringBuilder builder = new StringBuilder(s);
boolean isLastSpace = true;
for (int i = 0; i < builder.length(); i++) {
char ch = builder.charAt(i);
if (isLastSpace && ch >= 'a' && ch <= 'z') {
builder.setCharAt(i, (char) (ch + ('A' - 'a')));
isLastSpace = false;
} else if (ch != ' ')
isLastSpace = false;
else
isLastSpace = true;
}
return builder.toString();
}
public static boolean isPluginItem(ItemStack item, boolean lore) {
return item != null && item.getType() != Material.AIR && item.getItemMeta() != null && item.getItemMeta().getDisplayName() != null && (!lore || item.getItemMeta().getLore() != null);
}
public static boolean isType(String s) {
for (Type type : MMOItems.plugin.getTypes().getAll())
if (type.getId().equalsIgnoreCase(s.replace("-", "_")))
return true;
return false;
}
public static void saturate(Player player, double saturation) {
if (saturation > 0)
player.setSaturation(Math.min(20, player.getSaturation() + (float) saturation));
}
public static void feed(Player player, int feed) {
if (feed > 0)
player.setFoodLevel(Math.min(20, player.getFoodLevel() + feed));
}
public static void heal(LivingEntity player, double heal) {
if (heal > 0)
player.setHealth(Math.min(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(), player.getHealth() + heal));
}
public static boolean canDamage(Player player, Entity target) {
return canDamage(player, null, target);
}
public static boolean canDamage(Entity target) {
return canDamage(null, null, target);
}
public static boolean canDamage(Player player, Location loc, Entity target) {
/*
* cannot hit himself or non-living entities. careful, some entities are
* weirdly considered as livingEntities like the armor stand. also check
* if the entity is dead since a dying entity (dying effect takes some
* time) can still be targeted but we dont want that
*/
if (target.equals(player) || !(target instanceof LivingEntity) || target instanceof ArmorStand || target.isDead())
return false;
/*
* can spam your console - an error message is sent each time an NPC
* gets damaged since it is considered as a player.
*/
if (target.hasMetadata("NPC"))
return false;
/*
* the ability player damage option is cached for quicker access in the
* config manager instance since it is used in runnables
*/
if (target instanceof Player && (!MMOItems.plugin.getLanguage().abilityPlayerDamage || !MMOItems.plugin.getFlags().isPvpAllowed(target.getLocation())))
return false;
return loc == null ? true : MMOItems.plugin.getNMS().isInBoundingBox(target, loc);
}
public static String intToRoman(int input) {
if (input < 1 || input > 499)
return ">499";
String s = "";
while (input >= 400) {
s += "CD";
input -= 400;
}
while (input >= 100) {
s += "C";
input -= 100;
}
while (input >= 90) {
s += "XC";
input -= 90;
}
while (input >= 50) {
s += "L";
input -= 50;
}
while (input >= 40) {
s += "XL";
input -= 40;
}
while (input >= 10) {
s += "X";
input -= 10;
}
while (input >= 9) {
s += "IX";
input -= 9;
}
while (input >= 5) {
s += "V";
input -= 5;
}
while (input >= 4) {
s += "IV";
input -= 4;
}
while (input >= 1) {
s += "I";
input -= 1;
}
return s;
}
public static double truncation(double x, int n) {
double pow = Math.pow(10.0, n);
return Math.floor(x * pow) / pow;
}
public static Vector rotAxisX(Vector v, double a) {
double y = v.getY() * Math.cos(a) - v.getZ() * Math.sin(a);
double z = v.getY() * Math.sin(a) + v.getZ() * Math.cos(a);
return v.setY(y).setZ(z);
}
public static Vector rotAxisY(Vector v, double b) {
double x = v.getX() * Math.cos(b) + v.getZ() * Math.sin(b);
double z = v.getX() * -Math.sin(b) + v.getZ() * Math.cos(b);
return v.setX(x).setZ(z);
}
public static Vector rotAxisZ(Vector v, double c) {
double x = v.getX() * Math.cos(c) - v.getY() * Math.sin(c);
double y = v.getX() * Math.sin(c) + v.getY() * Math.cos(c);
return v.setX(x).setY(y);
}
public static Vector rotateFunc(Vector v, Location loc) {
double yaw = loc.getYaw() / 180 * Math.PI;
double pitch = loc.getPitch() / 180 * Math.PI;
v = rotAxisX(v, pitch);
v = rotAxisY(v, -yaw);
return v;
}
/*
* method to get all entities surrounding a location. this method does not
* take every entity in the world but rather takes all the entities from the
* 9 chunks around the entity, so even if the location is at the border of a
* chunk (worst case border of 4 chunks), the entity will still be included
*/
public static List<Entity> getNearbyChunkEntities(Location loc) {
/*
* another method to save performance is if an entity bounding box
* calculation is made twice in the same tick then the method does not
* need to be called twice, it can utilize the same entity list since
* the entities have not moved (e.g fireball which does 2+ calculations
* per tick)
*/
List<Entity> entities = new ArrayList<>();
int cx = loc.getChunk().getX();
int cz = loc.getChunk().getZ();
for (int x = -1; x < 2; x++)
for (int z = -1; z < 2; z++)
for (Entity entity : loc.getWorld().getChunkAt(cx + x, cz + z).getEntities())
entities.add(entity);
return entities;
}
}

View File

@ -0,0 +1,75 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Black_Hole extends Ability {
public Black_Hole() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("radius", 2);
addModifier("duration", 2);
addModifier("cooldown", 35);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
Location loc = getTargetLocation(stats.getPlayer(), target);
if (loc == null) {
result.setSuccessful(false);
return;
}
double duration = data.getModifier("duration") * 20;
double radius = data.getModifier("radius");
loc.getWorld().playSound(loc, VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 3, 1);
new BukkitRunnable() {
int ti = 0;
double r = 4;
public void run() {
if (ti++ > Math.min(300, duration))
cancel();
loc.getWorld().playSound(loc, VersionSound.BLOCK_NOTE_BLOCK_HAT.toSound(), 2, 2);
loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0);
for (int j = 0; j < 3; j++) {
double ran = random.nextDouble() * Math.PI * 2;
double ran_y = random.nextDouble() * 2 - 1;
double x = Math.cos(ran) * Math.sin(ran_y * Math.PI * 2);
double z = Math.sin(ran) * Math.sin(ran_y * Math.PI * 2);
Location loc1 = loc.clone().add(x * r, ran_y * r, z * r);
Vector v = loc.toVector().subtract(loc1.toVector());
loc1.getWorld().spawnParticle(Particle.SMOKE_LARGE, loc1, 0, v.getX(), v.getY(), v.getZ(), .1);
}
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (entity.getLocation().distanceSquared(loc) < Math.pow(radius, 2) && MMOUtils.canDamage(stats.getPlayer(), entity))
entity.setVelocity(normalizeIfNotNull(loc.clone().subtract(entity.getLocation()).toVector()).multiply(.5));
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
/*
* if the vector is null, you can't normalize it because you cannot divide
* by 0.
*/
private Vector normalizeIfNotNull(Vector vector) {
return vector.length() == 0 ? vector : vector.normalize();
}
}

View File

@ -0,0 +1,38 @@
package net.Indyuce.mmoitems.ability;
import java.util.Set;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.entity.LivingEntity;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Blink extends Ability {
public Blink() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("range", 8);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_LARGE, stats.getPlayer().getLocation().add(0, 1, 0), 0);
stats.getPlayer().getWorld().spawnParticle(Particle.SPELL_INSTANT, stats.getPlayer().getLocation().add(0, 1, 0), 32, 0, 0, 0, .1);
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 1, 1);
Location loc = stats.getPlayer().getTargetBlock((Set<Material>) null, (int) data.getModifier("range")).getLocation().add(0, 1, 0);
loc.setYaw(stats.getPlayer().getLocation().getYaw());
loc.setPitch(stats.getPlayer().getLocation().getPitch());
stats.getPlayer().teleport(loc);
stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_LARGE, stats.getPlayer().getLocation().add(0, 1, 0), 0);
stats.getPlayer().getWorld().spawnParticle(Particle.SPELL_INSTANT, stats.getPlayer().getLocation().add(0, 1, 0), 32, 0, 0, 0, .1);
}
}

View File

@ -0,0 +1,68 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Snowball;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Blizzard extends Ability implements Listener {
public Blizzard() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 2.5);
addModifier("damage", 2);
addModifier("inaccuracy", 10);
addModifier("force", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 10;
double force = data.getModifier("force");
double inaccuracy = data.getModifier("inaccuracy");
new BukkitRunnable() {
int j = 0;
double damage = data.getModifier("damage");
public void run() {
j++;
if (j > duration)
cancel();
Location loc = stats.getPlayer().getEyeLocation();
loc.setPitch((float) (loc.getPitch() + (random.nextDouble() - .5) * inaccuracy));
loc.setYaw((float) (loc.getYaw() + (random.nextDouble() - .5) * inaccuracy));
loc.getWorld().playSound(loc, Sound.ENTITY_SNOWBALL_THROW, 1, 1);
Snowball snowball = stats.getPlayer().launchProjectile(Snowball.class);
snowball.setVelocity(loc.getDirection().multiply(1.3 * force));
MMOItems.plugin.getEntities().registerCustomEntity(snowball, damage);
}
}.runTaskTimer(MMOItems.plugin, 0, 2);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void a(EntityDamageByEntityEvent event) {
if (!(event.getDamager() instanceof Snowball))
return;
Snowball snowball = (Snowball) event.getDamager();
if (MMOItems.plugin.getEntities().isCustomEntity(snowball))
event.setDamage((double) MMOItems.plugin.getEntities().getEntityData(snowball)[0]);
}
}

View File

@ -0,0 +1,89 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Bouncy_Fireball extends Ability {
public Bouncy_Fireball() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("cooldown", 20);
addModifier("damage", 5);
addModifier("ignite", 40);
addModifier("speed", 1);
addModifier("radius", 4);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 2, 0);
new BukkitRunnable() {
int j = 0;
Vector vec = getTargetDirection(stats.getPlayer(), target).setY(0).normalize().multiply(.5 * data.getModifier("speed"));
Location loc = stats.getPlayer().getLocation().clone().add(0, 1.2, 0);
int bounces = 0;
double y = .3;
public void run() {
j++;
if (j > 100) {
loc.getWorld().spawnParticle(Particle.SMOKE_LARGE, loc, 32, 0, 0, 0, .05);
loc.getWorld().playSound(loc, Sound.BLOCK_FIRE_EXTINGUISH, 1, 1);
cancel();
return;
}
loc.add(vec);
loc.add(0, y, 0);
if (y > -.6)
y -= .05;
loc.getWorld().spawnParticle(Particle.LAVA, loc, 0);
loc.getWorld().spawnParticle(Particle.FLAME, loc, 4, 0, 0, 0, .03);
loc.getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc, 1, 0, 0, 0, .03);
if (loc.getBlock().getType().isSolid()) {
loc.add(0, -y, 0);
loc.add(vec.clone().multiply(-1));
y = .4;
bounces++;
loc.getWorld().playSound(loc, Sound.ENTITY_BLAZE_HURT, 3, 2);
}
if (bounces > 2) {
double radius = data.getModifier("radius");
double damage = data.getModifier("damage");
double ignite = data.getModifier("ignite");
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (entity.getLocation().distanceSquared(loc) < radius * radius)
if (MMOUtils.canDamage(stats.getPlayer(), entity)) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage, DamageType.MAGIC);
((LivingEntity) entity).setFireTicks((int) (ignite * 20));
}
loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 12, 2, 2, 2, 0);
loc.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, loc, 48, 0, 0, 0, .2);
loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 3, 0);
cancel();
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,80 @@
package net.Indyuce.mmoitems.ability;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.bukkit.Particle;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Bunny_Mode extends Ability implements Listener {
private Map<UUID, Long> fallDamage = new HashMap<UUID, Long>();
public Bunny_Mode() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 20);
addModifier("jump-force", 1);
addModifier("cooldown", 50);
addModifier("speed", 1);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 20;
double y = data.getModifier("jump-force");
double xz = data.getModifier("speed");
new BukkitRunnable() {
int j = 0;
public void run() {
j++;
if (j > duration)
cancel();
if (stats.getPlayer().getLocation().add(0, -.5, 0).getBlock().getType().isSolid()) {
stats.getPlayer().setVelocity(stats.getPlayer().getEyeLocation().getDirection().setY(0).normalize().multiply(.8 * xz).setY(0.5 * y / xz));
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDER_DRAGON_FLAP.toSound(), 2, 1);
for (double a = 0; a < Math.PI * 2; a += Math.PI / 12)
stats.getPlayer().getWorld().spawnParticle(Particle.CLOUD, stats.getPlayer().getLocation(), 0, Math.cos(a), 0, Math.sin(a), .2);
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
fallDamage.put(stats.getPlayer().getUniqueId(), (long) (System.currentTimeMillis() + duration * 100 + 3000));
}
@EventHandler
public void a(EntityDamageEvent event) {
if (!(event.getEntity() instanceof Player) || event.getCause() != DamageCause.FALL)
return;
Player player = (Player) event.getEntity();
if (!fallDamage.containsKey(player.getUniqueId()))
return;
if (fallDamage.get(player.getUniqueId()) > System.currentTimeMillis()) {
event.setCancelled(true);
return;
}
// clear player from map not to overload memory
fallDamage.remove(player.getUniqueId());
}
}

View File

@ -0,0 +1,66 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.Listener;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Burning_Hands extends Ability implements Listener {
public Burning_Hands() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 3);
addModifier("damage", 2);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 10;
double damage1 = data.getModifier("damage") / 2;
new BukkitRunnable() {
int j = 0;
public void run() {
j++;
if (j > duration)
cancel();
Location loc = stats.getPlayer().getLocation().add(0, 1.2, 0);
loc.getWorld().playSound(loc, Sound.BLOCK_FIRE_AMBIENT, 1, 1);
for (double m = -45; m < 45; m += 5) {
double a = (m + stats.getPlayer().getEyeLocation().getYaw() + 90) * Math.PI / 180;
Vector vec = new Vector(Math.cos(a), (random.nextDouble() - .5) * .2, Math.sin(a));
Location source = loc.clone().add(vec.clone().setY(0));
source.getWorld().spawnParticle(Particle.FLAME, source, 0, vec.getX(), vec.getY(), vec.getZ(), .5);
if (j % 2 == 0)
source.getWorld().spawnParticle(Particle.SMOKE_NORMAL, source, 0, vec.getX(), vec.getY(), vec.getZ(), .5);
}
if (j % 5 == 0)
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (entity.getLocation().distanceSquared(loc) < 60)
if (stats.getPlayer().getEyeLocation().getDirection().angle(entity.getLocation().toVector().subtract(stats.getPlayer().getLocation().toVector())) < Math.PI / 6)
if (MMOUtils.canDamage(stats.getPlayer(), entity))
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.MAGIC);
}
}.runTaskTimer(MMOItems.plugin, 0, 2);
}
}

View File

@ -0,0 +1,67 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.Egg;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Chicken_Wraith extends Ability implements Listener {
public Chicken_Wraith() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 2.5);
addModifier("damage", 2);
addModifier("inaccuracy", 10);
addModifier("force", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 10;
double force = data.getModifier("force");
double inaccuracy = data.getModifier("inaccuracy");
new BukkitRunnable() {
int j = 0;
double damage = data.getModifier("damage");
public void run() {
j++;
if (j > duration)
cancel();
Location loc = stats.getPlayer().getEyeLocation();
loc.setPitch((float) (loc.getPitch() + (random.nextDouble() - .5) * inaccuracy));
loc.setYaw((float) (loc.getYaw() + (random.nextDouble() - .5) * inaccuracy));
loc.getWorld().playSound(loc, Sound.ENTITY_CHICKEN_EGG, 1, 1);
Egg snowball = stats.getPlayer().launchProjectile(Egg.class);
snowball.setVelocity(loc.getDirection().multiply(1.3 * force));
MMOItems.plugin.getEntities().registerCustomEntity(snowball, damage);
}
}.runTaskTimer(MMOItems.plugin, 0, 2);
}
@EventHandler
public void a(EntityDamageByEntityEvent event) {
if (!(event.getDamager() instanceof Egg))
return;
Egg egg = (Egg) event.getDamager();
if (MMOItems.plugin.getEntities().isCustomEntity(egg))
event.setDamage((double) MMOItems.plugin.getEntities().getEntityData(egg)[0]);
}
}

View File

@ -0,0 +1,58 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Circular_Slash extends Ability {
public Circular_Slash() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 6);
addModifier("radius", 3);
addModifier("knockback", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double damage1 = data.getModifier("damage");
double radius = data.getModifier("radius");
double knockback = data.getModifier("knockback");
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 2, .5f);
stats.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 2, 254));
for (Entity entity : stats.getPlayer().getNearbyEntities(radius, radius, radius)) {
if (MMOUtils.canDamage(stats.getPlayer(), entity)) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.PHYSICAL);
Vector v1 = entity.getLocation().toVector();
Vector v2 = stats.getPlayer().getLocation().toVector();
double y = .5;
Vector v3 = v1.subtract(v2).multiply(.5 * knockback).setY(knockback == 0 ? 0 : y);
entity.setVelocity(v3);
}
}
double step = 12 + (radius * 2.5);
for (double j = 0; j < Math.PI * 2; j += Math.PI / step) {
Location loc = stats.getPlayer().getLocation().clone();
loc.add(Math.cos(j) * radius, .75, Math.sin(j) * radius);
loc.getWorld().spawnParticle(Particle.SMOKE_LARGE, loc, 0);
}
stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_LARGE, stats.getPlayer().getLocation().add(0, 1, 0), 0);
}
}

View File

@ -0,0 +1,68 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Color;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Contamination extends Ability {
public Contamination() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 2);
addModifier("duration", 8);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
Location loc = getTargetLocation(stats.getPlayer(), target);
if (loc == null) {
result.setSuccessful(false);
return;
}
double duration = Math.min(30, data.getModifier("duration")) * 20;
loc.add(0, .1, 0);
new BukkitRunnable() {
double ti = 0;
int j = 0;
double dps = data.getModifier("damage") / 2;
public void run() {
j++;
if (j >= duration)
cancel();
MMOItems.plugin.getVersion().getVersionWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(ti / 3) * 5, 0, Math.sin(ti / 3) * 5), Color.PURPLE);
for (int j = 0; j < 3; j++) {
ti += Math.PI / 32;
double r = Math.sin(ti / 2) * 4;
for (double k = 0; k < Math.PI * 2; k += Math.PI * 2 / 3)
loc.getWorld().spawnParticle(Particle.SPELL_WITCH, loc.clone().add(r * Math.cos(k + ti / 4), 0, r * Math.sin(k + ti / 4)), 0);
}
if (j % 10 == 0) {
loc.getWorld().playSound(loc, VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 2, 1);
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) <= 25)
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, dps, DamageType.MAGIC, false);
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,61 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Color;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Corrupt extends Ability {
public Corrupt() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 8);
addModifier("duration", 4);
addModifier("amplifier", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
Location loc = getTargetLocation(stats.getPlayer(), target);
if (loc == null) {
result.setSuccessful(false);
return;
}
double damage1 = data.getModifier("damage");
double duration = data.getModifier("duration");
double amplifier = data.getModifier("amplifier");
double radius = 2.7;
loc.add(0, -1, 0);
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 1, .5f);
for (double j = 0; j < Math.PI * 2; j += Math.PI / 36) {
Location loc1 = loc.clone().add(Math.cos(j) * radius, 1, Math.sin(j) * radius);
double y_max = .5 + random.nextDouble();
for (double y = 0; y < y_max; y += .1)
MMOItems.plugin.getVersion().getVersionWrapper().spawnParticle(Particle.REDSTONE, loc1.clone().add(0, y, 0), Color.PURPLE);
}
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) <= radius * radius) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.MAGIC);
((LivingEntity) entity).removePotionEffect(PotionEffectType.WITHER);
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, (int) (duration * 20), (int) amplifier));
}
}
}

View File

@ -0,0 +1,69 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.EvokerFangs;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Corrupted_Fangs extends Ability implements Listener {
public Corrupted_Fangs() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 5);
addModifier("cooldown", 12);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double damage1 = data.getModifier("damage");
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_WITHER_SHOOT, 2, 2);
new BukkitRunnable() {
Vector vec = getTargetDirection(stats.getPlayer(), target).setY(0).multiply(2);
Location loc = stats.getPlayer().getLocation();
double ti = 0;
public void run() {
ti += 2;
loc.add(vec);
EvokerFangs evokerFangs = (EvokerFangs) stats.getPlayer().getWorld().spawnEntity(loc, EntityType.EVOKER_FANGS);
MMOItems.plugin.getEntities().registerCustomEntity(evokerFangs, stats, damage1);
if (ti > 12)
cancel();
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
@EventHandler
public void a(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof EvokerFangs && event.getEntity() instanceof LivingEntity) {
EvokerFangs damager = (EvokerFangs) event.getDamager();
if (!MMOItems.plugin.getEntities().isCustomEntity(damager))
return;
event.setCancelled(true);
Object[] data = MMOItems.plugin.getEntities().getEntityData(damager);
TemporaryStats stats = (TemporaryStats) data[0];
if (MMOUtils.canDamage(stats.getPlayer(), event.getEntity()))
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) event.getEntity(), (double) data[1], DamageType.MAGIC);
}
}
}

View File

@ -0,0 +1,98 @@
package net.Indyuce.mmoitems.ability;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Cursed_Beam extends Ability {
public Cursed_Beam() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 8);
addModifier("cooldown", 10);
addModifier("duration", 5);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration");
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_WITHER_SHOOT, 2, 2);
new BukkitRunnable() {
Vector dir = getTargetDirection(stats.getPlayer(), target).multiply(.3);
Location loc = stats.getPlayer().getEyeLocation().clone();
double r = 0.4;
int ti = 0;
public void run() {
ti++;
if (ti > 50)
cancel();
List<Entity> entities = MMOUtils.getNearbyChunkEntities(loc);
for (double j = 0; j < 4; j++) {
loc.add(dir);
for (double i = 0; i < Math.PI * 2; i += Math.PI / 6) {
Vector vec = MMOUtils.rotateFunc(new Vector(r * Math.cos(i), r * Math.sin(i), 0), loc);
loc.add(vec);
loc.getWorld().spawnParticle(Particle.SPELL_WITCH, loc, 0);
loc.add(vec.multiply(-1));
}
for (Entity target : entities)
if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) {
effect(target);
double damage = data.getModifier("damage");
loc.getWorld().playSound(loc, VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 2, .7f);
for (Entity aoeTarget : entities)
if (MMOUtils.canDamage(stats.getPlayer(), target) && loc.distanceSquared(aoeTarget.getLocation().add(0, 1, 0)) < 9) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) aoeTarget, damage, DamageType.MAGIC);
((LivingEntity) aoeTarget).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, (int) (duration * 20), 0));
}
cancel();
return;
}
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
private void effect(Entity ent) {
new BukkitRunnable() {
final Location loc2 = ent.getLocation();
double y = 0;
public void run() {
for (int i = 0; i < 3; i++) {
y += .05;
for (int j = 0; j < 2; j++) {
double xz = y * Math.PI * .8 + (j * Math.PI);
loc2.getWorld().spawnParticle(Particle.SPELL_WITCH, loc2.clone().add(Math.cos(xz) * 2.5, y, Math.sin(xz) * 2.5), 0);
}
}
if (y >= 3)
cancel();
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,71 @@
package net.Indyuce.mmoitems.ability;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Earthquake extends Ability {
public Earthquake() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 3);
addModifier("duration", 2);
addModifier("amplifier", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
if (!stats.getPlayer().isOnGround()) {
result.setSuccessful(false);
return;
}
double damage1 = data.getModifier("damage");
double slowDuration = data.getModifier("duration");
double slowAmplifier = data.getModifier("amplifier");
new BukkitRunnable() {
Vector vec = getTargetDirection(stats.getPlayer(), target).setY(0);
Location loc = stats.getPlayer().getLocation();
int ti = 0;
List<Integer> hit = new ArrayList<>();
public void run() {
ti++;
if (ti > 20)
cancel();
loc.add(vec);
loc.getWorld().spawnParticle(Particle.CLOUD, loc, 5, .5, 0, .5, 0);
loc.getWorld().playSound(loc, Sound.BLOCK_GRAVEL_BREAK, 2, 1);
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (MMOUtils.canDamage(stats.getPlayer(), entity) && loc.distanceSquared(entity.getLocation()) < 2 && !hit.contains(entity.getEntityId())) {
hit.add(entity.getEntityId());
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.MAGIC);
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (slowDuration * 20), (int) slowAmplifier));
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,84 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Chicken;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Explosive_Turkey extends Ability {
public Explosive_Turkey() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 6);
addModifier("radius", 4);
addModifier("knockback", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double damage1 = data.getModifier("damage");
double radiusSquared = Math.pow(data.getModifier("radius"), 2);
double knockback = data.getModifier("knockback");
final Chicken chicken = (Chicken) stats.getPlayer().getWorld().spawnEntity(stats.getPlayer().getLocation().add(0, 1.3, 0), EntityType.CHICKEN);
chicken.setInvulnerable(true);
/*
* when items are moving through the air, they loose a percent of their
* velocity proportionally to their coordinates in each axis. this means
* that if the trajectory is not affected, the ratio of x/y will always
* be the same. check for any change of that ratio to check for a
* trajectory change
*/
Vector vec = stats.getPlayer().getEyeLocation().getDirection().clone().multiply(.6);
chicken.setVelocity(vec);
final double trajRatio = chicken.getVelocity().getX() / chicken.getVelocity().getZ();
new BukkitRunnable() {
double ti = 0;
public void run() {
if (ti++ > 40 || chicken.isDead() || chicken == null) {
chicken.remove();
cancel();
return;
}
if (ti % 4 == 0)
chicken.getWorld().playSound(chicken.getLocation(), Sound.ENTITY_CHICKEN_HURT, 2, 1);
chicken.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, chicken.getLocation().add(0, .3, 0), 0);
chicken.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, chicken.getLocation().add(0, .3, 0), 1, 0, 0, 0, .05);
double currentTrajRatio = chicken.getVelocity().getX() / chicken.getVelocity().getZ();
if (chicken.isOnGround() || Math.abs(trajRatio - currentTrajRatio) > .1) {
chicken.remove();
chicken.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, chicken.getLocation().add(0, .3, 0), 128, 0, 0, 0, .25);
chicken.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, chicken.getLocation().add(0, .3, 0), 24, 0, 0, 0, .25);
chicken.getWorld().playSound(chicken.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 2, 1.5f);
for (Entity entity : MMOUtils.getNearbyChunkEntities(chicken.getLocation()))
if (!entity.isDead() && entity.getLocation().distanceSquared(chicken.getLocation()) < radiusSquared && MMOUtils.canDamage(stats.getPlayer(), entity)) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.MAGIC);
entity.setVelocity(entity.getLocation().toVector().subtract(chicken.getLocation().toVector()).multiply(.1 * knockback).setY(.4 * knockback));
}
cancel();
return;
}
chicken.setVelocity(vec);
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,68 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Fire_Meteor extends Ability {
public Fire_Meteor() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 6);
addModifier("knockback", 1);
addModifier("radius", 4);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 3, 1);
new BukkitRunnable() {
double ti = 0;
Location loc = stats.getPlayer().getLocation().clone().add(0, 10, 0);
Vector vec = getTargetDirection(stats.getPlayer(), target).multiply(1.3).setY(-1).normalize();
public void run() {
ti++;
if (ti > 40)
cancel();
loc.add(vec);
loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0);
loc.getWorld().spawnParticle(Particle.FLAME, loc, 4, .2, .2, .2, 0);
if (loc.getBlock().getRelative(BlockFace.DOWN).getType().isSolid() || loc.getBlock().getType().isSolid()) {
loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 3, .6f);
loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 10, 2, 2, 2, 0);
loc.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, loc, 32, 0, 0, 0, .3);
loc.getWorld().spawnParticle(Particle.FLAME, loc, 32, 0, 0, 0, .3);
double damage1 = data.getModifier("damage");
double knockback = data.getModifier("knockback");
double radius = data.getModifier("radius");
for (Entity entity : loc.getWorld().getEntitiesByClass(LivingEntity.class))
if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) < radius * radius) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage1, DamageType.MAGIC);
entity.setVelocity(entity.getLocation().toVector().subtract(loc.toVector()).multiply(.1 * knockback).setY(.4 * knockback));
}
cancel();
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,71 @@
package net.Indyuce.mmoitems.ability;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Firebolt extends Ability {
public Firebolt() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 6);
addModifier("ignite", 3);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 1);
new BukkitRunnable() {
Vector vec = getTargetDirection(stats.getPlayer(), target).multiply(.8);
Location loc = stats.getPlayer().getEyeLocation();
int ti = 0;
public void run() {
ti++;
if (ti > 20)
cancel();
List<Entity> entities = MMOUtils.getNearbyChunkEntities(loc);
loc.getWorld().playSound(loc, Sound.BLOCK_FIRE_AMBIENT, 2, 1);
for (int j = 0; j < 2; j++) {
loc.add(vec);
if (loc.getBlock().getType().isSolid())
cancel();
loc.getWorld().spawnParticle(Particle.FLAME, loc, 5, .12, .12, .12, 0);
if (random.nextDouble() < .3)
loc.getWorld().spawnParticle(Particle.LAVA, loc, 0);
for (Entity target : entities)
if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) {
loc.getWorld().spawnParticle(Particle.FLAME, loc, 32, 0, 0, 0, .1);
loc.getWorld().spawnParticle(Particle.LAVA, loc, 8, 0, 0, 0, 0);
loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0);
loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 3, 1);
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) target, data.getModifier("damage"), DamageType.MAGIC);
target.setFireTicks((int) data.getModifier("ignite") * 20);
cancel();
return;
}
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,86 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Firefly extends Ability {
public Firefly() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("damage", 6);
addModifier("duration", 2.5);
addModifier("knockback", 1);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 20;
new BukkitRunnable() {
int j = 0;
public void run() {
j++;
if (j > duration)
cancel();
if (stats.getPlayer().getLocation().getBlock().getType() == Material.WATER) {
stats.getPlayer().setVelocity(stats.getPlayer().getVelocity().multiply(3).setY(1.8));
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.BLOCK_FIRE_EXTINGUISH, 1, .5f);
stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, stats.getPlayer().getLocation().add(0, 1, 0), 32, 0, 0, 0, .2);
stats.getPlayer().getWorld().spawnParticle(Particle.CLOUD, stats.getPlayer().getLocation().add(0, 1, 0), 32, 0, 0, 0, .2);
cancel();
return;
}
for (Entity entity : stats.getPlayer().getNearbyEntities(1, 1, 1))
if (MMOUtils.canDamage(stats.getPlayer(), entity)) {
double damage = data.getModifier("damage");
double knockback = data.getModifier("knockback");
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1, .5f);
stats.getPlayer().getWorld().spawnParticle(Particle.LAVA, stats.getPlayer().getLocation().add(0, 1, 0), 32);
stats.getPlayer().getWorld().spawnParticle(Particle.SMOKE_LARGE, stats.getPlayer().getLocation().add(0, 1, 0), 24, 0, 0, 0, .3);
stats.getPlayer().getWorld().spawnParticle(Particle.FLAME, stats.getPlayer().getLocation().add(0, 1, 0), 24, 0, 0, 0, .3);
entity.setVelocity(stats.getPlayer().getVelocity().setY(0.3).multiply(1.7 * knockback));
stats.getPlayer().setVelocity(stats.getPlayer().getEyeLocation().getDirection().multiply(-3).setY(.5));
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage, DamageType.MAGIC);
cancel();
return;
}
Location loc = stats.getPlayer().getLocation().add(0, 1, 0);
for (double a = 0; a < Math.PI * 2; a += Math.PI / 9) {
Vector vec = new Vector(.6 * Math.cos(a), .6 * Math.sin(a), 0);
vec = MMOUtils.rotateFunc(vec, loc);
loc.add(vec);
stats.getPlayer().getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc, 0);
if (random.nextDouble() < .3)
stats.getPlayer().getWorld().spawnParticle(Particle.FLAME, loc, 0);
loc.add(vec.multiply(-1));
}
stats.getPlayer().setVelocity(stats.getPlayer().getEyeLocation().getDirection());
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 1);
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,77 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.manager.DamageManager.DamageType;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Freezing_Curse extends Ability {
public Freezing_Curse() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("cooldown", 7);
addModifier("duration", 3);
addModifier("damage", 3);
addModifier("radius", 3);
addModifier("amplifier", 1);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
Location loc = getTargetLocation(stats.getPlayer(), target);
if (loc == null) {
result.setSuccessful(false);
return;
}
new BukkitRunnable() {
final double rads = Math.toRadians(stats.getPlayer().getEyeLocation().getYaw() - 90);
double ti = rads;
int j = 0;
public void run() {
if (j++ % 2 == 0)
loc.getWorld().playSound(loc, VersionSound.BLOCK_NOTE_BLOCK_PLING.toSound(), 2, (float) (.5 + ((ti - rads) / (Math.PI * 2) * 1.5)));
for (int j = 0; j < 2; j++) {
ti += Math.PI / 32;
loc.getWorld().spawnParticle(Particle.SPELL_INSTANT, loc.clone().add(Math.cos(ti) * 3, .1, Math.sin(ti) * 3), 0);
}
if (ti > Math.PI * 2 + rads) {
loc.getWorld().playSound(loc, Sound.BLOCK_GLASS_BREAK, 3, .5f);
for (double j = 0; j < Math.PI * 2; j += Math.PI / 32)
loc.getWorld().spawnParticle(Particle.CLOUD, loc.clone().add(Math.cos(j) * 3, .1, Math.sin(j) * 3), 0);
double radius = data.getModifier("radius");
double amplifier = data.getModifier("amplifier");
double duration = data.getModifier("duration");
double damage = data.getModifier("damage");
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc))
if (entity.getLocation().distanceSquared(loc) < radius * radius && MMOUtils.canDamage(stats.getPlayer(), entity)) {
MMOItems.plugin.getDamage().damage(stats, (LivingEntity) entity, damage, DamageType.MAGIC);
((LivingEntity) entity).removePotionEffect(PotionEffectType.SLOW);
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (duration * 20), (int) amplifier));
}
cancel();
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,51 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.Listener;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.version.VersionSound;
public class Frog_Mode extends Ability implements Listener {
public Frog_Mode() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 20);
addModifier("jump-force", 1);
addModifier("speed", 1);
addModifier("cooldown", 50);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 20;
double y = data.getModifier("jump-force");
double xz = data.getModifier("speed");
new BukkitRunnable() {
int j = 0;
public void run() {
j++;
if (j > duration)
cancel();
if (stats.getPlayer().getLocation().getBlock().getType() == Material.WATER) {
stats.getPlayer().setVelocity(stats.getPlayer().getEyeLocation().getDirection().setY(0).normalize().multiply(.8 * xz).setY(0.5 / xz * y));
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDER_DRAGON_FLAP.toSound(), 2, 1);
for (double a = 0; a < Math.PI * 2; a += Math.PI / 12)
stats.getPlayer().getWorld().spawnParticle(Particle.CLOUD, stats.getPlayer().getLocation(), 0, Math.cos(a), 0, Math.sin(a), .2);
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,61 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Frozen_Aura extends Ability implements Listener {
public Frozen_Aura() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("duration", 6);
addModifier("amplifier", 1);
addModifier("radius", 10);
addModifier("cooldown", 10);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double duration = data.getModifier("duration") * 20;
double radiusSquared = Math.pow(data.getModifier("radius"), 2);
double amplifier = data.getModifier("amplifier") - 1;
new BukkitRunnable() {
double j = 0;
int ti = 0;
public void run() {
if (ti++ > duration)
cancel();
j += Math.PI / 60;
for (double k = 0; k < Math.PI * 2; k += Math.PI / 2)
stats.getPlayer().getWorld().spawnParticle(Particle.SPELL_INSTANT, stats.getPlayer().getLocation().add(Math.cos(k + j) * 2, 1 + Math.sin(k + j * 7) / 3, Math.sin(k + j) * 2), 0);
if (ti % 2 == 0)
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.BLOCK_SNOW_BREAK, 1, 1);
if (ti % 7 == 0)
for (Entity entity : MMOUtils.getNearbyChunkEntities(stats.getPlayer().getLocation()))
if (entity.getLocation().distanceSquared(stats.getPlayer().getLocation()) < radiusSquared && MMOUtils.canDamage(stats.getPlayer(), entity)) {
((LivingEntity) entity).removePotionEffect(PotionEffectType.SLOW);
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 40, (int) amplifier));
}
}
}.runTaskTimer(MMOItems.plugin, 0, 1);
}
}

View File

@ -0,0 +1,39 @@
package net.Indyuce.mmoitems.ability;
import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import net.Indyuce.mmoitems.MMOUtils;
import net.Indyuce.mmoitems.api.Ability;
import net.Indyuce.mmoitems.api.AttackResult;
import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats;
import net.Indyuce.mmoitems.stat.data.AbilityData;
public class Grand_Heal extends Ability {
public Grand_Heal() {
super(CastingMode.ON_HIT, CastingMode.WHEN_HIT, CastingMode.LEFT_CLICK, CastingMode.RIGHT_CLICK, CastingMode.SHIFT_LEFT_CLICK, CastingMode.SHIFT_RIGHT_CLICK);
addModifier("heal", 5);
addModifier("radius", 5);
addModifier("cooldown", 15);
addModifier("mana", 0);
addModifier("stamina", 0);
}
@Override
public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) {
double heal = data.getModifier("heal");
double radius = data.getModifier("radius");
MMOUtils.heal(stats.getPlayer(), heal);
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 2);
stats.getPlayer().getWorld().spawnParticle(Particle.HEART, stats.getPlayer().getLocation().add(0, .75, 0), 16, 1, 1, 1, 0);
stats.getPlayer().getWorld().spawnParticle(Particle.VILLAGER_HAPPY, stats.getPlayer().getLocation().add(0, .75, 0), 16, 1, 1, 1, 0);
for (Entity entity : stats.getPlayer().getNearbyEntities(radius, radius, radius))
if (entity instanceof Player)
MMOUtils.heal((Player) entity, heal);
}
}

Some files were not shown because too many files have changed in this diff Show More