Added ChestShop notification

This commit is contained in:
Sn0wStorm
2020-04-08 10:13:04 +02:00
parent 241150a468
commit ce4e665fda
8 changed files with 75 additions and 8 deletions
+12 -1
View File
@@ -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
+4
View File
@@ -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");
}
}
}