From a848ba4e8de645fca5f6cae8f99ed299d1448c38 Mon Sep 17 00:00:00 2001 From: alxl Date: Sun, 29 Nov 2020 17:16:24 -0600 Subject: [PATCH 1/4] Handle negative alcohol values --- src/com/dre/brewery/BPlayer.java | 23 ++++++++++++++++------- src/com/dre/brewery/recipe/BRecipe.java | 4 ---- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/com/dre/brewery/BPlayer.java b/src/com/dre/brewery/BPlayer.java index 1e03e20..015954e 100644 --- a/src/com/dre/brewery/BPlayer.java +++ b/src/com/dre/brewery/BPlayer.java @@ -180,21 +180,25 @@ public class BPlayer { int quality = drinkEvent.getQuality(); List effects = getBrewEffects(brew.getEffects(), quality); - if (brewAlc < 1) { + if (brewAlc == 0) { //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; + if (brewAlc > 0) { + bPlayer.drunkeness += brewAlc; + if (quality > 0) { + bPlayer.quality += quality * brewAlc; + } else { + bPlayer.quality += brewAlc; + } } else { - bPlayer.quality += brewAlc; + bPlayer.drainAndRemove(player, -brewAlc); } + applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY); @@ -202,6 +206,7 @@ public class BPlayer { bPlayer.drinkCap(player); } bPlayer.syncToSQL(false); + if (BConfig.showStatusOnDrink) { bPlayer.showDrunkeness(player); } @@ -336,7 +341,11 @@ public class BPlayer { // Eat something to drain the drunkeness public void drainByItem(Player player, Material mat) { int strength = BConfig.drainItems.get(mat); - if (drain(player, strength)) { + drainAndRemove(player, strength); + } + + public void drainAndRemove(Player player, int amount) { + if (drain(player, amount)) { remove(player); } } diff --git a/src/com/dre/brewery/recipe/BRecipe.java b/src/com/dre/brewery/recipe/BRecipe.java index 3d3d1e1..2fab5f8 100644 --- a/src/com/dre/brewery/recipe/BRecipe.java +++ b/src/com/dre/brewery/recipe/BRecipe.java @@ -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; } From 125d7f103325183942178b328e40b51b9cee0f09 Mon Sep 17 00:00:00 2001 From: alxl Date: Sun, 29 Nov 2020 20:31:01 -0600 Subject: [PATCH 2/4] Negative alc calc --- src/com/dre/brewery/BPlayer.java | 26 +++++++++++--------------- src/com/dre/brewery/Brew.java | 9 +++++---- src/com/dre/brewery/lore/BrewLore.java | 2 +- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/com/dre/brewery/BPlayer.java b/src/com/dre/brewery/BPlayer.java index 015954e..bca2f80 100644 --- a/src/com/dre/brewery/BPlayer.java +++ b/src/com/dre/brewery/BPlayer.java @@ -180,28 +180,20 @@ public class BPlayer { int quality = drinkEvent.getQuality(); List effects = getBrewEffects(brew.getEffects(), quality); - if (brewAlc == 0) { - //no alcohol so we dont need to add a BPlayer - applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); - if (bPlayer.drunkeness <= 0) { - bPlayer.remove(); - } - } - - if (brewAlc > 0) { + applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); + if (brewAlc < 0) { + bPlayer.drainAndRemove(player, -brewAlc); + } else if (brewAlc > 0) { bPlayer.drunkeness += brewAlc; if (quality > 0) { bPlayer.quality += quality * brewAlc; } else { bPlayer.quality += brewAlc; } - } else { - bPlayer.drainAndRemove(player, -brewAlc); + + applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY); } - - applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); - applyEffects(getQualityEffects(quality, brewAlc), player, PlayerEffectEvent.EffectType.QUALITY); - + if (bPlayer.drunkeness > 100) { bPlayer.drinkCap(player); } @@ -210,6 +202,10 @@ public class BPlayer { if (BConfig.showStatusOnDrink) { bPlayer.showDrunkeness(player); } + + if (bPlayer.drunkeness <= 0) { + bPlayer.remove(); + } return true; } diff --git a/src/com/dre/brewery/Brew.java b/src/com/dre/brewery/Brew.java index 0174dfb..9394efe 100644 --- a/src/com/dre/brewery/Brew.java +++ b/src/com/dre/brewery/Brew.java @@ -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) { diff --git a/src/com/dre/brewery/lore/BrewLore.java b/src/com/dre/brewery/lore/BrewLore.java index 6453f2e..20ab518 100644 --- a/src/com/dre/brewery/lore/BrewLore.java +++ b/src/com/dre/brewery/lore/BrewLore.java @@ -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 { From a17e5e28dbca077fb664a0701411b974b047cb73 Mon Sep 17 00:00:00 2001 From: alxl Date: Sun, 29 Nov 2020 20:40:10 -0600 Subject: [PATCH 3/4] Coffee reduces alcohol by default --- resources/config/v12/en/config.yml | 1 + resources/config/v13/de/config.yml | 1 + resources/config/v13/en/config.yml | 2 ++ resources/config/v13/es/config.yml | 2 ++ resources/config/v13/fr/config.yml | 2 ++ resources/config/v13/it/config.yml | 1 + resources/config/v13/zh/config.yml | 1 + 7 files changed, 10 insertions(+) diff --git a/resources/config/v12/en/config.yml b/resources/config/v12/en/config.yml index f9b2500..c30d323 100644 --- a/resources/config/v12/en/config.yml +++ b/resources/config/v12/en/config.yml @@ -442,6 +442,7 @@ recipes: cookingtime: 2 color: BLACK difficulty: 3 + alcohol: -6 lore: + &8Probably a week old effects: - REGENERATION/1/2-5 diff --git a/resources/config/v13/de/config.yml b/resources/config/v13/de/config.yml index 6b1701e..17f838e 100644 --- a/resources/config/v13/de/config.yml +++ b/resources/config/v13/de/config.yml @@ -821,6 +821,7 @@ recipes: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -8 # effects: # - REGENERATION/30 # - SPEED/10 diff --git a/resources/config/v13/en/config.yml b/resources/config/v13/en/config.yml index c99650b..aa1054e 100644 --- a/resources/config/v13/en/config.yml +++ b/resources/config/v13/en/config.yml @@ -739,6 +739,7 @@ recipes: cookingtime: 2 color: BLACK difficulty: 3 + alcohol: -6 lore: + &8Probably a week old effects: - REGENERATION/1/2-5 @@ -816,6 +817,7 @@ recipes: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -8 # effects: # - REGENERATION/30 # - SPEED/10 diff --git a/resources/config/v13/es/config.yml b/resources/config/v13/es/config.yml index c2af9d0..1bbe6fd 100644 --- a/resources/config/v13/es/config.yml +++ b/resources/config/v13/es/config.yml @@ -739,6 +739,7 @@ recipes: cookingtime: 2 color: BLACK difficulty: 3 + alcohol: -6 lore: + &8Probablemente una semana de edad effects: - REGENERATION/1/2-5 @@ -816,6 +817,7 @@ recipes: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -8 # effects: # - REGENERATION/30 # - SPEED/10 diff --git a/resources/config/v13/fr/config.yml b/resources/config/v13/fr/config.yml index e0d9e1c..1106ec2 100644 --- a/resources/config/v13/fr/config.yml +++ b/resources/config/v13/fr/config.yml @@ -746,6 +746,7 @@ recipes: cookingtime: 2 color: BLACK difficulty: 3 + alcohol: -6 lore: + &8Probably a week old effects: - REGENERATION/1/2-5 @@ -822,6 +823,7 @@ recipes: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -8 # effects: # - REGENERATION/30 # - SPEED/10 diff --git a/resources/config/v13/it/config.yml b/resources/config/v13/it/config.yml index 9703201..9ad1cdb 100644 --- a/resources/config/v13/it/config.yml +++ b/resources/config/v13/it/config.yml @@ -816,6 +816,7 @@ eggnog: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -8 # effects: # - REGENERATION/30 # - SPEED/10 diff --git a/resources/config/v13/zh/config.yml b/resources/config/v13/zh/config.yml index a7d2c5e..2bd0fc2 100644 --- a/resources/config/v13/zh/config.yml +++ b/resources/config/v13/zh/config.yml @@ -820,6 +820,7 @@ recipes: # cookingtime: 1 # color: BLACK # difficulty: 4 + # alcohol: -6 # effects: # - REGENERATION/30 # - SPEED/10 From d3d8bfe50d747bbab0782cb1c77bc5293d7a98fd Mon Sep 17 00:00:00 2001 From: alxl Date: Mon, 30 Nov 2020 01:16:31 -0600 Subject: [PATCH 4/4] Revert away drainAndRemove --- src/com/dre/brewery/BPlayer.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/com/dre/brewery/BPlayer.java b/src/com/dre/brewery/BPlayer.java index bca2f80..3ab2323 100644 --- a/src/com/dre/brewery/BPlayer.java +++ b/src/com/dre/brewery/BPlayer.java @@ -182,7 +182,7 @@ public class BPlayer { applyEffects(effects, player, PlayerEffectEvent.EffectType.DRINK); if (brewAlc < 0) { - bPlayer.drainAndRemove(player, -brewAlc); + bPlayer.drain(player, -brewAlc); } else if (brewAlc > 0) { bPlayer.drunkeness += brewAlc; if (quality > 0) { @@ -337,11 +337,7 @@ public class BPlayer { // Eat something to drain the drunkeness public void drainByItem(Player player, Material mat) { int strength = BConfig.drainItems.get(mat); - drainAndRemove(player, strength); - } - - public void drainAndRemove(Player player, int amount) { - if (drain(player, amount)) { + if (drain(player, strength)) { remove(player); } }