Teleport when spawned

Discussion in 'Plugin Development' started by Poppi, Jan 15, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Poppi

    What should I do to get a player to teleport a specific place after they die?
     
  2. Offline

    fireblast709

    you want to either set the spawn location in PlayerRespawnEvent or schedule a task inside the PlayerRespawnEvent 1 tick later, teleporting them
     
  3. Offline

    Poppi

    Last time I tried that I did that I got an error. what should be the code with schedule a syncdelayed task
     
  4. Offline

    fireblast709

  5. Offline

    Poppi

    it couldnt pass the the event

    whats wrong here?
    Code:
      @EventHandler
        public void onPlayerRespawn(PlayerRespawnEvent event){
            Player p = event.getPlayer();
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask((Plugin) this, new Runnable() {
                @Override
                public void run() {
                    event.getPlayer().teleport(arena1);
                }
               
            }, 1L);
            }
        }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  6. Offline

    fireblast709

    I ment the stacktrace
    Don't cast your Listener to Plugin, use an instance of the main class
     
  7. Offline

    Poppi

    Code:
    /*@EventHandler
        public void onPlayerRespawn(final PlayerRespawnEvent event)  {
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
     
                public void run(){   
                    if (joined.contains(event.getPlayer())) {
                        event.getPlayer().teleport(arena1);
                    } else {
                        event.getPlayer().teleport(Lobby);
                    }
                }
            }, 10L);
     
        }*/
    I still dont seem to figure it out
     
  8. Offline

    fireblast709

    you should pass along an instance of the main class where you initialize the listener class, and use that instead of 'this'
     
  9. Offline

    Poppi

    I'm kinda new to coding so I'm not entirely sure how to do that :/
     
  10. Offline

    fireblast709

    Code:java
    1. private <main class> plugin;
    2. public <other class>(<main class> plugin)
    3. {
    4. this.plugin = plugin;
    5. }
    This is a basic snippet in Java. This way, you can use the instance of the main class (the one used to call onEnable() and onDisable()) in other classes (like Listeners and CommandExecutors). Now in the main class, you would create them like
    Code:java
    1. new <other class>(this);
    Where you replace <main class> with your main class, and <other class> with any other class you use.

    Btw 'this' is used to point to the current instance you are calling the method/constructor with. So if you use 'this' in the onEnable() method, it is the same instance as Bukkit uses, the same value retrieved by Bukkit.getPluginManager().getPlugin("name here");
     
  11. Offline

    Poppi

    Nice, thank you :)

    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'join' in plugin ArenaPVP v1.2
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
    at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCommand(CraftServer.java:510)
    at net.minecraft.server.v1_4_6.PlayerConnection.handleCommand(PlayerConnection.java:980)
    at net.minecraft.server.v1_4_6.PlayerConnection.chat(PlayerConnection.java:898)
    at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java:853)
    at net.minecraft.server.v1_4_6.Packet3Chat.handle(Packet3Chat.java:44)
    at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290)
    at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java:112)
    at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39)
    at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:598)
    at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224)
    at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494)
    at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427)
    at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
    Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer.teleport(CraftPlayer.java:378)
    at org.bukkit.craftbukkit.v1_4_6.entity.CraftEntity.teleport(CraftEntity.java:189)
    at me.Poppi11.ArenaPVP.ArenaPVP.onCommand(ArenaPVP.java:64)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 15 more
    this is the error I get when my classes is like this

    Main Class


    Code:
    package me.Poppi11.ArenaPVP;
     
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Logger;
     
    import me.Poppi11.ArenaPVP.ArenaPVPCommandExecutor;
     
    import org.bukkit.*;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class ArenaPVP extends JavaPlugin implements Listener {
       
        public ArenaPVP plugin;
        public final Logger logger = Logger.getLogger("Minecraft");
        public final MyPlayerListener pl = new MyPlayerListener(plugin);
        public static List<Player> joined = new ArrayList<Player>();
       
        Location arena1 = new Location(Bukkit.getServer().getWorld("ArenaPVP"), 0,
                65, 0);
        Location Lobby = new Location(Bukkit.getServer().getWorld("ArenaPVP"), 0,
                65, 0);
       
       
     
        @Override
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion()
                    + " is now disabled!");
        }
     
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion()
                    + " is now enabled!");
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(this.pl, this);
            getCommand("say").setExecutor(new ArenaPVPCommandExecutor());
            getCommand("help").setExecutor(new ArenaPVPCommandExecutor());
            getCommand("staff").setExecutor(new ArenaPVPCommandExecutor());
            getCommand("say").setExecutor(new ArenaPVPCommandExecutor());
            new MyPlayerListener(this);
        }
     
        public boolean onCommand(CommandSender sender, Command cmd,
                String commandLabel, String[] args) {
            if (commandLabel.equalsIgnoreCase("join")) {
                if (sender instanceof Player) {
                    if (!(joined.contains(sender))) {
     
                        Player p = (Player) sender;
                        p.teleport(arena1);
                        PlayerInventory inv = p.getInventory();
                        inv.clear();
                        inv.setHelmet(new ItemStack(Material.LEATHER_HELMET));
                        inv.setChestplate(new ItemStack(
                                Material.CHAINMAIL_CHESTPLATE));
                        inv.setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS));
                        inv.setBoots(new ItemStack(Material.GOLD_BOOTS));
                        ((Player) sender).getInventory().addItem(
                                new ItemStack(Material.STONE_SWORD));
                        joined.add(p);
                    } else if (joined.contains(sender)) {
                        sender.sendMessage(ChatColor.DARK_AQUA
                                + "You are already in a game!");
                        sender.sendMessage(ChatColor.DARK_AQUA + "Type "
                                + ChatColor.AQUA + "/leave" + ChatColor.DARK_AQUA
                                + " in chat to leave!");
                    }
                } else {
                    sender.sendMessage(ChatColor.RED + "ONLY FOR PLAYERS!");
                }
            } else if (commandLabel.equalsIgnoreCase("leave")) {
                if (sender instanceof Player) {
                    if (joined.contains(sender)) {
                        joined.remove(sender);
                        ((Player) sender).teleport(arena1);
                        PlayerInventory inv = ((Player) sender).getInventory();
                        inv.clear();
                        inv.setHelmet(new ItemStack(Material.AIR));
                        inv.setChestplate(new ItemStack(Material.AIR));
                        inv.setLeggings(new ItemStack(Material.AIR));
                        inv.setBoots(new ItemStack(Material.AIR));
                    } else if (!(joined.contains(sender))) {
                        sender.sendMessage(ChatColor.DARK_AQUA
                                + "You aren't in a game!");
                        sender.sendMessage(ChatColor.DARK_AQUA + "Type "
                                + ChatColor.AQUA + "/help" + ChatColor.DARK_AQUA
                                + " for info about this server!");
                    }
                } else {
                    sender.sendMessage(ChatColor.DARK_RED + "ONLY FOR PLAYERS!");
                }
            }
            return false;
        }
     
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent event) {
            if (joined.contains(event.getPlayer().getName())) {
                joined.remove(event.getPlayer().getName());
     
            } else if (!(joined.contains(event.getPlayer().getName()))) {
            }
        }
     
       
    }
    
    MyPlayerListener is like this
    Code:
    package me.Poppi11.ArenaPVP;
     
    //import org.bukkit.Bukkit;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.Location;
    //import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.FoodLevelChangeEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.*;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.BookMeta;
    import org.bukkit.plugin.Plugin;
     
    @SuppressWarnings("unused")
    public class MyPlayerListener implements Listener {
        private ArenaPVP plugin;
        public Location Lobby;
        public Location arena1;
        public Map<String, Integer> kills = new HashMap<String, Integer>();
        List<Player> joined = ArenaPVP.joined;
       
        public MyPlayerListener(ArenaPVP plugin){
            this.plugin = plugin;
        }
     
        @EventHandler
        public void onPlayerDeath(PlayerDeathEvent event) {
            Player dp = event.getEntity().getPlayer();
            dp.getInventory().clear();
            event.setDeathMessage(ChatColor.DARK_AQUA + dp.getDisplayName()
                    + ChatColor.RED + " was killed by " + ChatColor.DARK_AQUA
                    + dp.getKiller().getDisplayName());
            dp.teleport(Lobby);
            if (event.getEntity() instanceof Player) {
                Player player = (Player) event.getEntity();
     
                if (kills.containsKey(player.getName())) {
                    kills.remove(player.getName());
                    player.sendMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GRAY
                            + "You died. Kills have been cleared.");
                    if (kills.get(player.getName()) < 1)
                        ;
                    Player killer = player.getKiller();
                    Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GREEN
                            + killer.getName() + ChatColor.GRAY
                            + " put an end to the " + kills.get(killer.getName())
                            + " kill streak by " + ChatColor.GREEN
                            + player.getName());
                }
     
                Player killer = player.getKiller();
     
                if (killer == null) {
                    return;
                }
     
                if (!kills.containsKey(killer.getName())) {
                    kills.put(killer.getName(), 1);
                    killer.sendMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GRAY
                            + "You killed " + dp.getDisplayName()
                            + ". Kill streak: 1");
                } else {
                    kills.put(killer.getName(), kills.get(killer.getName()) + 1);
                    killer.sendMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GRAY
                            + "You killed " + dp.getDisplayName()
                            + ". Kill streak: " + kills.get(killer.getName()));
                }
     
                if (kills.get(killer.getName()) == 5) {
                    Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GREEN
                            + killer.getName() + ChatColor.GRAY
                            + " is on a SMASHING 5 KILL STREAK! Kill him someone!");
                    killer.getInventory().remove(Material.STONE_SWORD);
                    killer.getInventory().addItem(
                            new ItemStack(Material.IRON_SWORD));
     
                }
     
                if (kills.get(killer.getName()) == 7) {
                    Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GREEN
                            + killer.getName() + ChatColor.GRAY
                            + " Is on a on a 7 KILL STREAK!");
                }
     
                if (kills.get(killer.getName()) == 3) {
                    Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GREEN
                            + killer.getName() + ChatColor.GRAY
                            + " is on a 3 killstreak!");
                }
     
                /*
                * if(kills.get(killer.getName()) == 2) {
                * killer.sendMessage(ChatColor.WHITE + "[" + ChatColor.GOLD +
                * "Killstreak" + ChatColor.WHITE + "] " + ChatColor.GRAY +
                * "Plugin was coded by " + ChatColor.GREEN + "Foldager");
                * Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD +
                * "Killstreak" + ChatColor.WHITE + "] " + ChatColor.GREEN +
                * killer.getName() + ChatColor.GRAY + " got DOUBLEKILL!"); }
                */
                if (kills.get(killer.getName()) == 10) {
                    Bukkit.broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD
                            + "ArenaPVP" + ChatColor.WHITE + "] " + ChatColor.GREEN
                            + killer.getName() + ChatColor.GRAY
                            + " is on an UNBELIEVEABLE "
                            + kills.get(killer.getName())
                            + " KILL STREAK! Kill him someone!");
                }
            }
        }
     
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            Player p = event.getPlayer();
            if (Bukkit.getServer().getWorld("ArenaPVP") != null) {
                // The world exists
                Lobby = new Location(Bukkit.getServer().getWorld("ArenaPVP"), 0,
                        65, 0);
            } else {
     
            }
            p.teleport(Lobby);
            // Creating a book.
            ItemStack book = new ItemStack(Material.WRITTEN_BOOK, 1);
            BookMeta bm = (BookMeta) book.getItemMeta();
            bm.setAuthor(ChatColor.YELLOW + "ArenaPVP");
            bm.setTitle(ChatColor.GOLD + "" + ChatColor.BOLD
                    + "ArenaPVP help and info");
            ArrayList<String> pages = new ArrayList<String>();
            pages.add(ChatColor.DARK_GREEN
                    + "Welcome "
                    + ChatColor.DARK_AQUA
                    + event.getPlayer().getDisplayName()
                    + ChatColor.DARK_GREEN
                    + " to ArenaPVP, a place for you to battle against your friends and enemies!                  "
                    + ChatColor.DARK_GREEN
                    + ChatColor.BOLD
                    + "Here you can find a list of helpful tips and tricks, we encurage you to continue reading for information and commands");
            ChatColor RED = ChatColor.RED;
            ChatColor BOLD = ChatColor.BOLD;
            pages.add(ChatColor.DARK_RED
                    + "RULES                  "
                    + RED
                    + "#1 Don't hack, it'll get you banned!              "
                    + "#2 Be nice to fellow players and respect staff!                    "
                    + "#3 No swearing or foul language!                  "
                    + "#4 No spam at all");
            pages.add(ChatColor.GOLD + "" + ChatColor.BOLD + "    Commands        "
                    + ChatColor.RED + "----------------" + ChatColor.BLUE
                    + "/join " + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                    + " Lets you join games.              " + ChatColor.BLUE
                    + "/leave " + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                    + " Not implemented yet    " + ChatColor.BLUE + "/help "
                    + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                    + " Gives you this book                    " + ChatColor.BLUE
                    + "/staff " + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                    + " Lists all staff " + ChatColor.BLUE + "/buy "
                    + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                    + " Donate to the server");
            pages.add(ChatColor.BLUE + "" + ChatColor.BOLD
                    + "      People to              thank        "
                    + ChatColor.RESET + "" + ChatColor.BLUE + "-------------------"
                    + ChatColor.LIGHT_PURPLE + "Poppi11                "
                    + ChatColor.DARK_AQUA + " For the main plugin development.  "
                    + ChatColor.LIGHT_PURPLE + "foldagerdk" + ChatColor.DARK_AQUA
                    + "            For the killstreaks.      "
                    + ChatColor.LIGHT_PURPLE
                    + "Team Elite Building Team                "
                    + ChatColor.DARK_AQUA + "  For the amazing maps!");
            bm.setPages(pages);
            book.setItemMeta(bm);
            event.getPlayer().setFoodLevel(16);
            event.setJoinMessage(ChatColor.AQUA + p.getName() + ChatColor.YELLOW
                    + " has joined " + "ArenaPVP!");
            PlayerInventory inv = p.getInventory();
            p.setGameMode(GameMode.ADVENTURE);
            inv.clear();
            inv.addItem(book);
     
        }
     
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent event) {
            event.setQuitMessage(ChatColor.AQUA
                    + event.getPlayer().getDisplayName() + ChatColor.YELLOW
                    + " has quit the game!");
            kills.remove(event.getPlayer().getName());
            Player qp = event.getPlayer();
            event.getPlayer().getInventory().clear();
            PlayerInventory inv = event.getPlayer().getInventory();
            inv.setHelmet(new ItemStack(Material.AIR));
            inv.setChestplate(new ItemStack(Material.AIR));
            inv.setLeggings(new ItemStack(Material.AIR));
            inv.setBoots(new ItemStack(Material.AIR));
        }
     
        @EventHandler
        public void onPlayerHungerChange(FoodLevelChangeEvent event) {
            event.setFoodLevel(16);
        }
        @EventHandler
        public void onPlayerRespawn(final PlayerRespawnEvent event)  {
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
     
                public void run(){   
                    if (joined.contains(event.getPlayer())) {
                        event.getPlayer().teleport(arena1);
                    } else {
                        event.getPlayer().teleport(Lobby);
                    }
                }
            }, 10L);
     
        }
     
       
     
        /*
        * @EventHandler public void onInteract(PlayerInteractEvent event) { Player
        * p = event.getPlayer(); if ((event.getAction() ==
        * Action.RIGHT_CLICK_BLOCK) || (event.getAction() ==
        * Action.RIGHT_CLICK_AIR)) { if (!(joined.contains(p))){
        * p.getInventory().clear(); } } }
        */
     
    }
     
    /*
    * @EventHandler public void onPlayerQuit(PlayerPickupItemEvent event) {
    * Bukkit.getServer().broadcastMessage( ChatColor.GOLD +
    * event.getPlayer().getName() + ChatColor.AQUA + " has Picked up the item!"); }
    */
    and my commandexcecutor (where the flaw is at with /join)
    Code:
    package me.Poppi11.ArenaPVP;
     
    import java.util.ArrayList;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.BookMeta;
     
    public class ArenaPVPCommandExecutor implements CommandExecutor {
        @SuppressWarnings("unused")
        private ArenaPVP plugin;
        public Location Lobby;
        public Location arena1;
     
        @Override
        public boolean onCommand(CommandSender sender, Command cmd,
                String commandLabel, String[] args) {
     
            if (commandLabel.equalsIgnoreCase("help")) {
                if (sender instanceof Player) {
                    ItemStack book = new ItemStack(Material.WRITTEN_BOOK, 1);
                    BookMeta bm = (BookMeta) book.getItemMeta();
                    bm.setAuthor(ChatColor.YELLOW + "ArenaPVP");
                    bm.setTitle(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "ArenaPVP help and info");
                    ArrayList<String> pages = new ArrayList<String>();
                    pages.add(ChatColor.DARK_GREEN
                            + "Welcome "
                            + ChatColor.DARK_AQUA
                            + sender.getName()
                            + ChatColor.DARK_GREEN
                            + " to ArenaPVP, a place for you to battle against your friends and enemies!                  "
                            + ChatColor.DARK_GREEN
                            + ChatColor.BOLD
                            + "Here you can find a list of helpful tips and tricks, we encurage you to continue reading for information and commands");
                    ChatColor RED = ChatColor.RED;
                    pages.add(ChatColor.DARK_RED
                            + "RULES                  "
                            + RED
                            + "#1 Don't hack, it'll get you banned!              "
                            + "#2 Be nice to fellow players and respect staff!                    "
                            + "#3 No swearing or foul language!                  "
                            + "#4 No spam at all");
                    pages.add(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "    Commands        " + ChatColor.RED
                            + "----------------" + ChatColor.BLUE + "/join "
                            + ChatColor.DARK_BLUE + "|" + ChatColor.DARK_AQUA
                            + " Lets you join games.              "
                            + ChatColor.BLUE + "/leave " + ChatColor.DARK_BLUE
                            + "|" + ChatColor.DARK_AQUA
                            + " Not implemented yet    " + ChatColor.BLUE
                            + "/help " + ChatColor.DARK_BLUE + "|"
                            + ChatColor.DARK_AQUA
                            + " Gives you this book                    "
                            + ChatColor.BLUE + "/staff " + ChatColor.DARK_BLUE
                            + "|" + ChatColor.DARK_AQUA + " Lists all staff "
                            + ChatColor.BLUE + "/buy " + ChatColor.DARK_BLUE + "|"
                            + ChatColor.DARK_AQUA + " Donate to the server");
                    pages.add(ChatColor.BLUE + "" + ChatColor.BOLD
                            + "      People to              thank        "
                            + ChatColor.RESET + "" + ChatColor.BLUE
                            + "-------------------" + ChatColor.LIGHT_PURPLE
                            + "Poppi11                " + ChatColor.DARK_AQUA
                            + " For the main plugin development.  "
                            + ChatColor.LIGHT_PURPLE + "foldagerdk"
                            + ChatColor.DARK_AQUA
                            + "            For the killstreaks.      "
                            + ChatColor.LIGHT_PURPLE
                            + "Team Elite Building Team                "
                            + ChatColor.DARK_AQUA + "  For the amazing maps!");
                    bm.setPages(pages);
                    book.setItemMeta(bm);
                    ((Player) sender).getInventory().remove(book);
                    ((Player) sender).getInventory().addItem(book);
                } else {
                    sender.sendMessage(ChatColor.DARK_GREEN + "Available commands");
                    sender.sendMessage(ChatColor.DARK_GREEN + "/staff");
                    sender.sendMessage(ChatColor.DARK_GREEN + "/banlist");
                    sender.sendMessage(ChatColor.DARK_GREEN + "/ban");
                    sender.sendMessage(ChatColor.DARK_GREEN + "/kick");
                    sender.sendMessage(ChatColor.DARK_GREEN + "/say");
     
                }
            } else if (commandLabel.equalsIgnoreCase("staff")) {
                sender.sendMessage(ChatColor.GOLD + "Our Staff");
                sender.sendMessage(ChatColor.GOLD + "---------");
                sender.sendMessage(ChatColor.DARK_RED + "Owner");
                sender.sendMessage(ChatColor.DARK_RED + "-----");
                sender.sendMessage(ChatColor.DARK_RED + "Poppi11");
                sender.sendMessage(ChatColor.DARK_RED + "");
                sender.sendMessage(ChatColor.DARK_RED + "Admins");
                sender.sendMessage(ChatColor.DARK_RED + "------");
                sender.sendMessage(ChatColor.DARK_RED + "TheToft");
                sender.sendMessage(ChatColor.DARK_RED + "ohunter");
                sender.sendMessage(ChatColor.DARK_RED + "Go_Norway");
                sender.sendMessage(ChatColor.DARK_RED + "Steemeez");
                sender.sendMessage(ChatColor.DARK_RED + "");
                sender.sendMessage(ChatColor.RED + "Moderators");
                sender.sendMessage(ChatColor.RED + "----------");
                sender.sendMessage(ChatColor.RED + "Foldagerdk");
                sender.sendMessage(ChatColor.DARK_RED + "");
                sender.sendMessage(ChatColor.BLUE + "Developers");
                sender.sendMessage(ChatColor.BLUE + "----------");
                sender.sendMessage(ChatColor.BLUE + "Poppi11");
                sender.sendMessage(ChatColor.BLUE + "Foldagerdk");
                sender.sendMessage(ChatColor.BLUE + "ohunter");
     
            } else if (commandLabel.equalsIgnoreCase("say")) {
                if (sender instanceof Player) {
                    if (sender.hasPermission("arenapvp.say.owner")) {
                        if (args.length < 1) {
                            sender.sendMessage(ChatColor.RED + "Usage: /say <msg>");
                        } else if (args.length >= 1) {
                            StringBuilder str = new StringBuilder(args[0]);
                            for (int i = 1; i < args.length; i++) {
                                str.append(' ').append(args[i]);
                            }
     
                            Bukkit.getServer().broadcastMessage(
                                    ChatColor.GOLD + "STAFF | "
                                            + ChatColor.DARK_RED
                                            + sender.getName() + "> "
                                            + ChatColor.BLUE + str.toString());
                        }
                    }
                    else if (sender.hasPermission("arenapvp.say.mod")) {
                        if (args.length < 1) {
                            sender.sendMessage(ChatColor.RED + "Usage: /say <msg>");
                        } else if (args.length >= 1) {
                            StringBuilder str = new StringBuilder(args[0]);
                            for (int i = 1; i < args.length; i++) {
                                str.append(' ').append(args[i]);
                            }
     
                            Bukkit.getServer().broadcastMessage(
                                    ChatColor.RED + "MODERATOR | "
                                            + ChatColor.RED
                                            + sender.getName() + "> "
                                            + ChatColor.BLUE + str.toString());
                        }
                    }
                    else if (sender.hasPermission("arenapvp.say.admin")) {
                        if (args.length < 1) {
                            sender.sendMessage(ChatColor.RED + "Usage: /say <msg>");
                        } else if (args.length >= 1) {
                            StringBuilder str = new StringBuilder(args[0]);
                            for (int i = 1; i < args.length; i++) {
                                str.append(' ').append(args[i]);
                            }
     
                            Bukkit.getServer().broadcastMessage(
                                    ChatColor.DARK_RED + "ADMIN | "
                                            + ChatColor.DARK_RED
                                            + sender.getName() + "> "
                                            + ChatColor.BLUE + str.toString());
                        }
                    }
                   
     
                }
            }
            return true;
        }
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  12. Offline

    Miner_Fil

    Thats really messy, I can't even read some of it
     
  13. Offline

    fireblast709

    Poppi you teleport a player to null somewhere, or a non-existant world
     
  14. Offline

    Miner_Fil

    You first have to check if the player exists or not for them to teleport
    Code:
    if(player == null){
    //Player does not exist
    } else {
    //Player Exists
    }
    :)
     
  15. Offline

    Poppi

    I fixed it. apparently the server lagged and it wasnt registering that the player was there before after a few seconds...

    what should I do to make it so the player is registered the instance they join, like updating it.
    I unfortunately dont know what to update on that event

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  16. Offline

    Miner_Fil

    If your talking about when they join the server use
    Code:
    public void onPlayerJoin(PlayerJoinEvent event){
    //Your code here
    }
    Oh you already used it :eek:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  17. Offline

    Poppi

    yes I have onPlayerJoin. My question is that my error when I use /join only fixes if I reload the server which is useless to do every time someone logs on.
     
  18. Offline

    Miner_Fil

    can you show me the command code as i might be able to help you
     
  19. Offline

    Poppi

    Code:
    public boolean onCommand(CommandSender sender, Command cmd,
                String commandLabel, String[] args) {
            if (commandLabel.equalsIgnoreCase("join")) {
                if (sender == null) {
                   
                } else {
                    if (sender instanceof Player) {
                        if (!(joined.contains(sender))) {
     
                            Player p = (Player) sender;
                            p.teleport(arena1);
                            PlayerInventory inv = p.getInventory();
                            inv.clear();
                            inv.setHelmet(new ItemStack(Material.LEATHER_HELMET));
                            inv.setChestplate(new ItemStack(
                                    Material.CHAINMAIL_CHESTPLATE));
                            inv.setLeggings(new ItemStack(
                                    Material.CHAINMAIL_LEGGINGS));
                            inv.setBoots(new ItemStack(Material.GOLD_BOOTS));
                            ((Player) sender).getInventory().addItem(
                                    new ItemStack(Material.STONE_SWORD));
                            joined.add(p);
     
                        } else if (joined.contains(sender)) {
                            sender.sendMessage(ChatColor.DARK_AQUA
                                    + "You are already in a game!");
                            sender.sendMessage(ChatColor.DARK_AQUA + "Type "
                                    + ChatColor.AQUA + "/leave"
                                    + ChatColor.DARK_AQUA + " in chat to leave!");
     
                        }
                    } else {
                        sender.sendMessage(ChatColor.RED + "ONLY FOR PLAYERS!");
                    }
     
  20. Offline

    Miner_Fil

    Just the /join command code not the whole class file
     
  21. Offline

    Poppi

    that is the /join command
     
  22. Offline

    Miner_Fil

    Ok so i will put a simpler code in for you that will work, As i developed a plugin slightly different to yours

    Here
    Code:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    Player p = (Player) sender
    if(commandLabel.equalsIgnoreCase("join")){
    p.teleport(arena1);
    p.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET, 1));
    p.getInventory().setChestplate(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
    p.getInventory().setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1));
    p.getInventory().setBoots(new ItemStack(Material.GOLD_BOOTS, 1));
    p.getInventory().addItem(new ItemStack(Material.STONE_SWORD, 1));
    
    Thats for the adding stuff in the inventory

    :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  23. Offline

    Poppi

    What I also do is adding them to an arraylist and checking if they are in it or not. my problem is that for some reason the player is null until I reload the server
     
  24. Offline

    Miner_Fil

    well try removing this and not the code
    Code:
    if(player == null){
     
    } else {
     
    }
    /\
    |
    Remove that and try it and see what error you get

    Then post the error from your server log onto here if you get an error

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  25. Offline

    Poppi

    I found the cause of the error. apparently I have to reload the server once before the plugin actully works correctly. that isnt dependent on if there is players online or not
     
  26. Offline

    Miner_Fil

    :|

    Poppi so are you ok?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  27. Offline

    Poppi

    Yeah, I seem to have figured out the errors even though I dont see why it must reload before working but I guess it isnt a huge issue
     
  28. Offline

    Miner_Fil

    May i test it? If its ok with you
     
  29. Offline

    Poppi

    Attached Files:

  30. Offline

    Miner_Fil

    What version of bukkit are you using
     
Thread Status:
Not open for further replies.

Share This Page