->Fixed a bug where players can duplicate items after dying by leaving
the game with the Death Loot inventory open. ->Fixed a bug where shield durability would be subtracted when using Defender's Rejuvenate skill even when it was on cooldown. ->Fixed a bug where Line Drive's cooldown was not visually correct with the cooldown indicator. ->Fixed a bug where Thorns was not applying the proper amount of damage to mobs and players. ->The new artifact tier cap is T15. All stats leading up to T15 have been scaled accordingly. ->Added 'Survival' perk to Artifact Armor. ->The secondary explosion from mobs exploding now does proper damage to players.
This commit is contained in:
parent
41cbe5250f
commit
3cb966aa6b
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
name: TwosideKeeper
|
name: TwosideKeeper
|
||||||
main: sig.plugin.TwosideKeeper.TwosideKeeper
|
main: sig.plugin.TwosideKeeper.TwosideKeeper
|
||||||
version: 3.7.3br2
|
version: 3.7.3c
|
||||||
commands:
|
commands:
|
||||||
money:
|
money:
|
||||||
description: Tells the player the amount of money they are holding.
|
description: Tells the player the amount of money they are holding.
|
||||||
|
@ -135,6 +135,10 @@ public class DeathManager {
|
|||||||
if (structure.deathloc.getBlockY()<=60) {
|
if (structure.deathloc.getBlockY()<=60) {
|
||||||
price += 24-(structure.deathloc.getBlockY()/2.5);
|
price += 24-(structure.deathloc.getBlockY()/2.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(Bukkit.getPlayer(p.getName()));
|
||||||
|
pd.hasDied=false;
|
||||||
|
|
||||||
p.openInventory(deathinv);
|
p.openInventory(deathinv);
|
||||||
p.sendMessage(ChatColor.AQUA+"You can buy back up to "+ChatColor.YELLOW+(int)(totalmoney/price)+ChatColor.AQUA+" items, costing $"+ChatColor.GREEN+price+ChatColor.WHITE+" per item.");
|
p.sendMessage(ChatColor.AQUA+"You can buy back up to "+ChatColor.YELLOW+(int)(totalmoney/price)+ChatColor.AQUA+" items, costing $"+ChatColor.GREEN+price+ChatColor.WHITE+" per item.");
|
||||||
p.sendMessage(" The rest will drop at your death location.");
|
p.sendMessage(" The rest will drop at your death location.");
|
||||||
|
@ -28,70 +28,70 @@ public enum ArtifactAbility {
|
|||||||
//Temporary abilities: Work for 1 level and wear off afterward.
|
//Temporary abilities: Work for 1 level and wear off afterward.
|
||||||
|
|
||||||
//Weapon Abilities
|
//Weapon Abilities
|
||||||
DAMAGE("Strike","Improves Base Damage by [VAL]",new double[]{1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0},
|
DAMAGE("Strike","Improves Base Damage by [VAL]",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0},
|
||||||
new double[]{1.0,0.9,0.85,0.8,0.75,0.7,0.65,0.6,0.55,0.5},100,1,UpgradePath.BASIC),
|
new double[]{1.0,0.975,0.95,0.925,0.9,0.875,0.85,0.8,0.75,0.7,0.65,0.6,0.55,0.5,0.4},100,1,UpgradePath.BASIC),
|
||||||
ARMOR_PEN("Piercing","[VAL]% of your damage is ignored by resistances. ([PENDMG] damage)",new double[]{1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0},
|
ARMOR_PEN("Piercing","[VAL]% of your damage is ignored by resistances. ([PENDMG] damage)",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0},
|
||||||
new double[]{1.0,1.0,0.9,0.9,0.8,0.8,0.7,0.7,0.6,0.5},100,1,UpgradePath.BASIC),
|
new double[]{1.0,0.975,0.95,0.925,0.9,0.875,0.85,0.8,0.75,0.7,0.65,0.6,0.55,0.5,0.4},100,1,UpgradePath.BASIC),
|
||||||
EXECUTION("Execute","Deals [VAL] extra damage for every 20% of target's missing health.",new double[]{0.125,0.25,1.375,0.5,0.625,0.75,0.875,1.0,1.125,1.25},
|
EXECUTION("Execute","Deals [VAL] extra damage for every 20% of target's missing health.",new double[]{0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.35,0.4,0.5,0.7,0.9,1.25},
|
||||||
new double[]{1.0,1.0,0.9,0.9,0.8,0.8,0.7,0.7,0.6,0.5},100,1,UpgradePath.BASIC),
|
new double[]{1.0,0.975,0.95,0.925,0.9,0.875,0.85,0.825,0.8,0.75,0.7,0.65,0.6,0.55,0.5},100,1,UpgradePath.BASIC),
|
||||||
LIFESTEAL("Lifesteal","Heals [VAL]% of the damage dealt to targets back to your health pool.",new double[]{1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0},
|
LIFESTEAL("Lifesteal","Heals [VAL]% of the damage dealt to targets back to your health pool.",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1,UpgradePath.WEAPON),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1,UpgradePath.WEAPON),
|
||||||
CRITICAL("Critical","[VAL]% chance to deal critical strikes.",new double[]{2.0,2.25,2.5,2.75,3.0,3.25,3.50,3.75,4.0,4.25},
|
CRITICAL("Critical","[VAL]% chance to deal critical strikes.",new double[]{1.0,1.25,1.5,1.75,2.0,2.25,2.50,2.75,3.0,3.25,3.50,3.75,4.00,4.25,4.50},
|
||||||
new double[]{1.0,1.0,0.9,0.9,0.8,0.8,0.7,0.7,0.6,0.5},100,1,UpgradePath.WEAPON),
|
new double[]{1.0,0.975,0.95,0.925,0.9,0.875,0.85,0.825,0.8,0.75,0.7,0.65,0.6,0.55,0.5},100,1,UpgradePath.WEAPON),
|
||||||
CRIT_DMG("Crit Damage","Critical Strikes deal [VAL]% damage.",new double[]{210.0,210.0,210.0,210.0,210.0,210.0,210.0,210.0,210.0,210.0},
|
CRIT_DMG("Crit Damage","Critical Strikes deal [VAL]% damage.",new double[]{200.0,201.0,202.0,204.0,206.0,210.0,215.0,219.0,222.0,226.0,230.0,235.0,240.0,245.0,260.0},
|
||||||
new double[]{5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0},100,1,UpgradePath.WEAPON),
|
new double[]{5.0,4.9,4.8,4.7,4.6,4.5,4.4,4.3,4.2,4.1,4.0,3.8,3.6,3.4,3.0},100,1,UpgradePath.WEAPON),
|
||||||
HIGHWINDER("Highwinder","While moving fast or sprinting, you deal [VAL] extra damage for every 1m of speed.",new double[]{0.18,0.225,0.27,0.315,0.36,0.405,0.45,0.495,0.54,0.61},
|
HIGHWINDER("Highwinder","While moving fast or sprinting, you deal [VAL] extra damage for every 1m of speed.",new double[]{0.18,0.225,0.27,0.315,0.36,0.405,0.45,0.495,0.54,0.61,0.79,0.99,1.30,1.70,2.50},
|
||||||
new double[]{0.675,0.65,0.625,0.6,0.575,0.55,0.525,0.5,0.475,0.45},100,15,UpgradePath.WEAPON),
|
new double[]{0.675,0.65,0.625,0.6,0.575,0.55,0.525,0.5,0.475,0.45,0.425,0.4,0.375,0.35,0.30},100,15,UpgradePath.WEAPON),
|
||||||
|
|
||||||
//Bow Abilities
|
//Bow Abilities
|
||||||
MARKSMAN("Marksman","Increases headshot hitbox size by [VAL]% .",new double[]{10.0,15,20,25,30,35,40,45,50,55},
|
MARKSMAN("Marksman","Increases headshot hitbox size by [VAL]% .",new double[]{10.0,15,20,25,30,35,40,45,50,55,60,70,80,90,100},
|
||||||
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.65,0.6,0.55},10,15,UpgradePath.BOW),
|
new double[]{1.0,0.975,0.95,0.875,0.85,0.825,0.8,0.775,0.75,0.725,0.70,0.675,0.65,0.55,0.45},10,15,UpgradePath.BOW),
|
||||||
SIEGESTANCE("Siege Stance",ChatColor.GRAY+"[Unimplemented] Activate by Sneaking for three seconds. Sneak again to de-activate.\n\n"
|
SIEGESTANCE("Siege Stance",ChatColor.GRAY+"[Unimplemented] Activate by Sneaking for three seconds. Sneak again to de-activate.\n\n"
|
||||||
+ "Applies Slowness V and Resistance VI. While in Siege Stance you fire clusters of 7 arrows per shot. Each arrow deals [VAL] damage.",new double[]{3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0},
|
+ "Applies Slowness V and Resistance VI. While in Siege Stance you fire clusters of 7 arrows per shot. Each arrow deals [VAL] damage.",new double[]{3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,20,UpgradePath.BOW),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.BOW),
|
||||||
ARROWSHOWER("Arrow Shower",ChatColor.GRAY+"[Unimplemented] Shift-Left Click to activate. Applies Slowness X for three seconds while firing arrows into the sky and onto enemies in a large area in front of you. Each arrow deals [VAL] damage.",new double[]{0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7},
|
ARROWSHOWER("Arrow Shower",ChatColor.GRAY+"[Unimplemented] Shift-Left Click to activate. Applies Slowness X for three seconds while firing arrows into the sky and onto enemies in a large area in front of you. Each arrow deals [VAL] damage.",new double[]{0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7},
|
||||||
new double[]{0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4},100,40,UpgradePath.BOW),
|
new double[]{0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4},100,1000,UpgradePath.BOW),
|
||||||
TARGETING("Targeting",ChatColor.GRAY+"[Unimplemented] Left-click a mob to target them. Fire arrows to release homing missiles at your target. Each missile explodes and deals [VAL] damage.",new double[]{10,10,10,10,10,10,10,10,10,10},
|
TARGETING("Targeting",ChatColor.GRAY+"[Unimplemented] Left-click a mob to target them. Fire arrows to release homing missiles at your target. Each missile explodes and deals [VAL] damage.",new double[]{10,10,10,10,10,10,10,10,10,10},
|
||||||
new double[]{0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3},100,75,UpgradePath.BOW),
|
new double[]{0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3},100,1000,UpgradePath.BOW),
|
||||||
ENDERTURRET("Ender Turret",ChatColor.GRAY+"[Unimplemented] Place Eyes of Ender in your hotbar to use as ammo. Each eye fired launches forward and upward before releasing a barrage of homing missiles that lock onto enemy targets. Each missile explodes and deals [VAL] damage.",new double[]{25,25,25,25,25,25,25,25,25,25},
|
ENDERTURRET("Ender Turret",ChatColor.GRAY+"[Unimplemented] Place Eyes of Ender in your hotbar to use as ammo. Each eye fired launches forward and upward before releasing a barrage of homing missiles that lock onto enemy targets. Each missile explodes and deals [VAL] damage.",new double[]{25,25,25,25,25,25,25,25,25,25},
|
||||||
new double[]{0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5},100,100,UpgradePath.BOW),
|
new double[]{0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5},100,1000,UpgradePath.BOW),
|
||||||
|
|
||||||
//Armor abilities
|
//Armor abilities
|
||||||
DAMAGE_REDUCTION("Defense","Increases Base Damage reduction by [VAL]%",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5},
|
DAMAGE_REDUCTION("Defense","Increases Base Damage reduction by [VAL]%",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.1,5.2,5.25,5.3,5.35,5.5},
|
||||||
new double[]{2.2,2.1,2.0,1.9,1.8,1.7,1.6,1.5,1.4,1.3},100,1,UpgradePath.ARMOR),
|
new double[]{2.2,2.1,2.0,1.9,1.8,1.7,1.6,1.55,1.5,1.475,1.45,1.425,1.4,1.35,1.3},100,1,UpgradePath.ARMOR),
|
||||||
HEALTH("Health","Increases Maximum Health by [VAL].",new double[]{0.35,0.70,1.05,1.40,1.70,2.0,2.3,2.6,2.9,3.2},
|
HEALTH("Health","Increases Maximum Health by [VAL].",new double[]{0.35,0.70,1.05,1.40,1.70,2.0,2.3,2.6,2.9,3.0,3.1,3.2,3.3,3.4,3.6},
|
||||||
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.75,0.7,0.65},100,1,UpgradePath.ARMOR),
|
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.75,0.7,0.675,0.65,0.625,0.6,0.55,0.5},100,1,UpgradePath.ARMOR),
|
||||||
HEALTH_REGEN("Regeneration","Regenerates an extra [VAL] health every 5 seconds.",new double[]{0.03125,0.0625,0.09375,0.125,0.15625,0.1875,0.29166666666666666666666666666667,0.33333333333333333333333333333333,0.375,0.41666666666666666666666666666667},
|
HEALTH_REGEN("Regeneration","Regenerates an extra [VAL] health every 5 seconds.",new double[]{0.03125,0.0625,0.09375,0.125,0.15625,0.1875,0.29166666666666666666666666666667,0.33333333333333333333333333333333,0.375,0.4,0.42,0.44,0.46,0.48,0.55},
|
||||||
new double[]{1.0,0.90,0.85,0.8,0.75,0.7,0.6,0.55,0.5,0.45},100,1,UpgradePath.ARMOR),
|
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.65,0.6,0.55,0.5,0.475,0.45,0.425,0.4},100,1,UpgradePath.ARMOR),
|
||||||
STATUS_EFFECT_RESISTANCE("Resistance","When a debuff is applied, there is a [VAL]% chance to remove it.",new double[]{3,3.5,4,4.5,5,5.5,6,6.5,7,7.5},
|
STATUS_EFFECT_RESISTANCE("Resistance","When a debuff is applied, there is a [VAL]% chance to remove it.",new double[]{3,3.5,4,4.5,5,5.5,6,6.5,7,7.1,7.2,7.3,7.4,7.45,7.5},
|
||||||
new double[]{4.0,3.85,3.70,3.55,3.40,3.25,3.10,2.95,2.80,2.65},100,1,UpgradePath.ARMOR),
|
new double[]{4.0,3.85,3.70,3.55,3.40,3.25,3.10,2.95,2.80,2.775,2.75,2.725,2.7,2.675,2.65},100,1,UpgradePath.ARMOR),
|
||||||
SHADOWWALKER("Shadow Walker","Increases your speed in dark areas. Damage Reduction increases by [VAL]% in dark areas. Dodge chance increases by [DODGEVAL]% in dark areas.",new double[]{5,5,5,5,5,5,5,5,5,5},
|
SHADOWWALKER("Shadow Walker","Increases your speed in dark areas. Damage Reduction increases by [VAL]% in dark areas. Dodge chance increases by [DODGEVAL]% in dark areas.",new double[]{5,5,5,5,5,5,5,5,5,5,5,5,5,5,5},
|
||||||
new double[]{1.5,1.4,1.3,1.2,1.1,1.0,0.9,0.8,0.7,0.55},100,10,UpgradePath.ARMOR),
|
new double[]{1.5,1.4,1.3,1.2,1.1,1.0,0.9,0.8,0.7,0.65,0.625,0.6,0.585,0.565,0.55},100,10,UpgradePath.ARMOR),
|
||||||
/*SURVIVOR("Survivor",ChatColor.GRAY+"[Unimplemented] Taking fatal damage will not kill you and instead consume this ability, removes all debuffs, and restoring your health.",new double[]{-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0},
|
SURVIVOR("Survivor","Taking fatal damage will not kill you and instead consumes this ability, removes all debuffs, and restores your health by [VAL]%"+TemporarySkill(),new double[]{4,4.25,4.5,4.75,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10},
|
||||||
new double[]{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},1,1000,UpgradePath.ARMOR),*/
|
new double[]{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},10,25,UpgradePath.ARMOR),
|
||||||
DODGE("Dodge",ChatColor.GRAY+"You have a [VAL]% chance to dodge incoming damage from any damage source.",new double[]{0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55},
|
DODGE("Dodge","You have a [VAL]% chance to dodge incoming damage from any damage source.",new double[]{0.1,0.125,0.15,0.175,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.45,0.5,0.55},
|
||||||
new double[]{1.0,1.0,1.0,0.8,0.7,0.6,0.5,0.4,0.3,0.2},100,40,UpgradePath.ARMOR),
|
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.65,0.6,0.55,0.5,0.45,0.35,0.25,0.2},100,40,UpgradePath.ARMOR),
|
||||||
GRACEFULDODGE("Graceful Dodge","Whenever a dodge occurs, you will gain [VAL] seconds of invulnerability.",new double[]{0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.5},
|
GRACEFULDODGE("Graceful Dodge","Whenever a dodge occurs, you will gain [VAL] seconds of invulnerability.",new double[]{0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.9,1.0,1.05,1.1,1.2,1.3,1.4,1.5},
|
||||||
new double[]{1.8,1.78,1.76,1.74,1.72,1.70,1.68,1.66,1.64,1.62},10,40,UpgradePath.ARMOR),
|
new double[]{1.8,1.79,1.78,1.77,1.76,1.75,1.74,1.73,1.72,1.71,1.70,1.69,1.67,1.65,1.62},10,40,UpgradePath.ARMOR),
|
||||||
|
|
||||||
//Sword abilities
|
//Sword abilities
|
||||||
PROVOKE("Provoke","Your attacks provoke enemies for [VAL] seconds.",new double[]{3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0},
|
PROVOKE("Provoke","Your attacks provoke enemies for [VAL] seconds.",new double[]{3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,10.0,12.0},
|
||||||
new double[]{3.0,2.8,2.6,2.4,2.2,2.2,2.0,1.8,1.6,1.4},100,10,UpgradePath.SWORD),
|
new double[]{3.0,2.9,2.8,2.7,2.6,2.5,2.4,2.3,2.2,2.1,2.0,1.9,1.8,1.6,1.4},100,10,UpgradePath.SWORD),
|
||||||
COMBO("Belligerent","[VAL]% more damage for each successive strike on a mob. Resets after 2 seconds of no combat.",new double[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5},
|
COMBO("Belligerent","[VAL]% more damage for each successive strike on a mob. Resets after 2 seconds of no combat.",new double[]{1.0,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,2.8,3.0,3.25,3.5,4.0,5.5},
|
||||||
new double[]{1.0,0.95,0.9,0.85,0.8,0.75,0.7,0.65,0.6,0.55},100,40,UpgradePath.SWORD),
|
new double[]{1.0,0.975,0.95,0.925,0.9,0.875,0.85,0.825,0.8,0.75,0.7,0.65,0.6,0.55,0.5},100,40,UpgradePath.SWORD),
|
||||||
|
|
||||||
//Pickaxe abilities
|
//Pickaxe abilities
|
||||||
SCAVENGE("Scavenge",ChatColor.GRAY+"[Unimplemented] Breaks off resources from armor. [VAL]% chance per hit.",new double[]{5,5,5,5,5,5,5,5,5,5},
|
SCAVENGE("Scavenge",ChatColor.GRAY+"[Unimplemented] Breaks off resources from armor. [VAL]% chance per hit.",new double[]{5,5,5,5,5,5,5,5,5,5,5,5,5,5,5},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.PICKAXE),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.PICKAXE),
|
||||||
MINES("Land Mine",ChatColor.GRAY+"[Unimplemented]While in combat, throw your pickaxe to send land mines towards your enemies. On contact they deal [VAL] damage.",new double[]{5,5,5,5,5,5,5,5,5,5},
|
MINES("Land Mine",ChatColor.GRAY+"[Unimplemented]While in combat, throw your pickaxe to send land mines towards your enemies. On contact they deal [VAL] damage.",new double[]{5,5,5,5,5,5,5,5,5,5,5,5,5,5,5},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.PICKAXE),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.PICKAXE),
|
||||||
|
|
||||||
//Shovel abilities
|
//Shovel abilities
|
||||||
SUPPRESS("Suppression",ChatColor.GRAY+"[Unimplemented] Suppresses a mob on hit for [VAL] seconds.\n\n"
|
SUPPRESS("Suppression",ChatColor.GRAY+"[Unimplemented] Suppresses a mob on hit for [VAL] seconds.\n\n"
|
||||||
+ "Suppression prevents movement, attacking, exploding, and teleportation.",new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1},
|
+ "Suppression prevents movement, attacking, exploding, and teleportation.",new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.SHOVEL),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},100,1000,UpgradePath.SHOVEL),
|
||||||
ERUPTION("Eruption","Sneak while Left-clicking a mob to damage mobs for [VAL] damage and knock them up. The eruption also destroys the ground beneath you.",new double[]{11.0,13,15.0,17,19.0,21,24.0,27,30.0,40},
|
ERUPTION("Eruption","Sneak while Left-clicking a mob to damage mobs for [VAL] damage and knock them up. The eruption also destroys the ground beneath you.",new double[]{11.0,12.0,13.0,14.0,16.0,18.0,20.0,23,26.0,29,32.0,35.0,37.5,39.5,50},
|
||||||
new double[]{1.0,0.925,0.85,0.775,0.7,0.625,0.55,0.475,0.4,0.325},100,40,UpgradePath.SHOVEL),
|
new double[]{1.0,0.925,0.85,0.775,0.7,0.625,0.55,0.475,0.45,0.425,0.4,0.375,0.35,0.325,0.3},100,40,UpgradePath.SHOVEL),
|
||||||
EARTHWAVE("Earth Wave","While in combat, destroy a block to send a wave of earth towards your enemies. Enemies standing inside of the waves take [VAL] damage every second.",new double[]{10,12,14,16,18,20,22,24,26,30},
|
EARTHWAVE("Earth Wave","While in combat, destroy a block to send a wave of earth towards your enemies. Enemies standing inside of the waves take [VAL] damage every second.",new double[]{10,12,14,16,18,20,22,24,26,30},
|
||||||
new double[]{2.4,2.2,2.0,1.9,1.8,1.7,1.6,1.5,1.4,1.2},100,100,UpgradePath.SHOVEL),
|
new double[]{2.4,2.2,2.0,1.9,1.8,1.7,1.6,1.5,1.4,1.2},100,100,UpgradePath.SHOVEL),
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ public enum ArtifactAbility {
|
|||||||
//General abilities
|
//General abilities
|
||||||
AUTOREPAIR("Auto Repair","1% chance every second to repair [VAL] durability to the artifact item\n\nThe item must be sitting in your hotbar or must be equipped for this ability to work. This ability is less effective with no sunlight!",new double[]{3,3.5,4,4.5,5,5.5,6,6.5,7,7.5},
|
AUTOREPAIR("Auto Repair","1% chance every second to repair [VAL] durability to the artifact item\n\nThe item must be sitting in your hotbar or must be equipped for this ability to work. This ability is less effective with no sunlight!",new double[]{3,3.5,4,4.5,5,5.5,6,6.5,7,7.5},
|
||||||
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},10,1,UpgradePath.ALL),
|
new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},10,1,UpgradePath.ALL),
|
||||||
GREED("Greed","Increases Drop rate by [VAL]% . Health is halved, health regeneration is halved. Each hit has a [GREEDCHANCE]% chance to consume the Greed buff.\n\n"+ChatColor.RED+"Costs 1 Artifact Level.",new double[]{1,2,3,4,5,7,9,11,13,15},
|
GREED("Greed","Increases Drop rate by [VAL]% . Health is halved, health regeneration is halved. Each hit has a [GREEDCHANCE]% chance to consume the Greed buff."+TemporarySkill(),new double[]{1,2,3,4,5,7,9,11,13,15},
|
||||||
new double[]{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},10,10,UpgradePath.ALL),
|
new double[]{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},10,10,UpgradePath.ALL),
|
||||||
/*GROWTH("Growth",ChatColor.GRAY+"[Unimplemented] Increases artifact EXP gained by [VAL]% . Health is halved, health regeneration is halved, and damage reduction is halved. Consumes one level of Growth per level up.",new double[]{100,100,100,100,100,100,100,100,100,100},
|
/*GROWTH("Growth",ChatColor.GRAY+"[Unimplemented] Increases artifact EXP gained by [VAL]% . Health is halved, health regeneration is halved, and damage reduction is halved. Consumes one level of Growth per level up.",new double[]{100,100,100,100,100,100,100,100,100,100},
|
||||||
new double[]{2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0},100,1000,UpgradePath.ALL),*/
|
new double[]{2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0},100,1000,UpgradePath.ALL),*/
|
||||||
@ -170,6 +170,10 @@ public enum ArtifactAbility {
|
|||||||
this.upgrade=upgrade;
|
this.upgrade=upgrade;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String TemporarySkill() {
|
||||||
|
return "\n\n"+ChatColor.RED+"Costs 1 Artifact Level.";
|
||||||
|
}
|
||||||
|
|
||||||
public String GetName() {
|
public String GetName() {
|
||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
@ -428,8 +432,8 @@ public enum ArtifactAbility {
|
|||||||
item = applyEnchantment(ability,level+1,item);
|
item = applyEnchantment(ability,level+1,item);
|
||||||
AwakenedArtifact.addAP(item, -1);
|
AwakenedArtifact.addAP(item, -1);
|
||||||
p.sendMessage(ChatColor.AQUA+"Successfully applied "+ChatColor.BLUE+ability.GetName()+" "+(level+1)+ChatColor.AQUA+" to your artifact!");
|
p.sendMessage(ChatColor.AQUA+"Successfully applied "+ChatColor.BLUE+ability.GetName()+" "+(level+1)+ChatColor.AQUA+" to your artifact!");
|
||||||
if (ability==ArtifactAbility.GREED) {
|
if (TwosideKeeper.TEMPORARYABILITIES.contains(ability)) {
|
||||||
//Remove a level from using Greed.
|
//Remove a level from using a temporary ability.
|
||||||
AwakenedArtifact.setLV(item, AwakenedArtifact.getLV(item)-1, p);
|
AwakenedArtifact.setLV(item, AwakenedArtifact.getLV(item)-1, p);
|
||||||
}
|
}
|
||||||
int apamt = AwakenedArtifact.getAP(item);
|
int apamt = AwakenedArtifact.getAP(item);
|
||||||
@ -550,7 +554,7 @@ public enum ArtifactAbility {
|
|||||||
text=DisplayAbility(HEALTH_REGEN,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(HEALTH_REGEN,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
text=DisplayAbility(STATUS_EFFECT_RESISTANCE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(STATUS_EFFECT_RESISTANCE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
text=DisplayAbility(SHADOWWALKER,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(SHADOWWALKER,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
//text=DisplayAbility(SURVIVOR,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(SURVIVOR,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
text=DisplayAbility(DODGE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(DODGE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
text=DisplayAbility(GRACEFULDODGE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
text=DisplayAbility(GRACEFULDODGE,playerdmgval,targetitem,slot);msg1.addExtra(text);if(!text.getText().equalsIgnoreCase("")){++i;}if(i%4==0){msg1.addExtra("\n");}
|
||||||
} else
|
} else
|
||||||
|
@ -24,18 +24,28 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_AXE), //T8
|
new ItemStack(Material.DIAMOND_AXE), //T8
|
||||||
new ItemStack(Material.DIAMOND_AXE), //T9
|
new ItemStack(Material.DIAMOND_AXE), //T9
|
||||||
new ItemStack(Material.DIAMOND_AXE), //T10
|
new ItemStack(Material.DIAMOND_AXE), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_AXE), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_AXE), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_AXE), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_AXE), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_AXE), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
1.0d, //T1
|
1.0d, //T1
|
||||||
1.5d, //T2
|
1.25d, //T2
|
||||||
2.0d, //T3
|
1.50d, //T3
|
||||||
2.5d, //T4
|
1.75d, //T4
|
||||||
3.0d, //T5
|
2.0d, //T5
|
||||||
3.5d, //T6
|
2.25d, //T6
|
||||||
4.0d, //T7
|
2.50d, //T7
|
||||||
4.5d, //T8
|
2.75d, //T8
|
||||||
5.0d, //T9
|
3.0d, //T9
|
||||||
6.0d //T10
|
3.25d, //T10
|
||||||
|
3.5d, //T11
|
||||||
|
4.5d, //T12
|
||||||
|
5.5d, //T13
|
||||||
|
6.5d, //T14
|
||||||
|
8.0d, //T15
|
||||||
}),
|
}),
|
||||||
SWORD(1,"SWORD",TierType.ALL,UpgradePath.SWORD,new String[]{"EEE","EEE","EEE"},
|
SWORD(1,"SWORD",TierType.ALL,UpgradePath.SWORD,new String[]{"EEE","EEE","EEE"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -49,18 +59,28 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_SWORD), //T8
|
new ItemStack(Material.DIAMOND_SWORD), //T8
|
||||||
new ItemStack(Material.DIAMOND_SWORD), //T9
|
new ItemStack(Material.DIAMOND_SWORD), //T9
|
||||||
new ItemStack(Material.DIAMOND_SWORD), //T10
|
new ItemStack(Material.DIAMOND_SWORD), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_SWORD), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_SWORD), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_SWORD), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_SWORD), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_SWORD), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
2.0d, //T1
|
2.0d, //T1
|
||||||
3.0d, //T2
|
2.5d, //T2
|
||||||
4.0d, //T3
|
3.0d, //T3
|
||||||
5.0d, //T4
|
3.5d, //T4
|
||||||
6.0d, //T5
|
4.0d, //T5
|
||||||
7.0d, //T6
|
4.5d, //T6
|
||||||
8.0d, //T7
|
5.0d, //T7
|
||||||
9.0d, //T8
|
5.5d, //T8
|
||||||
10.0d, //T9
|
6.0d, //T9
|
||||||
12.0d //T10
|
6.5d, //T10
|
||||||
|
7.0d, //T11
|
||||||
|
8.0d, //T12
|
||||||
|
9.0d, //T13
|
||||||
|
10.0d, //T14
|
||||||
|
12.0d, //T15
|
||||||
}),
|
}),
|
||||||
PICKAXE(2,"PICKAXE",TierType.ALL,UpgradePath.PICKAXE,new String[]{"EEE","xEx","xEx"},
|
PICKAXE(2,"PICKAXE",TierType.ALL,UpgradePath.PICKAXE,new String[]{"EEE","xEx","xEx"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -74,6 +94,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_PICKAXE), //T8
|
new ItemStack(Material.DIAMOND_PICKAXE), //T8
|
||||||
new ItemStack(Material.DIAMOND_PICKAXE), //T9
|
new ItemStack(Material.DIAMOND_PICKAXE), //T9
|
||||||
new ItemStack(Material.DIAMOND_PICKAXE), //T10
|
new ItemStack(Material.DIAMOND_PICKAXE), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_PICKAXE), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_PICKAXE), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_PICKAXE), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_PICKAXE), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_PICKAXE), //T15
|
||||||
}),
|
}),
|
||||||
HOE(3,"SCYTHE",TierType.ALL,UpgradePath.SCYTHE,new String[]{"EEx","xEx","xEx"},
|
HOE(3,"SCYTHE",TierType.ALL,UpgradePath.SCYTHE,new String[]{"EEx","xEx","xEx"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -87,6 +112,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_HOE), //T8
|
new ItemStack(Material.DIAMOND_HOE), //T8
|
||||||
new ItemStack(Material.DIAMOND_HOE), //T9
|
new ItemStack(Material.DIAMOND_HOE), //T9
|
||||||
new ItemStack(Material.DIAMOND_HOE), //T10
|
new ItemStack(Material.DIAMOND_HOE), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_HOE), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_HOE), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_HOE), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_HOE), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_HOE), //T15
|
||||||
}),
|
}),
|
||||||
BOW(4,"BOW",TierType.ONE,UpgradePath.BOW,new String[]{"EEx","ExE","EEx"},
|
BOW(4,"BOW",TierType.ONE,UpgradePath.BOW,new String[]{"EEx","ExE","EEx"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -100,6 +130,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.BOW), //T8
|
new ItemStack(Material.BOW), //T8
|
||||||
new ItemStack(Material.BOW), //T9
|
new ItemStack(Material.BOW), //T9
|
||||||
new ItemStack(Material.BOW), //T10
|
new ItemStack(Material.BOW), //T10
|
||||||
|
new ItemStack(Material.BOW), //T11
|
||||||
|
new ItemStack(Material.BOW), //T12
|
||||||
|
new ItemStack(Material.BOW), //T13
|
||||||
|
new ItemStack(Material.BOW), //T14
|
||||||
|
new ItemStack(Material.BOW), //T15
|
||||||
}),
|
}),
|
||||||
SHOVEL(5,"SHOVEL",TierType.ALL,UpgradePath.SHOVEL,new String[]{"E","E","E"},
|
SHOVEL(5,"SHOVEL",TierType.ALL,UpgradePath.SHOVEL,new String[]{"E","E","E"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -113,6 +148,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_SPADE), //T8
|
new ItemStack(Material.DIAMOND_SPADE), //T8
|
||||||
new ItemStack(Material.DIAMOND_SPADE), //T9
|
new ItemStack(Material.DIAMOND_SPADE), //T9
|
||||||
new ItemStack(Material.DIAMOND_SPADE), //T10
|
new ItemStack(Material.DIAMOND_SPADE), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_SPADE), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_SPADE), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_SPADE), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_SPADE), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_SPADE), //T15
|
||||||
}),
|
}),
|
||||||
HELMET(6,"HELMET",TierType.ARMOR,UpgradePath.ARMOR,new String[]{"EEE","ExE"},
|
HELMET(6,"HELMET",TierType.ARMOR,UpgradePath.ARMOR,new String[]{"EEE","ExE"},
|
||||||
new ItemStack[]{
|
new ItemStack[]{
|
||||||
@ -126,6 +166,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_HELMET), //T8
|
new ItemStack(Material.DIAMOND_HELMET), //T8
|
||||||
new ItemStack(Material.DIAMOND_HELMET), //T9
|
new ItemStack(Material.DIAMOND_HELMET), //T9
|
||||||
new ItemStack(Material.DIAMOND_HELMET), //T10
|
new ItemStack(Material.DIAMOND_HELMET), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_HELMET), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_HELMET), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_HELMET), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_HELMET), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_HELMET), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
3.75d, //T1
|
3.75d, //T1
|
||||||
@ -163,6 +208,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_CHESTPLATE), //T8
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T8
|
||||||
new ItemStack(Material.DIAMOND_CHESTPLATE), //T9
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T9
|
||||||
new ItemStack(Material.DIAMOND_CHESTPLATE), //T10
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_CHESTPLATE), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
3.75d, //T1
|
3.75d, //T1
|
||||||
@ -200,6 +250,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_LEGGINGS), //T8
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T8
|
||||||
new ItemStack(Material.DIAMOND_LEGGINGS), //T9
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T9
|
||||||
new ItemStack(Material.DIAMOND_LEGGINGS), //T10
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_LEGGINGS), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
3.75d, //T1
|
3.75d, //T1
|
||||||
@ -237,6 +292,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.DIAMOND_BOOTS), //T8
|
new ItemStack(Material.DIAMOND_BOOTS), //T8
|
||||||
new ItemStack(Material.DIAMOND_BOOTS), //T9
|
new ItemStack(Material.DIAMOND_BOOTS), //T9
|
||||||
new ItemStack(Material.DIAMOND_BOOTS), //T10
|
new ItemStack(Material.DIAMOND_BOOTS), //T10
|
||||||
|
new ItemStack(Material.DIAMOND_BOOTS), //T11
|
||||||
|
new ItemStack(Material.DIAMOND_BOOTS), //T12
|
||||||
|
new ItemStack(Material.DIAMOND_BOOTS), //T13
|
||||||
|
new ItemStack(Material.DIAMOND_BOOTS), //T14
|
||||||
|
new ItemStack(Material.DIAMOND_BOOTS), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
3.75d, //T1
|
3.75d, //T1
|
||||||
@ -274,6 +334,11 @@ public enum ArtifactItemType {
|
|||||||
new ItemStack(Material.FISHING_ROD), //T8
|
new ItemStack(Material.FISHING_ROD), //T8
|
||||||
new ItemStack(Material.FISHING_ROD), //T9
|
new ItemStack(Material.FISHING_ROD), //T9
|
||||||
new ItemStack(Material.FISHING_ROD), //T10
|
new ItemStack(Material.FISHING_ROD), //T10
|
||||||
|
new ItemStack(Material.FISHING_ROD), //T11
|
||||||
|
new ItemStack(Material.FISHING_ROD), //T12
|
||||||
|
new ItemStack(Material.FISHING_ROD), //T13
|
||||||
|
new ItemStack(Material.FISHING_ROD), //T14
|
||||||
|
new ItemStack(Material.FISHING_ROD), //T15
|
||||||
},
|
},
|
||||||
new double[]{
|
new double[]{
|
||||||
3.75d, //T1
|
3.75d, //T1
|
||||||
@ -704,7 +769,7 @@ public enum ArtifactItemType {
|
|||||||
ouritem.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 1);
|
ouritem.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 1);
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
case 10:{
|
default:{
|
||||||
if (upgrade==UpgradePath.WEAPON ||
|
if (upgrade==UpgradePath.WEAPON ||
|
||||||
upgrade==UpgradePath.SWORD ||
|
upgrade==UpgradePath.SWORD ||
|
||||||
upgrade==UpgradePath.AXE ||
|
upgrade==UpgradePath.AXE ||
|
||||||
|
@ -2604,16 +2604,20 @@ public class GenericFunctions {
|
|||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static void DealDamageToMob(double dmg, LivingEntity target, LivingEntity damager, boolean truedmg) {
|
public static void DealDamageToMob(double dmg, LivingEntity target, LivingEntity damager, boolean truedmg) {
|
||||||
DealDamageToMob(dmg,target,damager,null);
|
DealDamageToMob(dmg,target,damager,null,"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void DealDamageToMob(double dmg, LivingEntity target, Entity damager) {
|
public static void DealDamageToMob(double dmg, LivingEntity target, Entity damager) {
|
||||||
DealDamageToMob(dmg,target,NewCombat.getDamagerEntity(damager),null);
|
DealDamageToMob(dmg,target,NewCombat.getDamagerEntity(damager),null,"");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DealDamageToMob(double dmg, LivingEntity target, LivingEntity damager, ItemStack artifact) {
|
public static void DealDamageToMob(double dmg, LivingEntity target, LivingEntity damager, ItemStack artifact) {
|
||||||
|
DealDamageToMob(dmg,target,damager,artifact,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DealDamageToMob(double dmg, LivingEntity target, LivingEntity damager, ItemStack artifact, String reason) {
|
||||||
if (damager!=null && (target instanceof Monster)) {
|
if (damager!=null && (target instanceof Monster)) {
|
||||||
Monster m = (Monster)target;
|
Monster m = (Monster)target;
|
||||||
if (damager instanceof Player) {
|
if (damager instanceof Player) {
|
||||||
@ -2623,8 +2627,13 @@ public class GenericFunctions {
|
|||||||
}
|
}
|
||||||
aPlugin.API.sendEntityHurtAnimation(target);
|
aPlugin.API.sendEntityHurtAnimation(target);
|
||||||
TwosideKeeper.log("Call event with "+dmg, 5);
|
TwosideKeeper.log("Call event with "+dmg, 5);
|
||||||
TwosideKeeper.log(GenericFunctions.GetEntityDisplayName(damager)+"->"+
|
if (damager!=null) {
|
||||||
GenericFunctions.GetEntityDisplayName(target)+ChatColor.WHITE+": Damage dealt was "+dmg,2);
|
TwosideKeeper.log(GenericFunctions.GetEntityDisplayName(damager)+"->"+
|
||||||
|
GenericFunctions.GetEntityDisplayName(target)+ChatColor.WHITE+": Damage dealt was "+dmg,2);
|
||||||
|
} else {
|
||||||
|
TwosideKeeper.log(reason+"->"+
|
||||||
|
GenericFunctions.GetEntityDisplayName(target)+ChatColor.WHITE+": Damage dealt was "+dmg,2);
|
||||||
|
}
|
||||||
double oldhp=((LivingEntity)target).getHealth();
|
double oldhp=((LivingEntity)target).getHealth();
|
||||||
GenericFunctions.subtractHealth(target, damager, dmg, artifact);
|
GenericFunctions.subtractHealth(target, damager, dmg, artifact);
|
||||||
if (artifact!=null &&
|
if (artifact!=null &&
|
||||||
@ -2794,15 +2803,19 @@ public class GenericFunctions {
|
|||||||
//Bukkit.getPluginManager().callEvent(new EntityDamageByEntityEvent(damager,entity,DamageCause.CUSTOM,dmg+TwosideKeeper.CUSTOM_DAMAGE_IDENTIFIER));
|
//Bukkit.getPluginManager().callEvent(new EntityDamageByEntityEvent(damager,entity,DamageCause.CUSTOM,dmg+TwosideKeeper.CUSTOM_DAMAGE_IDENTIFIER));
|
||||||
} else {
|
} else {
|
||||||
//Use old system if we cannot get a valid damager.
|
//Use old system if we cannot get a valid damager.
|
||||||
if (entity.getHealth()>dmg) {
|
if (entity.getHealth()>dmg && entity instanceof Player) {
|
||||||
entity.setHealth(entity.getHealth()-dmg);
|
if (!AttemptRevive((Player)entity,dmg)) {
|
||||||
aPlugin.API.sendEntityHurtAnimation(entity);
|
entity.setHealth(((Player)entity).getHealth()-dmg);
|
||||||
|
aPlugin.API.sendEntityHurtAnimation((Player)entity);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
//List<ItemStack> drops = new ArrayList<ItemStack>();
|
//List<ItemStack> drops = new ArrayList<ItemStack>();
|
||||||
//EntityDeathEvent ev = new EntityDeathEvent(entity,drops);
|
//EntityDeathEvent ev = new EntityDeathEvent(entity,drops);
|
||||||
//Bukkit.getPluginManager().callEvent(ev);
|
//Bukkit.getPluginManager().callEvent(ev);
|
||||||
//entity.setHealth(0);
|
//entity.setHealth(0);
|
||||||
entity.damage(Integer.MAX_VALUE);
|
if (entity instanceof Player && !AttemptRevive((Player)entity,Integer.MAX_VALUE)) {
|
||||||
|
entity.damage(Integer.MAX_VALUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2823,6 +2836,7 @@ public class GenericFunctions {
|
|||||||
if (pd.last_rejuvenate+TwosideKeeper.REJUVENATE_COOLDOWN<=TwosideKeeper.getServerTickTime()) {
|
if (pd.last_rejuvenate+TwosideKeeper.REJUVENATE_COOLDOWN<=TwosideKeeper.getServerTickTime()) {
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CURE, 1.0f, 1.0f);
|
player.playSound(player.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CURE, 1.0f, 1.0f);
|
||||||
addIFrame(player,40);
|
addIFrame(player,40);
|
||||||
|
aPlugin.API.damageItem(player, player.getEquipment().getItemInMainHand(), 400);
|
||||||
player.removePotionEffect(PotionEffectType.REGENERATION);
|
player.removePotionEffect(PotionEffectType.REGENERATION);
|
||||||
player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION,200,9));
|
player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION,200,9));
|
||||||
aPlugin.API.sendCooldownPacket(player, player.getEquipment().getItemInMainHand(), TwosideKeeper.REJUVENATE_COOLDOWN);
|
aPlugin.API.sendCooldownPacket(player, player.getEquipment().getItemInMainHand(), TwosideKeeper.REJUVENATE_COOLDOWN);
|
||||||
@ -2921,4 +2935,104 @@ public class GenericFunctions {
|
|||||||
ExperienceOrb orb = location.getWorld().spawn(location, ExperienceOrb.class);
|
ExperienceOrb orb = location.getWorld().spawn(location, ExperienceOrb.class);
|
||||||
orb.setExperience(orb.getExperience() + expAmount);
|
orb.setExperience(orb.getExperience() + expAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean AttemptRevive(Player p, double dmg) {
|
||||||
|
boolean revived=false;
|
||||||
|
if (p.getHealth()<=dmg) {
|
||||||
|
//This means we would die from this attack. Attempt to revive the player.
|
||||||
|
//Check all artifact armor for a perk.
|
||||||
|
ItemStack[] equips = p.getEquipment().getArmorContents();
|
||||||
|
for (int i=0;i<equips.length;i++) {
|
||||||
|
if (isArtifactEquip(equips[i]) && ArtifactAbility.containsEnchantment(ArtifactAbility.SURVIVOR, equips[i])) {
|
||||||
|
//We can revive!
|
||||||
|
RevivePlayer(p, p.getMaxHealth()*(getAbilityValue(ArtifactAbility.SURVIVOR,equips[i])/100d));
|
||||||
|
ArtifactAbility.removeEnchantment(ArtifactAbility.SURVIVOR, equips[i]);
|
||||||
|
revived=true;
|
||||||
|
Bukkit.broadcastMessage(ChatColor.GOLD+p.getName()+ChatColor.WHITE+" almost died... But came back to life!");
|
||||||
|
aPlugin.API.discordSendRawItalicized(ChatColor.GOLD+p.getName()+ChatColor.WHITE+" almost died... But came back to life!");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return revived;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RevivePlayer(Player p, double healdmg) {
|
||||||
|
p.setHealth(healdmg);
|
||||||
|
p.playSound(p.getLocation(), Sound.BLOCK_REDSTONE_TORCH_BURNOUT, 1.0f, 1.5f);
|
||||||
|
for (PotionEffect eff : p.getActivePotionEffects()) {
|
||||||
|
if (isBadEffect(eff.getType())) {
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin,
|
||||||
|
() -> {
|
||||||
|
p.removePotionEffect(eff.getType());
|
||||||
|
}, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.setFireTicks(0);
|
||||||
|
p.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING,20,0));
|
||||||
|
p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,20,0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DealExplosionDamageToEntities(Location l, double basedmg, double range) {
|
||||||
|
List<Entity> nearbyentities = new ArrayList<Entity>();
|
||||||
|
nearbyentities.addAll(l.getWorld().getNearbyEntities(l, range, range, range));
|
||||||
|
for (int i=0;i<nearbyentities.size();i++) {
|
||||||
|
Entity ent = nearbyentities.get(i);
|
||||||
|
if (!(ent instanceof LivingEntity)) {
|
||||||
|
nearbyentities.remove(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//We cleared the non-living entities, deal damage to the rest.
|
||||||
|
for (int i=0;i<nearbyentities.size();i++) {
|
||||||
|
double damage_mult = 2.0d/(l.distance(nearbyentities.get(i).getLocation())+1.0);
|
||||||
|
damage_mult*=TwosideKeeper.EXPLOSION_DMG_MULT;
|
||||||
|
damage_mult*=CalculateBlastResistance((LivingEntity)nearbyentities.get(i));
|
||||||
|
double dmg = basedmg * damage_mult;
|
||||||
|
DealDamageToMob(dmg,(LivingEntity)nearbyentities.get(i),null,null,"Explosion");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double CalculateBlastResistance(LivingEntity l) {
|
||||||
|
int explosionlv = 0;
|
||||||
|
ItemStack[] equips = l.getEquipment().getArmorContents();
|
||||||
|
for (int i=0;i<equips.length;i++) {
|
||||||
|
if (equips[i]!=null && equips[i].getType()!=Material.AIR && equips[i].containsEnchantment(Enchantment.PROTECTION_EXPLOSIONS)) {
|
||||||
|
explosionlv+=equips[i].getEnchantmentLevel(Enchantment.PROTECTION_EXPLOSIONS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1-(explosionlv*0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void playProperEquipSound(Player p, Material type) {
|
||||||
|
switch (type) {
|
||||||
|
case LEATHER_HELMET:
|
||||||
|
case LEATHER_CHESTPLATE:
|
||||||
|
case LEATHER_LEGGINGS:
|
||||||
|
case LEATHER_BOOTS:{
|
||||||
|
p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_LEATHER, 1.0f, 1.0f);
|
||||||
|
}break;
|
||||||
|
case IRON_HELMET:
|
||||||
|
case IRON_CHESTPLATE:
|
||||||
|
case IRON_LEGGINGS:
|
||||||
|
case IRON_BOOTS:{
|
||||||
|
p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_IRON, 1.0f, 1.0f);
|
||||||
|
}break;
|
||||||
|
case GOLD_HELMET:
|
||||||
|
case GOLD_CHESTPLATE:
|
||||||
|
case GOLD_LEGGINGS:
|
||||||
|
case GOLD_BOOTS:{
|
||||||
|
p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_GOLD, 1.0f, 1.0f);
|
||||||
|
}break;
|
||||||
|
case DIAMOND_HELMET:
|
||||||
|
case DIAMOND_CHESTPLATE:
|
||||||
|
case DIAMOND_LEGGINGS:
|
||||||
|
case DIAMOND_BOOTS:{
|
||||||
|
p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_DIAMOND, 1.0f, 1.0f);
|
||||||
|
}break;
|
||||||
|
default:{
|
||||||
|
p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_GENERIC, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,12 @@ import java.io.FileReader;
|
|||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Monster;
|
import org.bukkit.entity.Monster;
|
||||||
@ -80,14 +83,15 @@ public class Habitation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void increaseHabitationLevels() {
|
public void increaseHabitationLevels() {
|
||||||
for(int i=0;i<locationhashes.keySet().toArray().length;i++) {
|
for(String hash : locationhashes.keySet()) {
|
||||||
String hash = (String)locationhashes.keySet().toArray()[i];
|
|
||||||
int spawnamt = locationhashes.get(hash);
|
int spawnamt = locationhashes.get(hash);
|
||||||
TwosideKeeper.log("[Habitat]Habitat Location "+hash+" has Spawn Amont "+spawnamt+".",4);
|
TwosideKeeper.log("[Habitat]Habitat Location "+hash+" has Spawn Amont "+spawnamt+".",4);
|
||||||
if (spawnamt<20) {
|
if (spawnamt<20) {
|
||||||
locationhashes.remove(hash);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin,
|
||||||
TwosideKeeper.log("[Habitat]It's now clear~!",4);
|
() -> {
|
||||||
i--;
|
locationhashes.remove(hash);
|
||||||
|
TwosideKeeper.log("[Habitat]It's now clear~!",4);
|
||||||
|
}, 1);
|
||||||
} else {
|
} else {
|
||||||
if (Math.random()<=0.5) {
|
if (Math.random()<=0.5) {
|
||||||
locationhashes.put(hash, (int)(spawnamt*0.9));
|
locationhashes.put(hash, (int)(spawnamt*0.9));
|
||||||
|
@ -400,6 +400,7 @@ public class NewCombat {
|
|||||||
if (!m.hasPotionEffect(PotionEffectType.GLOWING)) {m.setTarget(p);}
|
if (!m.hasPotionEffect(PotionEffectType.GLOWING)) {m.setTarget(p);}
|
||||||
if (TwosideKeeper.monsterdata.containsKey(m.getUniqueId())) {
|
if (TwosideKeeper.monsterdata.containsKey(m.getUniqueId())) {
|
||||||
MonsterStructure ms = (MonsterStructure)TwosideKeeper.monsterdata.get(m.getUniqueId());
|
MonsterStructure ms = (MonsterStructure)TwosideKeeper.monsterdata.get(m.getUniqueId());
|
||||||
|
ms.SetTarget(p);
|
||||||
} else {
|
} else {
|
||||||
TwosideKeeper.monsterdata.put(m.getUniqueId(),new MonsterStructure(m,p));
|
TwosideKeeper.monsterdata.put(m.getUniqueId(),new MonsterStructure(m,p));
|
||||||
}
|
}
|
||||||
|
@ -246,6 +246,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
public static double ARTIFACT_RARITY=1.5; //The multiplier of artifact drops.
|
public static double ARTIFACT_RARITY=1.5; //The multiplier of artifact drops.
|
||||||
public static ServerType SERVER_TYPE=ServerType.TEST; //The type of server this is running on.
|
public static ServerType SERVER_TYPE=ServerType.TEST; //The type of server this is running on.
|
||||||
public static int COMMONITEMPCT=3;
|
public static int COMMONITEMPCT=3;
|
||||||
|
public static List<ArtifactAbility> TEMPORARYABILITIES = new ArrayList<ArtifactAbility>();
|
||||||
|
|
||||||
public static final int DODGE_COOLDOWN=100;
|
public static final int DODGE_COOLDOWN=100;
|
||||||
public static final int DEATHMARK_COOLDOWN=240;
|
public static final int DEATHMARK_COOLDOWN=240;
|
||||||
@ -384,6 +385,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
banksessions = new HashMap();
|
banksessions = new HashMap();
|
||||||
monsterdata = new HashMap<UUID,MonsterStructure>();
|
monsterdata = new HashMap<UUID,MonsterStructure>();
|
||||||
|
|
||||||
|
TEMPORARYABILITIES.add(ArtifactAbility.GREED);
|
||||||
|
TEMPORARYABILITIES.add(ArtifactAbility.SURVIVOR);
|
||||||
|
|
||||||
//tpstracker = new Lag();
|
//tpstracker = new Lag();
|
||||||
|
|
||||||
//Let's not assume there are no players online. Load their data.
|
//Let's not assume there are no players online. Load their data.
|
||||||
@ -2791,7 +2795,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
if (ev.getPlayer().getEquipment().getItemInMainHand()==null || ev.getPlayer().getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
if (ev.getPlayer().getEquipment().getItemInMainHand()==null || ev.getPlayer().getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
||||||
ev.getPlayer().getEquipment().setItemInMainHand(ev.getItemDrop().getItemStack());
|
ev.getPlayer().getEquipment().setItemInMainHand(ev.getItemDrop().getItemStack());
|
||||||
aPlugin.API.damageItem(ev.getPlayer(), ev.getItemDrop().getItemStack(), 400);
|
|
||||||
GenericFunctions.PerformRejuvenate(ev.getPlayer());
|
GenericFunctions.PerformRejuvenate(ev.getPlayer());
|
||||||
ev.getPlayer().getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
ev.getPlayer().getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
}
|
}
|
||||||
@ -2826,8 +2829,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
ev.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW,(ex_version)?7:15,20));
|
ev.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW,(ex_version)?7:15,20));
|
||||||
}
|
}
|
||||||
if (!ex_version || second_charge) {
|
if (!ex_version || second_charge) {
|
||||||
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), 160);
|
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), LINEDRIVE_COOLDOWN);
|
||||||
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), 160);
|
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), LINEDRIVE_COOLDOWN);
|
||||||
pd.last_strikerspell=getServerTickTime();
|
pd.last_strikerspell=getServerTickTime();
|
||||||
}
|
}
|
||||||
ev.getPlayer().playSound(ev.getPlayer().getLocation(), Sound.UI_BUTTON_CLICK, 1.0f, 1.0f);
|
ev.getPlayer().playSound(ev.getPlayer().getLocation(), Sound.UI_BUTTON_CLICK, 1.0f, 1.0f);
|
||||||
@ -2893,8 +2896,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (ex_version) {
|
if (ex_version) {
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), 160);
|
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), LINEDRIVE_COOLDOWN);
|
||||||
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), 160);
|
aPlugin.API.sendCooldownPacket(ev.getPlayer(), ev.getItemDrop().getItemStack(), LINEDRIVE_COOLDOWN);
|
||||||
pd.last_strikerspell=getServerTickTime();
|
pd.last_strikerspell=getServerTickTime();
|
||||||
}
|
}
|
||||||
},17);
|
},17);
|
||||||
@ -3804,8 +3807,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (ev.getCause()==DamageCause.THORNS &&
|
if (ev.getCause()==DamageCause.THORNS &&
|
||||||
GenericFunctions.isRanger(p)) {
|
GenericFunctions.isRanger(p)) {
|
||||||
dodgechance=1;
|
dodgechance=1;
|
||||||
p.setHealth(p.getHealth()-0.25);
|
double dmg = p.getHealth()-0.25;
|
||||||
p.playSound(p.getLocation(), Sound.ENCHANT_THORNS_HIT, 0.8f, 3.0f);
|
if (!GenericFunctions.AttemptRevive(p,dmg)) {
|
||||||
|
ev.setDamage(dmg);
|
||||||
|
p.playSound(p.getLocation(), Sound.ENCHANT_THORNS_HIT, 0.8f, 3.0f);
|
||||||
|
} else {
|
||||||
|
ev.setCancelled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerStructure pd = (PlayerStructure)playerdata.get(p.getUniqueId());
|
PlayerStructure pd = (PlayerStructure)playerdata.get(p.getUniqueId());
|
||||||
@ -3835,6 +3843,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ev.isCancelled() && GenericFunctions.AttemptRevive(p,ev.getFinalDamage())) {
|
||||||
|
ev.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
if (p!=null) {
|
if (p!=null) {
|
||||||
@ -3867,7 +3879,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ev.setDamage(NewCombat.CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT*((100-protectionlevel)*0.01),m,null));
|
double dmg = NewCombat.CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT*((100-protectionlevel)*0.01),m,null);
|
||||||
|
ev.setDamage(dmg);
|
||||||
//log("Damage is "+ev.getDamage(),4);
|
//log("Damage is "+ev.getDamage(),4);
|
||||||
//ev.setDamage(CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT,p,null));
|
//ev.setDamage(CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT,p,null));
|
||||||
}
|
}
|
||||||
@ -3926,20 +3939,22 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
log("This is a creeper.",5);
|
log("This is a creeper.",5);
|
||||||
final Creeper c = (Creeper)ev.getEntity();
|
final Creeper c = (Creeper)ev.getEntity();
|
||||||
if (c.getCustomName()!=null) {
|
if (c.getCustomName()!=null) {
|
||||||
log("Custom name is "+c.getCustomName(),4);
|
log("Custom name is "+c.getCustomName(),4);
|
||||||
if (c.getCustomName().contains("Dangerous")) {
|
if (c.getCustomName().contains("Dangerous")) {
|
||||||
log("Preparing to explode.",5);
|
log("Preparing to explode.",5);
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),4.0f,false,false);
|
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),4.0f,false,false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(c.getLocation(), 6, 4);
|
||||||
}}
|
}}
|
||||||
,10);
|
,10);
|
||||||
} else
|
} else
|
||||||
if (c.getCustomName().contains("Deadly")) {
|
if (c.getCustomName().contains("Deadly")) {
|
||||||
log("Preparing to explode.",5);
|
log("Preparing to explode.",5);
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),6.0f,true,false);
|
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),6.0f,true,false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(c.getLocation(), 12, 6);
|
||||||
}}
|
}}
|
||||||
,10);
|
,10);
|
||||||
} else
|
} else
|
||||||
@ -3952,12 +3967,14 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
c.getLocation().getWorld().createExplosion(c.getLocation().getX()+offset.getX(),c.getLocation().getY()+offset.getY(),c.getLocation().getZ()+offset.getZ(),6.0f,true,false);
|
c.getLocation().getWorld().createExplosion(c.getLocation().getX()+offset.getX(),c.getLocation().getY()+offset.getY(),c.getLocation().getZ()+offset.getZ(),6.0f,true,false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(c.getLocation(), 12, 6);
|
||||||
}}
|
}}
|
||||||
,val+4);
|
,val+4);
|
||||||
}
|
}
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),8.0f,true,false);
|
c.getLocation().getWorld().createExplosion(c.getLocation().getX(),c.getLocation().getY(),c.getLocation().getZ(),8.0f,true,false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(c.getLocation(), 24, 8);
|
||||||
}}
|
}}
|
||||||
,30);
|
,30);
|
||||||
}
|
}
|
||||||
@ -4012,10 +4029,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
ev.setDamage(DamageModifier.BASE,storeddmg-CUSTOM_DAMAGE_IDENTIFIER);
|
ev.setDamage(DamageModifier.BASE,storeddmg-CUSTOM_DAMAGE_IDENTIFIER);
|
||||||
ev.setDamage(storeddmg-CUSTOM_DAMAGE_IDENTIFIER);
|
ev.setDamage(storeddmg-CUSTOM_DAMAGE_IDENTIFIER);
|
||||||
log("New Damage: "+ev.getFinalDamage(),4);
|
log("New Damage: "+ev.getFinalDamage(),4);
|
||||||
if (ev.getEntity() instanceof Monster &&
|
|
||||||
ev.getDamager() instanceof Player) {
|
|
||||||
NewCombat.addMonsterToTargetList((Monster)ev.getEntity(), (Player)ev.getDamager());
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
double dmg = 0.0;
|
double dmg = 0.0;
|
||||||
if (ev.getEntity() instanceof Player) {
|
if (ev.getEntity() instanceof Player) {
|
||||||
@ -4065,6 +4078,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
if (ev.getCause()==DamageCause.THORNS) {
|
if (ev.getCause()==DamageCause.THORNS) {
|
||||||
if (ev.getEntity() instanceof LivingEntity) {
|
if (ev.getEntity() instanceof LivingEntity) {
|
||||||
|
NewCombat.setupTrueDamage(ev); //Apply this as true damage.
|
||||||
((LivingEntity)ev.getEntity()).setNoDamageTicks(10);
|
((LivingEntity)ev.getEntity()).setNoDamageTicks(10);
|
||||||
((LivingEntity)ev.getEntity()).damage(Math.min(GenericFunctions.getMaxThornsLevel((LivingEntity)ev.getDamager()),((LivingEntity)ev.getEntity()).getHealth()/0.05));
|
((LivingEntity)ev.getEntity()).damage(Math.min(GenericFunctions.getMaxThornsLevel((LivingEntity)ev.getDamager()),((LivingEntity)ev.getEntity()).getHealth()/0.05));
|
||||||
}
|
}
|
||||||
@ -4076,8 +4090,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (ev.getEntity() instanceof LivingEntity) {
|
if (ev.getEntity() instanceof LivingEntity) {
|
||||||
((LivingEntity)ev.getEntity()).setNoDamageTicks(10);
|
((LivingEntity)ev.getEntity()).setNoDamageTicks(10);
|
||||||
final double oldhp=((LivingEntity)ev.getEntity()).getHealth();
|
final double oldhp=((LivingEntity)ev.getEntity()).getHealth();
|
||||||
ev.setDamage(DamageModifier.BASE,dmg);
|
|
||||||
ev.setDamage(dmg);
|
if (ev.getEntity() instanceof Player) {
|
||||||
|
if (!GenericFunctions.AttemptRevive((Player)ev.getEntity(), dmg)) {
|
||||||
|
ev.setDamage(DamageModifier.BASE,dmg);
|
||||||
|
ev.setDamage(dmg);
|
||||||
|
} else {
|
||||||
|
ev.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (NewCombat.getDamagerEntity(ev.getDamager()) instanceof Player) {
|
if (NewCombat.getDamagerEntity(ev.getDamager()) instanceof Player) {
|
||||||
if (ev.getDamager() instanceof Projectile) {
|
if (ev.getDamager() instanceof Projectile) {
|
||||||
ev.getDamager().remove();
|
ev.getDamager().remove();
|
||||||
@ -4095,9 +4116,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
aPlugin.API.damageItem(p, p.getEquipment().getItemInMainHand(), 1);
|
aPlugin.API.damageItem(p, p.getEquipment().getItemInMainHand(), 1);
|
||||||
}
|
}
|
||||||
GenericFunctions.knockOffGreed(p);
|
GenericFunctions.knockOffGreed(p);
|
||||||
if (ev.getEntity() instanceof Monster) {
|
|
||||||
NewCombat.addMonsterToTargetList((Monster)ev.getEntity(), (Player)ev.getDamager());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} //Negative damage doesn't make sense. We'd apply it normally.
|
} //Negative damage doesn't make sense. We'd apply it normally.
|
||||||
@ -4284,8 +4302,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
public void run() {
|
public void run() {
|
||||||
if (mer.getLocation().getBlockY()<48) {
|
if (mer.getLocation().getBlockY()<48) {
|
||||||
mer.getWorld().createExplosion(mer.getLocation().getBlockX(), mer.getLocation().getBlockY(), mer.getLocation().getBlockZ(), 3.0f, false, true);
|
mer.getWorld().createExplosion(mer.getLocation().getBlockX(), mer.getLocation().getBlockY(), mer.getLocation().getBlockZ(), 3.0f, false, true);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(mer.getLocation(), 8, 3);
|
||||||
} else {
|
} else {
|
||||||
mer.getWorld().createExplosion(mer.getLocation().getBlockX(), mer.getLocation().getBlockY(), mer.getLocation().getBlockZ(), 6.0f, false, false);
|
mer.getWorld().createExplosion(mer.getLocation().getBlockX(), mer.getLocation().getBlockY(), mer.getLocation().getBlockZ(), 6.0f, false, false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(mer.getLocation(), 8, 6);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
,30);
|
,30);
|
||||||
@ -4311,8 +4331,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
public void run() {
|
public void run() {
|
||||||
if (mer1.getLocation().getBlockY()<48) {
|
if (mer1.getLocation().getBlockY()<48) {
|
||||||
mer1.getWorld().createExplosion(mer1.getLocation().getBlockX(), mer1.getLocation().getBlockY(), mer1.getLocation().getBlockZ(), 5.0f, true, true);
|
mer1.getWorld().createExplosion(mer1.getLocation().getBlockX(), mer1.getLocation().getBlockY(), mer1.getLocation().getBlockZ(), 5.0f, true, true);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(mer1.getLocation(), 12, 5);
|
||||||
} else {
|
} else {
|
||||||
mer1.getWorld().createExplosion(mer1.getLocation().getBlockX(), mer1.getLocation().getBlockY(), mer1.getLocation().getBlockZ(), 6.0f, true, false);
|
mer1.getWorld().createExplosion(mer1.getLocation().getBlockX(), mer1.getLocation().getBlockY(), mer1.getLocation().getBlockZ(), 6.0f, true, false);
|
||||||
|
GenericFunctions.DealExplosionDamageToEntities(mer1.getLocation(), 12, 6);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
,30);
|
,30);
|
||||||
@ -4358,7 +4380,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
DeathManager.continueAction(p);
|
DeathManager.continueAction(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},20);
|
},1);
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
pd.hasDied=false;
|
pd.hasDied=false;
|
||||||
}
|
}
|
||||||
@ -4484,7 +4506,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
GenericFunctions.RemovePermEnchantmentChance(p.getEquipment().getItemInMainHand(), p);
|
GenericFunctions.RemovePermEnchantmentChance(p.getEquipment().getItemInMainHand(), p);
|
||||||
if (ArtifactAbility.containsEnchantment(ArtifactAbility.EARTHWAVE, p.getEquipment().getItemInMainHand()) &&
|
if (ArtifactAbility.containsEnchantment(ArtifactAbility.EARTHWAVE, p.getEquipment().getItemInMainHand()) &&
|
||||||
pd.target!=null && !pd.target.isDead() && pd.last_shovelspell<getServerTickTime()) {
|
pd.target!=null && !pd.target.isDead() && pd.last_shovelspell<getServerTickTime()) {
|
||||||
if (pd.target.getLocation().getWorld().equals(p.getWorld()) && pd.target.getLocation().distanceSquared(p.getLocation())<=256) {
|
|
||||||
|
/*if (pd.target.getLocation().getWorld().equals(p.getWorld()) && pd.target.getLocation().distanceSquared(p.getLocation())<=256) {
|
||||||
final Player p1 = p;
|
final Player p1 = p;
|
||||||
AreaEffectCloud lp = (AreaEffectCloud)p.getWorld().spawnEntity(p.getLocation(), EntityType.AREA_EFFECT_CLOUD);
|
AreaEffectCloud lp = (AreaEffectCloud)p.getWorld().spawnEntity(p.getLocation(), EntityType.AREA_EFFECT_CLOUD);
|
||||||
lp.setColor(Color.OLIVE);
|
lp.setColor(Color.OLIVE);
|
||||||
@ -4532,7 +4555,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pd.target=null;
|
pd.target=null;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4682,6 +4705,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.getEquipment().setBoots(armor);
|
p.getEquipment().setBoots(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||||
ev.getItem().remove();
|
ev.getItem().remove();
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
} else
|
} else
|
||||||
@ -4691,6 +4715,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.getEquipment().setLeggings(armor);
|
p.getEquipment().setLeggings(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||||
ev.getItem().remove();
|
ev.getItem().remove();
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
} else
|
} else
|
||||||
@ -4700,6 +4725,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.getEquipment().setChestplate(armor);
|
p.getEquipment().setChestplate(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||||
ev.getItem().remove();
|
ev.getItem().remove();
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
} else
|
} else
|
||||||
@ -4709,6 +4735,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.getEquipment().setHelmet(armor);
|
p.getEquipment().setHelmet(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||||
ev.getItem().remove();
|
ev.getItem().remove();
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
} else
|
} else
|
||||||
@ -4719,6 +4746,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(ev.getItem().getItemStack().getItemMeta().hasDisplayName()?ev.getItem().getItemStack().getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(ev.getItem().getItemStack())));
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||||
ev.getItem().remove();
|
ev.getItem().remove();
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
}
|
}
|
||||||
@ -5084,7 +5112,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
if (items_found==2 && slot_found!=0 && ev.getInventory().getResult().getType()!=null && ev.getInventory().getResult().getType()!=Material.AIR) {
|
if (items_found==2 && slot_found!=0 && ev.getInventory().getResult().getType()!=null && ev.getInventory().getResult().getType()!=Material.AIR) {
|
||||||
log("Artifact tier: "+artifact_tier+", Tier Found: "+tier_found,2);
|
log("Artifact tier: "+artifact_tier+", Tier Found: "+tier_found,2);
|
||||||
if (artifact_tier!=tier_found || tier_found==10) {
|
if (artifact_tier!=tier_found || tier_found==15) {
|
||||||
ev.getInventory().setResult(new ItemStack(Material.AIR));
|
ev.getInventory().setResult(new ItemStack(Material.AIR));
|
||||||
} else {
|
} else {
|
||||||
ItemStack newitem = ArtifactItemType.getTypeFromData(ev.getInventory().getItem(slot_found).getDurability()).getTieredItem(tier_found+1);
|
ItemStack newitem = ArtifactItemType.getTypeFromData(ev.getInventory().getItem(slot_found).getDurability()).getTieredItem(tier_found+1);
|
||||||
@ -5128,7 +5156,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
int tier = ev.getInventory().getItem(slot_found).getEnchantmentLevel(Enchantment.LUCK);
|
int tier = ev.getInventory().getItem(slot_found).getEnchantmentLevel(Enchantment.LUCK);
|
||||||
log("This is tier "+tier+". Enchantment level of "+ev.getInventory().getItem(slot_found).toString(),5);
|
log("This is tier "+tier+". Enchantment level of "+ev.getInventory().getItem(slot_found).toString(),5);
|
||||||
//Decompose this into a higher tier of the next item.
|
//Decompose this into a higher tier of the next item.
|
||||||
if (tier==tier_recipe && tier<9) {
|
if (tier==tier_recipe && tier<14) {
|
||||||
ItemStack newitem1 = Artifact.convert(new ItemStack(Material.STAINED_GLASS_PANE,1,ev.getInventory().getItem(slot_found).getDurability()));
|
ItemStack newitem1 = Artifact.convert(new ItemStack(Material.STAINED_GLASS_PANE,1,ev.getInventory().getItem(slot_found).getDurability()));
|
||||||
ItemMeta m = newitem1.getItemMeta();
|
ItemMeta m = newitem1.getItemMeta();
|
||||||
List<String> lore = m.getLore();
|
List<String> lore = m.getLore();
|
||||||
@ -5152,7 +5180,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
ItemStack newitem1 = Artifact.convert(new ItemStack(Material.STAINED_GLASS_PANE,1,ev.getInventory().getItem(slot_found).getDurability()));
|
ItemStack newitem1 = Artifact.convert(new ItemStack(Material.STAINED_GLASS_PANE,1,ev.getInventory().getItem(slot_found).getDurability()));
|
||||||
ItemMeta m = newitem1.getItemMeta();
|
ItemMeta m = newitem1.getItemMeta();
|
||||||
List<String> lore = m.getLore();
|
List<String> lore = m.getLore();
|
||||||
int tier=10;
|
int tier=14;
|
||||||
lore.add(0,ChatColor.GOLD+""+ChatColor.BOLD+"T"+(tier)+" Crafting Recipe");
|
lore.add(0,ChatColor.GOLD+""+ChatColor.BOLD+"T"+(tier)+" Crafting Recipe");
|
||||||
//lore.add(1,ChatColor.GOLD+""+ChatColor.BOLD+"T"+tier+ChatColor.RESET+ChatColor.GOLD+" "+GenericFunctions.CapitalizeFirstLetters(item.getItemName())+" Recipe");
|
//lore.add(1,ChatColor.GOLD+""+ChatColor.BOLD+"T"+tier+ChatColor.RESET+ChatColor.GOLD+" "+GenericFunctions.CapitalizeFirstLetters(item.getItemName())+" Recipe");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user