Rework vault signs (#387)
* Rework vault signs * Fix potential vault sign issues
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<groupId>com.drtshock</groupId>
|
<groupId>com.drtshock</groupId>
|
||||||
<artifactId>PlayerVaultsX</artifactId>
|
<artifactId>PlayerVaultsX</artifactId>
|
||||||
<version>4.1.3</version>
|
<version>4.1.4</version>
|
||||||
<name>PlayerVaultsX</name>
|
<name>PlayerVaultsX</name>
|
||||||
<url>https://www.spigotmc.org/resources/51204/</url>
|
<url>https://www.spigotmc.org/resources/51204/</url>
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.14-R0.1-SNAPSHOT</version>
|
<version>1.14.1-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryInteractEvent;
|
import org.bukkit.event.inventory.InventoryInteractEvent;
|
||||||
@@ -110,6 +111,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
debug("uuidvaultmanager", System.currentTimeMillis());
|
debug("uuidvaultmanager", System.currentTimeMillis());
|
||||||
getServer().getPluginManager().registerEvents(new Listeners(this), this);
|
getServer().getPluginManager().registerEvents(new Listeners(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new VaultPreloadListener(), this);
|
getServer().getPluginManager().registerEvents(new VaultPreloadListener(), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new SignListener(this), this);
|
||||||
debug("registering listeners", System.currentTimeMillis());
|
debug("registering listeners", System.currentTimeMillis());
|
||||||
this.backupsEnabled = this.getConfig().getBoolean("backups.enabled", true);
|
this.backupsEnabled = this.getConfig().getBoolean("backups.enabled", true);
|
||||||
loadSigns();
|
loadSigns();
|
||||||
@@ -118,6 +120,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
getCommand("pv").setExecutor(new VaultCommand());
|
getCommand("pv").setExecutor(new VaultCommand());
|
||||||
getCommand("pvdel").setExecutor(new DeleteCommand());
|
getCommand("pvdel").setExecutor(new DeleteCommand());
|
||||||
getCommand("pvconvert").setExecutor(new ConvertCommand());
|
getCommand("pvconvert").setExecutor(new ConvertCommand());
|
||||||
|
getCommand("pvsign").setExecutor(new SignCommand());
|
||||||
debug("registered commands", System.currentTimeMillis());
|
debug("registered commands", System.currentTimeMillis());
|
||||||
useVault = setupEconomy();
|
useVault = setupEconomy();
|
||||||
debug("setup economy", System.currentTimeMillis());
|
debug("setup economy", System.currentTimeMillis());
|
||||||
@@ -168,6 +171,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
if (cmd.getName().equalsIgnoreCase("pvreload")) {
|
if (cmd.getName().equalsIgnoreCase("pvreload")) {
|
||||||
reloadConfig();
|
reloadConfig();
|
||||||
loadConfig(); // To update blocked materials.
|
loadConfig(); // To update blocked materials.
|
||||||
|
reloadSigns();
|
||||||
loadLang();
|
loadLang();
|
||||||
sender.sendMessage(ChatColor.GREEN + "Reloaded PlayerVault's configuration and lang files.");
|
sender.sendMessage(ChatColor.GREEN + "Reloaded PlayerVault's configuration and lang files.");
|
||||||
}
|
}
|
||||||
@@ -205,19 +209,13 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadSigns() {
|
private void loadSigns() {
|
||||||
if (!getConfig().getBoolean("signs-enabled", true)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
getCommand("pvsign").setExecutor(new SignCommand());
|
|
||||||
getServer().getPluginManager().registerEvents(new SignListener(this), this);
|
|
||||||
File signs = new File(getDataFolder(), "signs.yml");
|
File signs = new File(getDataFolder(), "signs.yml");
|
||||||
if (!signs.exists()) {
|
if (!signs.exists()) {
|
||||||
try {
|
try {
|
||||||
signs.createNewFile();
|
signs.createNewFile();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().severe("PlayerVaults has encountered a fatal error trying to load the signs file.");
|
getLogger().severe("PlayerVaults has encountered a fatal error trying to load the signs file.");
|
||||||
getLogger().severe("Please report this error to drtshock.");
|
getLogger().severe("Please report this error on GitHub @ https://github.com/drtshock/PlayerVaults/");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -225,6 +223,20 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
this.signs = YamlConfiguration.loadConfiguration(signs);
|
this.signs = YamlConfiguration.loadConfiguration(signs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void reloadSigns() {
|
||||||
|
if (!getConfig().getBoolean("signs-enabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!signsFile.exists()) loadSigns();
|
||||||
|
try {
|
||||||
|
signs.load(signsFile);
|
||||||
|
} catch (IOException | InvalidConfigurationException e) {
|
||||||
|
getLogger().severe("PlayerVaults has encountered a fatal error trying to reload the signs file.");
|
||||||
|
getLogger().severe("Please report this error on GitHub @ https://github.com/drtshock/PlayerVaults/");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the signs.yml config.
|
* Get the signs.yml config.
|
||||||
*
|
*
|
||||||
@@ -242,7 +254,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void saveSignsFile() {
|
private void saveSignsFile() {
|
||||||
if (!getConfig().getBoolean("signs-enabled", true)) {
|
if (!getConfig().getBoolean("signs-enabled")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,7 +263,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
signs.save(this.signsFile);
|
signs.save(this.signsFile);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().severe("PlayerVaults has encountered an error trying to save the signs file.");
|
getLogger().severe("PlayerVaults has encountered an error trying to save the signs file.");
|
||||||
getLogger().severe("Please report this error to drtshock.");
|
getLogger().severe("Please report this error on GitHub @ https://github.com/drtshock/PlayerVaults/");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ public class SignCommand implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
if (sender.hasPermission("playervaults.signs.set")) {
|
if (sender.hasPermission("playervaults.signs.set")) {
|
||||||
|
if (!PlayerVaults.getInstance().getConfig().getBoolean("signs-enabled")) {
|
||||||
|
sender.sendMessage(Lang.TITLE.toString() + Lang.SIGNS_DISABLED.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
int i;
|
int i;
|
||||||
|
|||||||
@@ -41,15 +41,22 @@ import org.bukkit.event.player.PlayerInteractEvent;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
|
|
||||||
public class SignListener implements Listener {
|
public class SignListener implements Listener {
|
||||||
|
|
||||||
private PlayerVaults plugin;
|
private PlayerVaults plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Some of these events can be lag inducing (specifically: interactions & block breaking),
|
||||||
|
* perhaps we should try to optimize these listeners at some point?
|
||||||
|
*/
|
||||||
|
|
||||||
public SignListener(PlayerVaults plugin) {
|
public SignListener(PlayerVaults plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onInteract(PlayerInteractEvent event) {
|
public void onInteract(PlayerInteractEvent event) {
|
||||||
|
if (!PlayerVaults.getInstance().getConfig().getBoolean("signs-enabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
@@ -139,16 +146,25 @@ public class SignListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onBlockPhysics(BlockPhysicsEvent event) {
|
public void onBlockPhysics(BlockPhysicsEvent event) {
|
||||||
|
if (!PlayerVaults.getInstance().getConfig().getBoolean("signs-enabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
blockChangeCheck(event.getBlock().getLocation());
|
blockChangeCheck(event.getBlock().getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onEntityChangeBlock(EntityChangeBlockEvent event) {
|
public void onEntityChangeBlock(EntityChangeBlockEvent event) {
|
||||||
|
if (!PlayerVaults.getInstance().getConfig().getBoolean("signs-enabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
blockChangeCheck(event.getBlock().getLocation());
|
blockChangeCheck(event.getBlock().getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
|
if (!PlayerVaults.getInstance().getConfig().getBoolean("signs-enabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
blockChangeCheck(event.getBlock().getLocation());
|
blockChangeCheck(event.getBlock().getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ public enum Lang {
|
|||||||
CONVERT_BACKGROUND("conversion-background", "&fConversion has been forked to the background. See console for updates."),
|
CONVERT_BACKGROUND("conversion-background", "&fConversion has been forked to the background. See console for updates."),
|
||||||
LOCKED("vaults-locked", "&cVaults are currently locked while conversion occurs. Please try again in a moment!"),
|
LOCKED("vaults-locked", "&cVaults are currently locked while conversion occurs. Please try again in a moment!"),
|
||||||
HELP("help", "/pv <number>"),
|
HELP("help", "/pv <number>"),
|
||||||
BLOCKED_ITEM("blocked-item", "&6%m &cis blocked from vaults");
|
BLOCKED_ITEM("blocked-item", "&6%m &cis blocked from vaults"),
|
||||||
|
SIGNS_DISABLED("signs-disabled", "&cVault signs are currently disabled.");
|
||||||
|
|
||||||
private static YamlConfiguration LANG;
|
private static YamlConfiguration LANG;
|
||||||
private final String path;
|
private final String path;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ language: english
|
|||||||
# Signs
|
# Signs
|
||||||
# This will determine whether vault signs are enabled.
|
# This will determine whether vault signs are enabled.
|
||||||
# If you don't know what this is or if it's for you, see the resource page.
|
# If you don't know what this is or if it's for you, see the resource page.
|
||||||
# Reminder: This is only checked during startup.
|
|
||||||
signs-enabled: false
|
signs-enabled: false
|
||||||
|
|
||||||
# Economy
|
# Economy
|
||||||
|
|||||||
@@ -30,4 +30,5 @@ conversion-complete: "&aConverted %converted players to PlayerVaults"
|
|||||||
conversion-background: "&fConversion has been forked to the background. See console for updates."
|
conversion-background: "&fConversion has been forked to the background. See console for updates."
|
||||||
vaults-locked: "&cVaults are currently locked while conversion occurs. Please try again in a moment!"
|
vaults-locked: "&cVaults are currently locked while conversion occurs. Please try again in a moment!"
|
||||||
help: "/pv <number>"
|
help: "/pv <number>"
|
||||||
blocked-item: "&6%m &cis blocked from vaults."
|
blocked-item: "&6%m &cis blocked from vaults."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -30,4 +30,5 @@ conversion-complete: "&aКонвертирахме %converted играч(а) к
|
|||||||
conversion-background: "&fЗапочнахме конвертирането на заден план. Следете конзолата за статуса на операцията."
|
conversion-background: "&fЗапочнахме конвертирането на заден план. Следете конзолата за статуса на операцията."
|
||||||
vaults-locked: "&cСейфовете са заключени докато тече конвертиране. Моля, опитайте пак по-късно!"
|
vaults-locked: "&cСейфовете са заключени докато тече конвертиране. Моля, опитайте пак по-късно!"
|
||||||
help: "/pv <номер>"
|
help: "/pv <номер>"
|
||||||
blocked-item: "&6%m &cне може да се слага в сейфове."
|
blocked-item: "&6%m &cне може да се слага в сейфове."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -30,4 +30,5 @@ conversion-complete: "&aEr zijn %converted spelers naar PlayerVaults geconvertee
|
|||||||
conversion-background: "&fHet converteren is naar de achtergrond geplaatst. Check de console voor de status van het converteren"
|
conversion-background: "&fHet converteren is naar de achtergrond geplaatst. Check de console voor de status van het converteren"
|
||||||
vaults-locked: "&cVaults zijn op dit moment op slot terwijl het wordt geconverteerd. Probeer het later opnieuw!"
|
vaults-locked: "&cVaults zijn op dit moment op slot terwijl het wordt geconverteerd. Probeer het later opnieuw!"
|
||||||
help: "/pv <number>"
|
help: "/pv <number>"
|
||||||
blocked-item: "&6%m &cis geblokkeer van vaults."
|
blocked-item: "&6%m &cis geblokkeer van vaults."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -30,4 +30,5 @@ conversion-complete: "&aConverted %converted players to PlayerVaults"
|
|||||||
conversion-background: "&fConversion has been forked to the background. See console for updates."
|
conversion-background: "&fConversion has been forked to the background. See console for updates."
|
||||||
vaults-locked: "&cVaults are currently locked while conversion occurs. Please try again in a moment!"
|
vaults-locked: "&cVaults are currently locked while conversion occurs. Please try again in a moment!"
|
||||||
help: "/pv <number>"
|
help: "/pv <number>"
|
||||||
blocked-item: "&6%m &cis blocked from vaults."
|
blocked-item: "&6%m &cis blocked from vaults."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -30,4 +30,5 @@ conversion-complete: "&%converted Spieler zu PlayerVaults konvertiert"
|
|||||||
conversion-background: "&fKonvertierung wurde im Hintergrund genauer gezeigt. Schaue in die Konsole für mehr Details."
|
conversion-background: "&fKonvertierung wurde im Hintergrund genauer gezeigt. Schaue in die Konsole für mehr Details."
|
||||||
vaults-locked: "&cTresore sind gerade wegen einer Konvertierung verschlossen. Versuche es in einem Moment nocheinmal!"
|
vaults-locked: "&cTresore sind gerade wegen einer Konvertierung verschlossen. Versuche es in einem Moment nocheinmal!"
|
||||||
help: "/pv <number>"
|
help: "/pv <number>"
|
||||||
blocked-item: "&6%m &cist von Tresoren geblockt."
|
blocked-item: "&6%m &cist von Tresoren geblockt."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -31,3 +31,4 @@ conversion-background: "&fКонвертирование просходит в
|
|||||||
vaults-locked: "&cХранилища сейчас заблокированы, пока конвертируются. Пожалуйста, попробуйте чуть позже!"
|
vaults-locked: "&cХранилища сейчас заблокированы, пока конвертируются. Пожалуйста, попробуйте чуть позже!"
|
||||||
help: "/pv <номер>"
|
help: "/pv <номер>"
|
||||||
blocked-item: "&cПредмет «&6%m&c» &cзаблокирован хранилищем."
|
blocked-item: "&cПредмет «&6%m&c» &cзаблокирован хранилищем."
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
@@ -30,4 +30,5 @@ conversion-complete: "&a%converted depo PlayerVaults'a dönüştürüldü"
|
|||||||
conversion-background: "&fDönüşüm, arka plana aktarıldı. Detaylar için konsola bakın."
|
conversion-background: "&fDönüşüm, arka plana aktarıldı. Detaylar için konsola bakın."
|
||||||
vaults-locked: "&cDönüşüm gerçekleştiğinde kasalar kilitlenir. Lütfen biraz sonra tekrar deneyin!"
|
vaults-locked: "&cDönüşüm gerçekleştiğinde kasalar kilitlenir. Lütfen biraz sonra tekrar deneyin!"
|
||||||
help: "/pv <numara>"
|
help: "/pv <numara>"
|
||||||
blocked-item: "&6%m &cdepoda barındırılamaz!"
|
blocked-item: "&6%m &cdepoda barındırılamaz!"
|
||||||
|
signs-disabled: "&cVault signs are currently disabled."
|
||||||
Reference in New Issue
Block a user