mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2025-02-03 23:11:19 +01:00
PotionEffects for Drunkeness
This commit is contained in:
parent
f1db040dbb
commit
d00c7888f9
155
config.yml
155
config.yml
@ -1,5 +1,8 @@
|
||||
# config für Brewery.jar
|
||||
|
||||
|
||||
# Verschiedene Einstellungen
|
||||
|
||||
# Ob der Spieler beim nächsten Einloggen nach starker Trunkenheit am nächsten morgen Zuhause "aufwacht" (Ein home Plugin muss installiert sein!)
|
||||
enableHome: true
|
||||
|
||||
@ -19,14 +22,16 @@ enableWake: true
|
||||
# Ob der Spieler sich bei großer Trunkenheit teilweise nicht einloggen kann und kurz warten muss, da sein Charakter nicht reagiert
|
||||
enableLoginDisallow: true
|
||||
|
||||
# Ob der Spieler sich übertrinken kann und dann in Ohnmacht fällt (gekickt wird)
|
||||
# Ob der Spieler sich übertrinken kann und dann in Ohnmacht fällt (gekickt wird) und sich für einige Stunden nicht einloggen kann
|
||||
enableKickOnOverdrink: true
|
||||
|
||||
# Autosave Intervall in Minuten
|
||||
autosave: 3
|
||||
|
||||
|
||||
# name: versch. Namen für schlecht/mittel/gut
|
||||
# Rezepte für Getränke
|
||||
|
||||
# name: Verschiedene Namen für schlecht/mittel/gut
|
||||
# ingredients: Auflistung von material/Anzahl
|
||||
# cookingtime: Zeit in Echtminuten die die Zutaten kochen müssen
|
||||
# distillruns: Wie oft destilliert werden muss 0-10 (0=ohne Destillieren)
|
||||
@ -140,7 +145,7 @@ recipes:
|
||||
|
||||
|
||||
|
||||
#cooked: ALLE möglichen Zutaten und die nach dem Gähren daraus entstehenden Tranknamen: (leer für undefiniert)
|
||||
# cooked: ALLE möglichen Zutaten und die nach dem Gähren daraus entstehenden Tranknamen: (leer für undefiniert)
|
||||
|
||||
cooked:
|
||||
WHEAT: Getreideferment
|
||||
@ -152,13 +157,15 @@ cooked:
|
||||
|
||||
|
||||
|
||||
#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.)
|
||||
#to: In welches Wort es ersetzt werden soll.
|
||||
#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
|
||||
#alcohol: 1-100 trunkenheit ab der die Wörter ersetzt werden
|
||||
#percentage: Wahrscheinlichkeit des Ersetzen eines Wortes in Prozent
|
||||
# words: Wörter und Buchstaben die bei Chatten während Trunkenheit ersetzt werden sollen.
|
||||
# Diese werden von oben nach unten gelesen und in dieser Reihenfolge wird ein geschriebener Satz dann verändert.
|
||||
|
||||
# replace: Zu ersetzendes Wort oder Buchstabe. (Besondere: "-space": ersetzt Leerzeichen, "-random": Eine zufällige Position, "-start": Ganz am Anfang, "-end": Ganz ans Ende.)
|
||||
# to: In welches Wort es ersetzt werden soll.
|
||||
# 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
|
||||
# alcohol: 1-100 Trunkenheit ab der die Wörter ersetzt werden
|
||||
# percentage: Wahrscheinlichkeit des Ersetzen eines Wortes in Prozent
|
||||
|
||||
words:
|
||||
- replace: ch
|
||||
@ -179,24 +186,56 @@ words:
|
||||
to: uuh
|
||||
percentage: 20
|
||||
|
||||
- replace: u
|
||||
to: uo
|
||||
pre: u
|
||||
match: false
|
||||
percentage: 60
|
||||
|
||||
- replace: das
|
||||
to: dass
|
||||
percentage: 10
|
||||
percentage: 20
|
||||
alcohol: 40
|
||||
|
||||
- replace: p
|
||||
to: b
|
||||
percentage: 30
|
||||
|
||||
- replace: p
|
||||
to: b
|
||||
percentage: 70
|
||||
alcohol: 60
|
||||
|
||||
- replace: up
|
||||
to: ubb
|
||||
percentage: 80
|
||||
|
||||
- replace: o
|
||||
to: oh
|
||||
percentage: 20
|
||||
|
||||
- replace: ei
|
||||
to: i
|
||||
percentage: 15
|
||||
|
||||
- replace: b
|
||||
to: bb
|
||||
percentage: 80
|
||||
alcohol: 40
|
||||
|
||||
- replace: '!!!'
|
||||
to: '!!!111!!!einself!1!'
|
||||
pre: '!'
|
||||
match: false
|
||||
percentage: 20
|
||||
alcohol: 70
|
||||
|
||||
- replace: '!'
|
||||
to: '!!'
|
||||
pre: '!'
|
||||
match: false
|
||||
percentage: 90
|
||||
|
||||
- replace: '!!'
|
||||
to: '!!!111!!!einself!1!'
|
||||
pre: '!'
|
||||
match: false
|
||||
percentage: 20
|
||||
alcohol: 70
|
||||
|
||||
- replace: betrunken
|
||||
to: brhetriunkhn
|
||||
pre: bist,seid
|
||||
@ -209,14 +248,48 @@ words:
|
||||
pre: kannst,kannst noch,kannst nicht
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 85
|
||||
alcohol: 30
|
||||
|
||||
- replace: gehen
|
||||
to: hgheehn
|
||||
pre: kannst,kannst noch,kannst nicht
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 85
|
||||
alcohol: 40
|
||||
|
||||
- replace: wtf
|
||||
to: wft
|
||||
percentage: 20
|
||||
alcohol: 40
|
||||
|
||||
- replace: lol
|
||||
to: loool
|
||||
percentage: 80
|
||||
alcohol: 10
|
||||
|
||||
- replace: afk
|
||||
to: aafka
|
||||
percentage: 20
|
||||
alcohol: 30
|
||||
|
||||
- replace: schreiben
|
||||
to: schribeen
|
||||
pre: kannst,kannst noch,kannst nicht
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 50
|
||||
|
||||
- replace: trinken
|
||||
to: saufen
|
||||
percentage: 80
|
||||
alcohol: 70
|
||||
|
||||
- replace: '?'
|
||||
to: '????'
|
||||
pre: '?'
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 40
|
||||
|
||||
- replace: -space
|
||||
to: ''
|
||||
@ -226,7 +299,7 @@ words:
|
||||
|
||||
- replace: -space
|
||||
to: ''
|
||||
percentage: 50
|
||||
percentage: 40
|
||||
alcohol: 35
|
||||
|
||||
- replace: -space
|
||||
@ -234,17 +307,17 @@ words:
|
||||
percentage: 10
|
||||
|
||||
- replace: -start
|
||||
to: dssho
|
||||
to: dho
|
||||
percentage: 15
|
||||
alcohol: 50
|
||||
|
||||
- replace: -start
|
||||
to: hhng
|
||||
to: hhn
|
||||
percentage: 10
|
||||
alcohol: 50
|
||||
|
||||
- replace: -random
|
||||
to: lrg
|
||||
to: lug
|
||||
percentage: 10
|
||||
|
||||
- replace: -random
|
||||
@ -263,7 +336,7 @@ words:
|
||||
alcohol: 75
|
||||
|
||||
- replace: -random
|
||||
to: grulg
|
||||
to: gul
|
||||
percentage: 50
|
||||
alcohol: 80
|
||||
|
||||
@ -281,11 +354,41 @@ words:
|
||||
percentage: 50
|
||||
alcohol: 70
|
||||
|
||||
- replace: -random
|
||||
to: ' '
|
||||
percentage: 100
|
||||
alcohol: 70
|
||||
|
||||
- replace: -random
|
||||
to: ' '
|
||||
percentage: 60
|
||||
alcohol: 40
|
||||
|
||||
- replace: -random
|
||||
to: ' '
|
||||
percentage: 50
|
||||
alcohol: 30
|
||||
|
||||
- replace: -end
|
||||
to: '!'
|
||||
percentage: 30
|
||||
percentage: 40
|
||||
alcohol: 30
|
||||
|
||||
- replace: -random
|
||||
to: ' *hicks* '
|
||||
percentage: 80
|
||||
alcohol: 70
|
||||
|
||||
- replace: -random
|
||||
to: ' *hicks* '
|
||||
percentage: 20
|
||||
alcohol: 40
|
||||
|
||||
- replace: -space
|
||||
to: ' *hicks* '
|
||||
percentage: 20
|
||||
alcohol: 20
|
||||
|
||||
- replace: -end
|
||||
to: ' *hicks*'
|
||||
percentage: 70
|
||||
|
@ -44,7 +44,7 @@ public class BPlayer {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getPlayerName() {
|
||||
/*public String getPlayerName() {
|
||||
for (Map.Entry<String,BPlayer> entry : players.entrySet()) {
|
||||
if (entry.getValue() == this) {
|
||||
return entry.getKey();
|
||||
@ -55,7 +55,7 @@ public class BPlayer {
|
||||
|
||||
public Player getPlayer() {
|
||||
return org.bukkit.Bukkit.getPlayer(getPlayerName());
|
||||
}
|
||||
}*/
|
||||
|
||||
public static Player getPlayer(String name) {
|
||||
return org.bukkit.Bukkit.getPlayer(name);
|
||||
@ -65,7 +65,9 @@ public class BPlayer {
|
||||
public static boolean drink(int uid, Player player) {
|
||||
Brew brew = Brew.get(uid);
|
||||
if (brew != null) {
|
||||
if (brew.calcAlcohol() == 0) {
|
||||
int brewAlc = brew.calcAlcohol();
|
||||
if (brewAlc == 0) {
|
||||
//no alcohol so we dont need to add a BPlayer
|
||||
addBrewEffects(brew, player);
|
||||
return true;
|
||||
}
|
||||
@ -74,22 +76,26 @@ public class BPlayer {
|
||||
bPlayer = new BPlayer();
|
||||
players.put(player.getName(), bPlayer);
|
||||
}
|
||||
bPlayer.drunkeness += brew.calcAlcohol();
|
||||
bPlayer.quality += brew.getQuality() * brew.calcAlcohol();
|
||||
bPlayer.drunkeness += brewAlc;
|
||||
bPlayer.quality += brew.getQuality() * brewAlc;
|
||||
|
||||
if (bPlayer.drunkeness <= 100) {
|
||||
|
||||
addBrewEffects(brew, player);
|
||||
if (brew.getQuality() < 5) {
|
||||
addQualityEffects(brew.getQuality(), brewAlc, player);
|
||||
}
|
||||
|
||||
} else {
|
||||
if (P.p.getConfig().getBoolean("enableKickOnOverdrink", false)) {
|
||||
bPlayer.passOut(player);
|
||||
} else {
|
||||
bPlayer.quality = bPlayer.getQuality() * 100;
|
||||
bPlayer.drunkeness = 100;
|
||||
P.p.msg(player, "Du kannst einfach nicht mehr trinken");
|
||||
return false;
|
||||
P.p.msg(player, "Du kannst nicht mehr trinken");
|
||||
}
|
||||
}
|
||||
P.p.log(player.getName() + " ist nun " + bPlayer.drunkeness + "% betrunken, mit einer Qualität von " + bPlayer.getQuality());
|
||||
P.p.msg(player, "Du bist nun " + bPlayer.drunkeness + "% betrunken, mit einer Qualität von " + bPlayer.getQuality());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -197,7 +203,7 @@ public class BPlayer {
|
||||
}, 1L);
|
||||
}
|
||||
|
||||
// he is having a hangover
|
||||
// he may be having a hangover
|
||||
public void login(final Player player) {
|
||||
if (drunkeness < 10) {
|
||||
if (offlineDrunk > 60) {
|
||||
@ -205,14 +211,14 @@ public class BPlayer {
|
||||
goHome(player);
|
||||
}
|
||||
}
|
||||
hangoverEffects(player);
|
||||
// wird der spieler noch gebraucht?
|
||||
players.remove(player.getName());
|
||||
|
||||
} else if (offlineDrunk - drunkeness >= 20) {
|
||||
// do some random teleport later
|
||||
}
|
||||
|
||||
hangoverEffects(player);
|
||||
|
||||
// wird der spieler noch gebraucht?
|
||||
players.remove(player.getName());
|
||||
offlineDrunk = 0;
|
||||
}
|
||||
|
||||
@ -231,7 +237,7 @@ public class BPlayer {
|
||||
} else if (homeType.startsWith("cmd:")) {
|
||||
player.performCommand(homeType.substring(4));
|
||||
} else {
|
||||
P.p.errorLog("'homeType: " + homeType + "' unknown!");
|
||||
P.p.errorLog("Config.yml 'homeType: " + homeType + "' unknown!");
|
||||
}
|
||||
if (home != null) {
|
||||
player.teleport(home);
|
||||
@ -243,8 +249,35 @@ public class BPlayer {
|
||||
int duration = offlineDrunk * 50 * getHangoverQuality();
|
||||
int amplifier = getHangoverQuality() / 3;
|
||||
|
||||
PotionEffectType.getByName("SLOW").createEffect(duration, amplifier).apply(player);
|
||||
PotionEffectType.getByName("HUNGER").createEffect(duration, amplifier).apply(player);
|
||||
PotionEffectType.SLOW.createEffect(duration, amplifier).apply(player);
|
||||
PotionEffectType.HUNGER.createEffect(duration, amplifier).apply(player);
|
||||
}
|
||||
|
||||
public void drunkEffects(Player player) {
|
||||
int duration = 10 - getQuality();
|
||||
duration += drunkeness / 2;
|
||||
duration *= 20;
|
||||
if (duration > 960) {
|
||||
duration *= 5;
|
||||
} else if (duration < 460) {
|
||||
duration = 460;
|
||||
}
|
||||
PotionEffectType.CONFUSION.createEffect(duration, 0).apply(player);
|
||||
}
|
||||
|
||||
public static void addQualityEffects(int quality, int brewAlc, Player player) {
|
||||
int duration = 7 - quality;
|
||||
duration *= 250;
|
||||
PotionEffectType.BLINDNESS.createEffect(duration, 0).apply(player);
|
||||
|
||||
if (brewAlc > 15) {
|
||||
duration = 10 - quality;
|
||||
duration += brewAlc;
|
||||
duration *= 40;
|
||||
} else {
|
||||
duration = 200;
|
||||
}
|
||||
PotionEffectType.POISON.createEffect(duration, 0).apply(player);
|
||||
}
|
||||
|
||||
public static void addBrewEffects(Brew brew, Player player) {
|
||||
@ -257,6 +290,20 @@ public class BPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
public static void drunkeness() {
|
||||
for (String name : players.keySet()) {
|
||||
BPlayer bplayer = players.get(name);
|
||||
if (bplayer.drunkeness > 30) {
|
||||
if (bplayer.offlineDrunk == 0) {
|
||||
Player player = getPlayer(name);
|
||||
if (player != null) {
|
||||
bplayer.drunkEffects(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// decreasing drunkeness over time
|
||||
public static void onUpdate() {
|
||||
if (!players.isEmpty()) {
|
||||
@ -271,7 +318,7 @@ public class BPlayer {
|
||||
bplayer.drunkeness -= soberPerMin;
|
||||
if (bplayer.drunkeness > 0) {
|
||||
if (bplayer.offlineDrunk == 0) {
|
||||
if (getPlayer(name) == null) {// working offline check?
|
||||
if (getPlayer(name) == null) {
|
||||
bplayer.offlineDrunk = bplayer.drunkeness;
|
||||
}
|
||||
}
|
||||
|
@ -304,12 +304,15 @@ public class Barrel {
|
||||
// when not
|
||||
// the barrel needs to be formed correctly
|
||||
public static Block getBrokenBlock(Block spigot) {
|
||||
spigot = getSpigotOfSign(spigot);
|
||||
if (isSign(spigot)) {
|
||||
if (spigot.getChunk().isLoaded()) {
|
||||
spigot = getSpigotOfSign(spigot);
|
||||
if (isSign(spigot)) {
|
||||
return checkSBarrel(spigot);
|
||||
} else {
|
||||
} else {
|
||||
return checkLBarrel(spigot);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Block checkSBarrel(Block spigot) {
|
||||
|
@ -57,7 +57,8 @@ public class P extends JavaPlugin {
|
||||
p.getServer().getPluginManager().registerEvents(inventoryListener, p);
|
||||
p.getServer().getPluginManager().registerEvents(worldListener, p);
|
||||
|
||||
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 1200, 1200);
|
||||
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200);
|
||||
p.getServer().getScheduler().runTaskTimer(p, new DrunkRunnable(), 120, 120);
|
||||
|
||||
this.log(this.getDescription().getName() + " enabled!");
|
||||
}
|
||||
@ -255,7 +256,6 @@ public class P extends JavaPlugin {
|
||||
|
||||
// save all Data
|
||||
public void saveData() {
|
||||
log("saving");
|
||||
File datafile = new File(p.getDataFolder(), "data.yml");
|
||||
|
||||
FileConfiguration oldData = YamlConfiguration.loadConfiguration(datafile);
|
||||
@ -313,6 +313,19 @@ public class P extends JavaPlugin {
|
||||
return null;
|
||||
}
|
||||
|
||||
public class DrunkRunnable implements Runnable {
|
||||
|
||||
public DrunkRunnable() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (!BPlayer.players.isEmpty()) {
|
||||
BPlayer.drunkeness();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class BreweryRunnable implements Runnable {
|
||||
|
||||
public BreweryRunnable() {
|
||||
|
@ -92,7 +92,11 @@ public class Words {
|
||||
from = " ";
|
||||
} else if (from.equalsIgnoreCase("-random")) {
|
||||
// inserts "to" on a random position in "words"
|
||||
int charIndex = (int) (Math.random() * (words.length() - 1));
|
||||
int charIndex = (int) (Math.random() * 100.0);
|
||||
P.p.log("random: " + charIndex);
|
||||
charIndex *= (words.length() - 1);
|
||||
charIndex /= 100;
|
||||
P.p.log("charIndex: " + charIndex);
|
||||
if (charIndex > words.length() / 2) {
|
||||
from = words.substring(charIndex);
|
||||
to = to + from;
|
||||
|
Loading…
Reference in New Issue
Block a user