Skip to content

Commit

Permalink
Merge pull request DiamondDagger590#89 from Eunoians/blood
Browse files Browse the repository at this point in the history
1.16.2
  • Loading branch information
DiamondDagger590 authored Aug 25, 2020
2 parents 62e9218 + 47a5691 commit b18e8b1
Show file tree
Hide file tree
Showing 74 changed files with 2,707 additions and 430 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
}

//from now on this is how you'll change version
def versionObj = new Version(major: 1, minor: 3, patch: 3, fix: 0, state: 'BETA')
def versionObj = new Version(major: 1, minor: 4, patch: 0, fix: 0, state: 'BETA')

group 'us.eunoians'
version = "${versionObj.toString()}"
Expand Down Expand Up @@ -41,7 +41,7 @@ dependencies {
compileOnly 'fr.neatmonster:nocheatplus:3.16.1-SNAPSHOT'
compileOnly 'com.github.DiamondDagger590:FlatDB:1.0.7'
compileOnly 'com.github.DiamondDagger590:EnumToYaml:1.0'
compile 'de.tr7zw:item-nbt-api:2.4.0-SNAPSHOT'
compile 'de.tr7zw:item-nbt-api:2.5.0'
compile group: 'org.javassist', name: 'javassist', version: '3.21.0-GA'
compileOnly 'me.clip:placeholderapi:2.9.2'
compileOnly 'com.sk89q.worldguard:worldguard-core:7.0.0-SNAPSHOT'
Expand Down
17 changes: 14 additions & 3 deletions src/main/java/us/eunoians/mcrpg/McRPG.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import us.eunoians.mcrpg.api.util.RemoteTransferTracker;
import us.eunoians.mcrpg.api.util.WorldModifierManager;
import us.eunoians.mcrpg.api.util.artifacts.ArtifactManager;
import us.eunoians.mcrpg.api.util.blood.BloodManager;
import us.eunoians.mcrpg.api.util.books.BookManager;
import us.eunoians.mcrpg.api.util.brewing.BrewingStandManager;
import us.eunoians.mcrpg.api.util.brewing.PotionRecipeManager;
Expand Down Expand Up @@ -72,12 +73,14 @@
import us.eunoians.mcrpg.events.mcrpg.PartyLevelUp;
import us.eunoians.mcrpg.events.vanilla.ArrowHitEvent;
import us.eunoians.mcrpg.events.vanilla.BreakEvent;
import us.eunoians.mcrpg.events.vanilla.CallOfWildListener;
import us.eunoians.mcrpg.events.vanilla.ChatEvent;
import us.eunoians.mcrpg.events.vanilla.CheckReadyEvent;
import us.eunoians.mcrpg.events.vanilla.DeathEvent;
import us.eunoians.mcrpg.events.vanilla.DropItemEvent;
import us.eunoians.mcrpg.events.vanilla.EnchantingEvent;
import us.eunoians.mcrpg.events.vanilla.EntityDeathEvent;
import us.eunoians.mcrpg.events.vanilla.EntityDeathListener;
import us.eunoians.mcrpg.events.vanilla.EntityTameListener;
import us.eunoians.mcrpg.events.vanilla.FishCatchEvent;
import us.eunoians.mcrpg.events.vanilla.InteractHandler;
import us.eunoians.mcrpg.events.vanilla.InvClickEvent;
Expand All @@ -96,6 +99,7 @@
import us.eunoians.mcrpg.events.vanilla.SignEvent;
import us.eunoians.mcrpg.events.vanilla.SpawnEvent;
import us.eunoians.mcrpg.events.vanilla.VanillaDamageEvent;
import us.eunoians.mcrpg.events.vanilla.WolfValidator;
import us.eunoians.mcrpg.events.vanilla.WorldListener;
import us.eunoians.mcrpg.party.Party;
import us.eunoians.mcrpg.party.PartyManager;
Expand Down Expand Up @@ -201,6 +205,7 @@ public void run(){
getLogger().info("Loading Potions");
potionRecipeManager = new PotionRecipeManager();
new PlayerManager(this);
new BloodManager(this);
if (healthBarPluginEnabled) {
getLogger().info("HealthBar plugin found, McRPG's healthbars are automatically disabled.");
}
Expand Down Expand Up @@ -292,14 +297,17 @@ public void run(){
getServer().getPluginManager().registerEvents(new PlayerTossItemEvent(), this);
getServer().getPluginManager().registerEvents(new FishCatchEvent(), this);
getServer().getPluginManager().registerEvents(new DeathEvent(), this);
getServer().getPluginManager().registerEvents(new EntityDeathEvent(), this);
getServer().getPluginManager().registerEvents(new EntityDeathListener(), this);
getServer().getPluginManager().registerEvents(new SignEvent(), this);
getServer().getPluginManager().registerEvents(new SpawnEvent(), this);
getServer().getPluginManager().registerEvents(new PotionDrinkEvent(), this);
getServer().getPluginManager().registerEvents(new PotionEffectEvent(), this);
getServer().getPluginManager().registerEvents(new EnchantingEvent(), this);
getServer().getPluginManager().registerEvents(new MoveItemEvent(), this);
getServer().getPluginManager().registerEvents(new PartyLevelUp(), this);
getServer().getPluginManager().registerEvents(new EntityTameListener(), this);
getServer().getPluginManager().registerEvents(new WolfValidator(), this);
getServer().getPluginManager().registerEvents(new CallOfWildListener(), this);

if(sickleEnabled){
getServer().getPluginManager().registerEvents(new Sickle(), this);
Expand Down Expand Up @@ -330,7 +338,10 @@ public void run(){
cancel();
}
else{
amountToKick.addAndGet(iterator.next().purgeInactive(McRPG.getInstance().getFileManager().getFile(FileManager.Files.PARTY_CONFIG).getInt("InactivePurge.TimeInHoursToPurge", 168)));
Party party = iterator.next();
if(party != null){
amountToKick.addAndGet(party.purgeInactive(McRPG.getInstance().getFileManager().getFile(FileManager.Files.PARTY_CONFIG).getInt("InactivePurge.TimeInHoursToPurge", 168)));
}
}
}
}.runTaskTimer(McRPG.getInstance(), 10 * 20, 10 * 20);
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/us/eunoians/mcrpg/abilities/taming/Comradery.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class Comradery extends BaseAbility{

public Comradery(boolean isToggled, int currentTier) {
super(UnlockedAbilities.COMRADERY, isToggled, currentTier);
}
}
11 changes: 11 additions & 0 deletions src/main/java/us/eunoians/mcrpg/abilities/taming/DivineFur.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class DivineFur extends BaseAbility{

public DivineFur(boolean isToggled, int currentTier) {
super(UnlockedAbilities.DIVINE_FUR, isToggled, currentTier);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class FuryOfCerberus extends BaseAbility{

public FuryOfCerberus(boolean isToggled, int currentTier) {
super(UnlockedAbilities.FURY_OF_CERBERUS, isToggled, currentTier);
}
}
11 changes: 11 additions & 0 deletions src/main/java/us/eunoians/mcrpg/abilities/taming/Gore.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.DefaultAbilities;

public class Gore extends BaseAbility{

public Gore(boolean isToggled) {
super(DefaultAbilities.GORE, isToggled, 0, true);
}
}
11 changes: 11 additions & 0 deletions src/main/java/us/eunoians/mcrpg/abilities/taming/LinkedFangs.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class LinkedFangs extends BaseAbility{

public LinkedFangs(boolean isToggled, int currentTier) {
super(UnlockedAbilities.LINKED_FANGS, isToggled, currentTier);
}
}
11 changes: 11 additions & 0 deletions src/main/java/us/eunoians/mcrpg/abilities/taming/PETAsWrath.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class PETAsWrath extends BaseAbility{

public PETAsWrath(boolean isToggled, int currentTier) {
super(UnlockedAbilities.PETAS_WRATH, isToggled, currentTier);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package us.eunoians.mcrpg.abilities.taming;

import us.eunoians.mcrpg.abilities.BaseAbility;
import us.eunoians.mcrpg.types.UnlockedAbilities;

public class SharpenedFangs extends BaseAbility{

public SharpenedFangs(boolean isToggled, int currentTier) {
super(UnlockedAbilities.SHARPENED_FANGS, isToggled, currentTier);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@

import java.util.Random;

public class BleedEvent extends AbilityActivateEvent {

public class BleedEvent extends AbilityActivateEvent{
@Getter
private Entity target;
@Getter
Expand All @@ -41,76 +41,74 @@ public class BleedEvent extends AbilityActivateEvent {
private boolean bleedImmunityEnabled;
@Getter @Setter
private int bleedImmunityDuration;





public BleedEvent(McRPGPlayer user, LivingEntity target, Bleed bleed){
super(bleed, user, AbilityEventType.COMBAT);
//Get the swords config
FileConfiguration config = McRPG.getInstance().getFileManager().getFile(FileManager.Files.SWORDS_CONFIG);
//Initialize everything
this.bleed = bleed;
isCancelled = bleed.isToggled();
this.target = target;
this.damage = config.getInt("BleedConfig.BaseDamage");
this.minimumHealthAllowed = config.getInt("BleedConfig.MinimumHealthAllowed");
this.frequency = config.getInt("BleedConfig.Frequency");
this.baseDuration = config.getInt("BleedConfig.BaseDuration");
this.pierceArmour = config.getBoolean("BleedConfig.BleedPierceArmour");
this.bleedImmunityEnabled = config.getBoolean("BleedConfig.BleedImmunityEnabled");
this.bleedImmunityDuration = config.getInt("BleedConfig.BleedImmunityDuration");

//If deeper wound is unlocked and is enabled. No need to check for toggle as the event will check that
if(UnlockedAbilities.DEEPER_WOUND.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.DEEPER_WOUND)){
//Check if it should activate based on % chance
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("DeeperWoundConfig.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.DEEPER_WOUND).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
DeeperWoundEvent deeperWoundEvent = new DeeperWoundEvent(user, (DeeperWound) user.getBaseAbility(UnlockedAbilities.DEEPER_WOUND));
Bukkit.getPluginManager().callEvent(deeperWoundEvent);
if(!deeperWoundEvent.isCancelled()){
baseDuration += deeperWoundEvent.getDurationBoost();
}
}
}
//If bleed+ is unlocked and enabled
if(UnlockedAbilities.BLEED_PLUS.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.BLEED_PLUS)){
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("Bleed+Config.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.BLEED_PLUS).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
BleedPlusEvent bleedPlusEvent = new BleedPlusEvent(user, (BleedPlus) user.getBaseAbility(UnlockedAbilities.BLEED_PLUS));
Bukkit.getPluginManager().callEvent(bleedPlusEvent);
if(!bleedPlusEvent.isCancelled()){
damage += bleedPlusEvent.getDamageBoost();
}
}
}
//If vampire is unlocked and enabled
if(UnlockedAbilities.VAMPIRE.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.VAMPIRE) && target instanceof Player){
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("VampireConfig.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.VAMPIRE).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
VampireEvent vampireEvent = new VampireEvent(user,(Vampire) user.getBaseAbility(UnlockedAbilities.VAMPIRE));
Bukkit.getPluginManager().callEvent(vampireEvent);
if(!vampireEvent.isCancelled()){
double userHealth = user.getPlayer().getHealth();
if(userHealth < 20){
if(userHealth + vampireEvent.getAmountToHeal() > 20){
user.getPlayer().setHealth(20);
}
else{
user.getPlayer().setHealth(userHealth + vampireEvent.getAmountToHeal());
}
}
}
}
}
super(bleed, user, AbilityEventType.COMBAT);
//Get the swords config
FileConfiguration config = McRPG.getInstance().getFileManager().getFile(FileManager.Files.SWORDS_CONFIG);
//Initialize everything
this.bleed = bleed;
isCancelled = bleed.isToggled();
this.target = target;
this.damage = config.getInt("BleedConfig.BaseDamage");
this.minimumHealthAllowed = config.getInt("BleedConfig.MinimumHealthAllowed");
this.frequency = config.getInt("BleedConfig.Frequency");
this.baseDuration = config.getInt("BleedConfig.BaseDuration");
this.pierceArmour = config.getBoolean("BleedConfig.BleedPierceArmour");
this.bleedImmunityEnabled = config.getBoolean("BleedConfig.BleedImmunityEnabled");
this.bleedImmunityDuration = config.getInt("BleedConfig.BleedImmunityDuration");
//If deeper wound is unlocked and is enabled. No need to check for toggle as the event will check that
if(UnlockedAbilities.DEEPER_WOUND.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.DEEPER_WOUND)){
//Check if it should activate based on % chance
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("DeeperWoundConfig.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.DEEPER_WOUND).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
DeeperWoundEvent deeperWoundEvent = new DeeperWoundEvent(user, (DeeperWound) user.getBaseAbility(UnlockedAbilities.DEEPER_WOUND));
Bukkit.getPluginManager().callEvent(deeperWoundEvent);
if(!deeperWoundEvent.isCancelled()){
baseDuration += deeperWoundEvent.getDurationBoost();
}
}
}
//If bleed+ is unlocked and enabled
if(UnlockedAbilities.BLEED_PLUS.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.BLEED_PLUS)){
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("Bleed+Config.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.BLEED_PLUS).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
BleedPlusEvent bleedPlusEvent = new BleedPlusEvent(user, (BleedPlus) user.getBaseAbility(UnlockedAbilities.BLEED_PLUS));
Bukkit.getPluginManager().callEvent(bleedPlusEvent);
if(!bleedPlusEvent.isCancelled()){
damage += bleedPlusEvent.getDamageBoost();
}
}
}
//If vampire is unlocked and enabled
if(UnlockedAbilities.VAMPIRE.isEnabled() && user.doesPlayerHaveAbilityInLoadout(UnlockedAbilities.VAMPIRE) && target instanceof Player){
Random ran = new Random();
int range = ran.nextInt(10000);
int chance = (int) config.getDouble("VampireConfig.Tier" + Methods.convertToNumeral(user.getBaseAbility(UnlockedAbilities.VAMPIRE).getCurrentTier())
+ ".ActivationChance") * 100;
if(chance >= range){
VampireEvent vampireEvent = new VampireEvent(user, (Vampire) user.getBaseAbility(UnlockedAbilities.VAMPIRE));
Bukkit.getPluginManager().callEvent(vampireEvent);
if(!vampireEvent.isCancelled()){
double userHealth = user.getPlayer().getHealth();
if(userHealth < 20){
if(userHealth + vampireEvent.getAmountToHeal() > 20){
user.getPlayer().setHealth(20);
}
else{
user.getPlayer().setHealth(userHealth + vampireEvent.getAmountToHeal());
}
}
}
}
}
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package us.eunoians.mcrpg.api.events.mcrpg.taming;

import lombok.Getter;
import org.bukkit.entity.Wolf;
import us.eunoians.mcrpg.abilities.taming.Comradery;
import us.eunoians.mcrpg.api.events.mcrpg.AbilityActivateEvent;
import us.eunoians.mcrpg.players.McRPGPlayer;
import us.eunoians.mcrpg.types.AbilityEventType;

public class ComraderyEvent extends AbilityActivateEvent{

@Getter
private Wolf wolf;

public ComraderyEvent(McRPGPlayer mcRPGPlayer, Comradery comradery, Wolf wolf){
super(comradery, mcRPGPlayer, AbilityEventType.COMBAT);
this.wolf = wolf;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package us.eunoians.mcrpg.api.events.mcrpg.taming;

import lombok.Getter;
import lombok.Setter;
import org.bukkit.event.entity.EntityDamageEvent;
import us.eunoians.mcrpg.abilities.taming.DivineFur;
import us.eunoians.mcrpg.api.events.mcrpg.AbilityActivateEvent;
import us.eunoians.mcrpg.players.McRPGPlayer;
import us.eunoians.mcrpg.types.AbilityEventType;

public class DivineFurEvent extends AbilityActivateEvent{

@Getter
private EntityDamageEvent.DamageCause damageCause;

@Getter @Setter
private double percentProtected;

public DivineFurEvent(McRPGPlayer mcRPGPlayer, DivineFur divineFur, EntityDamageEvent.DamageCause damageCause, double percentProtected){
super(divineFur, mcRPGPlayer, AbilityEventType.RECREATIONAL);
this.damageCause = damageCause;
this.percentProtected = percentProtected;
}
}
Loading

0 comments on commit b18e8b1

Please sign in to comment.