Merge pull request #352 from ItsAlxl/NegativeAlc

Allow brew recipes to reduce alcohol level
This commit is contained in:
Sn0wStorm
2021-04-06 17:32:49 +02:00
committed by GitHub
11 changed files with 34 additions and 26 deletions
+18 -17
View File
@@ -180,31 +180,32 @@ public class BPlayer {
int quality = drinkEvent.getQuality();
List<PotionEffect> effects = getBrewEffects(brew.getEffects(), quality);
if (brewAlc < 1) {
//no alcohol so we dont need to add a BPlayer
applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK);
if (bPlayer.drunkeness <= 0) {
bPlayer.remove();
}
return true;
}
bPlayer.drunkeness += brewAlc;
if (quality > 0) {
bPlayer.quality += quality * brewAlc;
} else {
bPlayer.quality += brewAlc;
}
applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK);
applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY);
if (brewAlc < 0) {
bPlayer.drain(player, -brewAlc);
} else if (brewAlc > 0) {
bPlayer.drunkeness += brewAlc;
if (quality > 0) {
bPlayer.quality += quality * brewAlc;
} else {
bPlayer.quality += brewAlc;
}
applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY);
}
if (bPlayer.drunkeness > 100) {
bPlayer.drinkCap(player);
}
bPlayer.syncToSQL(false);
if (BConfig.showStatusOnDrink) {
bPlayer.showDrunkeness(player);
}
if (bPlayer.drunkeness <= 0) {
bPlayer.remove();
}
return true;
}
+5 -4
View File
@@ -373,9 +373,7 @@ public class Brew implements Cloneable {
// quality decides 10% - 100%
alc *= ((float) quality / 10.0f);
}
if (alc > 0) {
return alc;
}
return alc;
}
return 0;
}
@@ -516,7 +514,10 @@ public class Brew implements Cloneable {
}
public int getOrCalcAlc() {
return alc > 0 ? alc : (alc = calcAlcohol());
if (alc == 0) {
alc = calcAlcohol();
}
return alc;
}
public void setAlc(int alc) {
+1 -1
View File
@@ -275,7 +275,7 @@ public class BrewLore {
}
public void updateAlc(boolean inDistiller) {
if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() > 0)) {
if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() != 0)) {
int alc = brew.getOrCalcAlc();
addOrReplaceLore(Type.ALC, "§8", P.p.languageReader.get("Brew_Alc", alc + ""));
} else {
-4
View File
@@ -338,10 +338,6 @@ public class BRecipe {
P.p.errorLog("Invalid difficulty '" + difficulty + "' in Recipe: " + getRecipeName());
return false;
}
if (alcohol < 0) {
P.p.errorLog("Invalid alcohol '" + alcohol + "' in Recipe: " + getRecipeName());
return false;
}
return true;
}