mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2024-11-26 12:15:19 +01:00
commit
967cc14704
4
pom.xml
4
pom.xml
@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>com.dre</groupId>
|
||||
<artifactId>brewery</artifactId>
|
||||
<version>1.4.2</version>
|
||||
<version>1.5</version>
|
||||
<name>Brewery</name>
|
||||
|
||||
<properties>
|
||||
@ -74,7 +74,7 @@
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.9.4-R0.1-SNAPSHOT</version>
|
||||
<version>1.10.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -13,29 +13,32 @@ enableHome: true
|
||||
|
||||
# Art des Nachhause-teleports: ['cmd: home']
|
||||
# bed = Spieler wird zu seinem Spawn Bett teleportiert
|
||||
# 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: spawn' = /spawn wird vom Spieler ausgelöst
|
||||
# 'cmd: whatever' = /whatever wird vom Spieler ausgelöst
|
||||
homeType: 'cmd: home'
|
||||
|
||||
# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort "aufwacht" (diese müssen durch '/br Wakeup add' von einem Admin festgelegt werden)
|
||||
# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort "aufwacht" (diese müssen durch '/brew Wakeup add' von einem Admin festgelegt werden)
|
||||
# Der Spieler wacht an dem nähesten zweier zufälliger Orte aus seiner Welt auf. [true]
|
||||
enableWake: true
|
||||
|
||||
# Ob der Spieler sich bei großer Trunkenheit teilweise nicht einloggen kann und kurz warten muss, da sein Charakter nicht reagiert [true]
|
||||
# Ob der Spieler bei großer Trunkenheit mehrmals probieren muss sich einzuloggen, da sein Charakter kurz nicht reagiert [true]
|
||||
enableLoginDisallow: true
|
||||
|
||||
# Ob der Spieler sich übertrinken kann und dann in Ohnmacht fällt (gekickt wird) und sich für einige Minuten nicht einloggen kann [true]
|
||||
enableKickOnOverdrink: true
|
||||
# Ob der Spieler kurz in Ohnmacht fällt (vom Server gekickt wird) wenn er die maximale Trunkenheit erreicht [false]
|
||||
enableKickOnOverdrink: false
|
||||
|
||||
# Ob der Spieler sich bei großer Trunkenheit übergibt (unten definiertes Item aus dem Mund fallen lässt) [true]
|
||||
# Das Item kann nicht aufgesammelt werden und bleibt bis zum Despawnen liegen. (Achtung: Kann nach Serverrestart aufgesammelt werden!)
|
||||
# Das Item kann nicht aufgesammelt werden und bleibt bis zum Despawnen liegen.
|
||||
enablePuke: true
|
||||
|
||||
# Item das beim Erbrechen mehrfach unaufsammelbar fallen gelassen wird [SOUL_SAND]
|
||||
pukeItem: SOUL_SAND
|
||||
|
||||
# Zeit in Sekunden bis die pukeitems despawnen, (mc standard wäre 300 = 5 min) [60]
|
||||
# Wurde die item Despawnzeit in der spigot.yml verändert, verändert sich auch die pukeDespawnzeit in Abhängigkeit.
|
||||
pukeDespawntime: 60
|
||||
|
||||
# Konsumierbares Item/Stärke. Senkt den Alkoholpegel um <Stärke> wenn konsumiert.
|
||||
drainItems:
|
||||
- BREAD/4
|
||||
@ -44,9 +47,9 @@ drainItems:
|
||||
# Zeit (in Tagen) die Trunkenheitsdaten nach offlinegehen eines Spielers im Speicher verbleiben, um z.B. Kater-Effekte anzuwenden. [7]
|
||||
hangoverDays: 7
|
||||
|
||||
# Färben der Iteminformationen je nach Qualität während sie sich 1. im Fass und/oder 2. im Braustand befinden [true, false]
|
||||
# Färben der Iteminformationen je nach Qualität während sie sich 1. im Fass und/oder 2. im Braustand befinden [true, true]
|
||||
colorInBarrels: true
|
||||
colorInBrewer: false
|
||||
colorInBrewer: true
|
||||
|
||||
# Ob große Fässer an jedem Block geöffnet werden können, nicht nur an Zapfhahn und Schild. Bei kleinen Fässern geht dies immer. [true]
|
||||
openLargeBarrelEverywhere: true
|
||||
@ -55,14 +58,14 @@ openLargeBarrelEverywhere: true
|
||||
logRealChat: false
|
||||
|
||||
# Aktiviert das Suchen nach Updates für Brewery mit der curseforge api [true]
|
||||
# Wenn ein Update gefunden wurde, wird dies bei Serverstart im log angezeigt, sowie ops benachrichtigt
|
||||
# Wenn ein Update gefunden wurde, wird dies bei Serverstart im log angezeigt, sowie OPs benachrichtigt
|
||||
updateCheck: true
|
||||
|
||||
# Autosave Intervall in Minuten [3]
|
||||
autosave: 3
|
||||
|
||||
# Config Version
|
||||
version: '1.3.1'
|
||||
version: '1.5'
|
||||
|
||||
|
||||
# -- Rezepte für Getränke --
|
||||
@ -70,10 +73,13 @@ version: '1.3.1'
|
||||
# name: Verschiedene Namen für schlecht/mittel/gut (Farbcodes möglich: z.b. &6)
|
||||
# ingredients: Auflistung von 'Material oder ID,Data/Anzahl'
|
||||
# (Item-ids anstatt Material werden von Bukkit nicht mehr unterstützt und funktionieren möglicherweise in Zukunft nicht mehr!)
|
||||
# Eine Liste von allen Materialien kann hier gefunden werden: http://jd.bukkit.org/beta/apidocs/org/bukkit/Material.html
|
||||
# Es kann ein Data-Wert angegeben werden, weglassen ignoriert diesen beim hinzufügen einer Zutat
|
||||
# Eine Liste von allen Materialien kann hier gefunden werden: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||
# Es kann ein Data-Wert (durability) angegeben werden, weglassen ignoriert diesen beim hinzufügen einer Zutat
|
||||
# Wenn Vault installiert ist können normale englische Item Namen verwendet werden, anstatt Material, ID und Data!
|
||||
# Vault erkennt Namen wie "Jungle Leaves" anstatt "LEAVES,3". Dies macht es viel einfacher!
|
||||
# cookingtime: Zeit in Echtminuten die die Zutaten kochen müssen
|
||||
# distillruns: Wie oft destilliert werden muss für vollen Alkoholgehalt (0=ohne Destillieren)
|
||||
# distilltime: Wie lange (in sekunden) ein Destillations-Durchlauf braucht (0=Standard Zeit von 40 sek) MC Standard wäre 20 sek
|
||||
# wood: Holz des Fasses 0=alle Holzsorten 1=Birke 2=Eiche 3=Jungel 4=Fichte 5=Akazie 6=Schwarzeiche
|
||||
# age: Zeit in Minecraft-Tagen, die das Getränk im Fass reifen muss 0= kein reifen
|
||||
# color: Farbe des Getränks nach destillieren/reifen.
|
||||
@ -82,7 +88,8 @@ version: '1.3.1'
|
||||
# alcohol: Alkoholgehalt 0-100 in absoluter Menge bei perfektem Getränk (wird dem Spieler hinzugefügt, bei 100 = tot)
|
||||
# effects: Auflistung Effekt/Level/Dauer Besonderere Trank-Effekte beim Trinken, Dauer in sek.
|
||||
# Ein 'X' an den Namen anhängen, um ihn zu verbergen. Bsp: 'POISONX/2/10' (WEAKNESS, INCREASE_DAMAGE, SLOW und SPEED sind immer verborgen.)
|
||||
# Mögliche Effekte: http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html
|
||||
# Effekte sind ab der 1.9 immer verborgen, wegen Änderungen an den Tränken.
|
||||
# Mögliche Effekte: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
|
||||
# Minimale und Maximale Level/Dauer können durch "-" festgelegt werden, Bsp: 'SPEED/1-2/30-40' = Level 1 und 30 sek minimal, Level 2 und 40 sek maximal
|
||||
# Diese Bereiche funktionieren auch umgekehrt, Bsp: 'POISON/3-1/20-5' für abschwächende Effekte bei guter Qualität
|
||||
# Längste mögliche Effektdauer: 1638 sek. Es muss keine Dauer für Effekte mit sofortiger Wirkung angegeben werden.
|
||||
@ -96,8 +103,12 @@ recipes:
|
||||
- 264/1
|
||||
- INK_SACK,3/20
|
||||
- 5,1/8
|
||||
- BEDROCK/1
|
||||
# - Jungle Leaves/64 # Nur mit Vault
|
||||
# - Green Dye/6 # Nur mit Vault
|
||||
cookingtime: 3
|
||||
distillruns: 2
|
||||
distilltime: 60
|
||||
wood: 4
|
||||
age: 11
|
||||
color: DARK_RED
|
||||
@ -172,6 +183,7 @@ recipes:
|
||||
- SUGAR_CANE/14
|
||||
cookingtime: 5
|
||||
distillruns: 2
|
||||
distilltime: 30
|
||||
wood: 2
|
||||
age: 14
|
||||
color: DARK_RED
|
||||
@ -199,6 +211,7 @@ recipes:
|
||||
- LONG_GRASS/15
|
||||
cookingtime: 3
|
||||
distillruns: 6
|
||||
distilltime: 80
|
||||
color: GREEN
|
||||
difficulty: 8
|
||||
alcohol: 45
|
||||
@ -259,6 +272,12 @@ useLogBlock: true
|
||||
|
||||
# -- Chat Veränderungs Einstellungen --
|
||||
|
||||
# Ob geschriebener Chat bei großer Trunkenheit abgefälscht werden soll,
|
||||
# so dass es etwas betrunken aussieht was geschrieben wird.
|
||||
# Wie stark der Chat verändert wird hängt davon ab wie betrunken der Spieler ist
|
||||
# Unten kann noch eingestellt werden wie und was verändert wird
|
||||
enableChatDistortion: true
|
||||
|
||||
# Text nach den angegebenen Kommandos wird bei Trunkenheit ebenfalls Verändert (Liste) [- /gl]
|
||||
distortCommands:
|
||||
- /gl
|
||||
@ -277,11 +296,14 @@ distortCommands:
|
||||
- /whisper
|
||||
- /reply
|
||||
- /r
|
||||
- /t
|
||||
- /tell
|
||||
|
||||
# Geschriebenen Text auf Schildern bei Trunkenheit verändern [false]
|
||||
distortSignText: false
|
||||
|
||||
# Text, der zwischen diesen Buchstaben steht, wird nicht verändert ("," als Trennung verwenden) (Liste) [- '[,]']
|
||||
# Im Chat geschriebener Text, der zwischen diesen Buchstaben steht, wird nicht verändert ("," als Trennung verwenden) (Liste) [- '[,]']
|
||||
# Also zum Beispiel im Chat: Hallo ich bin betrunken *Ich teste Brewery*
|
||||
distortBypass:
|
||||
- '*,*'
|
||||
- '[,]'
|
||||
|
@ -13,29 +13,32 @@ enableHome: true
|
||||
|
||||
# Type of the home-teleport: ['cmd: home']
|
||||
# bed = Player will be teleported to his spawn bed
|
||||
# SamplePlugin = installed home plugin. Supports: ManagerXL. If not available:
|
||||
# 'cmd: home' = /home will be executed by the player. He has to have permissions for it without any delay!
|
||||
# 'cmd: spawn' = /spawn will be executed by the player.
|
||||
# 'cmd: whatever' = /whatever will be executed by the player.
|
||||
homeType: 'cmd: home'
|
||||
|
||||
# If the player "wakes up" at a random place when offline for some time while drinking (the places have to be defined with '/br Wakeup add' through an admin)
|
||||
# If the player "wakes up" at a random place when offline for some time while drinking (the places have to be defined with '/brew Wakeup add' through an admin)
|
||||
# The Player wakes at the nearest of two random places of his world [true]
|
||||
enableWake: true
|
||||
|
||||
# If the Player may get some logins denied, when his character is drunk [true]
|
||||
# If the Player may have to try multiple times when logging in while extremely drunk [true]
|
||||
enableLoginDisallow: true
|
||||
|
||||
# If the Player faints (gets kicked) for some minutes if he overdrinks [true]
|
||||
enableKickOnOverdrink: true
|
||||
# If the Player faints shortly (gets kicked from the server) if he drinks the max amount of alcohol possible [false]
|
||||
enableKickOnOverdrink: false
|
||||
|
||||
# If the Player vomits on high drunkeness (drops item defined below) [true]
|
||||
# The item can not be collected and stays on the ground until it despawns. (Warning: May be collected after Server restart!)
|
||||
# The item can not be collected and stays on the ground until it despawns.
|
||||
enablePuke: true
|
||||
|
||||
# Item that is dropped multiple times uncollectable when puking [SOUL_SAND]
|
||||
pukeItem: SOUL_SAND
|
||||
|
||||
# Time in seconds until the pukeitems despawn, (mc default is 300 = 5 min) [60]
|
||||
# If the item despawn time was changed in the spigot.yml, the pukeDespawntime changes as well.
|
||||
pukeDespawntime: 60
|
||||
|
||||
# Consumable Item/strength. Decreases the alcohol level by <strength> when consumed. (list)
|
||||
drainItems:
|
||||
- BREAD/4
|
||||
@ -44,22 +47,22 @@ drainItems:
|
||||
# Time (in days) that drunkeness-data stays in memory after a player goes offline, to apply hangover etc. [7]
|
||||
hangoverDays: 7
|
||||
|
||||
# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, false]
|
||||
# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, true]
|
||||
colorInBarrels: true
|
||||
colorInBrewer: false
|
||||
colorInBrewer: true
|
||||
|
||||
# If a Large Barrel can be opened by clicking on any of its blocks, not just Spigot or Sign. This is always true for Small Barrels. [true]
|
||||
openLargeBarrelEverywhere: true
|
||||
|
||||
# Enable checking for Updates, Checks the curseforge api for updates to Brewery [true]
|
||||
# If an Update is found a Message is logged on Server-start and displayed to ops joining the game
|
||||
# If an Update is found a Message is logged on Server-start and displayed to OPs joining the game
|
||||
updateCheck: true
|
||||
|
||||
# Autosave interval in minutes [3]
|
||||
autosave: 3
|
||||
|
||||
# Config Version
|
||||
version: '1.3.1'
|
||||
version: '1.5'
|
||||
|
||||
|
||||
# -- Recipes for Potions --
|
||||
@ -67,10 +70,13 @@ version: '1.3.1'
|
||||
# name: Different names for bad/normal/good (Formatting codes possible: such as &6)
|
||||
# ingredients: List of 'material or id,data/amount'
|
||||
# (Item-ids instead of material are deprecated by bukkit and may not work in the future!)
|
||||
# A list of materials can be found here: http://jd.bukkit.org/beta/apidocs/org/bukkit/Material.html
|
||||
# You can specify a data value, omitting it will ignore the data value of the added ingredient
|
||||
# A list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||
# You can specify a data (durability) value, omitting it will ignore the data value of the added ingredient
|
||||
# If Vault is installed normal names can be used instead of material or id, so using Vault is highly recommended.
|
||||
# Vault will recognize things like "Jungle Leaves" instead of "LEAVES,3"
|
||||
# cookingtime: Time in real minutes ingredients have to boil
|
||||
# distillruns: How often it has to be distilled for full alcohol (0=without distilling)
|
||||
# distilltime: How long (in seconds) one distill-run takes (0=Default time of 40 sec) MC Default would be 20 sec
|
||||
# wood: Wood of the barrel 0=any 1=Birch 2=Oak 3=Jungle 4=Spruce 5=Acacia 6=Dark Oak
|
||||
# age: Time in Minecraft-days, the potion has to age in a barrel 0=no aging
|
||||
# color: Color of the potion after distilling/aging.
|
||||
@ -79,7 +85,8 @@ version: '1.3.1'
|
||||
# alcohol: Absolute amount of alcohol 0-100 in a perfect potion (will be added directly to the player, where 100 means fainting)
|
||||
# effects: List of effect/level/duration Special potion-effect when drinking, duration in sek.
|
||||
# Suffix name with 'X' to hide effect from label. Sample: 'POISONX/2/10' (WEAKNESS, INCREASE_DAMAGE, SLOW and SPEED are always hidden.)
|
||||
# Possible Effects: http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html
|
||||
# Effects are always hidden in 1.9 and newer, because of changes in the potion mechanics.
|
||||
# Possible Effects: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
|
||||
# Level or Duration ranges may be specified with a "-", ex. 'SPEED/1-2/30-40' = lvl 1 and 30 sec at worst and lvl 2 and 40 sec at best
|
||||
# Ranges also work high-low, ex. 'POISON/3-1/20-5' for weaker effects at good quality.
|
||||
# Highest possible Duration: 1638 sec. Instant Effects dont need any duration specified.
|
||||
@ -93,8 +100,12 @@ recipes:
|
||||
- 264/1
|
||||
- INK_SACK,3/20
|
||||
- 5,1/8
|
||||
- BEDROCK/1
|
||||
# - Jungle Leaves/64 # Only with Vault
|
||||
# - Green Dye/6 # Only with Vault
|
||||
cookingtime: 3
|
||||
distillruns: 2
|
||||
distilltime: 60
|
||||
wood: 4
|
||||
age: 11
|
||||
color: DARK_RED
|
||||
@ -169,6 +180,7 @@ recipes:
|
||||
- SUGAR_CANE/14
|
||||
cookingtime: 5
|
||||
distillruns: 2
|
||||
distilltime: 30
|
||||
wood: 2
|
||||
age: 14
|
||||
color: DARK_RED
|
||||
@ -196,6 +208,7 @@ recipes:
|
||||
- LONG_GRASS/15
|
||||
cookingtime: 3
|
||||
distillruns: 6
|
||||
distilltime: 80
|
||||
color: GREEN
|
||||
difficulty: 8
|
||||
alcohol: 45
|
||||
@ -257,6 +270,12 @@ useLogBlock: true
|
||||
|
||||
# -- Chat Distortion Settings --
|
||||
|
||||
# If written Chat is distorted when the Player is Drunk,
|
||||
# so that it looks like drunk writing
|
||||
# How much the chat is distorted depends on how drunk the Player is
|
||||
# Below are settings for what and how changes in chat occur
|
||||
enableChatDistortion: true
|
||||
|
||||
# Log to the Serverlog what the player actually wrote, before his words were altered [false]
|
||||
logRealChat: false
|
||||
|
||||
@ -278,11 +297,14 @@ distortCommands:
|
||||
- /whisper
|
||||
- /reply
|
||||
- /r
|
||||
- /t
|
||||
- /tell
|
||||
|
||||
# Distort the Text written on a Sign while drunk [false]
|
||||
distortSignText: false
|
||||
|
||||
# Enclose a text with these Letters to bypass Chat Distortion (Use "," as Separator) (list) [- '[,]']
|
||||
# Enclose a Chat text with these Letters to bypass Chat Distortion (Use "," as Separator) (list) [- '[,]']
|
||||
# Chat Example: Hello i am drunk *I am testing Brewery*
|
||||
distortBypass:
|
||||
- '*,*'
|
||||
- '[,]'
|
||||
|
@ -13,29 +13,32 @@ enableHome: true
|
||||
|
||||
# Type de la téléportation /home: ['cmd: home']
|
||||
# bed = Le joueur se téléportera à son lit de réapparition.
|
||||
# SamplePlugin = Le plugin /home installé. Supporte: ManagerXL. Si non disponible:
|
||||
# 'cmd: home' = /home sera exécuté par le joueur. Il devra avoir la permission sans le délai pour y parvenir!
|
||||
# 'cmd: spawn' = /spawn sera exécuté par le joueur.
|
||||
# 'cmd: whatever' = /whatever sera exécuté par le joueur. (Peu importe)
|
||||
homeType: 'cmd: home'
|
||||
|
||||
# Si le joueur se "réveille" à un point aléatoire sur la carte à sa connexion, pendant un excès d'alccol (Les points de réveil doivent être ajoutés avec '/br Wakeup add' via un administrateur.)
|
||||
# Si le joueur se "réveille" à un point aléatoire sur la carte à sa connexion, pendant un excès d'alccol (Les points de réveil doivent être ajoutés avec '/brew Wakeup add' via un administrateur.)
|
||||
# Le joueur se réveillera aléatoirement parmis les deux points de "réveil" les plus proches de lui [true]
|
||||
enableWake: true
|
||||
|
||||
# Si le joueur reçoit des connexions refusées au serveur s'il est ivre.[true]
|
||||
enableLoginDisallow: false
|
||||
# Si le joueur reçoit des connexions refusées au serveur s'il est ivre. [true]
|
||||
enableLoginDisallow: true
|
||||
|
||||
# Si le joueur s'évanouit (il sera kické) lorsqu'il boit trop d'alcool[true]
|
||||
# Si le joueur s'évanouit (il sera kické) lorsqu'il boit trop d'alcool [false]
|
||||
enableKickOnOverdrink: false
|
||||
|
||||
# Si le joueur vomit en cas d'alcoolémie élevée (Le type d'objet "droppé" est configurable en dessous) [true]
|
||||
# L'objet ne peut pas être collecté et reste sur le sol jusqu'à ce qu'il disparaisse (ATTENTION: Peut être collecté si le serveur redémarre!)
|
||||
# L'objet ne peut pas être collecté et reste sur le sol jusqu'à ce qu'il disparaisse
|
||||
enablePuke: true
|
||||
|
||||
# L'objet utilisé pour représenter le vomit [SOUL_SAND]
|
||||
pukeItem: SOUL_SAND
|
||||
|
||||
# Time in seconds until the pukeitems despawn, (mc default is 300 = 5 min) [60]
|
||||
# If the item despawn time was changed in the spigot.yml, the pukeDespawntime changes as well.
|
||||
pukeDespawntime: 60
|
||||
|
||||
# Consommables Objet/Force. Réduit le montant d'alcool par <Force> lors de la consommation. (list)
|
||||
drainItems:
|
||||
- BREAD/4
|
||||
@ -44,22 +47,22 @@ drainItems:
|
||||
# Temps (en jours) pour que les données d'ivresse restent sauvergardées lorsque le joueur est déconnecté, pour appliquer les effets. [7]
|
||||
hangoverDays: 7
|
||||
|
||||
# Colorer les informations d'objets (lore) au dépend de la qualité dans un tonneau et/ou dans un stand de brassage (l'alambic) [true, false]
|
||||
# Colorer les informations d'objets (lore) au dépend de la qualité dans un tonneau et/ou dans un stand de brassage (l'alambic) [true, true]
|
||||
colorInBarrels: true
|
||||
colorInBrewer: false
|
||||
colorInBrewer: true
|
||||
|
||||
# Si le grand tonneau peut être ouvert en cliquant sur n'importe quel bloc, non seulement le robinet ou le panneau. Toujours "true" pour les petits tonneaux. [true]
|
||||
openLargeBarrelEverywhere: true
|
||||
|
||||
# Enable checking for Updates, Checks the curseforge api for updates to Brewery [true]
|
||||
# If an Update is found a Message is logged on Server-start and displayed to ops joining the game
|
||||
# If an Update is found a Message is logged on Server-start and displayed to OPs joining the game
|
||||
updateCheck: true
|
||||
|
||||
# Intervale de la sauvegarde automatique en minutes [3]
|
||||
autosave: 3
|
||||
|
||||
# Version de configuration
|
||||
version: '1.3.1'
|
||||
version: '1.5'
|
||||
|
||||
|
||||
# -- Recette pour les boissons --
|
||||
@ -68,10 +71,13 @@ version: '1.3.1'
|
||||
# ingredients: Liste des 'matériaux ou id,data/montant'
|
||||
# (Les id d'objets à la place des matériaux sont obsolètes pour bukkit et pourraient ne pas fonctionner dans le futur!)
|
||||
# Ex: 'SUGAR_CANE'
|
||||
# Une liste des matériaux peuvent-être trouvés ici: http://jd.bukkit.org/beta/apidocs/org/bukkit/Material.html
|
||||
# Vous pouvez spécifier une data (Ex: 5:3 -> Planche de bois de jungle), si vous ne le faites pas la data ne sera pas prise en compte (Ex : 5 -> Bois en général)
|
||||
# Une liste des matériaux peuvent-être trouvés ici: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||
# Vous pouvez spécifier une data (Ex: 5,3 -> Planche de bois de jungle), si vous ne le faites pas la data ne sera pas prise en compte (Ex : 5 -> Bois en général)
|
||||
# If Vault is installed normal names can be used instead of material or id, so using Vault is highly recommended.
|
||||
# Vault will recognize things like "Jungle Leaves" instead of "5,3"
|
||||
# cookingtime: Temps en minutes réelles durant lesquelles les ingrédients devront bouillir
|
||||
# distillruns: Combien de fois le breuvage devra être distillé pour un alcool de qualité (0=Ne pas distiller)
|
||||
# distilltime: How long (in seconds) one distill-run takes (0=Default time of 40 sec) MC Default would be 20 sec
|
||||
# wood: Type de bois du baril 0=aucun 1=Bouleau 2=Chêne 3=Jungle 4=Pin 5=Acacia 6=Chêne Noir
|
||||
# age: Temps en jours de Minecraft, la potion devra être âgée dans un baril. 0=Pas besoin d'âge
|
||||
# color: Couleur de la potion après distillation/avoir laissé vieillir.
|
||||
@ -81,7 +87,8 @@ version: '1.3.1'
|
||||
# effects: Liste des effets/durée en secondes lors de la consommation.
|
||||
# Rajouter le suffixe 'X' pour le cacher du label. Exemple: POISONX/10
|
||||
# (WEAKNESS, INCREASE_DAMAGE, SLOW et SPEED sont toujours cachés.)
|
||||
# Effets posssible: http://jd.bukkit.org/rb/apidocs/org/bukkit/potion/PotionEffectType.html
|
||||
# Effects are always hidden in 1.9 and newer, because of changes in the potion mechanics.
|
||||
# Effets posssible: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
|
||||
# POUR LES EFFETS EN FONCTIONS DE LA QUALITE : Les Niveaux (I ou II) ou les Intervalles de durées d'effets doivent être spécifiés avec un "-".
|
||||
# Ex: 'SPEED/1-2/30-40' => Vitesse niveau 1 et durée de 30 sec pour la pire qualité, et niveau 2 et durée de 40 sec pour la meilleure.
|
||||
# Il est aussi possible de faire l'inverse, c'est à dire que le schéma "Meilleure qualité, meilleur effets" soit "Meilleure qualité, effets moins puissants.
|
||||
@ -98,8 +105,12 @@ recipes:
|
||||
- 264/1
|
||||
- INK_SACK,3/20
|
||||
- 5,1/8
|
||||
- BEDROCK/1
|
||||
# - Jungle Leaves/64 # Only with Vault
|
||||
# - Green Dye/6 # Only with Vault
|
||||
cookingtime: 3
|
||||
distillruns: 2
|
||||
distilltime: 60
|
||||
wood: 4
|
||||
age: 11
|
||||
color: DARK_RED
|
||||
@ -174,6 +185,7 @@ recipes:
|
||||
- SUGAR_CANE/14
|
||||
cookingtime: 5
|
||||
distillruns: 2
|
||||
distilltime: 30
|
||||
wood: 2
|
||||
age: 14
|
||||
color: DARK_RED
|
||||
@ -201,6 +213,7 @@ recipes:
|
||||
- LONG_GRASS/15
|
||||
cookingtime: 3
|
||||
distillruns: 6
|
||||
distilltime: 80
|
||||
color: GREEN
|
||||
difficulty: 8
|
||||
alcohol: 45
|
||||
@ -262,6 +275,12 @@ useLogBlock: true
|
||||
|
||||
# -- Paramètres de la distorsion du Chat --
|
||||
|
||||
# If written Chat is distorted when the Player is Drunk,
|
||||
# so that it looks like drunk writing
|
||||
# How much the chat is distorted depends on how drunk the Player is
|
||||
# Below are settings for what and how changes in chat occur
|
||||
enableChatDistortion: true
|
||||
|
||||
# Ecrire dans les "logs" du serveur ce que le joueur devrait dire, à la place de la distorsion. [false]
|
||||
logRealChat: false
|
||||
|
||||
@ -283,11 +302,14 @@ distortCommands:
|
||||
- /whisper
|
||||
- /reply
|
||||
- /r
|
||||
- /t
|
||||
- /tell
|
||||
|
||||
# Distordre le texte sur les panneaux pendant l'ivresse [false]
|
||||
distortSignText: false
|
||||
|
||||
# Entourer les textes avec ces caractères pour ignorer la distorsion (Utilisez "," comme un séparateur) (list) [- '[,]']
|
||||
# Chat Example: Hello i am drunk *I am testing Brewery*
|
||||
distortBypass:
|
||||
- '*,*'
|
||||
- '[,]'
|
||||
|
567
resources/config/it/config.yml
Executable file
567
resources/config/it/config.yml
Executable file
@ -0,0 +1,567 @@
|
||||
# config di Brewery.jar
|
||||
|
||||
|
||||
# -- Opzioni --
|
||||
# I valori di default sono scritti fra []
|
||||
# Cancellare una voce la disabilita
|
||||
|
||||
# Lingua da usare (fra quelle in plugins/Brewery/languages)
|
||||
language: it
|
||||
|
||||
# Se il giocatore si sveglia nella sua /home dopo aver bevuto troppo(il plugin di /home deve essere installato!) [true]
|
||||
enableHome: true
|
||||
|
||||
# Tipo di teletrasporto alla home ['cmd: home']
|
||||
# bed = Il giocatore sarà teletrasportato al suo letto
|
||||
# 'cmd: home' = /home sarà eseguito dal giocatore. Deve avere il permesso di farlo senza ritardi!
|
||||
# 'cmd: spawn' = /spawn sarà eseguito dal giocatore
|
||||
# 'cmd: faitu' = /faitu sarà eseguito dal giocatore.
|
||||
homeType: 'cmd: home'
|
||||
|
||||
# Se il giocatore si risveglia in un posto a caso dopo essere andato offline mentre beveva (questi posti devono essere definiti con '/brew Wakeup add' da un admin)
|
||||
# Il giocatore si risveglia al punto di risveglio più vicino [true]
|
||||
enableWake: true
|
||||
|
||||
# Se il giocatore debba provare più volte per loggare da molto ubriaco [true]
|
||||
enableLoginDisallow: true
|
||||
|
||||
# Se il giocatore viene espulso dal server se raggiunge la percentuale massima di alcol [false]
|
||||
enableKickOnOverdrink: false
|
||||
|
||||
# Se il giocatore vomita se molto sbronzo [true]
|
||||
# L'oggetto non può essere raccolto e resta per terra finché non sparisce.
|
||||
enablePuke: true
|
||||
|
||||
# L'oggetto droppato in massa quando si vomita che dovrebbe rappresentare il vomito [SOUL_SAND]
|
||||
pukeItem: SOUL_SAND
|
||||
|
||||
# Tempo in secondi perché il vomito sparisca (il valore di minecraft di default è 300 = 5 min) [60]
|
||||
# Se il tempo di scomparsa viene cambiato in spigot.yml anche pukeDespawntime cambia.
|
||||
pukeDespawntime: 60
|
||||
|
||||
# Oggetto consumabile/forza. Questi oggetti se consumati calano il livello di alcool (della "forza" che avevi impsotato) (list)
|
||||
drainItems:
|
||||
- BREAD/4
|
||||
- MILK_BUCKET/2
|
||||
|
||||
# Tempo in giorni che la sbronza resta in memoria dopo che il giocatore va offline, cioè il tempo per cui i postumi della sbornia durano. [7]
|
||||
hangoverDays: 7
|
||||
|
||||
# Colora la descrizione dell'item in base alla qualità mentre è in un barile o in un alambicco [true, true]
|
||||
colorInBarrels: true
|
||||
colorInBrewer: true
|
||||
|
||||
# Se un barile grande può essere aperto cliccandoci sopra, non solo sul cartello e sulla staccionata. Questo è sempre true per i barili piccoli. [true]
|
||||
openLargeBarrelEverywhere: true
|
||||
|
||||
# Abilita il controllo degli aggiornamenti, controlla l'API di CurseForge per eventuali aggiornamenti di Brewery [true]
|
||||
# Se quando un aggiornamento viene trovato un messaggio è loggato e mostrato agli OPs quando entrano in gioco.
|
||||
updateCheck: true
|
||||
|
||||
# Intervallo di autosalvataggio in minuti [3]
|
||||
autosave: 3
|
||||
|
||||
# Versione del config
|
||||
version: '1.5'
|
||||
|
||||
|
||||
# -- Ricette per pozioni --
|
||||
|
||||
# name: Tre nomi diversi per diverse qualità (cattivo/normale/buono). I codici come &6 possono essere usati.
|
||||
# ingredients: Lista degli ingredienti nel formato materiale o id,dati/quantità
|
||||
# (Gli id invece dei materiali sono "disapprovati" da Bukkit e potrebbero non funzionare in futuro!)
|
||||
# Una lista di materiali può essere trovata qui: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||
# Puoi specificare dei dati dell'oggetto, ma se omesso sarà semplicemente ignorato.
|
||||
# Se Vault è installato i nomi normali possono essere usati invece del materiale o dell'id quindi l'uso di Vault è fortemente consigliato.
|
||||
# Vault riconoscerà cose come "Jungle Leaves" invece di "LEAVES,3".
|
||||
# cookingtime: Tempo in minuti richiesto dagli ingredienti per bollire
|
||||
# distillruns: Quanto spesso deve essere distillato per ottenere la versione perfetta con il volume alcolico impostato (0=non serve distillare).
|
||||
# distilltime: How long (in seconds) one distill-run takes (0=Default time of 40 sec) MC Default would be 20 sec
|
||||
# wood: Legno del barile 0=qualiasi 1=Betulla 2=Quercia 3=Mogano 4=Abete 5=Acacia 6=Quercia nera
|
||||
# age: Tempo in giorni di Minecraft per cui la pozione deve essere invecchiata in un barile (0=nessun invecchiamento).
|
||||
# color: Colore della pozione dopo essere stata distillata/invecchiata
|
||||
# Colori utilizzabili: DARK_RED, RED, BRIGHT_RED, ORANGE, PINK, BLUE, CYAN, WATER, GREEN, BLACK, GREY, BRIGHT_GREY
|
||||
# difficoltà: Precisione richiesta per avere la migliore qualità da 1 a 10(1 = spreciso/più facile, 10 = molto preciso/più difficile)
|
||||
# alcohol: Volume alcolico da 0 a 100 nella versione perfetta (sarà aggiunta direttamente al giocatore, dove 100 è la quantità massima di alcohol assorbibile.
|
||||
# effects: Eventuali effetti come quelli delle pozioni nel formato di effetto/livello/durata.
|
||||
# Aggiungere il suffisso 'X' per nascondere l'effetto dalla descrizione. Esempio: 'POISONX/2/10' (gli effetti WEAKNESS, INCREASE_DAMAGE, SLOW and SPEED sono sempre nascosti).
|
||||
# Gli effetti sono sempre nascosti dalla 1.9 in poi, per via dei cambiamenti nelle meccaniche delle pozioni.
|
||||
# Lista di effetti possibili: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
|
||||
# Intervalli di livelli o durate possono essere specificati con un "-", per esempio 'SPEED/1-2/30-40'. Ciò significa nel peggior caso livello 1 e 30 secondi di durata e livello 2 e 40 secondi nel migliore.
|
||||
# Gli intervalli funzionano anche in ordine decrescente, per effetti più deboli a qualità maggiori. Esempio: 'POISON/3-1/20-5'.
|
||||
# La durata massima possibile è 1638 secondi. Gli effetti instantaner non hanno bisogno che la durata sia specificata.
|
||||
|
||||
recipes:
|
||||
# Ricetta di esempio con ogni opzione possibile:
|
||||
0:
|
||||
name: Cattivo esempio/Esempio/Buon esempio
|
||||
ingredients:
|
||||
- SUGAR_CANE/5
|
||||
- 264/1
|
||||
- INK_SACK,3/20
|
||||
- 5,1/8
|
||||
- BEDROCK/1
|
||||
# - Jungle Leaves/64 # Solo con Vault
|
||||
# - Green Dye/6 # Solo con Vault
|
||||
cookingtime: 3
|
||||
distillruns: 2
|
||||
distilltime: 60
|
||||
wood: 4
|
||||
age: 11
|
||||
color: DARK_RED
|
||||
difficulty: 3
|
||||
alcohol: 23
|
||||
effects:
|
||||
- FIRE_RESISTANCE/20
|
||||
- HEAL/1
|
||||
- WEAKNESS/2-3/50-60
|
||||
- POISONX/1-0/20-0
|
||||
1:
|
||||
name: Birra di frumento puzzolente/Birra di frumento/Birra di frumento pregiata
|
||||
ingredients:
|
||||
- WHEAT/3
|
||||
cookingtime: 8
|
||||
distillruns: 0
|
||||
wood: 1
|
||||
age: 2
|
||||
color: BRIGHT_GREY
|
||||
difficulty: 1
|
||||
alcohol: 5
|
||||
2:
|
||||
name: Birra puzzolente/Birra/Birra pregiata
|
||||
ingredients:
|
||||
- WHEAT/6
|
||||
cookingtime: 8
|
||||
distillruns: 0
|
||||
wood: 0
|
||||
age: 3
|
||||
color: ORANGE
|
||||
difficulty: 1
|
||||
alcohol: 6
|
||||
3:
|
||||
name: Birra scura puzzolente/Birra scura/Birra scura pregiata
|
||||
ingredients:
|
||||
- WHEAT/6
|
||||
cookingtime: 8
|
||||
distillruns: 0
|
||||
wood: 4
|
||||
age: 8
|
||||
color: BLACK
|
||||
difficulty: 2
|
||||
alcohol: 7
|
||||
4:
|
||||
name: Idromele scarso/Idromele/&6Idromele dorato
|
||||
ingredients:
|
||||
- SUGAR_CANE/6
|
||||
cookingtime: 3
|
||||
distillruns: 0
|
||||
wood: 2
|
||||
age: 4
|
||||
color: ORANGE
|
||||
difficulty: 2
|
||||
alcohol: 9
|
||||
5:
|
||||
name: Idromele di mele/Idromele di mele dolci/&6Idromele di mele dolci dorato
|
||||
ingredients:
|
||||
- SUGAR_CANE/6
|
||||
- APPLE/2
|
||||
cookingtime: 4
|
||||
distillruns: 0
|
||||
wood: 2
|
||||
age: 4
|
||||
color: ORANGE
|
||||
difficulty: 4
|
||||
alcohol: 12
|
||||
effects:
|
||||
- WATER_BREATHINGX/1-2/150
|
||||
6:
|
||||
name: Rum amaro/Rum speziato/&6Rum dorato
|
||||
ingredients:
|
||||
- SUGAR_CANE/14
|
||||
cookingtime: 5
|
||||
distillruns: 2
|
||||
distilltime: 30
|
||||
wood: 2
|
||||
age: 14
|
||||
color: DARK_RED
|
||||
difficulty: 6
|
||||
alcohol: 30
|
||||
effects:
|
||||
- FIRE_RESISTANCE/1/20-100
|
||||
- POISONX/1-0/30-0
|
||||
7:
|
||||
name: Vodka schifosa/Vodka/Vodka russa
|
||||
ingredients:
|
||||
- POTATO_ITEM/10
|
||||
cookingtime: 15
|
||||
distillruns: 3
|
||||
age: 0
|
||||
color: BRIGHT_GREY
|
||||
difficulty: 4
|
||||
alcohol: 20
|
||||
effects:
|
||||
- WEAKNESS/15
|
||||
- POISON/10
|
||||
8:
|
||||
name: Assenzio scarso/Assenzio/Assenzio forte
|
||||
ingredients:
|
||||
- LONG_GRASS/15
|
||||
cookingtime: 3
|
||||
distillruns: 6
|
||||
distilltime: 80
|
||||
color: GREEN
|
||||
difficulty: 8
|
||||
alcohol: 45
|
||||
effects:
|
||||
- POISON/20-30
|
||||
9:
|
||||
name: Zuppa di patate
|
||||
ingredients:
|
||||
- POTATO_ITEM/5
|
||||
- LONG_GRASS/3
|
||||
cookingtime: 3
|
||||
color: PINK
|
||||
difficulty: 1
|
||||
effects:
|
||||
- HEAL/0-1
|
||||
10:
|
||||
name: Caffè stantio/Caffè/Caffè forte
|
||||
ingredients:
|
||||
- INK_SACK,3/12
|
||||
- MILK_BUCKET/2
|
||||
cookingtime: 2
|
||||
color: BLACK
|
||||
difficulty: 3
|
||||
effects:
|
||||
- REGENERATION/1/2-5
|
||||
- SPEED/1/30-140
|
||||
|
||||
# Altre idee per ricette: Cachaca, Gin, Whiskey, Tequila, Sidro, ecc. Altri nomi per le altre qualità come Vodka Dorata ecc.
|
||||
# Io non aggiungerò altre ricette al config di default, perché sarebbero pubbliche e visibiliad altri utenti per barare.
|
||||
# Aggiungere e cambiare ricette è compito del Server Admin, così che i giocatori non possano barare guardando il config di default.
|
||||
|
||||
|
||||
|
||||
# cooked: OGNI possibile ingrediente e i nomi per la pozione originatasi dopo la fermentazione.
|
||||
# (Esempio) MATERIALE_o_id: Nome dopo la cottura
|
||||
|
||||
cooked:
|
||||
WHEAT: Frumento fermentato
|
||||
SUGAR_CANE: Miscela zuccherata
|
||||
APPLE: Sidro di mele
|
||||
POTATO_ITEM: Purè di patate
|
||||
LONG_GRASS: Erbe bollite
|
||||
RED_MUSHROOM: Miscela ai funghi
|
||||
INK_SACK: Miscela colorata
|
||||
MILK_BUCKET: Acqua lattea
|
||||
|
||||
|
||||
|
||||
# -- Compatibilità con altri plugin --
|
||||
|
||||
# Abilita il controllo della presenza di altri plugin per i permessi relativi ai barili[true]
|
||||
useWorldGuard: true
|
||||
useLWC: true
|
||||
useGriefPrevention: true
|
||||
|
||||
# Abilita il logging degli inventari dei barili [true]
|
||||
useLogBlock: true
|
||||
|
||||
|
||||
# -- Imostazioni di distorsione della chat --
|
||||
|
||||
# If written Chat is distorted when the Player is Drunk,
|
||||
# so that it looks like drunk writing
|
||||
# How much the chat is distorted depends on how drunk the Player is
|
||||
# Below are settings for what and how changes in chat occur
|
||||
enableChatDistortion: true
|
||||
|
||||
# Salva nel log del server quello che il giocatore ha realmente scritto, prima che le sue parole venissero alterate [false]
|
||||
logRealChat: false
|
||||
|
||||
# Il testo seguente ad alcuni comandi definiti qui sotto sarà distorto da ubriachi [- /gl]
|
||||
distortCommands:
|
||||
- /gl
|
||||
- /global
|
||||
- /fl
|
||||
- /s
|
||||
- /letter
|
||||
- /g
|
||||
- /l
|
||||
- /lokal
|
||||
- /local
|
||||
- /mail send
|
||||
- /m
|
||||
- /msg
|
||||
- /w
|
||||
- /whisper
|
||||
- /reply
|
||||
- /r
|
||||
- /t
|
||||
- /tell
|
||||
|
||||
# Distorci il testo sui cartelli quando sei ubriaco [false]
|
||||
distortSignText: false
|
||||
|
||||
# Definisci dei caratteri fra cui inserire le parole per evitare la distorsione della chat (usa "," come separatore) (list) [- '[,]']
|
||||
# Chat Example: Hello i am drunk *I am testing Brewery*
|
||||
distortBypass:
|
||||
- '*,*'
|
||||
- '[,]'
|
||||
|
||||
# words: Lettere e parole che saranno alterate chattando durante la sbronza.
|
||||
# Saranno elaborate dalla prima all'ultima e la frase scritta viene alterata in quell'ordine.
|
||||
|
||||
# replace: Lettere o parole da sostituire. (Special: "-space": sostituisco spazio, "-random": lo mette in una posizione a caso, "-all": tutto, "-start": all'inizio, "-end": alla fine.)
|
||||
# to: Con cosa sostituirle.
|
||||
# pre: Lettere e parole prima della parola voluta (separa con ",").
|
||||
# match: true = una delle parole specificate in "pre" deve precedere la parola bersaglio, false = nessuna delle parole in "pre" deve trovarsi prima della parola bersaglio.
|
||||
# alcohol: Ubriachezza minima da 1 a 100 perché la parola sia alterata.
|
||||
# percentage: Probabilità di sostituzione in perchentuale.
|
||||
|
||||
words:
|
||||
- replace: s
|
||||
to: sh
|
||||
percentage: 90
|
||||
alcohol: 30
|
||||
|
||||
- replace: ch
|
||||
to: sh
|
||||
pre: u,s,o,a
|
||||
match: false
|
||||
alcohol: 10
|
||||
percentage: 70
|
||||
|
||||
- replace: h
|
||||
to: hh
|
||||
pre: sch,h,t
|
||||
match: false
|
||||
percentage: 60
|
||||
alcohol: 20
|
||||
|
||||
- replace: th
|
||||
to: thl
|
||||
percentage: 40
|
||||
alcohol: 30
|
||||
|
||||
- replace: sch
|
||||
to: shk
|
||||
percentage: 60
|
||||
alcohol: 40
|
||||
|
||||
- replace: u
|
||||
to: uuh
|
||||
percentage: 20
|
||||
|
||||
- replace: y
|
||||
to: yy
|
||||
percentage: 60
|
||||
alcohol: 15
|
||||
|
||||
- replace: e
|
||||
to: ee
|
||||
percentage: 40
|
||||
alcohol: 15
|
||||
|
||||
- replace: tu
|
||||
to: te
|
||||
percentage: 40
|
||||
|
||||
- replace: u
|
||||
to: uo
|
||||
pre: u
|
||||
match: false
|
||||
percentage: 60
|
||||
|
||||
- replace: that
|
||||
to: taht
|
||||
percentage: 20
|
||||
alcohol: 40
|
||||
|
||||
- replace: p
|
||||
to: b
|
||||
percentage: 30
|
||||
|
||||
- replace: p
|
||||
to: b
|
||||
percentage: 70
|
||||
alcohol: 60
|
||||
|
||||
- replace: up
|
||||
to: ubb
|
||||
percentage: 80
|
||||
alcohol: 25
|
||||
|
||||
- replace: o
|
||||
to: oh
|
||||
percentage: 20
|
||||
|
||||
- replace: ei
|
||||
to: i
|
||||
percentage: 30
|
||||
alcohol: 15
|
||||
|
||||
- replace: b
|
||||
to: bb
|
||||
percentage: 80
|
||||
alcohol: 40
|
||||
|
||||
- replace: '!!!'
|
||||
to: '!!!111!!!undici!1!'
|
||||
pre: '!'
|
||||
match: false
|
||||
percentage: 20
|
||||
alcohol: 70
|
||||
|
||||
- replace: '!'
|
||||
to: '!!'
|
||||
pre: '!'
|
||||
match: false
|
||||
percentage: 90
|
||||
|
||||
- replace: sbronzo
|
||||
to: shhbronnzo
|
||||
pre: are
|
||||
match: false
|
||||
percentage: 70
|
||||
alcohol: 65
|
||||
|
||||
- replace: cammina
|
||||
to: caahkhhmmminnna
|
||||
pre: puoi, puoi ancora, non puoi
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 30
|
||||
|
||||
- replace: wtf
|
||||
to: wft
|
||||
percentage: 20
|
||||
alcohol: 40
|
||||
|
||||
- replace: lol
|
||||
to: loool
|
||||
percentage: 80
|
||||
alcohol: 10
|
||||
|
||||
- replace: afk
|
||||
to: aafkayyy
|
||||
percentage: 30
|
||||
alcohol: 30
|
||||
|
||||
- replace: scrivere
|
||||
to: shhkrihvehrre
|
||||
pre: puoi,puoi ancora,non puoi
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 50
|
||||
|
||||
- replace: drink
|
||||
to: booze
|
||||
percentage: 80
|
||||
alcohol: 70
|
||||
|
||||
- replace: '?'
|
||||
to: '????'
|
||||
pre: '?'
|
||||
match: false
|
||||
percentage: 80
|
||||
alcohol: 40
|
||||
|
||||
- replace: -space
|
||||
to: ''
|
||||
pre: h,g,w
|
||||
match: true
|
||||
alcohol: 10
|
||||
|
||||
- replace: -space
|
||||
to: ''
|
||||
percentage: 30
|
||||
alcohol: 35
|
||||
|
||||
- replace: -space
|
||||
to: ''
|
||||
percentage: 10
|
||||
|
||||
- replace: -start
|
||||
to: dho
|
||||
percentage: 15
|
||||
alcohol: 50
|
||||
|
||||
- replace: -start
|
||||
to: hhn
|
||||
percentage: 10
|
||||
alcohol: 50
|
||||
|
||||
- replace: -random
|
||||
to: lu
|
||||
percentage: 10
|
||||
|
||||
- replace: -random
|
||||
to: lug
|
||||
percentage: 10
|
||||
alcohol: 50
|
||||
|
||||
- replace: -random
|
||||
to: blub
|
||||
percentage: 20
|
||||
alcohol: 80
|
||||
|
||||
- replace: -random
|
||||
to: lerg
|
||||
percentage: 40
|
||||
alcohol: 85
|
||||
|
||||
- replace: -random
|
||||
to: gul
|
||||
percentage: 40
|
||||
alcohol: 80
|
||||
|
||||
- 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: 40
|
||||
alcohol: 30
|
||||
|
||||
- replace: -random
|
||||
to: ' *hic* '
|
||||
percentage: 80
|
||||
alcohol: 70
|
||||
|
||||
- replace: -random
|
||||
to: ' *hic* '
|
||||
percentage: 15
|
||||
alcohol: 40
|
||||
|
||||
- replace: -space
|
||||
to: ' *hic* '
|
||||
percentage: 5
|
||||
alcohol: 20
|
||||
|
||||
- replace: -end
|
||||
to: ' *hic*'
|
||||
percentage: 70
|
||||
alcohol: 50
|
||||
|
||||
- replace: -all
|
||||
to: '*burp*'
|
||||
percentage: 3
|
||||
alcohol: 60
|
||||
|
||||
- replace: -all
|
||||
to: '*burp*'
|
||||
percentage: 6
|
||||
alcohol: 80
|
@ -55,23 +55,23 @@ Etc_Usage: 'Benutzung:'
|
||||
Etc_Barrel: Fass
|
||||
|
||||
# Help
|
||||
Help_Copy: '&6/brew Copy <Anzahl>&9 Kopiert den Trank in deiner Hand'
|
||||
Help_Copy: '&6/brew Copy [Anzahl]&9 Kopiert den Trank in deiner Hand'
|
||||
Help_Delete: '&6/brew Delete &9Entfernt den Trank in deiner Hand'
|
||||
Help_Help: '&6/brew help <Seite> &9Zeigt eine bestimmte Hilfeseite an'
|
||||
Help_Help: '&6/brew help [Seite] &9Zeigt eine bestimmte Hilfeseite an'
|
||||
Help_Info: '&6/brew Info&9 Zeigt deine aktuelle Trunkenheit und Qualität an'
|
||||
Help_InfoOther: '&6/brew Info <Spieler>&9 Zeigt die aktuelle Trunkenheit und Qualität von <Spieler> an'
|
||||
Help_Player: '&6/brew <Spieler> <%Trunkenheit> <Qualität>&9 Setzt Trunkenheit (und Qualität) eines Spielers'
|
||||
Help_InfoOther: '&6/brew Info [Spieler]&9 Zeigt die aktuelle Trunkenheit und Qualität von [Spieler] an'
|
||||
Help_Player: '&6/brew <Spieler> <%Trunkenheit> [Qualität]&9 Setzt Trunkenheit (und Qualität) eines Spielers'
|
||||
Help_Reload: '&6/brew reload &9Config neuladen'
|
||||
Help_UnLabel: '&6/brew UnLabel &9Entfernt die genaue Beschriftung des Trankes'
|
||||
Help_Wakeup: '&6/brew Wakeup List <Seite>&9 Listet alle Aufwachpunkte auf'
|
||||
Help_WakeupAdd: '&6/brew Wakeup Add &9Setzt einen Aufwachpunkt and deiner Position'
|
||||
Help_WakeupCheck: '&6/brew Wakeup Check &9Teleportiert zu allen Aufwachpunkten'
|
||||
Help_WakeupCheckSpecific: '&6/brew Wakeup Check <id> &9Teleportiert zu einem Aufwachpunkt'
|
||||
Help_WakeupList: '&6/brew Wakeup List <Seite> <Welt>&9 Listet die Aufwachpunkte einer Welt auf'
|
||||
Help_WakeupList: '&6/brew Wakeup List <Seite> [Welt]&9 Listet die Aufwachpunkte einer Welt auf'
|
||||
Help_WakeupRemove: '&6/brew Wakeup Remove <id> &9Entfernt einen Aufwachpunkt'
|
||||
Help_Persist: '&6/brew Persist &9Trankdaten permanent machen -> Kopierbar durch andere Plugins'
|
||||
Help_Static: '&6/brew Static &9Trank unveränderlich machen -> Kein weiteres reifen oder destillieren möglich'
|
||||
Help_Create: '&6/brew Create <Rezept> <Qualität> &9Erstellt einen Trank mit optionaler Qualität (1-10)'
|
||||
Help_Create: '&6/brew Create <Rezept> [Qualität] [Spieler] &9Erstellt einen Trank mit optionaler Qualität (1-10)'
|
||||
|
||||
# Player
|
||||
Player_BarrelCreated: Fass erfolgreich erstellt
|
||||
|
@ -48,14 +48,14 @@ Etc_Page: Page
|
||||
Etc_Usage: 'Usage:'
|
||||
|
||||
# Help
|
||||
Help_Copy: '&6/brew copy <Quanitiy>&9 Copies the potion in your hand'
|
||||
Help_Create: '&6/brew create <Recipe> <Quality> &9Create a Brew with optional quality (1-10)'
|
||||
Help_Copy: '&6/brew copy [Quantity]&9 Copies the potion in your hand'
|
||||
Help_Create: '&6/brew create <Recipe> [Quality] [Player] &9Create a Brew with optional quality (1-10)'
|
||||
Help_Delete: '&6/brew delete &9Deletes the potion in your hand'
|
||||
Help_Help: '&6/brew help <Page> &9Shows a specific help-page'
|
||||
Help_Help: '&6/brew help [Page] &9Shows a specific help-page'
|
||||
Help_Info: '&6/brew info&9 Displays your current Drunkeness and Quality'
|
||||
Help_InfoOther: '&6/brew info <Player>&9 Displays the current Drunkeness and Quality of <Player>'
|
||||
Help_InfoOther: '&6/brew info [Player]&9 Displays the current Drunkeness and Quality of [Player]'
|
||||
Help_Persist: '&6/brew persist &9Make Brew persistent -> copyable by any plugin and technique'
|
||||
Help_Player: '&6/brew <Player> <%Drunkeness> <Quality>&9 Sets Drunkeness (and Quality) of a Player'
|
||||
Help_Player: '&6/brew <Player> <%Drunkeness> [Quality]&9 Sets Drunkeness (and Quality) of a Player'
|
||||
Help_Reload: '&6/brew reload &9Reload config'
|
||||
Help_Static: '&6/brew static &9Make Brew static -> No further ageing or distilling'
|
||||
Help_UnLabel: '&6/brew unlabel &9Removes the detailled label of a potion'
|
||||
@ -63,7 +63,7 @@ Help_Wakeup: '&6/brew wakeup list <Page>&9 Lists all wakeup points'
|
||||
Help_WakeupAdd: '&6/brew wakeup add &9Adds a wakeup point at your current position'
|
||||
Help_WakeupCheck: '&6/brew wakeup check &9Teleports to all wakeup points'
|
||||
Help_WakeupCheckSpecific: '&6/brew wakeup check <id> &9Teleports to the wakeup point with <id>'
|
||||
Help_WakeupList: '&6/brew wakeup list <Page> <World>&9 Lists all wakeup points of <world>'
|
||||
Help_WakeupList: '&6/brew wakeup list <Page> [World]&9 Lists all wakeup points of <world>'
|
||||
Help_WakeupRemove: '&6/brew wakeup remove <id> &9Removes the wakeup point with <id>'
|
||||
|
||||
# Perms
|
||||
|
@ -48,14 +48,14 @@ Etc_Page: Page
|
||||
Etc_Usage: 'Utilise:'
|
||||
|
||||
# Aide
|
||||
Help_Copy: '&6/brew copy <Quanitiy>&9 Copie la potion qui est dans votre main'
|
||||
Help_Create: '&6/brew create <Recipe> <Quality> &9Crée une boisson avec une qualité optionelle (1-10)'
|
||||
Help_Copy: '&6/brew copy [Quantity]&9 Copie la potion qui est dans votre main'
|
||||
Help_Create: '&6/brew create <Recipe> [Quality] [Player] &9Crée une boisson avec une qualité optionelle (1-10)'
|
||||
Help_Delete: '&6/brew delete &9Supprime la potion qui est dans votre main'
|
||||
Help_Help: '&6/brew help <Page> &9Affiche une page spécifique de l´aide'
|
||||
Help_Help: '&6/brew help [Page] &9Affiche une page spécifique de l´aide'
|
||||
Help_Info: '&6/brew info&9 Affiche votre ivresse actuelle ainsi que sa qualité'
|
||||
Help_InfoOther: '&6/brew info <Player>&9 Affiche l´ivresse actuelle de <PLAYER>, cette commande affiche aussi sa qualité.<Player>'
|
||||
Help_InfoOther: '&6/brew info [Player]&9 Affiche l´ivresse actuelle de <PLAYER>, cette commande affiche aussi sa qualité.<Player>'
|
||||
Help_Persist: '&6/brew persist &9Crée une boisson persistante -> peut être copiée par n´importe quel plugin et technique'
|
||||
Help_Player: '&6/brew <Player> <%Drunkeness> <Quality>&9 Définit l´ivresse (et la qualité) du joueur'
|
||||
Help_Player: '&6/brew <Player> <%Drunkeness> [Quality]&9 Définit l´ivresse (et la qualité) du joueur'
|
||||
Help_Reload: '&6/brew reload &9Reload la config'
|
||||
Help_Static: '&6/brew static &9Rend une boisson statique -> Plus affectée par l´âge ou la distillation'
|
||||
Help_UnLabel: '&6/brew unlabel &9Supprime l´étiquette détaillée d´une potion'
|
||||
@ -63,7 +63,7 @@ Help_Wakeup: '&6/brew wakeup list <Page>&9 Affiche une liste de tous les points
|
||||
Help_WakeupAdd: '&6/brew wakeup add &9Ajoute un point de réveil à votre position'
|
||||
Help_WakeupCheck: '&6/brew wakeup check &9Téléportation vers tous les points de réveil'
|
||||
Help_WakeupCheckSpecific: '&6/brew wakeup check <id> &9Téléportation vers le point de réveil avec l´ID <id>'
|
||||
Help_WakeupList: '&6/brew wakeup list <Page> <World>&9 Affiche une liste de tous les points de réveil de <world>'
|
||||
Help_WakeupList: '&6/brew wakeup list <Page> [World]&9 Affiche une liste de tous les points de réveil de [world]'
|
||||
Help_WakeupRemove: '&6/brew wakeup remove <id> &9Enlève le point de réveil avec l´ID <id>'
|
||||
|
||||
# Permissions
|
||||
|
97
resources/languages/it.yml
Executable file
97
resources/languages/it.yml
Executable file
@ -0,0 +1,97 @@
|
||||
# Miscele
|
||||
Brew_-times: -times
|
||||
Brew_BadPotion: Pozione rovinata
|
||||
Brew_BarrelRiped: Invecchiata in barile
|
||||
Brew_DistillUndefined: Distillato indefinito
|
||||
Brew_Distilled: Distillato
|
||||
Brew_HundredsOfYears: Centinaia di anni
|
||||
Brew_Ingredients: Ingredienti
|
||||
Brew_MinutePluralPostfix: /i
|
||||
Brew_OneYear: Un Anno
|
||||
Brew_ThickBrew: Miscela fangosa
|
||||
Brew_Undefined: Mescela indefinibile
|
||||
Brew_Woodtype: Tipo di legno
|
||||
Brew_Years: Anni
|
||||
Brew_fermented: fermentata
|
||||
Brew_minute: minuto
|
||||
|
||||
# Comandi
|
||||
CMD_CopyNotPersistent: '&eLe copie di questa miscela non saranno né persistenti né statiche!'
|
||||
CMD_Copy_Error: '&6&v1 &cLe copie di questa pozione non stavano nell''inventario.'
|
||||
CMD_Info_Drunk: '&v1 è &6&v2% &fsbronzo, con una qualità di &6&v3'
|
||||
CMD_Info_NotDrunk: '&v1 non è sbronzo'
|
||||
CMD_NonStatic: '&eLa pozione non è più statica ed invecchierà normalmente nei barili'
|
||||
CMD_PersistRemove: '&cLe miscele persistenti non possono essere rimosse dal Database. Renderebbe le loro copie inutili!'
|
||||
CMD_Persistent: '&aLa pozione è ora persistente e statica e può essere copiata come qualunque altro oggetto. Puoi rimuovere la persistenza con lo stesso comando.'
|
||||
CMD_Player: '&a&v1 è ora &6&v2% &asbronzo, con una qualità di &6&v3'
|
||||
CMD_Player_Error: '&cLa qualità deve essere fra 1 e 10!'
|
||||
CMD_Reload: '&aLa configurazione è stata ricaricata con successo'
|
||||
CMD_Static: '&aLa pozione è ora statica e non cambierà né nei barili né negli alambicchi.'
|
||||
CMD_UnLabel: '&aEtichetta rimossa!'
|
||||
CMD_UnPersist: '&aPersistenza e staticità rimosse. &eOgni copia non fatta con ''/brew copy'' potrebbe diventare inutile ora!'
|
||||
|
||||
# Errori
|
||||
Error_ConfigUpdate: 'Versione della configurazione di Brewery sconosciuta: v&v1, la configurazione non è stato aggiornata!'
|
||||
Error_ItemNotPotion: '&cL''oggetto nella tua mano non è una pozione!'
|
||||
Error_NoBarrelAccess: '&cNon hai il permesso di aprire questo barile!'
|
||||
Error_NoBrewName: '&cNon è stata trovata nessuna ricetta chiamata ''&v1&c''!'
|
||||
Error_NoPermissions: '&cNon hai il permesso di farlo!'
|
||||
Error_PersistStatic: '&cLe pozioni persistenti sono sempre statiche!'
|
||||
Error_PlayerCommand: '&cQuesto comando può essere eseguito solo da un giocatore!'
|
||||
Error_Recipeload: '&cNon è stato possibile recuperare tutte le ricette: ulteriori informazioni nel file log!'
|
||||
Error_ShowHelp: Usa &6/brew help &fper visualizzare l''aiuto
|
||||
Error_UnknownCommand: Comando sconosciuto
|
||||
|
||||
# Varie
|
||||
Etc_Barrel: Barile
|
||||
Etc_Page: Pagina
|
||||
Etc_Usage: 'Utilizzo:'
|
||||
|
||||
# Aiuto
|
||||
Help_Copy: '&6/brew copy [Quantità]&9 Copia la pozione che tieni in mano'
|
||||
Help_Create: '&6/brew create <icetta> [Qualità] [Giocatore] &9Crea una miscela con una qualità data (1-10)'
|
||||
Help_Delete: '&6/brew delete &9Elimina la pozione nella tua mano'
|
||||
Help_Help: '&6/brew help <Pagina> &9Mostra una specifica pagina dell''aiuto'
|
||||
Help_Info: '&6/brew info&9 Mostra il tuo livello di sbronza attuale e la qualità'
|
||||
Help_InfoOther: '&6/brew info [Giocatore]&9 Mostra l''attuale livello di sbronza e la qualità di [Giocatore]'
|
||||
Help_Persist: '&6/brew persist &9Rendi una miscela persistente quindi copiabile normalmente in ogni modo e da ogni plugin.'
|
||||
Help_Player: '&6/brew <Giocatore> <%Sbronza> [Qualità]&9 Imposta livello di sbronza (e qualità) di un giocatore.'
|
||||
Help_Reload: '&6/brew reload &9Ricarica la configurazione'
|
||||
Help_Static: '&6/brew static &9Rende la miscela statica quindi non distillabile e invecchiabile ulteriormente.'
|
||||
Help_UnLabel: '&6/brew unlabel &9Rimuove la descrizione dettagliata di una pozione.'
|
||||
Help_Wakeup: '&6/brew wakeup list <Pagina>&9 Mostra tutti i punti di risveglio.'
|
||||
Help_WakeupAdd: '&6/brew wakeup add &9Crea un punto di risveglio alla tua posizione corrente.'
|
||||
Help_WakeupCheck: '&6/brew wakeup check &9Ti teletrasporta nei punti di risveglio uno alla volta'
|
||||
Help_WakeupCheckSpecific: '&6/brew wakeup check <ID> &9Ti teletrasporta al punto di risveglio con id <id>'
|
||||
Help_WakeupList: '&6/brew wakeup list <Pagina> <Mondo>&9 Elenca tutti i punti di risveglio di <Mondo>'
|
||||
Help_WakeupRemove: '&6/brew wakeup remove <ID> &9Rimuove il punto di risveglio con id <id>'
|
||||
|
||||
# Permessi
|
||||
Perms_NoBarrelCreate: '&cNon hai il permesso di costruire barili!'
|
||||
Perms_NoBigBarrelCreate: '&cNon hai il permesso di costruire barili grandi!'
|
||||
Perms_NoCauldronFill: '&cNon hai il permesso di mettere bottiglie in questo barile!'
|
||||
Perms_NoCauldronInsert: '&cNon hai il permesso di inserire gli ingredienti in un calderone!'
|
||||
Perms_NoSmallBarrelCreate: '&cNon hai il permesso di costruire piccoli barili!'
|
||||
|
||||
# Giocatore
|
||||
Player_BarrelCreated: Barile creato
|
||||
Player_CantDrink: Non puoi bere dell''altro.
|
||||
Player_CauldronInfo1: Questo calderone sta bollendo da &v1 minuti.
|
||||
Player_CauldronInfo2: Questo calderone ha appena iniziato a bollire.
|
||||
Player_DrunkPassOut: Hai bevuto troppo e sei svenuto.
|
||||
Player_LoginDeny: Il tuo personaggio sta provando a loggare, ma è troppo sbronzo per trovare il server. Prova di nuovo!
|
||||
Player_LoginDenyLong: Il tuo personaggio è molto sbronzo ed è svenuto. Riprova tra dieci minuti!
|
||||
Player_TriedToSay: '&v1 ha provato a dire: &0&v2'
|
||||
Player_Wake: Uhhhh... Che ci faccio qui? Come ci sono arrivato?
|
||||
Player_WakeAlreadyDeleted: '&cIl punto di risveglio con id &6&v1 &cè già stato rimosso!'
|
||||
Player_WakeCancel: '&6Il controllo dei punti di risveglio è stato annullato'
|
||||
Player_WakeCreated: '&aIl punto di risveglio con id &6&v1 &aè stato creato con successo!'
|
||||
Player_WakeDeleted: '&aIl punto di risveglio con id &6&v1 &aè stato rimosso con successo!'
|
||||
Player_WakeFilled: '&cIl punto di risveglio con id &6&v1&c alla posizione &6&v2 &v3, &v4, &v5&c è stato coperto da dei blocchi!'
|
||||
Player_WakeHint1: 'Per andare al prossimo punto di risveglio dai un pugno nell''aria o ripeti il comando'
|
||||
Player_WakeHint2: 'Per rimuoverlo: &9/br wakeup cancel'
|
||||
Player_WakeLast: '&aQuesto era l''ultimo punto di risveglio.'
|
||||
Player_WakeNoCheck: '&cNessun punto di risveglio attivo al momento.'
|
||||
Player_WakeNoPoints: '&cNon ci sono punti di risveglio!'
|
||||
Player_WakeNotExist: '&cIl punto di risveglio con id &6&v1 &cnon esiste!'
|
||||
Player_WakeTeleport: 'Teletrasportato al punto di risveglio di id &6&v1&f alla posizione &6&v2 &v3, &v4, &v5'
|
@ -1,74 +0,0 @@
|
||||
Brew_-times: -times
|
||||
Brew_BadPotion: Ruined Potion
|
||||
Brew_BarrelRiped: Barrel aged
|
||||
Brew_DistillUndefined: Indefinable Distillate
|
||||
Brew_Distilled: Distilled
|
||||
Brew_HundredsOfYears: Hundreds of Years
|
||||
Brew_Ingredients: Ingredients
|
||||
Brew_MinutePluralPostfix: s
|
||||
Brew_OneYear: One Year
|
||||
Brew_ThickBrew: Muddy Brewxxxxx
|
||||
Brew_Undefined: Indefinable Brew
|
||||
Brew_Woodtype: Woodtype
|
||||
Brew_Years: Years
|
||||
Brew_fermented: fermented
|
||||
Brew_minute: minute
|
||||
CMD_Copy_Error: '&6&v1 &cPotions did not fit into your inventory'
|
||||
CMD_Info_Drunk: '&v1 is &6&v2% &fdrunk, with a quality of &6&v3'
|
||||
CMD_Info_NotDrunk: '&v1 is not drunk'
|
||||
CMD_Player: '&a&v1 is now &6&v2% &adrunk, with a quality of &6&v3'
|
||||
CMD_Player_Error: '&cThe Quality has to be between 1 and 10!'
|
||||
CMD_Reload: '&aConfig was successfully reloaded'
|
||||
CMD_UnLabel: '&aLabel removed!'
|
||||
Error_ConfigUpdate: 'Unknown Brewery Config version: v&v1, Config was not Updated!'
|
||||
Error_ItemNotPotion: '&cThe Item in your hand could not be identified as Potion'
|
||||
Error_NoPermissions: '&cYou have no permission to do this!'
|
||||
Error_PlayerCommand: '&cThis command can only be executed as player'
|
||||
Error_Recipeload: '&cNot all recipes could be restored: More information in the Serverlog!'
|
||||
Error_ShowHelp: use &6/brew help &fto display the help
|
||||
Error_UnknownCommand: Unknown Command
|
||||
Etc_Barrel: Barrel
|
||||
Etc_Page: Page
|
||||
Etc_Usage: 'Usage:'
|
||||
Help_Copy: '&6/brew Copy <Quanitiy>&9 Copies the Potion in your Hand'
|
||||
Help_Delete: '&6/brew Delete &9Deletes the Potion in your Hand'
|
||||
Help_Help: '&6/brew help <Page> &9Shows a specific help-page'
|
||||
Help_Info: '&6/brew Info&9 Displays your current Drunkeness and Quality'
|
||||
Help_InfoOther: '&6/brew Info <Player>&9 Displays the current Drunkeness and Quality
|
||||
of <Player>'
|
||||
Help_Player: '&6/brew <Player> <%Drunkeness> <Quality>&9 Sets Drunkeness (and Quality)
|
||||
of a Player'
|
||||
Help_Reload: '&6/brew reload &9Reload config'
|
||||
Help_UnLabel: '&6/brew UnLabel &9Removes the detailled label of a Potion'
|
||||
Help_Wakeup: '&6/brew Wakeup List <Page>&9 Lists all Wakeup Points'
|
||||
Help_WakeupAdd: '&6/brew Wakeup Add &9Adds a Wakeup Point at your current Position'
|
||||
Help_WakeupCheck: '&6/brew Wakeup Check &9Teleports to all Wakeup Points'
|
||||
Help_WakeupCheckSpecific: '&6/brew Wakeup Check <id> &9Teleports to the Wakeup Point
|
||||
with <id>'
|
||||
Help_WakeupList: '&6/brew Wakeup List <Page> <World>&9 Lists all Wakeup Points of a
|
||||
World'
|
||||
Help_WakeupRemove: '&6/brew Wakeup Remove <id> &9Removes the Wakeup Point with <id>'
|
||||
Player_BarrelCreated: Barrel created
|
||||
Player_CantDrink: You can't drink any more
|
||||
Player_CauldronInfo1: This Cauldron seethes since &v1 minutes
|
||||
Player_CauldronInfo2: This Cauldron seethes since less than one minute
|
||||
Player_DrunkPassOut: You have drunken too much and fainted!
|
||||
Player_LoginDeny: Your character is drunk and does not react. Try again!
|
||||
Player_LoginDenyLong: Your character is really drunk and unconscious. Try again in 10 minutes!
|
||||
Player_TriedToSay: '&v1 tried to say: &0&v2'
|
||||
Player_Wake: Ohh no! I cannot remember how I got here...
|
||||
Player_WakeAlreadyDeleted: '&cThe Wakeup Point with the id: &6&v1 &chas already been
|
||||
deleted!'
|
||||
Player_WakeCancel: '&6Wakeup Point Check was cancelled'
|
||||
Player_WakeCreated: '&aWakeup Point with id: &6&v1 &awas created successfully!'
|
||||
Player_WakeDeleted: '&aThe Wakeup Point with the id: &6&v1 &awas successfully deleted!'
|
||||
Player_WakeFilled: '&cThe Wakeup Point with the id: &6&v1&c at position &6&v2 &v3,
|
||||
&v4, &v5&c is filled with Blocks!'
|
||||
Player_WakeHint1: 'To Next Wakeup Point: Punch your fist in the air'
|
||||
Player_WakeHint2: 'To Cancel: &9/brew wakeup cancel'
|
||||
Player_WakeLast: '&aThis was the last Wakeup Point'
|
||||
Player_WakeNoCheck: '&cNo Wakeup Point Check is currently active'
|
||||
Player_WakeNoPoints: '&cThere are no Wakeup Points!'
|
||||
Player_WakeNotExist: '&cThe Wakeup Point with the id: &6&v1 &cdoesn''t exist!'
|
||||
Player_WakeTeleport: 'Teleport to Wakeup Point with the id: &6&v1&f At position: &6&v2
|
||||
&v3, &v4, &v5'
|
@ -13,7 +13,7 @@ import org.bukkit.material.Cauldron;
|
||||
import org.bukkit.material.MaterialData;
|
||||
|
||||
public class BCauldron {
|
||||
public static CopyOnWriteArrayList<BCauldron> bcauldrons = new CopyOnWriteArrayList<BCauldron>();
|
||||
public static CopyOnWriteArrayList<BCauldron> bcauldrons = new CopyOnWriteArrayList<>();
|
||||
|
||||
private BIngredients ingredients = new BIngredients();
|
||||
private Block block;
|
||||
|
@ -9,14 +9,14 @@ import org.bukkit.potion.PotionEffectType;
|
||||
import java.util.*;
|
||||
|
||||
public class BIngredients {
|
||||
public static Set<Material> possibleIngredients = new HashSet<Material>();
|
||||
public static ArrayList<BRecipe> recipes = new ArrayList<BRecipe>();
|
||||
public static Map<Material, String> cookedNames = new HashMap<Material, String>();
|
||||
public static Set<Material> possibleIngredients = new HashSet<>();
|
||||
public static ArrayList<BRecipe> recipes = new ArrayList<>();
|
||||
public static Map<Material, String> cookedNames = new HashMap<>();
|
||||
private static int lastId = 0;
|
||||
|
||||
private int id;
|
||||
private ArrayList<ItemStack> ingredients = new ArrayList<ItemStack>();
|
||||
private Map<Material, Integer> materials = new HashMap<Material, Integer>(); // Merged List Of ingredients that doesnt consider Durability
|
||||
private ArrayList<ItemStack> ingredients = new ArrayList<>();
|
||||
private Map<Material, Integer> materials = new HashMap<>(); // Merged List Of ingredients that doesnt consider Durability
|
||||
private int cookedTime;
|
||||
|
||||
// Represents ingredients in Cauldron, Brew
|
||||
@ -225,7 +225,7 @@ public class BIngredients {
|
||||
// when ingredients are not complete
|
||||
return -1;
|
||||
}
|
||||
ArrayList<Material> mergedChecked = new ArrayList<Material>();
|
||||
ArrayList<Material> mergedChecked = new ArrayList<>();
|
||||
for (ItemStack ingredient : ingredients) {
|
||||
if (mergedChecked.contains(ingredient.getType())) {
|
||||
// This ingredient type was already checked as part of a merged material
|
||||
@ -334,7 +334,7 @@ public class BIngredients {
|
||||
|
||||
//convert the ingredient Material to String
|
||||
public Map<String, Integer> serializeIngredients() {
|
||||
Map<String, Integer> mats = new HashMap<String, Integer>();
|
||||
Map<String, Integer> mats = new HashMap<>();
|
||||
for (ItemStack item : ingredients) {
|
||||
String mat = item.getType().name() + "," + item.getDurability();
|
||||
mats.put(mat, item.getAmount());
|
||||
|
@ -1,10 +1,6 @@
|
||||
package com.dre.brewery;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang.mutable.MutableInt;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
@ -17,14 +13,24 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
|
||||
public class BPlayer {
|
||||
private static Map<String, BPlayer> players = new HashMap<String, BPlayer>();// Players name/uuid and BPlayer
|
||||
private static Map<Player, Integer> pTasks = new HashMap<Player, Integer>();// Player and count
|
||||
private static Map<String, BPlayer> players = new HashMap<>();// Players name/uuid and BPlayer
|
||||
private static Map<Player, MutableInt> pTasks = new HashMap<>();// Player and count
|
||||
private static int taskId;
|
||||
private static boolean modAge = true;
|
||||
private static Random pukeRand;
|
||||
private static Method gh;
|
||||
private static Field age;
|
||||
|
||||
// Settings
|
||||
public static Map<Material, Integer> drainItems = new HashMap<Material, Integer>();// DrainItem Material and Strength
|
||||
public static Map<Material, Integer> drainItems = new HashMap<>();// DrainItem Material and Strength
|
||||
public static Material pukeItem;
|
||||
public static int pukeDespawntime;
|
||||
public static int hangoverTime;
|
||||
public static boolean overdrinkKick;
|
||||
public static boolean enableHome;
|
||||
@ -34,7 +40,6 @@ public class BPlayer {
|
||||
|
||||
private int quality = 0;// = quality of drunkeness * drunkeness
|
||||
private int drunkeness = 0;// = amount of drunkeness
|
||||
private boolean passedOut = false;// if kicked because of drunkeness
|
||||
private int offlineDrunk = 0;// drunkeness when gone offline
|
||||
private Vector push = new Vector(0, 0, 0);
|
||||
private int time = 20;
|
||||
@ -43,11 +48,10 @@ public class BPlayer {
|
||||
}
|
||||
|
||||
// reading from file
|
||||
public BPlayer(String name, int quality, int drunkeness, int offlineDrunk, Boolean passedOut) {
|
||||
public BPlayer(String name, int quality, int drunkeness, int offlineDrunk) {
|
||||
this.quality = quality;
|
||||
this.drunkeness = drunkeness;
|
||||
this.offlineDrunk = offlineDrunk;
|
||||
this.passedOut = passedOut;
|
||||
players.put(name, this);
|
||||
}
|
||||
|
||||
@ -159,11 +163,11 @@ public class BPlayer {
|
||||
|
||||
// Player has drunken too much
|
||||
public void drinkCap(Player player) {
|
||||
quality = getQuality() * 100;
|
||||
drunkeness = 100;
|
||||
if (overdrinkKick && !player.hasPermission("brewery.bypass.overdrink")) {
|
||||
passOut(player);
|
||||
} else {
|
||||
quality = getQuality() * 100;
|
||||
drunkeness = 100;
|
||||
addPuke(player, 60 + (int) (Math.random() * 60.0));
|
||||
P.p.msg(player, P.p.languageReader.get("Player_CantDrink"));
|
||||
}
|
||||
@ -254,7 +258,6 @@ public class BPlayer {
|
||||
public void passOut(Player player) {
|
||||
player.kickPlayer(P.p.languageReader.get("Player_DrunkPassOut"));
|
||||
offlineDrunk = drunkeness;
|
||||
passedOut = true;
|
||||
}
|
||||
|
||||
|
||||
@ -272,11 +275,7 @@ public class BPlayer {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
if (drunkeness <= 80) {
|
||||
if (passedOut) {
|
||||
// he has suffered enough. Let him through
|
||||
return 0;
|
||||
}
|
||||
if (drunkeness <= 90) {
|
||||
if (Math.random() > 0.4) {
|
||||
return 0;
|
||||
} else {
|
||||
@ -284,12 +283,10 @@ public class BPlayer {
|
||||
}
|
||||
}
|
||||
if (drunkeness <= 100) {
|
||||
if (!passedOut) {
|
||||
if (Math.random() > 0.6) {
|
||||
return 0;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
if (Math.random() > 0.6) {
|
||||
return 0;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
return 3;
|
||||
@ -331,7 +328,6 @@ public class BPlayer {
|
||||
}
|
||||
|
||||
offlineDrunk = 0;
|
||||
passedOut = false;
|
||||
}
|
||||
|
||||
public void disconnecting() {
|
||||
@ -389,17 +385,21 @@ public class BPlayer {
|
||||
}
|
||||
}, 1L, 1L);
|
||||
}
|
||||
pTasks.put(player, count);
|
||||
pTasks.put(player, new MutableInt(count));
|
||||
}
|
||||
|
||||
public static void pukeTask() {
|
||||
for (Player player : pTasks.keySet()) {
|
||||
for (Iterator<Map.Entry<Player, MutableInt>> iter = pTasks.entrySet().iterator(); iter.hasNext(); ) {
|
||||
Map.Entry<Player, MutableInt> entry = iter.next();
|
||||
Player player = entry.getKey();
|
||||
MutableInt count = entry.getValue();
|
||||
if (!player.isValid() || !player.isOnline()) {
|
||||
iter.remove();
|
||||
}
|
||||
puke(player);
|
||||
int newCount = pTasks.get(player) - 1;
|
||||
if (newCount == 0) {
|
||||
pTasks.remove(player);
|
||||
} else {
|
||||
pTasks.put(player, newCount);
|
||||
count.decrement();
|
||||
if (count.intValue() <= 0) {
|
||||
iter.remove();
|
||||
}
|
||||
}
|
||||
if (pTasks.isEmpty()) {
|
||||
@ -408,15 +408,55 @@ public class BPlayer {
|
||||
}
|
||||
|
||||
public static void puke(Player player) {
|
||||
if (pukeRand == null) {
|
||||
pukeRand = new Random();
|
||||
}
|
||||
if (pukeItem == null || pukeItem == Material.AIR) {
|
||||
pukeItem = Material.SOUL_SAND;
|
||||
}
|
||||
Location loc = player.getLocation();
|
||||
loc.setY(loc.getY() + 1.1);
|
||||
loc.setPitch(loc.getPitch() - 10 + pukeRand.nextInt(20));
|
||||
loc.setYaw(loc.getYaw() - 10 + pukeRand.nextInt(20));
|
||||
Vector direction = loc.getDirection();
|
||||
direction.multiply(0.5);
|
||||
loc.setY(loc.getY() + 1.5);
|
||||
loc.setPitch(loc.getPitch() + 10);
|
||||
loc.add(direction);
|
||||
Item item = player.getWorld().dropItem(loc, new ItemStack(pukeItem));
|
||||
item.setVelocity(direction);
|
||||
item.setPickupDelay(Integer.MAX_VALUE);
|
||||
item.setPickupDelay(32767); // Item can never be picked up when pickup delay is 32767
|
||||
//item.setTicksLived(6000 - pukeDespawntime); // Well this does not work...
|
||||
if (modAge) {
|
||||
if (pukeDespawntime >= 5800) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (gh == null) {
|
||||
gh = Class.forName(P.p.getServer().getClass().getPackage().getName() + ".entity.CraftItem").getMethod("getHandle", (Class<?>[]) null);
|
||||
}
|
||||
Object entityItem = gh.invoke(item, (Object[]) null);
|
||||
if (age == null) {
|
||||
age = entityItem.getClass().getDeclaredField("age");
|
||||
age.setAccessible(true);
|
||||
}
|
||||
|
||||
// Setting the age determines when an item is despawned. At age 6000 it is removed.
|
||||
if (pukeDespawntime <= 0) {
|
||||
// Just show the item for a tick
|
||||
age.setInt(entityItem, 5999);
|
||||
} else if (pukeDespawntime <= 120) {
|
||||
// it should despawn in less than 6 sec. Add up to half of that randomly
|
||||
age.setInt(entityItem, 6000 - pukeDespawntime + pukeRand.nextInt((int) (pukeDespawntime / 2F)));
|
||||
} else {
|
||||
// Add up to 5 sec randomly
|
||||
age.setInt(entityItem, 6000 - pukeDespawntime + pukeRand.nextInt(100));
|
||||
}
|
||||
return;
|
||||
} catch (InvocationTargetException | ClassNotFoundException | NoSuchFieldException | IllegalAccessException | NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
modAge = false;
|
||||
P.p.errorLog("Failed to set Despawn Time on item " + pukeItem.name());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -534,9 +574,6 @@ public class BPlayer {
|
||||
if (bPlayer.offlineDrunk != 0) {
|
||||
section.set("offDrunk", bPlayer.offlineDrunk);
|
||||
}
|
||||
if (bPlayer.passedOut) {
|
||||
section.set("passedOut", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,15 +12,16 @@ import java.util.List;
|
||||
public class BRecipe {
|
||||
|
||||
private String[] name;
|
||||
private ArrayList<ItemStack> ingredients = new ArrayList<ItemStack>();// material and amount
|
||||
private int cookingTime;// time to cook in cauldron
|
||||
private int distillruns;// runs through the brewer
|
||||
private byte wood;// type of wood the barrel has to consist of
|
||||
private int age;// time in minecraft days for the potions to age in barrels
|
||||
private String color;// color of the destilled/finished potion
|
||||
private int difficulty;// difficulty to brew the potion, how exact the instruction has to be followed
|
||||
private int alcohol;// Alcohol in perfect potion
|
||||
private ArrayList<BEffect> effects = new ArrayList<BEffect>(); // Special Effects when drinking
|
||||
private ArrayList<ItemStack> ingredients = new ArrayList<>(); // material and amount
|
||||
private int cookingTime; // time to cook in cauldron
|
||||
private int distillruns; // runs through the brewer
|
||||
private int distillTime; // time for one distill run in seconds
|
||||
private byte wood; // type of wood the barrel has to consist of
|
||||
private int age; // time in minecraft days for the potions to age in barrels
|
||||
private String color; // color of the destilled/finished potion
|
||||
private int difficulty; // difficulty to brew the potion, how exact the instruction has to be followed
|
||||
private int alcohol; // Alcohol in perfect potion
|
||||
private ArrayList<BEffect> effects = new ArrayList<>(); // Special Effects when drinking
|
||||
|
||||
public BRecipe(ConfigurationSection configSectionRecipes, String recipeId) {
|
||||
String nameList = configSectionRecipes.getString(recipeId + ".name");
|
||||
@ -63,6 +64,11 @@ public class BRecipe {
|
||||
if (durability == -1 && vaultItem.getSubTypeId() != 0) {
|
||||
durability = vaultItem.getSubTypeId();
|
||||
}
|
||||
if (mat == Material.LEAVES) {
|
||||
if (durability > 3) {
|
||||
durability -= 4; // Vault has leaves with higher durability
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
P.p.errorLog("Could not check vault for Item Name");
|
||||
@ -83,13 +89,14 @@ public class BRecipe {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.cookingTime = configSectionRecipes.getInt(recipeId + ".cookingtime");
|
||||
this.distillruns = configSectionRecipes.getInt(recipeId + ".distillruns");
|
||||
this.wood = (byte) configSectionRecipes.getInt(recipeId + ".wood");
|
||||
this.age = configSectionRecipes.getInt(recipeId + ".age");
|
||||
this.cookingTime = configSectionRecipes.getInt(recipeId + ".cookingtime", 1);
|
||||
this.distillruns = configSectionRecipes.getInt(recipeId + ".distillruns", 0);
|
||||
this.distillTime = configSectionRecipes.getInt(recipeId + ".distilltime", 0) * 20;
|
||||
this.wood = (byte) configSectionRecipes.getInt(recipeId + ".wood", 0);
|
||||
this.age = configSectionRecipes.getInt(recipeId + ".age", 0);
|
||||
this.color = configSectionRecipes.getString(recipeId + ".color");
|
||||
this.difficulty = configSectionRecipes.getInt(recipeId + ".difficulty");
|
||||
this.alcohol = configSectionRecipes.getInt(recipeId + ".alcohol");
|
||||
this.difficulty = configSectionRecipes.getInt(recipeId + ".difficulty", 0);
|
||||
this.alcohol = configSectionRecipes.getInt(recipeId + ".alcohol", 0);
|
||||
|
||||
List<String> effectStringList = configSectionRecipes.getStringList(recipeId + ".effects");
|
||||
if (effectStringList != null) {
|
||||
@ -104,6 +111,57 @@ public class BRecipe {
|
||||
}
|
||||
}
|
||||
|
||||
// check every part of the recipe for validity
|
||||
public boolean isValid() {
|
||||
if (name == null || name.length < 1) {
|
||||
P.p.errorLog("Recipe Name missing or invalid!");
|
||||
return false;
|
||||
}
|
||||
if (getName(5) == null || getName(5).length() < 1) {
|
||||
P.p.errorLog("Recipe Name invalid");
|
||||
return false;
|
||||
}
|
||||
if (ingredients == null || ingredients.isEmpty()) {
|
||||
P.p.errorLog("No ingredients could be loaded for Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (cookingTime < 1) {
|
||||
P.p.errorLog("Invalid cooking time '" + cookingTime + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (distillruns < 0) {
|
||||
P.p.errorLog("Invalid distillruns '" + distillruns + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (distillTime < 0) {
|
||||
P.p.errorLog("Invalid distilltime '" + distillTime + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (wood < 0 || wood > 6) {
|
||||
P.p.errorLog("Invalid wood type '" + wood + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (age < 0) {
|
||||
P.p.errorLog("Invalid age time '" + age + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
Brew.PotionColor.valueOf(getColor());
|
||||
} catch (IllegalArgumentException e) {
|
||||
P.p.errorLog("Invalid Color '" + color + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (difficulty < 0 || difficulty > 10) {
|
||||
P.p.errorLog("Invalid difficulty '" + difficulty + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
if (alcohol < 0) {
|
||||
P.p.errorLog("Invalid alcohol '" + alcohol + "' in Recipe: " + getName(5));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// allowed deviation to the recipes count of ingredients at the given difficulty
|
||||
public int allowedCountDiff(int count) {
|
||||
if (count < 8) {
|
||||
@ -192,7 +250,7 @@ public class BRecipe {
|
||||
|
||||
int uid = Brew.generateUID();
|
||||
|
||||
ArrayList<ItemStack> list = new ArrayList<ItemStack>(ingredients.size());
|
||||
ArrayList<ItemStack> list = new ArrayList<>(ingredients.size());
|
||||
for (ItemStack item : ingredients) {
|
||||
if (item.getDurability() == -1) {
|
||||
list.add(new ItemStack(item.getType(), item.getAmount()));
|
||||
@ -218,11 +276,6 @@ public class BRecipe {
|
||||
return potion;
|
||||
}
|
||||
|
||||
// true if name and ingredients are correct
|
||||
public boolean isValid() {
|
||||
return (name != null && ingredients != null && !ingredients.isEmpty());
|
||||
}
|
||||
|
||||
|
||||
// Getter
|
||||
|
||||
@ -269,6 +322,10 @@ public class BRecipe {
|
||||
return distillruns;
|
||||
}
|
||||
|
||||
public int getDistillTime() {
|
||||
return distillTime;
|
||||
}
|
||||
|
||||
public String getColor() {
|
||||
if (color != null) {
|
||||
return color.toUpperCase();
|
||||
|
@ -18,6 +18,7 @@ import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.material.Stairs;
|
||||
import org.bukkit.material.Tree;
|
||||
import org.bukkit.material.Wood;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
@ -29,7 +30,7 @@ import org.apache.commons.lang.ArrayUtils;
|
||||
|
||||
public class Barrel implements InventoryHolder {
|
||||
|
||||
public static CopyOnWriteArrayList<Barrel> barrels = new CopyOnWriteArrayList<Barrel>();
|
||||
public static CopyOnWriteArrayList<Barrel> barrels = new CopyOnWriteArrayList<>();
|
||||
private static int check = 0;
|
||||
|
||||
private Block spigot;
|
||||
@ -623,61 +624,72 @@ public class Barrel implements InventoryHolder {
|
||||
|
||||
// woodtype of the block the spigot is attached to
|
||||
public byte getWood() {
|
||||
int direction = getDirection(this.spigot);// 1=x+ 2=x- 3=z+ 4=z-
|
||||
Block wood;
|
||||
if (direction == 0) {
|
||||
return 0;
|
||||
} else if (direction == 1) {
|
||||
wood = this.spigot.getRelative(1, 0, 0);
|
||||
} else if (direction == 2) {
|
||||
wood = this.spigot.getRelative(-1, 0, 0);
|
||||
} else if (direction == 3) {
|
||||
wood = this.spigot.getRelative(0, 0, 1);
|
||||
} else {
|
||||
wood = this.spigot.getRelative(0, 0, -1);
|
||||
}
|
||||
if (wood.getType() == Material.WOOD) {
|
||||
MaterialData data = wood.getState().getData();
|
||||
if (data instanceof Tree) {
|
||||
TreeSpecies woodType = ((Tree) data).getSpecies();
|
||||
if (woodType == TreeSpecies.GENERIC){
|
||||
return 2;
|
||||
} else if (woodType == TreeSpecies.REDWOOD) {
|
||||
return 4;
|
||||
} else if (woodType == TreeSpecies.BIRCH) {
|
||||
return 1;
|
||||
} else if (woodType == TreeSpecies.JUNGLE) {
|
||||
return 3;
|
||||
} else if (woodType == TreeSpecies.ACACIA) {
|
||||
return 5;
|
||||
} else if (woodType == TreeSpecies.DARK_OAK) {
|
||||
return 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (wood.getType() == Material.WOOD_STAIRS) {
|
||||
return 2;
|
||||
}
|
||||
if (wood.getType() == Material.SPRUCE_WOOD_STAIRS) {
|
||||
return 4;
|
||||
}
|
||||
if (wood.getType() == Material.BIRCH_WOOD_STAIRS) {
|
||||
return 1;
|
||||
}
|
||||
if (wood.getType() == Material.JUNGLE_WOOD_STAIRS) {
|
||||
return 3;
|
||||
switch (getDirection(spigot)) { // 1=x+ 2=x- 3=z+ 4=z-
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
wood = spigot.getRelative(1, 0, 0);
|
||||
break;
|
||||
case 2:
|
||||
wood = spigot.getRelative(-1, 0, 0);
|
||||
break;
|
||||
case 3:
|
||||
wood = spigot.getRelative(0, 0, 1);
|
||||
break;
|
||||
default:
|
||||
wood = spigot.getRelative(0, 0, -1);
|
||||
}
|
||||
try {
|
||||
if (wood.getType() == Material.ACACIA_STAIRS) {
|
||||
return 5;
|
||||
switch (wood.getType()) {
|
||||
case WOOD:
|
||||
MaterialData data = wood.getState().getData();
|
||||
TreeSpecies woodType;
|
||||
if (data instanceof Tree) {
|
||||
woodType = ((Tree) data).getSpecies();
|
||||
} else if (data instanceof Wood) {
|
||||
woodType = ((Wood) data).getSpecies();
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (woodType) {
|
||||
case GENERIC:
|
||||
return 2;
|
||||
case REDWOOD:
|
||||
return 4;
|
||||
case BIRCH:
|
||||
return 1;
|
||||
case JUNGLE:
|
||||
return 3;
|
||||
case ACACIA:
|
||||
return 5;
|
||||
case DARK_OAK:
|
||||
return 6;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WOOD_STAIRS:
|
||||
return 2;
|
||||
case SPRUCE_WOOD_STAIRS:
|
||||
return 4;
|
||||
case BIRCH_WOOD_STAIRS:
|
||||
return 1;
|
||||
case JUNGLE_WOOD_STAIRS:
|
||||
return 3;
|
||||
case ACACIA_STAIRS:
|
||||
return 5;
|
||||
case DARK_OAK_STAIRS:
|
||||
return 6;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
if (wood.getType() == Material.DARK_OAK_STAIRS) {
|
||||
return 6;
|
||||
}
|
||||
} catch (NoSuchFieldError e) {
|
||||
|
||||
} catch (NoSuchFieldError | NoClassDefFoundError e) {
|
||||
// Using older minecraft versions some fields and classes do not exist
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// returns the Sign of a large barrel, the spigot if there is none
|
||||
@ -766,7 +778,7 @@ public class Barrel implements InventoryHolder {
|
||||
int endX;
|
||||
int endZ;
|
||||
|
||||
ArrayList<Integer> stairs = new ArrayList<Integer>();
|
||||
ArrayList<Integer> stairs = new ArrayList<>();
|
||||
|
||||
if (direction == 1) {
|
||||
startX = 1;
|
||||
@ -839,8 +851,8 @@ public class Barrel implements InventoryHolder {
|
||||
int endX;
|
||||
int endZ;
|
||||
|
||||
ArrayList<Integer> stairs = new ArrayList<Integer>();
|
||||
ArrayList<Integer> woods = new ArrayList<Integer>();
|
||||
ArrayList<Integer> stairs = new ArrayList<>();
|
||||
ArrayList<Integer> woods = new ArrayList<>();
|
||||
|
||||
if (direction == 1) {
|
||||
startX = 1;
|
||||
|
@ -20,7 +20,7 @@ public class Brew {
|
||||
|
||||
// represents the liquid in the brewed Potions
|
||||
|
||||
public static Map<Integer, Brew> potions = new HashMap<Integer, Brew>();
|
||||
public static Map<Integer, Brew> potions = new HashMap<>();
|
||||
public static long installTime = System.currentTimeMillis(); // plugin install time in millis after epoch
|
||||
public static Boolean colorInBarrels; // color the Lore while in Barrels
|
||||
public static Boolean colorInBrewer; // color the Lore while in Brewer
|
||||
@ -150,10 +150,7 @@ public class Brew {
|
||||
}
|
||||
|
||||
public boolean reloadRecipe() {
|
||||
if (currentRecipe != null) {
|
||||
return setRecipeFromString(currentRecipe.getName(5));
|
||||
}
|
||||
return true;
|
||||
return currentRecipe == null || setRecipeFromString(currentRecipe.getName(5));
|
||||
}
|
||||
|
||||
// Copy a Brew with a new unique ID and return its item
|
||||
@ -280,7 +277,7 @@ public class Brew {
|
||||
|
||||
// Do some regular updates
|
||||
public void touch() {
|
||||
lastUpdate = (int) ((float) (System.currentTimeMillis() - installTime) / 3600000F);
|
||||
lastUpdate = (int) ((double) (System.currentTimeMillis() - installTime) / 3600000D);
|
||||
}
|
||||
|
||||
public int getDistillRuns() {
|
||||
@ -332,16 +329,13 @@ public class Brew {
|
||||
// Distilling section ---------------
|
||||
|
||||
// distill all custom potions in the brewer
|
||||
public static void distillAll(BrewerInventory inv, Boolean[] contents) {
|
||||
int slot = 0;
|
||||
while (slot < 3) {
|
||||
if (contents[slot]) {
|
||||
public static void distillAll(BrewerInventory inv, Brew[] contents) {
|
||||
for (int slot = 0; slot < 3; slot++) {
|
||||
if (contents[slot] != null) {
|
||||
ItemStack slotItem = inv.getItem(slot);
|
||||
PotionMeta potionMeta = (PotionMeta) slotItem.getItemMeta();
|
||||
Brew brew = get(potionMeta);
|
||||
brew.distillSlot(slotItem, potionMeta);
|
||||
contents[slot].distillSlot(slotItem, potionMeta);
|
||||
}
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -385,6 +379,22 @@ public class Brew {
|
||||
slotItem.setItemMeta(potionMeta);
|
||||
}
|
||||
|
||||
public int getDistillTimeNextRun() {
|
||||
if (!canDistill()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (currentRecipe != null) {
|
||||
return currentRecipe.getDistillTime();
|
||||
}
|
||||
|
||||
BRecipe recipe = ingredients.getdistillRecipe(wood, ageTime);
|
||||
if (recipe != null) {
|
||||
return recipe.getDistillTime();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Ageing Section ------------------
|
||||
|
||||
public void age(ItemStack item, float time, byte woodType) {
|
||||
@ -573,7 +583,7 @@ public class Brew {
|
||||
meta.setLore(existingLore);
|
||||
return;
|
||||
}
|
||||
List<String> newLore = new ArrayList<String>();
|
||||
List<String> newLore = new ArrayList<>();
|
||||
newLore.add("");
|
||||
newLore.add(prefix + lore);
|
||||
meta.setLore(newLore);
|
||||
@ -581,7 +591,7 @@ public class Brew {
|
||||
|
||||
// Adds the Effect names to the Items description
|
||||
public static void addOrReplaceEffects(PotionMeta meta, ArrayList<BEffect> effects, int quality) {
|
||||
if (effects != null) {
|
||||
if (!P.use1_9 && effects != null) {
|
||||
for (BEffect effect : effects) {
|
||||
if (!effect.isHidden()) {
|
||||
effect.writeInto(meta, quality);
|
||||
@ -674,7 +684,7 @@ public class Brew {
|
||||
}
|
||||
}
|
||||
|
||||
public static enum PotionColor {
|
||||
public enum PotionColor {
|
||||
PINK(1, PotionType.REGEN),
|
||||
CYAN(2, PotionType.SPEED),
|
||||
ORANGE(3, PotionType.FIRE_RESISTANCE),
|
||||
@ -684,14 +694,14 @@ public class Brew {
|
||||
BLACK(8, PotionType.WEAKNESS),
|
||||
RED(9, PotionType.STRENGTH),
|
||||
GREY(10, PotionType.SLOWNESS),
|
||||
WATER(11, PotionType.WATER_BREATHING),
|
||||
WATER(11, P.use1_9 ? PotionType.WATER_BREATHING : null),
|
||||
DARK_RED(12, PotionType.INSTANT_DAMAGE),
|
||||
BRIGHT_GREY(14, PotionType.INVISIBILITY);
|
||||
|
||||
private final int colorId;
|
||||
private final PotionType type;
|
||||
|
||||
private PotionColor(int colorId, PotionType type) {
|
||||
PotionColor(int colorId, PotionType type) {
|
||||
this.colorId = colorId;
|
||||
this.type = type;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class P extends JavaPlugin {
|
||||
public static P p;
|
||||
public static final String configVersion = "1.3.1";
|
||||
public static final String configVersion = "1.5";
|
||||
public static boolean debug;
|
||||
public static boolean useUUID;
|
||||
public static boolean use1_9;
|
||||
@ -55,20 +55,21 @@ public class P extends JavaPlugin {
|
||||
public EntityListener entityListener;
|
||||
public InventoryListener inventoryListener;
|
||||
public WorldListener worldListener;
|
||||
public DrinkListener1_9 drinkListener1_9;
|
||||
|
||||
// Language
|
||||
public String language;
|
||||
public LanguageReader languageReader;
|
||||
|
||||
private CommandSender reloader;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
p = this;
|
||||
|
||||
// Version check
|
||||
String v = Bukkit.getBukkitVersion();
|
||||
useUUID = !v.matches(".*1\\.[0-6].*") && !v.matches(".*1\\.7\\.[0-5].*");
|
||||
use1_9 = !v.matches(".*1\\.[0-8].*");
|
||||
useUUID = !v.matches("(^|.*[^\\.\\d])1\\.[0-6]([^\\d].*|$)") && !v.matches("(^|.*[^\\.\\d])1\\.7\\.[0-5]([^\\d].*|$)");
|
||||
use1_9 = !v.matches("(^|.*[^\\.\\d])1\\.[0-8]([^\\d].*|$)");
|
||||
|
||||
// load the Config
|
||||
try {
|
||||
@ -94,7 +95,6 @@ public class P extends JavaPlugin {
|
||||
entityListener = new EntityListener();
|
||||
inventoryListener = new InventoryListener();
|
||||
worldListener = new WorldListener();
|
||||
drinkListener1_9 = new DrinkListener1_9();
|
||||
getCommand("Brewery").setExecutor(new CommandListener());
|
||||
|
||||
p.getServer().getPluginManager().registerEvents(blockListener, p);
|
||||
@ -103,7 +103,7 @@ public class P extends JavaPlugin {
|
||||
p.getServer().getPluginManager().registerEvents(inventoryListener, p);
|
||||
p.getServer().getPluginManager().registerEvents(worldListener, p);
|
||||
if (use1_9) {
|
||||
p.getServer().getPluginManager().registerEvents(drinkListener1_9, p);
|
||||
p.getServer().getPluginManager().registerEvents(new CauldronListener(), p);
|
||||
}
|
||||
|
||||
// Heartbeat
|
||||
@ -146,6 +146,8 @@ public class P extends JavaPlugin {
|
||||
Brew.potions.clear();
|
||||
Wakeup.wakeups.clear();
|
||||
Words.words.clear();
|
||||
Words.ignoreText.clear();
|
||||
Words.commands = null;
|
||||
|
||||
this.log(this.getDescription().getName() + " disabled!");
|
||||
}
|
||||
@ -158,11 +160,16 @@ public class P extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void reload(CommandSender sender) {
|
||||
if (sender != null && !sender.equals(getServer().getConsoleSender())) {
|
||||
reloader = sender;
|
||||
}
|
||||
// clear all existent config Data
|
||||
BIngredients.possibleIngredients.clear();
|
||||
BIngredients.recipes.clear();
|
||||
BIngredients.cookedNames.clear();
|
||||
Words.words.clear();
|
||||
Words.ignoreText.clear();
|
||||
Words.commands = null;
|
||||
BPlayer.drainItems.clear();
|
||||
if (useLB) {
|
||||
try {
|
||||
@ -200,6 +207,7 @@ public class P extends JavaPlugin {
|
||||
if (!successful) {
|
||||
msg(sender, p.languageReader.get("Error_Recipeload"));
|
||||
}
|
||||
reloader = null;
|
||||
}
|
||||
|
||||
public void msg(CommandSender sender, String msg) {
|
||||
@ -218,6 +226,9 @@ public class P extends JavaPlugin {
|
||||
|
||||
public void errorLog(String msg) {
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.DARK_GREEN + "[Brewery] " + ChatColor.DARK_RED + "ERROR: " + ChatColor.RED + msg);
|
||||
if (reloader != null) {
|
||||
reloader.sendMessage(ChatColor.DARK_GREEN + "[Brewery] " + ChatColor.DARK_RED + "ERROR: " + ChatColor.RED + msg);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean readConfig() {
|
||||
@ -237,6 +248,7 @@ public class P extends JavaPlugin {
|
||||
String version = config.getString("version", null);
|
||||
if (version != null) {
|
||||
if (!version.equals(configVersion)) {
|
||||
copyDefaultConfigs(true);
|
||||
new ConfigUpdater(file).update(version, language);
|
||||
P.p.log("Config Updated to version: " + configVersion);
|
||||
config = YamlConfiguration.loadConfiguration(file);
|
||||
@ -278,16 +290,11 @@ public class P extends JavaPlugin {
|
||||
BPlayer.enableHome = config.getBoolean("enableHome", false);
|
||||
BPlayer.enableLoginDisallow = config.getBoolean("enableLoginDisallow", false);
|
||||
BPlayer.enablePuke = config.getBoolean("enablePuke", false);
|
||||
BPlayer.pukeDespawntime = config.getInt("pukeDespawntime", 60) * 20;
|
||||
BPlayer.homeType = config.getString("homeType", null);
|
||||
Brew.colorInBarrels = config.getBoolean("colorInBarrels", false);
|
||||
Brew.colorInBrewer = config.getBoolean("colorInBrewer", false);
|
||||
PlayerListener.openEverywhere = config.getBoolean("openLargeBarrelEverywhere", false);
|
||||
Words.log = config.getBoolean("logRealChat", false);
|
||||
Words.commands = config.getStringList("distortCommands");
|
||||
Words.doSigns = config.getBoolean("distortSignText", false);
|
||||
for (String bypass : config.getStringList("distortBypass")) {
|
||||
Words.ignoreText.add(bypass.split(","));
|
||||
}
|
||||
|
||||
// loading recipes
|
||||
ConfigurationSection configSection = config.getConfigurationSection("recipes");
|
||||
@ -353,8 +360,18 @@ public class P extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
// telling Words the path, it will load it when needed
|
||||
Words.config = config;
|
||||
// Loading Words
|
||||
if (config.getBoolean("enableChatDistortion", false)) {
|
||||
for (Map<?, ?> map : config.getMapList("words")) {
|
||||
new Words(map);
|
||||
}
|
||||
for (String bypass : config.getStringList("distortBypass")) {
|
||||
Words.ignoreText.add(bypass.split(","));
|
||||
}
|
||||
Words.commands = config.getStringList("distortCommands");
|
||||
}
|
||||
Words.log = config.getBoolean("logRealChat", false);
|
||||
Words.doSigns = config.getBoolean("distortSignText", false);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -380,7 +397,7 @@ public class P extends JavaPlugin {
|
||||
}
|
||||
|
||||
// loading Ingredients into ingMap
|
||||
Map<String, BIngredients> ingMap = new HashMap<String, BIngredients>();
|
||||
Map<String, BIngredients> ingMap = new HashMap<>();
|
||||
ConfigurationSection section = data.getConfigurationSection("Ingredients");
|
||||
if (section != null) {
|
||||
for (String id : section.getKeys(false)) {
|
||||
@ -421,6 +438,7 @@ public class P extends JavaPlugin {
|
||||
// keys have players name
|
||||
for (String name : section.getKeys(false)) {
|
||||
try {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
UUID.fromString(name);
|
||||
if (!useUUID) {
|
||||
continue;
|
||||
@ -434,9 +452,8 @@ public class P extends JavaPlugin {
|
||||
int quality = section.getInt(name + ".quality");
|
||||
int drunk = section.getInt(name + ".drunk");
|
||||
int offDrunk = section.getInt(name + ".offDrunk", 0);
|
||||
boolean passedOut = section.getBoolean(name + ".passedOut", false);
|
||||
|
||||
new BPlayer(name, quality, drunk, offDrunk, passedOut);
|
||||
new BPlayer(name, quality, drunk, offDrunk);
|
||||
}
|
||||
}
|
||||
|
||||
@ -454,7 +471,7 @@ public class P extends JavaPlugin {
|
||||
}
|
||||
|
||||
public ArrayList<ItemStack> deserializeIngredients(ConfigurationSection matSection) {
|
||||
ArrayList<ItemStack> ingredients = new ArrayList<ItemStack>();
|
||||
ArrayList<ItemStack> ingredients = new ArrayList<>();
|
||||
for (String mat : matSection.getKeys(false)) {
|
||||
String[] matSplit = mat.split(",");
|
||||
ItemStack item = new ItemStack(Material.getMaterial(matSplit[0]), matSection.getInt(mat));
|
||||
@ -586,13 +603,14 @@ public class P extends JavaPlugin {
|
||||
File cfg = new File(p.getDataFolder(), "config.yml");
|
||||
if (!cfg.exists()) {
|
||||
errorLog("No config.yml found, creating default file! You may want to choose a config according to your language!");
|
||||
errorLog("You can find them in plugins/Brewery/configs/");
|
||||
InputStream defconf = getResource("config/en/config.yml");
|
||||
if (defconf == null) {
|
||||
errorLog("default config file not found, your jarfile may be corrupt. Disabling Brewery!");
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
saveFile(defconf, getDataFolder(), "config.yml");
|
||||
saveFile(defconf, getDataFolder(), "config.yml", false);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
@ -603,33 +621,24 @@ public class P extends JavaPlugin {
|
||||
return false;
|
||||
}
|
||||
|
||||
File configs = new File(getDataFolder(), "configs");
|
||||
if (!configs.exists()) {
|
||||
String lang[] = new String[] {"de", "en", "fr"};
|
||||
for (String l : lang) {
|
||||
File lfold = new File(configs, l);
|
||||
try {
|
||||
saveFile(getResource("config/" + l + "/config.yml"), lfold, "config.yml");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File languages = new File(getDataFolder(), "languages");
|
||||
if (!languages.exists()) {
|
||||
String lang[] = new String[] {"de", "en", "fr", "no"};
|
||||
for (String l : lang) {
|
||||
try {
|
||||
saveFile(getResource("languages/" + l + ".yml"), languages, l + ".yml");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
copyDefaultConfigs(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void copyDefaultConfigs(boolean overwrite) {
|
||||
File configs = new File(getDataFolder(), "configs");
|
||||
File languages = new File(getDataFolder(), "languages");
|
||||
for (String l : new String[] {"de", "en", "fr", "it"}) {
|
||||
File lfold = new File(configs, l);
|
||||
try {
|
||||
saveFile(getResource("config/" + l + "/config.yml"), lfold, "config.yml", overwrite);
|
||||
saveFile(getResource("languages/" + l + ".yml"), languages, l + ".yml", false); // Never overwrite languages for now
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Utility
|
||||
|
||||
public int parseInt(String string) {
|
||||
@ -755,14 +764,19 @@ public class P extends JavaPlugin {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public static void saveFile(InputStream in, File dest, String name) throws IOException {
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
public static void saveFile(InputStream in, File dest, String name, boolean overwrite) throws IOException {
|
||||
if (in == null) return;
|
||||
if (!dest.exists()) {
|
||||
dest.mkdirs();
|
||||
}
|
||||
File result = new File(dest, name);
|
||||
if (result.exists()) {
|
||||
return;
|
||||
if (overwrite) {
|
||||
result.delete();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
OutputStream out = new FileOutputStream(result);
|
||||
@ -813,6 +827,7 @@ public class P extends JavaPlugin {
|
||||
public class BreweryRunnable implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
reloader = null;
|
||||
for (BCauldron cauldron : BCauldron.bcauldrons) {
|
||||
cauldron.onUpdate();// runs every min to update cooking time
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class Wakeup {
|
||||
|
||||
public static ArrayList<Wakeup> wakeups = new ArrayList<Wakeup>();
|
||||
public static ArrayList<Wakeup> wakeups = new ArrayList<>();
|
||||
public static P p = P.p;
|
||||
public static int checkId = -1;
|
||||
public static Player checkPlayer = null;
|
||||
@ -28,7 +28,7 @@ public class Wakeup {
|
||||
return null;
|
||||
}
|
||||
|
||||
ArrayList<Wakeup> worldWakes = new ArrayList<Wakeup>();
|
||||
ArrayList<Wakeup> worldWakes = new ArrayList<>();
|
||||
|
||||
for (Wakeup wakeup : wakeups) {
|
||||
if (wakeup.active) {
|
||||
@ -44,6 +44,7 @@ public class Wakeup {
|
||||
|
||||
Wakeup w1 = calcRandom(worldWakes);
|
||||
worldWakes.remove(w1);
|
||||
if (w1 == null) return null;
|
||||
|
||||
while (!w1.check()) {
|
||||
p.errorLog("Please Check Wakeup-Location with id: &6" + wakeups.indexOf(w1));
|
||||
@ -119,7 +120,7 @@ public class Wakeup {
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> locs = new ArrayList<String>();
|
||||
ArrayList<String> locs = new ArrayList<>();
|
||||
for (int id = 0; id < wakeups.size(); id++) {
|
||||
|
||||
Wakeup wakeup = wakeups.get(id);
|
||||
|
@ -1,27 +1,24 @@
|
||||
package com.dre.brewery;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.lang.Character;
|
||||
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Words {
|
||||
|
||||
// represends Words and letters, that are replaced in drunk players messages
|
||||
|
||||
public static ArrayList<Words> words = new ArrayList<Words>();
|
||||
public static ArrayList<Words> words = new ArrayList<>();
|
||||
public static List<String> commands;
|
||||
public static List<String[]> ignoreText = new ArrayList<String[]>();
|
||||
public static FileConfiguration config;
|
||||
public static List<String[]> ignoreText = new ArrayList<>();
|
||||
public static Boolean doSigns;
|
||||
public static Boolean log;
|
||||
private static Map<String, Long> waitPlayers = new HashMap<String, Long>();
|
||||
private static Map<String, Long> waitPlayers = new HashMap<>();
|
||||
|
||||
private String from;
|
||||
private String to;
|
||||
@ -66,19 +63,11 @@ public class Words {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean loadWords() {
|
||||
if (words.isEmpty()) {
|
||||
// load when first drunk player talks
|
||||
load();
|
||||
}
|
||||
return !words.isEmpty();
|
||||
}
|
||||
|
||||
// Distort players words when he uses a command
|
||||
public static void playerCommand(PlayerCommandPreprocessEvent event) {
|
||||
BPlayer bPlayer = BPlayer.get(event.getPlayer());
|
||||
if (bPlayer != null) {
|
||||
if (!commands.isEmpty() && loadWords()) {
|
||||
if (commands != null && !commands.isEmpty() && !words.isEmpty()) {
|
||||
String name = event.getPlayer().getName();
|
||||
if (!waitPlayers.containsKey(name) || waitPlayers.get(name) + 500 < System.currentTimeMillis()) {
|
||||
String chat = event.getMessage();
|
||||
@ -108,7 +97,7 @@ public class Words {
|
||||
public static void signWrite(SignChangeEvent event) {
|
||||
BPlayer bPlayer = BPlayer.get(event.getPlayer());
|
||||
if (bPlayer != null) {
|
||||
if (loadWords()) {
|
||||
if (!words.isEmpty()) {
|
||||
int index = 0;
|
||||
for (String message : event.getLines()) {
|
||||
if (message.length() > 1) {
|
||||
@ -129,7 +118,7 @@ public class Words {
|
||||
public static void playerChat(AsyncPlayerChatEvent event) {
|
||||
BPlayer bPlayer = BPlayer.get(event.getPlayer());
|
||||
if (bPlayer != null) {
|
||||
if (loadWords()) {
|
||||
if (!words.isEmpty()) {
|
||||
String message = event.getMessage();
|
||||
if (log) {
|
||||
P.p.log(P.p.languageReader.get("Player_TriedToSay", event.getPlayer().getName(), message));
|
||||
@ -270,18 +259,10 @@ public class Words {
|
||||
boolean isBefore = !match;
|
||||
if (pre != null) {
|
||||
for (String pr : pre) {
|
||||
if (match) {
|
||||
// if one is correct, it is enough
|
||||
if (part.endsWith(pr) == match) {
|
||||
isBefore = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// if one is wrong, its over
|
||||
if (part.endsWith(pr) != match) {
|
||||
isBefore = false;
|
||||
break;
|
||||
}
|
||||
if (part.endsWith(pr)) {
|
||||
// If a match is wanted set isBefore to true, else to false
|
||||
isBefore = match;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -290,13 +271,4 @@ public class Words {
|
||||
return isBefore;
|
||||
}
|
||||
|
||||
// load from config file
|
||||
public static void load() {
|
||||
if (config != null) {
|
||||
for (Map<?, ?> map : config.getMapList("words")) {
|
||||
new Words(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,7 @@ import com.dre.brewery.P;
|
||||
|
||||
public class ConfigUpdater {
|
||||
|
||||
private ArrayList<String> config = new ArrayList<String>();
|
||||
private ArrayList<String> config = new ArrayList<>();
|
||||
private File file;
|
||||
|
||||
public ConfigUpdater(File file) {
|
||||
@ -89,9 +89,10 @@ public class ConfigUpdater {
|
||||
lang = "de";
|
||||
}
|
||||
}
|
||||
boolean de = lang.equals("de");
|
||||
|
||||
if (fromVersion.equals("0.5") || fromVersion.equals("1.0")) {
|
||||
if (lang.equals("de")) {
|
||||
if (de) {
|
||||
update05de();
|
||||
} else {
|
||||
update10en();
|
||||
@ -99,7 +100,7 @@ public class ConfigUpdater {
|
||||
fromVersion = "1.1";
|
||||
}
|
||||
if (fromVersion.equals("1.1") || fromVersion.equals("1.1.1")) {
|
||||
if (lang.equals("de")) {
|
||||
if (de) {
|
||||
update11de();
|
||||
} else {
|
||||
update11en();
|
||||
@ -108,7 +109,7 @@ public class ConfigUpdater {
|
||||
}
|
||||
|
||||
if (fromVersion.equals("1.2")) {
|
||||
if (lang.equals("de")) {
|
||||
if (de) {
|
||||
update12de();
|
||||
} else {
|
||||
update12en();
|
||||
@ -117,7 +118,7 @@ public class ConfigUpdater {
|
||||
}
|
||||
|
||||
if (fromVersion.equals("1.3")) {
|
||||
if (lang.equals("de")) {
|
||||
if (de) {
|
||||
update13de();
|
||||
} else {
|
||||
update13en();
|
||||
@ -125,7 +126,25 @@ public class ConfigUpdater {
|
||||
fromVersion = "1.3.1";
|
||||
}
|
||||
|
||||
if (!fromVersion.equals("1.3.1")) {
|
||||
if (fromVersion.equals("1.3.1")) {
|
||||
if (de) {
|
||||
update131de();
|
||||
} else {
|
||||
update131en();
|
||||
}
|
||||
fromVersion = "1.4";
|
||||
}
|
||||
|
||||
if (fromVersion.equals("1.4")) {
|
||||
if (de) {
|
||||
update14de();
|
||||
} else {
|
||||
update14en();
|
||||
}
|
||||
fromVersion = "1.5";
|
||||
}
|
||||
|
||||
if (!fromVersion.equals("1.5")) {
|
||||
P.p.log(P.p.languageReader.get("Error_ConfigUpdate", fromVersion));
|
||||
return;
|
||||
}
|
||||
@ -593,6 +612,7 @@ public class ConfigUpdater {
|
||||
|
||||
}
|
||||
|
||||
// Update de from 1.3 to 1.3.1
|
||||
private void update13de() {
|
||||
updateVersion("1.3.1");
|
||||
|
||||
@ -617,6 +637,8 @@ public class ConfigUpdater {
|
||||
addLines(index, lines);
|
||||
}
|
||||
}
|
||||
|
||||
// Update en from 1.3 to 1.3.1
|
||||
private void update13en() {
|
||||
updateVersion("1.3.1");
|
||||
|
||||
@ -642,5 +664,394 @@ public class ConfigUpdater {
|
||||
}
|
||||
}
|
||||
|
||||
// Update de from 1.3.1 to 1.4
|
||||
private void update131de() {
|
||||
updateVersion("1.4");
|
||||
|
||||
int index = indexOfStart("# SamplePlugin = installiertes home plugin. Unterstützt: ManagerXL.");
|
||||
if (index != -1) {
|
||||
config.remove(index);
|
||||
}
|
||||
|
||||
index = indexOfStart("# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort \"aufwacht\" (diese müssen durch '/br Wakeup add");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Ob der Spieler nach etwas kürzerem Ausloggen an einem zufälligen Ort \"aufwacht\" (diese müssen durch '/brew Wakeup add' von einem Admin festgelegt werden)");
|
||||
}
|
||||
|
||||
index = indexOfStart("# Ob der Spieler sich bei großer Trunkenheit teilweise nicht einloggen kann und kurz warten muss, da sein Charakter nicht reagiert");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Ob der Spieler bei großer Trunkenheit mehrmals probieren muss sich einzuloggen, da sein Charakter kurz nicht reagiert [true]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# Ob der Spieler sich übertrinken kann und dann in Ohnmacht fällt (gekickt wird)");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Ob der Spieler kurz in Ohnmacht fällt (vom Server gekickt wird) wenn er die maximale Trunkenheit erreicht [false]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# Das Item kann nicht aufgesammelt werden und bleibt bis zum Despawnen liegen. (Achtung:");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Das Item kann nicht aufgesammelt werden und bleibt bis zum Despawnen liegen.");
|
||||
}
|
||||
|
||||
String[] lines = new String[] { "",
|
||||
"# Zeit in Sekunden bis die pukeitems despawnen, (mc standard wäre 300 = 5 min) [60]",
|
||||
"# Wurde die item Despawnzeit in der spigot.yml verändert, verändert sich auch die pukeDespawnzeit in Abhängigkeit.",
|
||||
"pukeDespawntime: 60" };
|
||||
|
||||
index = indexOfStart("pukeItem:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("enablePuke:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# Konsumierbares Item") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("enableKickOnOverdrink:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("language:");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
|
||||
index = indexOfStart("# Färben der Iteminformationen je nach Qualität während sie sich 1. im Fass und/oder 2. im Braustand befinden [true, false]");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Färben der Iteminformationen je nach Qualität während sie sich 1. im Fass und/oder 2. im Braustand befinden [true, true]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# Wenn ein Update gefunden wurde, wird dies bei Serverstart im log angezeigt, sowie ops benachrichtigt");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Wenn ein Update gefunden wurde, wird dies bei Serverstart im log angezeigt, sowie OPs benachrichtigt");
|
||||
}
|
||||
|
||||
index = indexOfStart("# Eine Liste von allen Materialien kann hier gefunden werden: http://jd.bukkit.org");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Eine Liste von allen Materialien kann hier gefunden werden: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html");
|
||||
}
|
||||
|
||||
lines = new String[] { "# Wenn Vault installiert ist können normale englische Item Namen verwendet werden, anstatt Material, ID und Data!",
|
||||
"# Vault erkennt Namen wie \"Jungle Leaves\" anstatt \"LEAVES,3\". Dies macht es viel einfacher!" };
|
||||
|
||||
index = indexOfStart("# Es kann ein Data-Wert angegeben werden, weglassen");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Es kann ein Data-Wert (durability) angegeben werden, weglassen ignoriert diesen beim hinzufügen einer Zutat");
|
||||
addLines(index + 1, lines);
|
||||
} else {
|
||||
index = indexOfStart("# Eine Liste von allen Materialien kann hier");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# cookingtime: ") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# ingredients: Auflistung von");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# -- Rezepte für Getränke --") + 1;
|
||||
if (index == 0) {
|
||||
index = indexOfStart("# -- Verschiedene Einstellungen --");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
}
|
||||
|
||||
lines = new String[] { "# Effekte sind ab der 1.9 immer verborgen, wegen Änderungen an den Tränken." };
|
||||
index = indexOfStart("# Mögliche Effekte: http://jd.bukkit.org");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Mögliche Effekte: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html");
|
||||
addLines(index, lines);
|
||||
} else {
|
||||
index = indexOfStart("# Ein 'X' an den Namen anhängen, um");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# effects: ");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# -- Rezepte für Getränke --") + 1;
|
||||
}
|
||||
}
|
||||
if (index == 0) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
}
|
||||
|
||||
index = indexOfStart("# Text, der zwischen diesen Buchstaben");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Im Chat geschriebener Text, der zwischen diesen Buchstaben steht, wird nicht verändert (\",\" als Trennung verwenden) (Liste) [- '[,]']");
|
||||
}
|
||||
}
|
||||
|
||||
// Update en from 1.3.1 to 1.4
|
||||
private void update131en() {
|
||||
updateVersion("1.4");
|
||||
|
||||
int index = indexOfStart("# SamplePlugin = installed home plugin. Supports: ManagerXL.");
|
||||
if (index != -1) {
|
||||
config.remove(index);
|
||||
}
|
||||
|
||||
index = indexOfStart("# If the player \"wakes up\" at a random place when offline for some time while drinking (the places have to be defined with '/br Wakeup add'");
|
||||
if (index != -1) {
|
||||
setLine(index, "# If the player \"wakes up\" at a random place when offline for some time while drinking (the places have to be defined with '/brew Wakeup add' through an admin)");
|
||||
}
|
||||
|
||||
index = indexOfStart("# If the Player may get some logins denied, when his character is drunk");
|
||||
if (index != -1) {
|
||||
setLine(index, "# If the Player may have to try multiple times when logging in while extremely drunk [true]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# If the Player faints (gets kicked) for some minutes if he overdrinks");
|
||||
if (index != -1) {
|
||||
setLine(index, "# If the Player faints shortly (gets kicked from the server) if he drinks the max amount of alcohol possible [false]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# The item can not be collected and stays on the ground until it despawns. (Warning:");
|
||||
if (index != -1) {
|
||||
setLine(index, "# The item can not be collected and stays on the ground until it despawns.");
|
||||
}
|
||||
|
||||
String[] lines = new String[] { "",
|
||||
"# Time in seconds until the pukeitems despawn, (mc default is 300 = 5 min) [60]",
|
||||
"# If the item despawn time was changed in the spigot.yml, the pukeDespawntime changes as well.",
|
||||
"pukeDespawntime: 60" };
|
||||
|
||||
index = indexOfStart("pukeItem:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("enablePuke:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# Consumable Item") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("enableKickOnOverdrink:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("language:");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
|
||||
index = indexOfStart("# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, false]");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, true]");
|
||||
}
|
||||
|
||||
index = indexOfStart("# If an Update is found a Message is logged on Server-start and displayed to ops joining the game");
|
||||
if (index != -1) {
|
||||
setLine(index, "# If an Update is found a Message is logged on Server-start and displayed to OPs joining the game");
|
||||
}
|
||||
|
||||
index = indexOfStart("# A list of materials can be found here: http://jd.bukkit.org");
|
||||
if (index != -1) {
|
||||
setLine(index, "# A list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html");
|
||||
}
|
||||
|
||||
lines = new String[] { "# If Vault is installed normal names can be used instead of material or id, so using Vault is highly recommended.",
|
||||
"# Vault will recognize things like \"Jungle Leaves\" instead of \"LEAVES,3\"" };
|
||||
|
||||
index = indexOfStart("# You can specify a data value, omitting");
|
||||
if (index != -1) {
|
||||
setLine(index, "# You can specify a data (durability) value, omitting it will ignore the data value of the added ingredient");
|
||||
addLines(index + 1, lines);
|
||||
} else {
|
||||
index = indexOfStart("# A list of materials can be found");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# cookingtime: Time in real minutes") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# ingredients: ");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# -- Recipes for Potions --") + 1;
|
||||
if (index == 0) {
|
||||
index = indexOfStart("# -- Settings --");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
}
|
||||
|
||||
lines = new String[] { "# Effects are always hidden in 1.9 and newer, because of changes in the potion mechanics." };
|
||||
index = indexOfStart("# Possible Effects: http://jd.bukkit.org");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Possible Effects: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html");
|
||||
addLines(index, lines);
|
||||
} else {
|
||||
index = indexOfStart("# Suffix name with");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# effects: ");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# -- Recipes for Potions --") + 1;
|
||||
}
|
||||
}
|
||||
if (index == 0) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
}
|
||||
|
||||
index = indexOfStart("# Enclose a text with these Letters to bypass Chat Distortion");
|
||||
if (index != -1) {
|
||||
setLine(index, "# Enclose a Chat text with these Letters to bypass Chat Distortion (Use \",\" as Separator) (list) [- '[,]']");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Update de from 1.4 to 1.5
|
||||
private void update14de() {
|
||||
updateVersion("1.5");
|
||||
|
||||
String[] lines = new String[] {"",
|
||||
"# Ob geschriebener Chat bei großer Trunkenheit abgefälscht werden soll,",
|
||||
"# so dass es etwas betrunken aussieht was geschrieben wird.",
|
||||
"# Wie stark der Chat verändert wird hängt davon ab wie betrunken der Spieler ist",
|
||||
"# Unten kann noch eingestellt werden wie und was verändert wird",
|
||||
"enableChatDistortion: true"};
|
||||
|
||||
int index = indexOfStart("# -- Chat") + 2;
|
||||
if (index == 1) {
|
||||
index = indexOfStart("distortCommands:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("distortSignText:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# words:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("words:");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index - 1, lines);
|
||||
}
|
||||
|
||||
lines = new String[] {"# Also zum Beispiel im Chat: Hallo ich bin betrunken *Ich teste Brewery*"};
|
||||
|
||||
index = indexOfStart("# Im Chat geschriebener Text, der zwischen");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, lines);
|
||||
} else {
|
||||
index = indexOfStart("distortBypass:");
|
||||
if (index != -1) {
|
||||
addLines(index, lines);
|
||||
}
|
||||
}
|
||||
|
||||
lines = new String[] {"# distilltime: Wie lange (in sekunden) ein Destillations-Durchlauf braucht (0=Standard Zeit von 40 sek) MC Standard wäre 20 sek"};
|
||||
|
||||
index = indexOfStart("# distillruns:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# wood:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# -- Rezepte") + 1;
|
||||
if (index == 0) {
|
||||
index = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index != -1) {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
|
||||
index = indexOfStart(" name: Schlechtes Beispiel/Beispiel/Gutes Beispiel");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 60");
|
||||
}
|
||||
index = indexOfStart(" name: Bitterer Rum/Würziger Rum/&6Goldener Rum");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 30");
|
||||
}
|
||||
index = indexOfStart(" name: minderwertiger Absinth/Absinth/Starker Absinth");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 80");
|
||||
}
|
||||
}
|
||||
|
||||
// Update de from 1.4 to 1.5
|
||||
private void update14en() {
|
||||
updateVersion("1.5");
|
||||
|
||||
String[] lines = new String[] {"",
|
||||
"# If written Chat is distorted when the Player is Drunk,",
|
||||
"# so that it looks like drunk writing",
|
||||
"# How much the chat is distorted depends on how drunk the Player is",
|
||||
"# Below are settings for what and how changes in chat occur",
|
||||
"enableChatDistortion: true"};
|
||||
|
||||
int index = indexOfStart("# -- Chat") + 2;
|
||||
if (index == 1) {
|
||||
index = indexOfStart("distortCommands:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("distortSignText:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# words:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("words:");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == -1) {
|
||||
appendLines(lines);
|
||||
} else {
|
||||
addLines(index - 1, lines);
|
||||
}
|
||||
|
||||
lines = new String[] {"# Chat Example: Hello i am drunk *I am testing Brewery*"};
|
||||
|
||||
index = indexOfStart("# Enclose a Chat text with these Letters");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, lines);
|
||||
} else {
|
||||
index = indexOfStart("distortBypass:");
|
||||
if (index != -1) {
|
||||
addLines(index, lines);
|
||||
}
|
||||
}
|
||||
|
||||
lines = new String[] {"# distilltime: How long (in seconds) one distill-run takes (0=Default time of 40 sec) MC Default would be 20 sec"};
|
||||
|
||||
index = indexOfStart("# distillruns:");
|
||||
if (index == -1) {
|
||||
index = indexOfStart("# wood:") - 1;
|
||||
if (index == -2) {
|
||||
index = indexOfStart("# -- Recipes") + 1;
|
||||
if (index == 0) {
|
||||
index = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index != -1) {
|
||||
addLines(index + 1, lines);
|
||||
}
|
||||
|
||||
index = indexOfStart(" name: Bad Example/Example/Good Example");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 60");
|
||||
}
|
||||
index = indexOfStart(" name: Bitter Rum/Spicy Rum/&6Golden Rum");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 30");
|
||||
}
|
||||
index = indexOfStart(" name: Poor Absinthe/Absinthe/Strong Absinthe");
|
||||
if (index != -1) {
|
||||
addLines(index + 1, " distilltime: 80");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public class DataSave extends BukkitRunnable {
|
||||
}
|
||||
try {
|
||||
cancel();
|
||||
} catch (IllegalStateException e) {
|
||||
} catch (IllegalStateException ignored) {
|
||||
}
|
||||
|
||||
FileConfiguration configFile = new YamlConfiguration();
|
||||
|
@ -51,7 +51,7 @@ public class DataUpdater {
|
||||
ConfigurationSection matSection = section.getConfigurationSection(id + ".mats");
|
||||
if (matSection != null) {
|
||||
// matSection has all the materials + amount as Integers
|
||||
Map<String, Integer> ingredients = new HashMap<String, Integer>();
|
||||
Map<String, Integer> ingredients = new HashMap<>();
|
||||
for (String ingredient : matSection.getKeys(false)) {
|
||||
// convert to Material
|
||||
Material mat = Material.getMaterial(P.p.parseInt(ingredient));
|
||||
@ -81,7 +81,7 @@ public class DataUpdater {
|
||||
ConfigurationSection ingredientSection = cauldrons.getConfigurationSection(id + ".ingredients");
|
||||
if (ingredientSection != null) {
|
||||
// has all the materials + amount as Integers
|
||||
Map<String, Integer> ingredients = new HashMap<String, Integer>();
|
||||
Map<String, Integer> ingredients = new HashMap<>();
|
||||
for (String ingredient : ingredientSection.getKeys(false)) {
|
||||
// convert to Material
|
||||
Material mat = Material.getMaterial(P.p.parseInt(ingredient));
|
||||
|
@ -10,8 +10,8 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
public class LanguageReader {
|
||||
private Map<String, String> entries = new TreeMap<String, String>();
|
||||
private Map<String, String> defaults = new TreeMap<String, String>();
|
||||
private Map<String, String> entries = new TreeMap<>();
|
||||
private Map<String, String> defaults = new TreeMap<>();
|
||||
|
||||
private File file;
|
||||
private boolean changed;
|
||||
@ -110,15 +110,15 @@ public class LanguageReader {
|
||||
defaults.put("Perms_NoCauldronFill", "&cYou don't have permissions to fill bottles from this cauldron!");
|
||||
|
||||
/* Help */
|
||||
defaults.put("Help_Help", "&6/brew help <Page> &9Shows a specific help-page");
|
||||
defaults.put("Help_Player", "&6/brew <Player> <%Drunkeness> <Quality>&9 Sets Drunkeness (and Quality) of a Player");
|
||||
defaults.put("Help_Help", "&6/brew help [Page] &9Shows a specific help-page");
|
||||
defaults.put("Help_Player", "&6/brew <Player> <%Drunkeness> [Quality]&9 Sets Drunkeness (and Quality) of a Player");
|
||||
defaults.put("Help_Info", "&6/brew info&9 Displays your current Drunkeness and Quality");
|
||||
defaults.put("Help_UnLabel", "&6/brew unlabel &9Removes the detailled label of a potion");
|
||||
defaults.put("Help_Copy", "&6/brew copy <Quanitiy>&9 Copies the potion in your hand");
|
||||
defaults.put("Help_Copy", "&6/brew copy [Quantity]>&9 Copies the potion in your hand");
|
||||
defaults.put("Help_Delete", "&6/brew delete &9Deletes the potion in your hand");
|
||||
defaults.put("Help_InfoOther", "&6/brew info <Player>&9 Displays the current Drunkeness and Quality of <Player>");
|
||||
defaults.put("Help_InfoOther", "&6/brew info [Player]&9 Displays the current Drunkeness and Quality of [Player]");
|
||||
defaults.put("Help_Wakeup", "&6/brew wakeup list <Page>&9 Lists all wakeup points");
|
||||
defaults.put("Help_WakeupList", "&6/brew wakeup list <Page> <World>&9 Lists all wakeup points of <world>");
|
||||
defaults.put("Help_WakeupList", "&6/brew wakeup list <Page> [World]&9 Lists all wakeup points of [world]");
|
||||
defaults.put("Help_WakeupCheck", "&6/brew wakeup check &9Teleports to all wakeup points");
|
||||
defaults.put("Help_WakeupCheckSpecific", "&6/brew wakeup check <id> &9Teleports to the wakeup point with <id>");
|
||||
defaults.put("Help_WakeupAdd", "&6/brew wakeup add &9Adds a wakeup point at your current position");
|
||||
@ -126,7 +126,7 @@ public class LanguageReader {
|
||||
defaults.put("Help_Reload", "&6/brew reload &9Reload config");
|
||||
defaults.put("Help_Persist", "&6/brew persist &9Make Brew persistent -> copyable by any plugin and technique");
|
||||
defaults.put("Help_Static", "&6/brew static &9Make Brew static -> No further ageing or distilling");
|
||||
defaults.put("Help_Create", "&6/brew create <Recipe> <Quality> &9Create a Brew with optional quality (1-10)");
|
||||
defaults.put("Help_Create", "&6/brew create <Recipe> [Quality] [Player] &9Create a Brew with optional quality (1-10)");
|
||||
|
||||
/* Etc. */
|
||||
defaults.put("Etc_Usage", "Usage:");
|
||||
@ -143,6 +143,7 @@ public class LanguageReader {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
public void save() {
|
||||
if (changed) {
|
||||
/* Copy old File */
|
||||
|
@ -14,6 +14,7 @@ public class ReadOldData extends BukkitRunnable {
|
||||
public FileConfiguration data;
|
||||
public boolean done = false;
|
||||
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
@Override
|
||||
public void run() {
|
||||
File datafile = new File(P.p.getDataFolder(), "data.yml");
|
||||
|
@ -17,7 +17,7 @@ import static de.diddiz.util.BukkitUtils.compressInventory;
|
||||
import static de.diddiz.util.BukkitUtils.rawData;
|
||||
|
||||
public class LogBlockBarrel {
|
||||
private static final List<LogBlockBarrel> opened = new ArrayList<LogBlockBarrel>();
|
||||
private static final List<LogBlockBarrel> opened = new ArrayList<>();
|
||||
public static Consumer consumer = LogBlock.getInstance().getConsumer();
|
||||
|
||||
private HumanEntity player;
|
||||
|
@ -5,5 +5,5 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public interface WGBarrel {
|
||||
public abstract boolean checkAccess(Player player, Block spigot, Plugin plugin);
|
||||
boolean checkAccess(Player player, Block spigot, Plugin plugin);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ public class BlockListener implements Listener {
|
||||
public void onSignChange(SignChangeEvent event) {
|
||||
String[] lines = event.getLines();
|
||||
|
||||
if (lines[0].equalsIgnoreCase(P.p.languageReader.get("Etc_Barrel"))) {
|
||||
if (lines[0].equalsIgnoreCase("Barrel") || lines[0].equalsIgnoreCase(P.p.languageReader.get("Etc_Barrel"))) {
|
||||
Player player = event.getPlayer();
|
||||
if (!player.hasPermission("brewery.createbarrel.small") && !player.hasPermission("brewery.createbarrel.big")) {
|
||||
P.p.msg(player, P.p.languageReader.get("Perms_NoBarrelCreate"));
|
||||
|
22
src/com/dre/brewery/listeners/CauldronListener.java
Normal file
22
src/com/dre/brewery/listeners/CauldronListener.java
Normal file
@ -0,0 +1,22 @@
|
||||
package com.dre.brewery.listeners;
|
||||
|
||||
import com.dre.brewery.BCauldron;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.CauldronLevelChangeEvent;
|
||||
|
||||
public class CauldronListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onCauldronChange(CauldronLevelChangeEvent event) {
|
||||
if (event.getNewLevel() == 0 && event.getOldLevel() != 0) {
|
||||
if (event.getReason() == CauldronLevelChangeEvent.ChangeReason.BOTTLE_FILL) {
|
||||
return;
|
||||
}
|
||||
BCauldron.remove(event.getBlock());
|
||||
} else if (event.getNewLevel() == 3 && event.getOldLevel() != 3) {
|
||||
BCauldron.remove(event.getBlock());
|
||||
}
|
||||
}
|
||||
}
|
@ -163,7 +163,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
public ArrayList<String> getCommands(CommandSender sender) {
|
||||
|
||||
ArrayList<String> cmds = new ArrayList<String>();
|
||||
ArrayList<String> cmds = new ArrayList<>();
|
||||
cmds.add(p.languageReader.get("Help_Help"));
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.player")) {
|
||||
@ -353,6 +353,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void cmdCopy(CommandSender sender, int count) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
@ -389,6 +390,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void cmdDelete(CommandSender sender) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
@ -413,6 +415,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void cmdPersist(CommandSender sender) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
@ -441,6 +444,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void cmdStatic(CommandSender sender) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
@ -471,6 +475,7 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void cmdUnlabel(CommandSender sender) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
@ -494,29 +499,45 @@ public class CommandListener implements CommandExecutor {
|
||||
|
||||
public void cmdCreate(CommandSender sender, String[] args) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
if (args.length < 2) {
|
||||
p.msg(sender, p.languageReader.get("Etc_Usage"));
|
||||
p.msg(sender, p.languageReader.get("Help_Create"));
|
||||
return;
|
||||
}
|
||||
if (args.length < 2) {
|
||||
p.msg(sender, p.languageReader.get("Etc_Usage"));
|
||||
p.msg(sender, p.languageReader.get("Help_Create"));
|
||||
return;
|
||||
}
|
||||
|
||||
int quality = 10;
|
||||
boolean hasQuality = false;
|
||||
if (args.length > 2) {
|
||||
quality = p.parseInt(args[args.length - 1]);
|
||||
if (quality > 0 && quality <= 10) {
|
||||
hasQuality = true;
|
||||
} else {
|
||||
quality = 10;
|
||||
int quality = 10;
|
||||
boolean hasQuality = false;
|
||||
String pName = null;
|
||||
if (args.length > 2) {
|
||||
quality = p.parseInt(args[args.length - 1]);
|
||||
|
||||
if (quality <= 0 || quality > 10) {
|
||||
pName = args[args.length - 1];
|
||||
if (args.length > 3) {
|
||||
quality = p.parseInt(args[args.length - 2]);
|
||||
}
|
||||
}
|
||||
|
||||
int stringLength;
|
||||
if (hasQuality) {
|
||||
stringLength = args.length - 2;
|
||||
if (quality > 0 && quality <= 10) {
|
||||
hasQuality = true;
|
||||
} else {
|
||||
stringLength = args.length - 1;
|
||||
quality = 10;
|
||||
}
|
||||
}
|
||||
Player player = null;
|
||||
if (pName != null) {
|
||||
player = p.getServer().getPlayer(pName);
|
||||
}
|
||||
|
||||
if (sender instanceof Player || player != null) {
|
||||
if (player == null) {
|
||||
player = ((Player) sender);
|
||||
}
|
||||
int stringLength = args.length - 1;
|
||||
if (pName != null) {
|
||||
stringLength--;
|
||||
}
|
||||
if (hasQuality) {
|
||||
stringLength--;
|
||||
}
|
||||
|
||||
String name;
|
||||
@ -531,9 +552,6 @@ public class CommandListener implements CommandExecutor {
|
||||
name = args[1];
|
||||
}
|
||||
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (player.getInventory().firstEmpty() == -1) {
|
||||
p.msg(sender, p.languageReader.get("CMD_Copy_Error", "1"));
|
||||
return;
|
||||
|
@ -1,32 +0,0 @@
|
||||
package com.dre.brewery.listeners;
|
||||
|
||||
import com.dre.brewery.Brew;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.PotionMeta;
|
||||
import org.bukkit.potion.PotionData;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
// Workaround to remove unwanted potion effects
|
||||
public class DrinkListener1_9 implements Listener {
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||
public void onPlayerDrink(PlayerItemConsumeEvent event) {
|
||||
ItemStack item = event.getItem();
|
||||
if (item.getType() == Material.POTION) {
|
||||
PotionMeta meta = (PotionMeta) item.getItemMeta();
|
||||
Brew brew = Brew.get(meta);
|
||||
if (brew == null) {
|
||||
return;
|
||||
}
|
||||
// Throw away former "base" effect and replace with MUNDANE.
|
||||
meta.setBasePotionData(new PotionData(PotionType.MUNDANE, false, false));
|
||||
item.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,6 @@
|
||||
package com.dre.brewery.listeners;
|
||||
|
||||
import com.dre.brewery.BRecipe;
|
||||
import com.dre.brewery.Barrel;
|
||||
import com.dre.brewery.Brew;
|
||||
import com.dre.brewery.P;
|
||||
import com.dre.brewery.*;
|
||||
import com.dre.brewery.integration.LogBlockBarrel;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
@ -33,19 +30,14 @@ import java.util.UUID;
|
||||
* set of ingredients in the brewer can be distilled.
|
||||
* Nothing here should interfere with vanilla brewing.
|
||||
*
|
||||
* Note in testing I did discover a few ways to "hack" brewing to distill your brews alongside
|
||||
* potions; put fuel and at least one "valid" water bottle w/ a brewing component. You can distill
|
||||
* two brews this way, just remove them before the "final" distillation or you will actually
|
||||
* brew the potion as well.
|
||||
*
|
||||
* @author ProgrammerDan (1.9 distillation update only)
|
||||
*/
|
||||
public class InventoryListener implements Listener {
|
||||
|
||||
/* === Recreating manually the prior BrewEvent behavior. === */
|
||||
private HashSet<UUID> trackedBrewmen = new HashSet<UUID>();
|
||||
private HashMap<Block, Integer> trackedBrewers = new HashMap<Block, Integer>();
|
||||
private static final int DISTILLTIME = 401;
|
||||
private HashSet<UUID> trackedBrewmen = new HashSet<>();
|
||||
private HashMap<Block, Integer> trackedBrewers = new HashMap<>();
|
||||
private static final int DISTILLTIME = 400;
|
||||
|
||||
/**
|
||||
* Start tracking distillation for a person when they open the brewer window.
|
||||
@ -77,6 +69,15 @@ public class InventoryListener implements Listener {
|
||||
trackedBrewmen.remove(player.getUniqueId());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onBrewerDrag(InventoryDragEvent event) {
|
||||
if (!P.use1_9) return;
|
||||
// Workaround the Drag event when only clicking a slot
|
||||
if (event.getInventory() instanceof BrewerInventory) {
|
||||
onBrewerClick(new InventoryClickEvent(event.getView(), InventoryType.SlotType.CONTAINER, 0, ClickType.LEFT, InventoryAction.PLACE_ALL));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clicking can either start or stop the new brew distillation tracking.
|
||||
* Note that server restart will halt any ongoing brewing processes and
|
||||
@ -104,32 +105,48 @@ public class InventoryListener implements Listener {
|
||||
Integer curTask = trackedBrewers.get(brewery);
|
||||
if (curTask != null) {
|
||||
Bukkit.getScheduler().cancelTask(curTask); // cancel prior
|
||||
brewer.getHolder().setBrewingTime(0); // Fixes brewing continuing without fuel for normal potions
|
||||
}
|
||||
final int fuel = brewer.getHolder().getFuelLevel();
|
||||
|
||||
// Now check if we should bother to track it.
|
||||
trackedBrewers.put(brewery, new BukkitRunnable() {
|
||||
private int brewTime = DISTILLTIME;
|
||||
private int runTime = -1;
|
||||
private int brewTime = -1;
|
||||
@Override
|
||||
public void run() {
|
||||
BlockState now = brewery.getState();
|
||||
if (now instanceof BrewingStand) {
|
||||
BrewingStand stand = (BrewingStand) now;
|
||||
if (brewTime == DISTILLTIME) { // only check at the beginning (and end) for distillables
|
||||
if (!isCustom(stand.getInventory(), true)) {
|
||||
this.cancel();
|
||||
trackedBrewers.remove(brewery);
|
||||
P.p.debugLog("nothing to distill");
|
||||
return;
|
||||
if (brewTime == -1) { // only check at the beginning (and end) for distillables
|
||||
switch (hasCustom(stand.getInventory())) {
|
||||
case 1:
|
||||
// Custom potion but not for distilling. Stop any brewing and cancel this task
|
||||
if (stand.getBrewingTime() > 0) {
|
||||
// Brewing time is sent and stored as short
|
||||
// This sends a negative short value to the Client
|
||||
// In the client the Brewer will look like it is not doing anything
|
||||
stand.setBrewingTime(Short.MAX_VALUE << 1);
|
||||
stand.setFuelLevel(fuel);
|
||||
}
|
||||
case 0:
|
||||
// No custom potion, cancel and ignore
|
||||
this.cancel();
|
||||
trackedBrewers.remove(brewery);
|
||||
P.p.debugLog("nothing to distill");
|
||||
return;
|
||||
default:
|
||||
runTime = getLongestDistillTime(stand.getInventory());
|
||||
brewTime = runTime;
|
||||
P.p.debugLog("using brewtime: " + runTime);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
brewTime--; // count down.
|
||||
stand.setBrewingTime(brewTime); // arbitrary for now
|
||||
stand.setBrewingTime((int) ((float) brewTime / ((float) runTime / (float) DISTILLTIME)) + 1);
|
||||
|
||||
if (brewTime <= 1) { // Done!
|
||||
//BrewEvent doBrew = new BrewEvent(brewery, brewer);
|
||||
//Bukkit.getServer().getPluginManager().callEvent(doBrew);
|
||||
|
||||
BrewerInventory brewer = stand.getInventory();
|
||||
if (!runDistill(brewer)) {
|
||||
this.cancel();
|
||||
@ -137,7 +154,8 @@ public class InventoryListener implements Listener {
|
||||
stand.setBrewingTime(0);
|
||||
P.p.debugLog("All done distilling");
|
||||
} else {
|
||||
brewTime = DISTILLTIME; // go again.
|
||||
brewTime = -1; // go again.
|
||||
stand.setBrewingTime(0);
|
||||
P.p.debugLog("Can distill more! Continuing.");
|
||||
}
|
||||
}
|
||||
@ -150,30 +168,42 @@ public class InventoryListener implements Listener {
|
||||
}.runTaskTimer(P.p, 2L, 1L).getTaskId());
|
||||
}
|
||||
|
||||
private boolean isCustom(BrewerInventory brewer, boolean distill) {
|
||||
ItemStack item = brewer.getItem(3); // ingredient
|
||||
if (item == null || Material.GLOWSTONE_DUST != item.getType()) return false; // need dust in the top slot.
|
||||
// Returns a Brew or null for every Slot in the BrewerInventory
|
||||
private Brew[] getDistillContents(BrewerInventory inv) {
|
||||
ItemStack item;
|
||||
Brew[] contents = new Brew[3];
|
||||
for (int slot = 0; slot < 3; slot++) {
|
||||
item = brewer.getItem(slot);
|
||||
item = inv.getItem(slot);
|
||||
if (item != null) {
|
||||
if (item.getType() == Material.POTION) {
|
||||
if (item.hasItemMeta()) {
|
||||
int uid = Brew.getUID(item);
|
||||
Brew pot = Brew.potions.get(uid);
|
||||
if (pot != null && (!distill || pot.canDistill())) { // need at least one distillable potion.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
contents[slot] = Brew.get(item);
|
||||
}
|
||||
}
|
||||
return contents;
|
||||
}
|
||||
|
||||
private byte hasCustom(BrewerInventory brewer) {
|
||||
ItemStack item = brewer.getItem(3); // ingredient
|
||||
boolean glowstone = (item != null && Material.GLOWSTONE_DUST == item.getType()); // need dust in the top slot.
|
||||
byte customFound = 0;
|
||||
for (Brew brew : getDistillContents(brewer)) {
|
||||
if (brew != null) {
|
||||
if (!glowstone) {
|
||||
return 1;
|
||||
}
|
||||
if (brew.canDistill()) {
|
||||
return 2;
|
||||
} else {
|
||||
customFound = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return customFound;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBrew(BrewEvent event) {
|
||||
if (P.use1_9) {
|
||||
if (isCustom(event.getContents(), false)) {
|
||||
if (hasCustom(event.getContents()) != 0) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
@ -184,29 +214,16 @@ public class InventoryListener implements Listener {
|
||||
}
|
||||
|
||||
private boolean runDistill(BrewerInventory inv) {
|
||||
int slot = 0;
|
||||
ItemStack item;
|
||||
boolean custom = false;
|
||||
Boolean[] contents = new Boolean[3];
|
||||
while (slot < 3) {
|
||||
item = inv.getItem(slot);
|
||||
contents[slot] = false;
|
||||
if (item != null) {
|
||||
if (item.getType() == Material.POTION) {
|
||||
if (item.hasItemMeta()) {
|
||||
int uid = Brew.getUID(item);
|
||||
if (Brew.potions.containsKey(uid)) {
|
||||
// has custom potion in "slot"
|
||||
if (Brew.get(uid).canDistill()) {
|
||||
// is further distillable
|
||||
contents[slot] = true;
|
||||
custom = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Brew[] contents = getDistillContents(inv);
|
||||
for (int slot = 0; slot < 3; slot++) {
|
||||
if (contents[slot] == null) continue;
|
||||
if (contents[slot].canDistill()) {
|
||||
// is further distillable
|
||||
custom = true;
|
||||
} else {
|
||||
contents[slot] = null;
|
||||
}
|
||||
slot++;
|
||||
}
|
||||
if (custom) {
|
||||
Brew.distillAll(inv, contents);
|
||||
@ -215,6 +232,27 @@ public class InventoryListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
|
||||
private int getLongestDistillTime(BrewerInventory inv) {
|
||||
int bestTime = 0;
|
||||
int time;
|
||||
Brew[] contents = getDistillContents(inv);
|
||||
for (int slot = 0; slot < 3; slot++) {
|
||||
if (contents[slot] == null) continue;
|
||||
time = contents[slot].getDistillTimeNextRun();
|
||||
if (time == 0) {
|
||||
// Undefined Potion needs 40 seconds
|
||||
time = 800;
|
||||
}
|
||||
if (time > bestTime) {
|
||||
bestTime = time;
|
||||
}
|
||||
}
|
||||
if (bestTime > 0) {
|
||||
return bestTime;
|
||||
}
|
||||
return 800;
|
||||
}
|
||||
|
||||
// Clicked a Brew somewhere, do some updating
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = false)
|
||||
public void onInventoryClickLow(InventoryClickEvent event) {
|
||||
@ -228,6 +266,7 @@ public class InventoryListener implements Listener {
|
||||
if (P.use1_9 && !potion.hasItemFlag(ItemFlag.HIDE_POTION_EFFECTS)) {
|
||||
BRecipe recipe = brew.getCurrentRecipe();
|
||||
if (recipe != null) {
|
||||
Brew.removeEffects(potion);
|
||||
Brew.PotionColor.valueOf(recipe.getColor()).colorBrew(potion, item, brew.canDistill());
|
||||
item.setItemMeta(potion);
|
||||
}
|
||||
@ -269,7 +308,7 @@ public class InventoryListener implements Listener {
|
||||
// block the pickup of items where getPickupDelay is > 1000 (puke)
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onInventoryPickupItem(InventoryPickupItemEvent event){
|
||||
if (event.getItem().getPickupDelay() > 1000) {
|
||||
if (event.getItem().getPickupDelay() > 1000 && event.getItem().getItemStack().getType() == BPlayer.pukeItem) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
@ -1,29 +1,28 @@
|
||||
package com.dre.brewery.listeners;
|
||||
|
||||
import com.dre.brewery.*;
|
||||
import com.dre.brewery.filedata.UpdateChecker;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
|
||||
import com.dre.brewery.BCauldron;
|
||||
import com.dre.brewery.BIngredients;
|
||||
import com.dre.brewery.Brew;
|
||||
import com.dre.brewery.Barrel;
|
||||
import com.dre.brewery.BPlayer;
|
||||
import com.dre.brewery.Words;
|
||||
import com.dre.brewery.Wakeup;
|
||||
import com.dre.brewery.P;
|
||||
import com.dre.brewery.filedata.UpdateChecker;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
public class PlayerListener implements Listener {
|
||||
public static boolean openEverywhere;
|
||||
private static Set<UUID> interacted = new HashSet<>();
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onPlayerInteract(PlayerInteractEvent event) {
|
||||
@ -40,7 +39,10 @@ public class PlayerListener implements Listener {
|
||||
Material materialInHand = event.getMaterial();
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if (materialInHand == Material.WATCH) {
|
||||
if (materialInHand == null || materialInHand == Material.BUCKET) {
|
||||
return;
|
||||
|
||||
} else if (materialInHand == Material.WATCH) {
|
||||
BCauldron.printTime(player, clickedBlock);
|
||||
return;
|
||||
|
||||
@ -53,7 +55,7 @@ public class PlayerListener implements Listener {
|
||||
if (item.getAmount() > 1) {
|
||||
item.setAmount(item.getAmount() - 1);
|
||||
} else {
|
||||
player.setItemInHand(new ItemStack(Material.AIR));
|
||||
setItemInHand(event, Material.AIR, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -62,28 +64,53 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
return;
|
||||
|
||||
// reset cauldron when refilling to prevent
|
||||
// unlimited source of potions
|
||||
// reset cauldron when refilling to prevent unlimited source of potions
|
||||
} else if (materialInHand == Material.WATER_BUCKET) {
|
||||
if (BCauldron.getFillLevel(clickedBlock) != 0 && BCauldron.getFillLevel(clickedBlock) < 2) {
|
||||
// will only remove when existing
|
||||
BCauldron.remove(clickedBlock);
|
||||
if (!P.use1_9) {
|
||||
if (BCauldron.getFillLevel(clickedBlock) != 0 && BCauldron.getFillLevel(clickedBlock) < 2) {
|
||||
// will only remove when existing
|
||||
BCauldron.remove(clickedBlock);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
// Its possible to empty a Cauldron with a Bucket in 1.9
|
||||
} else if (P.use1_9 && materialInHand == Material.BUCKET) {
|
||||
if (BCauldron.getFillLevel(clickedBlock) == 2) {
|
||||
// will only remove when existing
|
||||
BCauldron.remove(clickedBlock);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if fire alive below cauldron when adding ingredients
|
||||
Block down = clickedBlock.getRelative(BlockFace.DOWN);
|
||||
if (down.getType() == Material.FIRE || down.getType() == Material.STATIONARY_LAVA || down.getType() == Material.LAVA) {
|
||||
|
||||
event.setCancelled(true);
|
||||
boolean handSwap = false;
|
||||
|
||||
// Interact event is called twice!!!?? in 1.9, once for each hand.
|
||||
// Certain Items in Hand cause one of them to be cancelled or not called at all sometimes.
|
||||
// We mark if a player had the event for the main hand
|
||||
// If not, we handle the main hand in the event for the off hand
|
||||
if (P.use1_9) {
|
||||
if (event.getHand() == EquipmentSlot.HAND) {
|
||||
final UUID id = player.getUniqueId();
|
||||
interacted.add(id);
|
||||
P.p.getServer().getScheduler().runTask(P.p, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
interacted.remove(id);
|
||||
}
|
||||
});
|
||||
} else if (event.getHand() == EquipmentSlot.OFF_HAND) {
|
||||
if (!interacted.remove(player.getUniqueId())) {
|
||||
item = player.getInventory().getItemInMainHand();
|
||||
if (item != null && item.getType() != Material.AIR) {
|
||||
materialInHand = item.getType();
|
||||
handSwap = true;
|
||||
} else {
|
||||
item = event.getItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item == null) return;
|
||||
|
||||
// add ingredient to cauldron that meet the previous conditions
|
||||
if (BIngredients.possibleIngredients.contains(materialInHand)) {
|
||||
|
||||
@ -100,23 +127,24 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
} else {
|
||||
if (isBucket) {
|
||||
player.setItemInHand(new ItemStack(Material.BUCKET));
|
||||
setItemInHand(event, Material.BUCKET, handSwap);
|
||||
} else {
|
||||
player.setItemInHand(new ItemStack(Material.AIR));
|
||||
setItemInHand(event, Material.AIR, handSwap);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
P.p.msg(player, P.p.languageReader.get("Perms_NoCauldronInsert"));
|
||||
}
|
||||
event.setCancelled(true);
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (P.use1_9 && event.getHand() != EquipmentSlot.HAND) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Access a Barrel
|
||||
Barrel barrel = null;
|
||||
if (type == Material.WOOD) {
|
||||
@ -148,21 +176,36 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setItemInHand(PlayerInteractEvent event, Material mat, boolean swapped) {
|
||||
if (P.use1_9) {
|
||||
if ((event.getHand() == EquipmentSlot.OFF_HAND) != swapped) {
|
||||
event.getPlayer().getInventory().setItemInOffHand(new ItemStack(mat));
|
||||
} else {
|
||||
event.getPlayer().getInventory().setItemInMainHand(new ItemStack(mat));
|
||||
}
|
||||
} else {
|
||||
event.getPlayer().setItemInHand(new ItemStack(mat));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onClickAir(PlayerInteractEvent event) {
|
||||
if (Wakeup.checkPlayer == null) return;
|
||||
|
||||
if (event.getAction() == Action.LEFT_CLICK_AIR) {
|
||||
if (!event.hasItem()) {
|
||||
if (Wakeup.checkPlayer != null) {
|
||||
if (event.getPlayer() == Wakeup.checkPlayer) {
|
||||
Wakeup.tpNext();
|
||||
}
|
||||
if (event.getPlayer() == Wakeup.checkPlayer) {
|
||||
Wakeup.tpNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// player drinks a custom potion
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerItemConsume(PlayerItemConsumeEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
ItemStack item = event.getItem();
|
||||
@ -171,9 +214,18 @@ public class PlayerListener implements Listener {
|
||||
Brew brew = Brew.get(item);
|
||||
if (brew != null) {
|
||||
BPlayer.drink(brew, player);
|
||||
if (player.getGameMode() != org.bukkit.GameMode.CREATIVE) {
|
||||
if (player.getGameMode() != GameMode.CREATIVE) {
|
||||
brew.remove(item);
|
||||
}
|
||||
if (P.use1_9) {
|
||||
if (player.getGameMode() != GameMode.CREATIVE) {
|
||||
// replace the potion with an empty potion to avoid effects
|
||||
event.setItem(new ItemStack(Material.POTION));
|
||||
} else {
|
||||
// Dont replace the item when keeping the potion, just cancel the event
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (BPlayer.drainItems.containsKey(item.getType())) {
|
||||
BPlayer bplayer = BPlayer.get(player);
|
||||
|
Loading…
Reference in New Issue
Block a user