mirror of
https://github.com/exituser/Brewery.git
synced 2026-09-17 06:38:56 +00:00
Added ChestShop notification
This commit is contained in:
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class BSealer implements InventoryHolder {
|
||||
public static final NamespacedKey TAG_KEY = new NamespacedKey(P.p, "SealingTable");
|
||||
public static boolean recipeRegistered = false;
|
||||
public static boolean inventoryHolderWorking = true;
|
||||
|
||||
private final Inventory inventory;
|
||||
private final Player player;
|
||||
@@ -31,7 +32,17 @@ public class BSealer implements InventoryHolder {
|
||||
|
||||
public BSealer(Player player) {
|
||||
this.player = player;
|
||||
inventory = P.p.getServer().createInventory(this, InventoryType.DISPENSER, P.p.languageReader.get("Etc_SealingTable"));
|
||||
if (inventoryHolderWorking) {
|
||||
Inventory inv = P.p.getServer().createInventory(this, InventoryType.DISPENSER, P.p.languageReader.get("Etc_SealingTable"));
|
||||
// Inventory Holder (for DISPENSER, ...) is only passed in Paper, not in Spigot. Doing inventory.getHolder() will return null in spigot :/
|
||||
if (inv.getHolder() == this) {
|
||||
inventory = inv;
|
||||
return;
|
||||
} else {
|
||||
inventoryHolderWorking = false;
|
||||
}
|
||||
}
|
||||
inventory = P.p.getServer().createInventory(this, 9, P.p.languageReader.get("Etc_SealingTable"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.dre.brewery.filedata.BData;
|
||||
import com.dre.brewery.filedata.DataSave;
|
||||
import com.dre.brewery.filedata.LanguageReader;
|
||||
import com.dre.brewery.filedata.UpdateChecker;
|
||||
import com.dre.brewery.integration.ChestShopListener;
|
||||
import com.dre.brewery.integration.IntegrationListener;
|
||||
import com.dre.brewery.integration.barrel.LogBlockBarrel;
|
||||
import com.dre.brewery.listeners.*;
|
||||
@@ -120,6 +121,9 @@ public class P extends JavaPlugin {
|
||||
if (use1_9) {
|
||||
p.getServer().getPluginManager().registerEvents(new CauldronListener(), p);
|
||||
}
|
||||
if (BConfig.hasChestShop) {
|
||||
p.getServer().getPluginManager().registerEvents(new ChestShopListener(), p);
|
||||
}
|
||||
|
||||
// Heartbeat
|
||||
p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200);
|
||||
|
||||
@@ -54,6 +54,7 @@ public class BConfig {
|
||||
public static boolean useGMInventories; // GamemodeInventories
|
||||
public static Boolean hasSlimefun = null; // Slimefun ; Null if not checked
|
||||
public static Boolean hasMMOItems = null; // MMOItems ; Null if not checked
|
||||
public static boolean hasChestShop;
|
||||
|
||||
// Barrel
|
||||
public static boolean openEverywhere;
|
||||
@@ -214,6 +215,7 @@ public class BConfig {
|
||||
// The item util has been removed in Vault 1.7+
|
||||
hasVault = plMan.isPluginEnabled("Vault")
|
||||
&& Integer.parseInt(plMan.getPlugin("Vault").getDescription().getVersion().split("\\.")[1]) <= 6;
|
||||
hasChestShop = plMan.isPluginEnabled("ChestShop");
|
||||
|
||||
// various Settings
|
||||
DataSave.autosave = config.getInt("autosave", 3);
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.dre.brewery.integration;
|
||||
|
||||
import com.Acrobot.ChestShop.Events.ShopCreatedEvent;
|
||||
import com.dre.brewery.Brew;
|
||||
import com.dre.brewery.P;
|
||||
import com.dre.brewery.filedata.BConfig;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Container;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ChestShopListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onShopCreated(ShopCreatedEvent event) {
|
||||
try {
|
||||
Container container = event.getContainer();
|
||||
if (container != null) {
|
||||
for (ItemStack item : container.getInventory().getContents()) {
|
||||
if (item != null && item.getType() == Material.POTION) {
|
||||
Brew brew = Brew.get(item);
|
||||
if (brew != null && !brew.isSealed()) {
|
||||
event.getPlayer().sendTitle("", P.p.color(P.p.languageReader.get("Player_ShopSealBrew")), 10, 70, 20);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
HandlerList.unregisterAll(this);
|
||||
BConfig.hasChestShop = false;
|
||||
e.printStackTrace();
|
||||
P.p.errorLog("Failed to notify Player using ChestShop. Disabling ChestShop support");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user