I am wondering how to infinitely repeat a line of code such as, a scoreboard

Discussion in 'General Help' started by Eclipse_Minecraft_Coder, Jul 22, 2016.

Thread Status:
Not open for further replies.
  1. Hi! I am wondering how to repeat a line of code infinitely when a player joins. Can you help me?
     
  2. Offline

    Tecno_Wizard

  3. Offline

    thapengwin

  4. Offline

    Tecno_Wizard

    @thapengwin, figured, but if he/she doesnt know how to use it properly, he/she could run up a huge load on the server.
     
  5. I need to run a scoreboard, like the title said.
     
  6. I would like to show you my cmd prompt, but it comes up with errors like this:

    [14:58:44] [Server thread/WARN]: [test] Task #21 for test v1.0 generated an exception
    java.lang.IllegalStateException: Cannot set scoreboard for invalid CraftPlayer
    at org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer.setScoreboard(CraftPlayer.java:1241) ~[craftbukkit.jar:git-Bukkit-0cd0397]
    at me.bukkit.silversledge1031.test$1.run(test.java:49) ~[?:?]
    at org.bukkit.craftbukkit.v1_9_R2.scheduler.CraftTask.run(CraftTask.java:53) ~[craftbukkit.jar:git-Bukkit-0cd0397]
    at org.bukkit.craftbukkit.v1_9_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349) [craftbukkit.jar:git-Bukkit-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:690) [craftbukkit.jar:git-Bukkit-0cd0397]
    at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:360) [craftbukkit.jar:git-Bukkit-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:639) [craftbukkit.jar:git-Bukkit-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:543) [craftbukkit.jar:git-Bukkit-0cd0397]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_65]
    [14:58:44]

    Like: scheduleSyncRepeatingTask?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
  7. @Eclipse_Minecraft_Coder
    You need to show us your code, we're not wizards, we can't know what's wrong if we can't see your code.
     
  8. package me.bukkit.silversledge1031;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.ScoreboardManager;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Scoreboard;



    public class test extends JavaPlugin implements Listener {

    static Plugin plugin;

    public void onEnable() {

    plugin = this;

    Bukkit.getServer().getPluginManager().registerEvents(this, this);

    }

    @EventHandler
    public void PlayerJoin(PlayerJoinEvent e) {
    Player player = e.getPlayer();
    if (player.isOp() == true) {


    final Player p = e.getPlayer();
    ScoreboardManager manager = Bukkit.getScoreboardManager();
    final Scoreboard board = manager.getNewScoreboard();
    Objective objective = board.registerNewObjective("test", "dummy");
    objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
    objective.setDisplayName(ChatColor.DARK_RED + "SERVER_ADMIN");




    Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(test.plugin, new Runnable() {
    public void run() {

    p.setScoreboard(board);
    }
    }, 20*10, 0);

    }}





    }
     
  9. Offline

    Firestar311

    Why do you need to check constantly for that?
    If you are going to do this, you should probably use this in your onEnable Method and check op status for ever player using an enhanced for-loop using Bukkit.getOnlinePlayers(), and then send them the scoreboard.
     
Thread Status:
Not open for further replies.

Share This Page