mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2025-03-11 13:11:19 +01:00
Added config options for Sealing Table
Translations for the Sealing Table And a Data Tag for the Block
This commit is contained in:
parent
12b0a3c115
commit
f4bfdfa595
@ -46,6 +46,10 @@ drainItems:
|
|||||||
# Zeit (in Tagen) die Trunkenheitsdaten nach offlinegehen eines Spielers im Speicher verbleiben, um z.B. Kater-Effekte anzuwenden. [7]
|
# Zeit (in Tagen) die Trunkenheitsdaten nach offlinegehen eines Spielers im Speicher verbleiben, um z.B. Kater-Effekte anzuwenden. [7]
|
||||||
hangoverDays: 7
|
hangoverDays: 7
|
||||||
|
|
||||||
|
# Ob das craften und das benutzen des Trank-Versiegelungs-Tisches aktiviert ist (2 Flaschen über 4 Holz) [true, true]
|
||||||
|
craftSealingTable: true
|
||||||
|
enableSealingTable: true
|
||||||
|
|
||||||
# Färben der Iteminformationen je nach Qualität während sie sich 1. im Fass und/oder 2. im Braustand befinden [true, true]
|
# 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
|
colorInBarrels: true
|
||||||
colorInBrewer: true
|
colorInBrewer: true
|
||||||
|
@ -46,6 +46,10 @@ drainItems:
|
|||||||
# Time (in days) that drunkeness-data stays in memory after a player goes offline, to apply hangover etc. [7]
|
# Time (in days) that drunkeness-data stays in memory after a player goes offline, to apply hangover etc. [7]
|
||||||
hangoverDays: 7
|
hangoverDays: 7
|
||||||
|
|
||||||
|
# If crafting and using of the Brew Sealing Table is enabled (2 Bottles over 4 Planks) [true, true]
|
||||||
|
craftSealingTable: true
|
||||||
|
enableSealingTable: true
|
||||||
|
|
||||||
# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, true]
|
# 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
|
colorInBarrels: true
|
||||||
colorInBrewer: true
|
colorInBrewer: true
|
||||||
|
@ -34,6 +34,7 @@ CMD_NonStatic: '&eTrank ist wieder veränderlich und kann normal gereift oder de
|
|||||||
# Error
|
# Error
|
||||||
Error_ConfigUpdate: 'Unbekannte Brewery Config Version: v&v1, Config wurde nicht geupdated!'
|
Error_ConfigUpdate: 'Unbekannte Brewery Config Version: v&v1, Config wurde nicht geupdated!'
|
||||||
Error_ItemNotPotion: '&cDas Item in deiner Hand konnte nicht als Trank identifiziert werden'
|
Error_ItemNotPotion: '&cDas Item in deiner Hand konnte nicht als Trank identifiziert werden'
|
||||||
|
Error_SealingTableDisabled: '&cDer Trankversiegler ist deaktiviert'
|
||||||
Error_SealedAlwaysStatic: 'Versiegelte Tränke sind immer unveränderlich!'
|
Error_SealedAlwaysStatic: 'Versiegelte Tränke sind immer unveränderlich!'
|
||||||
Error_AlreadyUnlabeled: '&cDer Trank in deiner Hand ist bereits Entlabelt!'
|
Error_AlreadyUnlabeled: '&cDer Trank in deiner Hand ist bereits Entlabelt!'
|
||||||
Error_NoBarrelAccess: '&cDu hast keine Rechte dieses Fass zu öffnen!'
|
Error_NoBarrelAccess: '&cDu hast keine Rechte dieses Fass zu öffnen!'
|
||||||
@ -49,6 +50,7 @@ Error_YmlRead: 'config.yml konnte nicht gelesen werden, ist die Datei im korrekt
|
|||||||
Etc_Page: Seite
|
Etc_Page: Seite
|
||||||
Etc_Usage: 'Benutzung:'
|
Etc_Usage: 'Benutzung:'
|
||||||
Etc_Barrel: Fass
|
Etc_Barrel: Fass
|
||||||
|
Etc_SealingTable: Trankversiegler
|
||||||
|
|
||||||
# Help
|
# 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'
|
||||||
|
@ -34,6 +34,7 @@ CMD_UnLabel: '&aLabel removed!'
|
|||||||
# Error
|
# Error
|
||||||
Error_ConfigUpdate: 'Unknown Brewery config version: v&v1, config was not updated!'
|
Error_ConfigUpdate: 'Unknown Brewery config version: v&v1, config was not updated!'
|
||||||
Error_ItemNotPotion: '&cThe item in your hand could not be identified as a potion!'
|
Error_ItemNotPotion: '&cThe item in your hand could not be identified as a potion!'
|
||||||
|
Error_SealingTableDisabled: '&cThe Sealing Table is disabled'
|
||||||
Error_SealedAlwaysStatic: 'Sealed Brews are always static!'
|
Error_SealedAlwaysStatic: 'Sealed Brews are always static!'
|
||||||
Error_AlreadyUnlabeled: '&cThe Brew in your hand is already unlabeled!'
|
Error_AlreadyUnlabeled: '&cThe Brew in your hand is already unlabeled!'
|
||||||
Error_NoBarrelAccess: '&cYou don''t have permissions to access this barrel!'
|
Error_NoBarrelAccess: '&cYou don''t have permissions to access this barrel!'
|
||||||
@ -49,6 +50,7 @@ Error_YmlRead: 'Could not read file config.yml, please make sure the file is in
|
|||||||
Etc_Barrel: Barrel
|
Etc_Barrel: Barrel
|
||||||
Etc_Page: Page
|
Etc_Page: Page
|
||||||
Etc_Usage: 'Usage:'
|
Etc_Usage: 'Usage:'
|
||||||
|
Etc_SealingTable: Brew Sealing Table
|
||||||
|
|
||||||
# Help
|
# Help
|
||||||
Help_Copy: '&6/brew copy [Quantity]&9 Copies the potion in your hand'
|
Help_Copy: '&6/brew copy [Quantity]&9 Copies the potion in your hand'
|
||||||
|
@ -4,6 +4,9 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.Container;
|
||||||
|
import org.bukkit.block.data.Directional;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
@ -11,13 +14,14 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.RecipeChoice;
|
import org.bukkit.inventory.RecipeChoice;
|
||||||
import org.bukkit.inventory.ShapedRecipe;
|
import org.bukkit.inventory.ShapedRecipe;
|
||||||
import org.bukkit.inventory.meta.BlockStateMeta;
|
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class BSealer implements InventoryHolder {
|
public class BSealer implements InventoryHolder {
|
||||||
public static final String TABLE_NAME = "§eBrew Sealing Table";
|
public static final NamespacedKey TAG_KEY = new NamespacedKey(P.p, "SealingTable");
|
||||||
|
public static boolean recipeRegistered = false;
|
||||||
|
|
||||||
private final Inventory inventory;
|
private final Inventory inventory;
|
||||||
private final Player player;
|
private final Player player;
|
||||||
@ -27,7 +31,7 @@ public class BSealer implements InventoryHolder {
|
|||||||
|
|
||||||
public BSealer(Player player) {
|
public BSealer(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
inventory = P.p.getServer().createInventory(this, InventoryType.DISPENSER, "Brew Sealing Table");
|
inventory = P.p.getServer().createInventory(this, InventoryType.DISPENSER, P.p.languageReader.get("Etc_SealingTable"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -86,12 +90,43 @@ public class BSealer implements InventoryHolder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isBSealer(Block block) {
|
||||||
|
if (P.use1_14 && block.getType() == Material.SMOKER) {
|
||||||
|
Container smoker = (Container) block.getState();
|
||||||
|
if (smoker.getCustomName() != null) {
|
||||||
|
if (smoker.getCustomName().equals("§e" + P.p.languageReader.get("Etc_SealingTable"))) {
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
return smoker.getPersistentDataContainer().has(TAG_KEY, PersistentDataType.BYTE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void blockPlace(ItemStack item, Block block) {
|
||||||
|
if (item.getType() == Material.SMOKER && item.hasItemMeta()) {
|
||||||
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
|
assert itemMeta != null;
|
||||||
|
if ((itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals("§e" + P.p.languageReader.get("Etc_SealingTable"))) ||
|
||||||
|
itemMeta.getPersistentDataContainer().has(BSealer.TAG_KEY, PersistentDataType.BYTE)) {
|
||||||
|
Container smoker = (Container) block.getState();
|
||||||
|
// Rotate the Block 180° so it doesn't look like a Smoker
|
||||||
|
Directional dir = (Directional) smoker.getBlockData();
|
||||||
|
dir.setFacing(dir.getFacing().getOppositeFace());
|
||||||
|
smoker.setBlockData(dir);
|
||||||
|
smoker.getPersistentDataContainer().set(BSealer.TAG_KEY, PersistentDataType.BYTE, (byte)1);
|
||||||
|
smoker.update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void registerRecipe() {
|
public static void registerRecipe() {
|
||||||
|
recipeRegistered = true;
|
||||||
ItemStack sealingTableItem = new ItemStack(Material.SMOKER);
|
ItemStack sealingTableItem = new ItemStack(Material.SMOKER);
|
||||||
ItemMeta meta = P.p.getServer().getItemFactory().getItemMeta(Material.SMOKER);
|
ItemMeta meta = P.p.getServer().getItemFactory().getItemMeta(Material.SMOKER);
|
||||||
if (meta == null) return;
|
if (meta == null) return;
|
||||||
meta.setDisplayName(TABLE_NAME);
|
meta.setDisplayName("§e" + P.p.languageReader.get("Etc_SealingTable"));
|
||||||
|
meta.getPersistentDataContainer().set(TAG_KEY, PersistentDataType.BYTE, (byte)1);
|
||||||
sealingTableItem.setItemMeta(meta);
|
sealingTableItem.setItemMeta(meta);
|
||||||
|
|
||||||
ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(P.p, "SealingTable"), sealingTableItem);
|
ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(P.p, "SealingTable"), sealingTableItem);
|
||||||
@ -103,4 +138,9 @@ public class BSealer implements InventoryHolder {
|
|||||||
|
|
||||||
P.p.getServer().addRecipe(recipe);
|
P.p.getServer().addRecipe(recipe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void unregisterRecipe() {
|
||||||
|
recipeRegistered = false;
|
||||||
|
P.p.getServer().removeRecipe(new NamespacedKey(P.p, "SealingTable"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,10 +125,6 @@ public class P extends JavaPlugin {
|
|||||||
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200);
|
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200);
|
||||||
p.getServer().getScheduler().runTaskTimer(p, new DrunkRunnable(), 120, 120);
|
p.getServer().getScheduler().runTaskTimer(p, new DrunkRunnable(), 120, 120);
|
||||||
|
|
||||||
if (P.use1_14) {
|
|
||||||
BSealer.registerRecipe();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BConfig.updateCheck) {
|
if (BConfig.updateCheck) {
|
||||||
try {
|
try {
|
||||||
p.getServer().getScheduler().runTaskLaterAsynchronously(p, new UpdateChecker(), 135);
|
p.getServer().getScheduler().runTaskLaterAsynchronously(p, new UpdateChecker(), 135);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.dre.brewery.filedata;
|
package com.dre.brewery.filedata;
|
||||||
|
|
||||||
|
import com.dre.brewery.BSealer;
|
||||||
import com.dre.brewery.Brew;
|
import com.dre.brewery.Brew;
|
||||||
import com.dre.brewery.DistortChat;
|
import com.dre.brewery.DistortChat;
|
||||||
import com.dre.brewery.MCBarrel;
|
import com.dre.brewery.MCBarrel;
|
||||||
@ -75,6 +76,10 @@ public class BConfig {
|
|||||||
public static boolean alwaysShowQuality; // Always show quality stars
|
public static boolean alwaysShowQuality; // Always show quality stars
|
||||||
public static boolean alwaysShowAlc; // Always show alc%
|
public static boolean alwaysShowAlc; // Always show alc%
|
||||||
|
|
||||||
|
//Features
|
||||||
|
public static boolean craftSealingTable; // Allow Crafting of Sealing Table
|
||||||
|
public static boolean enableSealingTable; // Allow Usage of Sealing Table
|
||||||
|
|
||||||
//Item
|
//Item
|
||||||
public static List<RecipeItem> customItems = new ArrayList<>();
|
public static List<RecipeItem> customItems = new ArrayList<>();
|
||||||
|
|
||||||
@ -221,6 +226,8 @@ public class BConfig {
|
|||||||
enablePuke = config.getBoolean("enablePuke", false);
|
enablePuke = config.getBoolean("enablePuke", false);
|
||||||
pukeDespawntime = config.getInt("pukeDespawntime", 60) * 20;
|
pukeDespawntime = config.getInt("pukeDespawntime", 60) * 20;
|
||||||
homeType = config.getString("homeType", null);
|
homeType = config.getString("homeType", null);
|
||||||
|
craftSealingTable = config.getBoolean("craftSealingTable", false);
|
||||||
|
enableSealingTable = config.getBoolean("enableSealingTable", false);
|
||||||
colorInBarrels = config.getBoolean("colorInBarrels", false);
|
colorInBarrels = config.getBoolean("colorInBarrels", false);
|
||||||
colorInBrewer = config.getBoolean("colorInBrewer", false);
|
colorInBrewer = config.getBoolean("colorInBrewer", false);
|
||||||
alwaysShowQuality = config.getBoolean("alwaysShowQuality", false);
|
alwaysShowQuality = config.getBoolean("alwaysShowQuality", false);
|
||||||
@ -329,6 +336,15 @@ public class BConfig {
|
|||||||
DistortChat.log = config.getBoolean("logRealChat", false);
|
DistortChat.log = config.getBoolean("logRealChat", false);
|
||||||
DistortChat.doSigns = config.getBoolean("distortSignText", false);
|
DistortChat.doSigns = config.getBoolean("distortSignText", false);
|
||||||
|
|
||||||
|
// Register Sealing Table Recipe
|
||||||
|
if (P.use1_14) {
|
||||||
|
if (craftSealingTable && !BSealer.recipeRegistered) {
|
||||||
|
BSealer.registerRecipe();
|
||||||
|
} else if (!craftSealingTable && BSealer.recipeRegistered) {
|
||||||
|
BSealer.unregisterRecipe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// init SQL
|
// init SQL
|
||||||
if (sqlSync != null) {
|
if (sqlSync != null) {
|
||||||
try {
|
try {
|
||||||
|
@ -11,12 +11,16 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.Nameable;
|
import org.bukkit.Nameable;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.block.Container;
|
||||||
import org.bukkit.block.data.Directional;
|
import org.bukkit.block.data.Directional;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.*;
|
import org.bukkit.event.block.*;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
public class BlockListener implements Listener {
|
public class BlockListener implements Listener {
|
||||||
|
|
||||||
@ -47,17 +51,8 @@ public class BlockListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
public void onBlockPlace(BlockPlaceEvent event) {
|
||||||
if (!P.use1_14) return;
|
if (!P.use1_14 || event.getBlock().getType() != Material.SMOKER) return;
|
||||||
if (event.getBlock().getType() == Material.SMOKER) {
|
BSealer.blockPlace(event.getItemInHand(), event.getBlock());
|
||||||
BlockState state = event.getBlock().getState();
|
|
||||||
Nameable name = (Nameable) state;
|
|
||||||
if (name.getCustomName() != null && name.getCustomName().equals(BSealer.TABLE_NAME)) {
|
|
||||||
// Rotate the Block 180° so it doesn't look like a Smoker
|
|
||||||
Directional dir = (Directional) state.getBlockData();
|
|
||||||
dir.setFacing(dir.getFacing().getOppositeFace());
|
|
||||||
event.getBlock().setBlockData(dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
@ -41,14 +41,16 @@ public class PlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (P.use1_14 && type == Material.SMOKER) {
|
|
||||||
Nameable smoker = (Nameable) clickedBlock.getState();
|
if (BSealer.isBSealer(clickedBlock)) {
|
||||||
if (smoker.getCustomName() != null && smoker.getCustomName().equals(BSealer.TABLE_NAME)) {
|
event.setCancelled(true);
|
||||||
event.setCancelled(true);
|
if (BConfig.enableSealingTable) {
|
||||||
BSealer sealer = new BSealer(player);
|
BSealer sealer = new BSealer(player);
|
||||||
event.getPlayer().openInventory(sealer.getInventory());
|
event.getPlayer().openInventory(sealer.getInventory());
|
||||||
return;
|
} else {
|
||||||
|
P.p.msg(player, P.p.languageReader.get("Error_SealingTableDisabled"));
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not process Off Hand for Barrel interaction
|
// Do not process Off Hand for Barrel interaction
|
||||||
|
@ -274,20 +274,6 @@ public class BrewLore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the Seal-bars |*****| around the Lore Quality-Stars
|
|
||||||
*/
|
|
||||||
/*public void showSeal() {
|
|
||||||
int starsLine = Type.STARS.findInLore(lore);
|
|
||||||
if (starsLine > -1) {
|
|
||||||
StringBuilder lineEdit = new StringBuilder(lore.get(starsLine));
|
|
||||||
int index = Type.STARS.id.length();
|
|
||||||
lineEdit.insert(index, "§8[");
|
|
||||||
lineEdit.append("§8]");
|
|
||||||
lore.set(starsLine, lineEdit.toString());
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public void updateAlc(boolean inDistiller) {
|
public void updateAlc(boolean inDistiller) {
|
||||||
if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() > 0)) {
|
if (!brew.isUnlabeled() && (inDistiller || BConfig.alwaysShowAlc) && (!brew.hasRecipe() || brew.getCurrentRecipe().getAlcohol() > 0)) {
|
||||||
int alc = brew.getOrCalcAlc();
|
int alc = brew.getOrCalcAlc();
|
||||||
|
Loading…
Reference in New Issue
Block a user