mirror of
https://github.com/exituser/Brewery.git
synced 2026-09-17 06:38:56 +00:00
Prevent 0 drunkeness
This commit is contained in:
+8
-7
@@ -4,15 +4,16 @@
|
|||||||
enableHome: true
|
enableHome: true
|
||||||
|
|
||||||
# Art des Nachhause-teleports:
|
# Art des Nachhause-teleports:
|
||||||
# bed= Spieler wird zu seinem Spawn Bett teleportiert
|
# bed = Spieler wird zu seinem Spawn Bett teleportiert
|
||||||
# SamplePlugin = installiertes home plugin. Unterstützt: ManagerXL. Wenn dies nicht geht:
|
# SamplePlugin = installiertes home plugin. Unterstützt: ManagerXL. Wenn dies nicht geht:
|
||||||
# 'cmd: home' = /home wird vom spieler ausgelöst. Es sollte kein Verzögerungs, etc. plugin installiert sein!
|
# 'cmd: home' = /home wird vom Spieler ausgelöst. Es sollte kein Verzögerungs, etc. plugin installiert sein!
|
||||||
# 'cmd: spawn' = /spawn wird vom spieler ausgelöst
|
# 'cmd: spawn' = /spawn wird vom Spieler ausgelöst
|
||||||
|
# 'cmd: exmpl' = /exmpl wird vom Spieler ausgelöst
|
||||||
homeType: 'cmd: home'
|
homeType: 'cmd: home'
|
||||||
|
|
||||||
# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort "aufwacht" (diese müssen durch /setwake von einem Admin festgelegt werden)
|
# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort "aufwacht" (diese müssen durch /setwake von einem Admin festgelegt werden)
|
||||||
# Der Spieler wacht nur an einem Ort auf, der sich in seiner jetzigen Welt befindet.
|
# Der Spieler wacht nur an einem Ort auf, der sich in seiner jetzigen Welt befindet.
|
||||||
# Work in Progress!
|
# Work in Progress, noch nicht implementiert!
|
||||||
enableWake: true
|
enableWake: true
|
||||||
|
|
||||||
# Ob der Spieler sich bei großer Trunkenheit teilweise nicht einloggen kann und kurz warten muss, da sein Charakter nicht reagiert
|
# Ob der Spieler sich bei großer Trunkenheit teilweise nicht einloggen kann und kurz warten muss, da sein Charakter nicht reagiert
|
||||||
@@ -34,7 +35,7 @@ autosave: 3
|
|||||||
# color: Farbe des Getränks nach destillieren/reifen. DARK_RED, RED, BRIGHT_RED, ORANGE, PINK, BLUE, CYAN, WATER, GREEN, BLACK, GREY, BRIGHT_GREY
|
# color: Farbe des Getränks nach destillieren/reifen. DARK_RED, RED, BRIGHT_RED, ORANGE, PINK, BLUE, CYAN, WATER, GREEN, BLACK, GREY, BRIGHT_GREY
|
||||||
# difficulty: 1-10 Genauigkeit der Einhaltung der Vorgaben (1 = ungenau/einfach 10 = sehr genau/schwer)
|
# difficulty: 1-10 Genauigkeit der Einhaltung der Vorgaben (1 = ungenau/einfach 10 = sehr genau/schwer)
|
||||||
# alcohol: Alkoholgehalt 0-100 in absoluter Menge bei perfektem Getränk (wird dem Spieler hinzugefügt, bei 100 = tot)
|
# alcohol: Alkoholgehalt 0-100 in absoluter Menge bei perfektem Getränk (wird dem Spieler hinzugefügt, bei 100 = tot)
|
||||||
# effect: Besonderer Trank-Effekt beim Trinken / Dauer in sek. Die Dauer wird bestehenden, gleichen Effekten hinzugefügt. Siehe: http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html
|
# effect: Effekt/Dauer Besonderer Trank-Effekt beim Trinken, Dauer in sek. Siehe: http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html
|
||||||
|
|
||||||
recipes:
|
recipes:
|
||||||
1:
|
1:
|
||||||
@@ -152,8 +153,8 @@ cooked:
|
|||||||
|
|
||||||
|
|
||||||
#words: Wörter und Buchstaben die bei Trunkenheit ersetzt werden sollen
|
#words: Wörter und Buchstaben die bei Trunkenheit ersetzt werden sollen
|
||||||
#replace: zu ersetzendes Wort oder Buchstabe. (Besondere: "-space": ersetzt ein Leerzeichen, "-random": Eine zufällige Position, "-start": Ganz am Anfang, "-end": Ganz ans Ende.)
|
#replace: Zu ersetzendes Wort oder Buchstabe. (Besondere: "-space": ersetzt ein Leerzeichen, "-random": Eine zufällige Position, "-start": Ganz am Anfang, "-end": Ganz ans Ende.)
|
||||||
#to: in welches Wort es ersetzt werden soll.
|
#to: In welches Wort es ersetzt werden soll.
|
||||||
#pre: Wörter und Buchstaben vor dem gesuchten Wort (durch "," getrennt)
|
#pre: Wörter und Buchstaben vor dem gesuchten Wort (durch "," getrennt)
|
||||||
#match: true = eines der "pre"-Wörter muss vor dem gesuchten Wort stehen, false = keines der "pre" Wörter darf vor dem gesuchten stehen
|
#match: true = eines der "pre"-Wörter muss vor dem gesuchten Wort stehen, false = keines der "pre" Wörter darf vor dem gesuchten stehen
|
||||||
#alcohol: 1-100 trunkenheit ab der die Wörter ersetzt werden
|
#alcohol: 1-100 trunkenheit ab der die Wörter ersetzt werden
|
||||||
|
|||||||
@@ -65,6 +65,10 @@ public class BPlayer {
|
|||||||
public static boolean drink(int uid, Player player) {
|
public static boolean drink(int uid, Player player) {
|
||||||
Brew brew = Brew.get(uid);
|
Brew brew = Brew.get(uid);
|
||||||
if (brew != null) {
|
if (brew != null) {
|
||||||
|
if (brew.calcAlcohol() == 0) {
|
||||||
|
addBrewEffects(brew, player);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
BPlayer bPlayer = get(player.getName());
|
BPlayer bPlayer = get(player.getName());
|
||||||
if (bPlayer == null) {
|
if (bPlayer == null) {
|
||||||
bPlayer = new BPlayer();
|
bPlayer = new BPlayer();
|
||||||
@@ -74,21 +78,15 @@ public class BPlayer {
|
|||||||
bPlayer.quality += brew.getQuality() * brew.calcAlcohol();
|
bPlayer.quality += brew.getQuality() * brew.calcAlcohol();
|
||||||
|
|
||||||
if (bPlayer.drunkeness <= 100) {
|
if (bPlayer.drunkeness <= 100) {
|
||||||
if (brew.getEffect() != null) {
|
addBrewEffects(brew, player);
|
||||||
int duration = (brew.getEffectDur() / 8) * brew.getQuality() * 20;
|
|
||||||
int amplifier = brew.getQuality() / 3;
|
|
||||||
|
|
||||||
PotionEffectType type = PotionEffectType.getByName(brew.getEffect());
|
|
||||||
type.createEffect(duration, amplifier).apply(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (P.p.getConfig().getBoolean("enableKickOnOverdrink", false)) {
|
if (P.p.getConfig().getBoolean("enableKickOnOverdrink", false)) {
|
||||||
bPlayer.passOut(player);
|
bPlayer.passOut(player);
|
||||||
} else {
|
} else {
|
||||||
bPlayer.quality = bPlayer.getQuality() * 100;
|
bPlayer.quality = bPlayer.getQuality() * 100;
|
||||||
bPlayer.drunkeness = 100;
|
bPlayer.drunkeness = 100;
|
||||||
P.p.msg(player, "Du kannst einfach nicht mehr trinken und spuckst es wieder aus!");
|
P.p.msg(player, "Du kannst einfach nicht mehr trinken");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
P.p.log(player.getName() + " ist nun " + bPlayer.drunkeness + "% betrunken, mit einer Qualität von " + bPlayer.getQuality());
|
P.p.log(player.getName() + " ist nun " + bPlayer.drunkeness + "% betrunken, mit einer Qualität von " + bPlayer.getQuality());
|
||||||
@@ -249,12 +247,26 @@ public class BPlayer {
|
|||||||
PotionEffectType.getByName("HUNGER").createEffect(duration, amplifier).apply(player);
|
PotionEffectType.getByName("HUNGER").createEffect(duration, amplifier).apply(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void addBrewEffects(Brew brew, Player player) {
|
||||||
|
if (brew.getEffect() != null) {
|
||||||
|
int duration = (brew.getEffectDur() / 8) * brew.getQuality() * 20;
|
||||||
|
int amplifier = brew.getQuality() / 3;
|
||||||
|
|
||||||
|
PotionEffectType type = PotionEffectType.getByName(brew.getEffect());
|
||||||
|
type.createEffect(duration, amplifier).apply(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// decreasing drunkeness over time
|
// decreasing drunkeness over time
|
||||||
public static void onUpdate() {
|
public static void onUpdate() {
|
||||||
if (!players.isEmpty()) {
|
if (!players.isEmpty()) {
|
||||||
int soberPerMin = 2;
|
int soberPerMin = 2;
|
||||||
for (String name : players.keySet()) {
|
for (String name : players.keySet()) {
|
||||||
BPlayer bplayer = players.get(name);
|
BPlayer bplayer = players.get(name);
|
||||||
|
if (bplayer.drunkeness == soberPerMin) {
|
||||||
|
// Prevent 0 drunkeness
|
||||||
|
soberPerMin++;
|
||||||
|
}
|
||||||
bplayer.quality -= bplayer.getQuality() * soberPerMin;
|
bplayer.quality -= bplayer.getQuality() * soberPerMin;
|
||||||
bplayer.drunkeness -= soberPerMin;
|
bplayer.drunkeness -= soberPerMin;
|
||||||
if (bplayer.drunkeness > 0) {
|
if (bplayer.drunkeness > 0) {
|
||||||
@@ -280,7 +292,7 @@ public class BPlayer {
|
|||||||
section.set("offDrunk", players.get(name).offlineDrunk);
|
section.set("offDrunk", players.get(name).offlineDrunk);
|
||||||
}
|
}
|
||||||
if (players.get(name).passedOut) {
|
if (players.get(name).passedOut) {
|
||||||
section.set("passedOut", players.get(name).passedOut);
|
section.set("passedOut", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -291,6 +303,10 @@ public class BPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getQuality() {
|
public int getQuality() {
|
||||||
|
if (drunkeness == 0) {
|
||||||
|
P.p.errorLog("drunkeness should not be 0!");
|
||||||
|
return quality;
|
||||||
|
}
|
||||||
return Math.round(quality / drunkeness);
|
return Math.round(quality / drunkeness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user