Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.flo.hub;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.Sound;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.InvalidConfigurationException;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.entity.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.event.block.BlockBreakEvent;
- import org.bukkit.event.block.BlockPlaceEvent;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.player.PlayerDropItemEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerKickEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Hub extends JavaPlugin implements Listener {
- /*
- * Plugin by Flo
- *
- */
- //Config
- YamlConfiguration db = new YamlConfiguration();
- //Database
- File dbfile = new File(getDataFolder(), "db.yml");
- //Prefix
- String prefix = "§c[§3mHub§c] ";
- //Timeoutlist
- ArrayList<Player> timeout = new ArrayList<Player>();
- //Teleporter Inventory
- HashMap<Player, ItemStack[]> save = new HashMap<Player, ItemStack[]>();
- //Teleporter Edit Mode
- ArrayList<Player> teledit = new ArrayList<Player>();
- HashMap<Player, ItemStack[]> tsave = new HashMap<Player, ItemStack[]>();
- public void onEnable() {
- this.getServer().getPluginManager().registerEvents(this, this);
- config();
- dbconf();
- }
- public void onDisable() {
- }
- public void config() {
- String conspref = "[mHub] ";
- int fu = 0;
- if (!(this.getConfig().getString("Update") == null)) {
- if (!(this.getConfig().getString("Update") == "2")) {
- fu = 1;
- }
- }
- File configfile = new File(getDataFolder(), "config.yml");
- if(!configfile.exists() || fu == 1){
- System.out.println(conspref + "No config.yml found.");
- System.out.println(conspref + "New config.yml created.");
- this.reloadConfig();
- this.getConfig().addDefault("Update", "1");
- this.getConfig().addDefault("General.autospawntp", true);
- this.getConfig().addDefault("General.nopermission", "&c[§3mHub§c] &4You don't have permissions to execute this command.");
- this.getConfig().addDefault("Items.teleportername", "&6Teleporter");
- this.getConfig().addDefault("Items.playerson", "&2Players: On");
- this.getConfig().addDefault("Items.playersoff", "&cPlayers: Off");
- this.getConfig().addDefault("Items.visibilitydelay", 5);
- this.getConfig().addDefault("Items.delaymessage", "&c[§3mHub§c] &4Please wait $time seconds before you use this item again.");
- this.getConfig().addDefault("Items.backitem", "&4Back");
- this.getConfig().options().copyDefaults(true);
- this.saveConfig();
- } else {
- System.out.println(conspref + "config.yml sucessful loaded.");
- }
- }
- @SuppressWarnings("static-access")
- public void dbconf() {
- db = db.loadConfiguration(dbfile);
- int fu = 0;
- if (!(db.getString("Update") == null)) {
- if (!(db.getString("Update") == "2")) { // FIX BEFORE RELEASE! SET CORRECT NUMBER!
- fu = 1;
- }
- }
- if(!dbfile.exists() || fu == 1){
- try {
- dbfile.createNewFile();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- db.load(dbfile);
- } catch (IOException | InvalidConfigurationException e1) {
- e1.printStackTrace();
- }
- db.options().header("This is a DB file for saving informations from the plugin. DONT EDIT!");
- db.addDefault("Update", 1);
- db.addDefault("General.spawnworld", "unset");
- db.addDefault("General.spawncorx", 0);
- db.addDefault("General.spawncory", 0);
- db.addDefault("General.spawncorz", 0);
- db.addDefault("General.spawnyaw", 0);
- db.addDefault("General.spawnpitch", 0);
- db.addDefault("s0.x", 0);
- db.addDefault("s0.y", 0);
- db.addDefault("s0.z", 0);
- db.addDefault("s0.ya", 0);
- db.addDefault("s0.p", 0);
- db.addDefault("s0.name", "noname");
- db.addDefault("s0.id", 1);
- db.addDefault("s1.x", 0);
- db.addDefault("s1.y", 0);
- db.addDefault("s1.z", 0);
- db.addDefault("s1.ya", 0);
- db.addDefault("s1.p", 0);
- db.addDefault("s1.name", "noname");
- db.addDefault("s1.id", 1);
- db.addDefault("s2.x", 0);
- db.addDefault("s2.y", 0);
- db.addDefault("s2.z", 0);
- db.addDefault("s2.ya", 0);
- db.addDefault("s2.p", 0);
- db.addDefault("s2.name", "noname");
- db.addDefault("s2.id", 1);
- db.addDefault("s3.x", 0);
- db.addDefault("s3.y", 0);
- db.addDefault("s3.z", 0);
- db.addDefault("s3.ya", 0);
- db.addDefault("s3.p", 0);
- db.addDefault("s3.name", "noname");
- db.addDefault("s3.id", 1);
- db.addDefault("s4.x", 0);
- db.addDefault("s4.y", 0);
- db.addDefault("s4.z", 0);
- db.addDefault("s4.ya", 0);
- db.addDefault("s4.p", 0);
- db.addDefault("s4.name", "noname");
- db.addDefault("s4.id", 1);
- db.addDefault("s5.x", 0);
- db.addDefault("s5.y", 0);
- db.addDefault("s5.z", 0);
- db.addDefault("s5.ya", 0);
- db.addDefault("s5.p", 0);
- db.addDefault("s5.name", "noname");
- db.addDefault("s5.id", 1);
- db.addDefault("s6.x", 0);
- db.addDefault("s6.y", 0);
- db.addDefault("s6.z", 0);
- db.addDefault("s6.ya", 0);
- db.addDefault("s6.p", 0);
- db.addDefault("s6.name", "noname");
- db.addDefault("s6.id", 1);
- db.addDefault("s7.x", 0);
- db.addDefault("s7.y", 0);
- db.addDefault("s7.z", 0);
- db.addDefault("s7.ya", 0);
- db.addDefault("s7.p", 0);
- db.addDefault("s7.name", "noname");
- db.addDefault("s7.id", 1);
- db.options().copyDefaults(true);
- try {
- db.save(dbfile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else {
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onBlockPlace(BlockPlaceEvent e) {
- Player p = e.getPlayer();
- if (!(p.hasPermission("mhub.bypass"))) {
- e.setCancelled(true);
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onBlockDestroy(BlockBreakEvent e) {
- Player p = e.getPlayer();
- if (!(p.hasPermission("mhub.bypass"))) {
- e.setCancelled(true);
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerQuit(PlayerQuitEvent e) {
- Player p = e.getPlayer();
- if (tsave.containsKey(p)) {
- p.getInventory().setContents(tsave.get(p));
- p.updateInventory();
- tsave.remove(p);
- teledit.remove(p);
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerKick(PlayerKickEvent e) {
- Player p = e.getPlayer();
- if (tsave.containsKey(p)) {
- p.getInventory().setContents(tsave.get(p));
- p.updateInventory();
- tsave.remove(p);
- teledit.remove(p);
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String laben, String[] args) {
- Player p = (Player) sender;
- String noperm = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("General.nopermission"));
- if (cmd.getName().equalsIgnoreCase("mhub-setspawn")) {
- if (p.hasPermission("mhub.setspawn")) {
- db.set("General.spawnworld", p.getLocation().getWorld().getName());
- db.set("General.spawncorx", p.getLocation().getX());
- db.set("General.spawncory", p.getLocation().getY());
- db.set("General.spawncorz", p.getLocation().getZ());
- db.set("General.spawnyaw", p.getLocation().getYaw());
- db.set("General.spawnpitch", p.getLocation().getPitch());
- sc();
- p.sendMessage(prefix + "§aHub spawn successful set!");
- } else {
- p.sendMessage(noperm);
- }
- }
- if (cmd.getName().equalsIgnoreCase("mhub-edit-teleporter")) {
- if (p.hasPermission("mhub.editteleporter")) {
- if (teledit.contains(p)) {
- teledit.remove(p);
- p.getInventory().setContents(tsave.get(p));
- tsave.remove(p);
- p.sendMessage(prefix + "§2You are no longer in the teleporter edit mode.");
- saveInvItem(p, "s0", 0);
- saveInvItem(p, "s1", 1);
- saveInvItem(p, "s2", 2);
- saveInvItem(p, "s3", 3);
- saveInvItem(p, "s4", 4);
- saveInvItem(p, "s5", 5);
- saveInvItem(p, "s6", 6);
- saveInvItem(p, "s7", 7);
- } else {
- teledit.add(p);
- tsave.put(p, p.getInventory().getContents());
- p.sendMessage(prefix + "§2You are now in the teleporter edit mode.");
- p.sendMessage("");
- p.sendMessage(prefix + "§aAdd a Item into one hotbar slot from slot §c1 §ato §c8§a.");
- p.sendMessage(prefix + "§aRightclick on the item on a position to set the warp point.");
- p.sendMessage(prefix + "§aIf you are finished, type '/mhub-edit-teleporter' again");
- setInvItem(p, "s0", 0, "§0§r§r");
- setInvItem(p, "s1", 1, "§1§r§r");
- setInvItem(p, "s2", 2, "§2§r§r");
- setInvItem(p, "s3", 3, "§3§r§r");
- setInvItem(p, "s4", 4, "§4§r§r");
- setInvItem(p, "s5", 5, "§5§r§r");
- setInvItem(p, "s6", 6, "§6§r§r");
- setInvItem(p, "s7", 7, "§7§r§r");
- }
- } else {
- p.sendMessage(noperm);
- }
- }
- return true;
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onItemDrop(PlayerDropItemEvent e) {
- Player p = e.getPlayer();
- if (!(p.hasPermission("mhub.items.bypass"))) {
- e.setCancelled(true);
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onInvClick(InventoryClickEvent e) {
- Player p = (Player) e.getWhoClicked();
- if (!teledit.contains(p)) {
- if (!(p.hasPermission("mhub.items.bypass"))) {
- e.setCancelled(true);
- }
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onDamage(EntityDamageEvent e) {
- if (e.getEntity() instanceof Player) {
- Player p = (Player) e.getEntity();
- if (!(p.hasPermission("mhub.items.bypass"))) {
- e.setCancelled(true);
- }
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onInteract(PlayerInteractEvent e) {
- Player p = e.getPlayer();
- if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
- if (e.getItem() != null) {
- if (e.getItem().getItemMeta().getDisplayName() != null) {
- //Visibility Switcher
- if (e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&',
- this.getConfig().getString("Items.playerson"))) ||
- e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&'
- , this.getConfig().getString("Items.playersoff")))) {
- switchv(p);
- }
- if (e.getItem().getItemMeta().getDisplayName()
- .equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.teleportername")))) {
- teleporter(p);
- }
- if (e.getItem().getItemMeta().getDisplayName().contains("§8§r§r")) {
- p.getInventory().setContents(save.get(p));
- save.remove(p);
- p.updateInventory();
- }
- }}}
- }
- @SuppressWarnings("deprecation")
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerJoin(PlayerJoinEvent e) {
- Player p = e.getPlayer();
- db.addDefault(p.getUniqueId().toString() + ".vis", "on");
- if (this.getConfig().getBoolean("General.autospawntp") == true) {
- if (db.getString("General.spawnworld").equalsIgnoreCase("unset")) {
- for (Player allp : Bukkit.getOnlinePlayers()) {
- if (allp.isOp()) {
- allp.sendMessage(prefix + "A player is joined, but the spawn isn't set.");
- allp.sendMessage(prefix + "Please set the spawn with '/mhub-setspawn' or disable autospawntp in the config.yml");
- }
- }
- } else {
- Location spawnloc = new Location(Bukkit.getWorld(db.getString("General.spawnworld")),
- db.getDouble("General.spawncorx"), db.getDouble("General.spawncory"),
- db.getDouble("General.spawncorz"), (float) db.getDouble("General.spawnyaw"), (float) db.getDouble("General.spawnpitch"));
- p.teleport(spawnloc);
- }
- }
- if (!(p.hasPermission("mhub.items.bypass"))) {
- p.getInventory().clear();
- p.getInventory().setHeldItemSlot(4);
- ItemStack teleporter = new ItemStack(Material.COMPASS, 1);
- ItemMeta teleportermeta = teleporter.getItemMeta();
- teleportermeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.teleportername")));
- teleporter.setItemMeta(teleportermeta);
- p.getInventory().setItem(4, teleporter);
- if (db.getString(p.getUniqueId().toString() + ".vis") != null) {
- if (db.getString(p.getUniqueId().toString() + ".vis").equalsIgnoreCase("on")) {
- ItemStack playerson = new ItemStack(Material.getMaterial(351), 1, (byte) 10);
- ItemMeta playersonmeta = playerson.getItemMeta();
- playersonmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playerson")));
- playerson.setItemMeta(playersonmeta);
- p.getInventory().setItem(3, playerson);
- }
- } else {
- ItemStack playerson = new ItemStack(Material.getMaterial(351), 1, (byte) 10);
- ItemMeta playersonmeta = playerson.getItemMeta();
- playersonmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playerson")));
- playerson.setItemMeta(playersonmeta);
- p.getInventory().setItem(3, playerson);
- }
- if (db.getString(p.getUniqueId().toString() + ".vis") != null) {
- if (db.getString(p.getUniqueId().toString() + ".vis").equalsIgnoreCase("off")) {
- ItemStack playersoff = new ItemStack(Material.getMaterial(351), 1, (byte) 1);
- ItemMeta playersoffmeta = playersoff.getItemMeta();
- playersoffmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playersoff")));
- playersoff.setItemMeta(playersoffmeta);
- p.getInventory().setItem(3, playersoff);
- }
- for (Player allp : Bukkit.getOnlinePlayers()) {
- p.hidePlayer(allp);
- }
- }
- }
- }
- @SuppressWarnings("deprecation")
- public void switchv(Player p) {
- if (timeout.contains(p)) {
- p.playSound(p.getLocation(), Sound.FIZZ, 1, 1);
- p.sendMessage(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.delaymessage")).replace("$time", "" + this.getConfig().getInt("Items.visibilitydelay")));
- } else {
- if (db.getString(p.getUniqueId().toString() + ".vis") == null) {
- db.set(p.getUniqueId().toString() + ".vis", "off"); sc();
- ItemStack playersoff = new ItemStack(Material.getMaterial(351), 1, (byte) 1);
- ItemMeta playersoffmeta = playersoff.getItemMeta();
- playersoffmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playersoff")));
- playersoff.setItemMeta(playersoffmeta);
- p.getInventory().setItem(3, playersoff);
- for (Player allp : Bukkit.getOnlinePlayers()) {
- p.hidePlayer(allp);
- }
- p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1, 1);
- } else {
- if (db.getString(p.getUniqueId().toString() + ".vis").equalsIgnoreCase("on")) {
- db.set(p.getUniqueId().toString() + ".vis", "off"); sc();
- for (Player allp : Bukkit.getOnlinePlayers()) {
- p.hidePlayer(allp);
- }
- db.set(p.getUniqueId().toString() + ".vis", "off"); sc();
- ItemStack playersoff = new ItemStack(Material.getMaterial(351), 1, (byte) 1);
- ItemMeta playersoffmeta = playersoff.getItemMeta();
- playersoffmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playersoff")));
- playersoff.setItemMeta(playersoffmeta);
- p.getInventory().setItem(3, playersoff);
- p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1, 1);
- } else {
- db.set(p.getUniqueId().toString() + ".vis", "on"); sc();
- for (Player allp : Bukkit.getOnlinePlayers()) {
- p.showPlayer(allp);
- }
- ItemStack playerson = new ItemStack(Material.getMaterial(351), 1, (byte) 10);
- ItemMeta playersonmeta = playerson.getItemMeta();
- playersonmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.playerson")));
- playerson.setItemMeta(playersonmeta);
- p.getInventory().setItem(3, playerson);
- p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1, 1);
- }
- }
- timeout.add(p);
- this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
- @Override
- public void run() {
- timeout.remove(p);
- }
- }, 20*this.getConfig().getInt("Items.visibilitydelay"));
- }
- }
- public void sc() {
- try {
- db.save(dbfile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void teleporter(Player pl) {
- save.put(pl, pl.getInventory().getContents());
- setInvItem(pl, "s0", 0, "§0§r§r");
- setInvItem(pl, "s1", 1, "§1§r§r");
- setInvItem(pl, "s2", 2, "§2§r§r");
- setInvItem(pl, "s3", 3, "§3§r§r");
- setInvItem(pl, "s4", 4, "§4§r§r");
- setInvItem(pl, "s5", 5, "§5§r§r");
- setInvItem(pl, "s6", 6, "§6§r§r");
- setInvItem(pl, "s7", 7, "§7§r§r");
- ItemStack Back = new ItemStack(Material.BARRIER);
- ItemMeta Meta = Back.getItemMeta();
- Meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("Items.backitem")) + " " + "§8§r§r");
- Back.setItemMeta(Meta);
- pl.getInventory().setItem(8, Back);
- pl.updateInventory();
- }
- public void setInvItem(Player p, String slot, int SlotNum, String identity) {
- @SuppressWarnings("deprecation")
- ItemStack Item = new ItemStack(Material.getMaterial(db.getInt(slot + ".id")));
- ItemMeta Meta = Item.getItemMeta();
- Meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', db.getString(slot + ".name")) + " " + identity);
- Item.setItemMeta(Meta);
- p.getInventory().setItem(SlotNum, Item);
- p.updateInventory();
- }
- @SuppressWarnings("deprecation")
- public void saveInvItem(Player p, String slot, int SlotNum) {
- p.sendMessage("" + SlotNum);
- db.set(slot + ".id", p.getInventory().getItem(SlotNum).getTypeId());
- if (p.getInventory().getItem(SlotNum).getItemMeta().hasDisplayName()) {
- db.set(slot + ".name", p.getInventory().getItem(SlotNum).getItemMeta().getDisplayName().toString());
- }
- p.updateInventory();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement