Getting a players team (Scoreboard API)

Discussion in 'Plugin Development' started by eol123, Aug 29, 2013.

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

    eol123

    Yeah. The title explains it, i'm using scoreboards for teams, but I need the players to respawn at choosen coords and give them stuff, so, I need to check if the player is in a team(on death event), and teleport them to those coords. I looked around but I couldn't find any method for getting a players team. All help welcome :)

    Bump? :rolleyes:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  2. Offline

    sermister

    Code:java
    1. @EventHandler
    2. public void Death (PlayerDeathEvent event, Scoreboard board){
    3. Player player = event.getEntity();
    4. Team team = board.getPlayerTeam(player);
    5. }


    You must specify target scoreboard...
     
  3. Offline

    eol123

    sermister, thanks! But how would i write this is if the team is called red?
     
  4. Offline

    Assult

    if your teamobject is called red you simply change "Team team = board.getPlayerTeam(player)" to "Team red = board.getPlayerTeam(Player)"

    No, dont do that xD
    Im sooo tired today..

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  5. Offline

    eol123

    What about:
    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2.  
    3. Scoreboard board = manager.getNewScoreboard();
    4.  
    5. Team team = board.registerNewTeam("red");
    6.  
    7. @EventHandler
    8. public void Death (PlayerDeathEvent event, Scoreboard board){
    9. Player player = event.getEntity();
    10. Team red = board.getPlayerTeam(player);
    11. if(board.getPlayerTeam(null) == red){
    12. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    13. }
    14.  
    15. }
    16.  
    17. }

    (I'm sure it's wrong.......)

    :I

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  6. Offline

    sermister

    Change:
    Code:java
    1. if(board.getPlayerTeam(null) == red){

    to:
    Code:java
    1. if(red.equals("red")){

    or:
    Code:java
    1. if(red.equals(team)){

    And it should works...
     
  7. Offline

    eol123

    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2.  
    3. Scoreboard board = manager.getNewScoreboard();
    4.  
    5. Team team = board.registerNewTeam("red");
    6.  
    7.  
    8. @EventHandler
    9. public void Death (PlayerDeathEvent event, Scoreboard board){
    10. Player player = event.getEntity();
    11. Team red = board.getPlayerTeam(player);
    12. if(red.equals(team)){
    13. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    14. player.sendMessage("did it work?");
    15. }
    16.  
    17. }
    18.  
    19.  
    20.  
    21.  
    22.  
    23. }
    24.  

    Didn't work, nether did the other one.
    Also, no errors, so i believe team wasn't created, because it said "team not found" when joining it
    :3
     
  8. Offline

    xTrollxDudex

    eol123
    A listener should only have one parameter
     
    sermister likes this.
  9. Offline

    sermister

    xTrollxDudex Sorry, I did not know..
    eol123 But you create a scoreboard outside the listener, so you can just:

    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getNewScoreboard();
    3.  
    4. Team team = board.registerNewTeam("red");
    5.  
    6.  
    7. @EventHandler
    8. public void Death (PlayerDeathEvent event){
    9. Player player = event.getEntity();
    10. Team red = board.getPlayerTeam(player);
    11.  
    12. if(red.equals(team)){
    13. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    14. player.sendMessage("did it work?");
    15. }
    16. }
     
  10. Offline

    eol123

    sermister, thanks :)
    But i can't join the team with "/scoreboard teams join red", how would I do? :rolleyes:

    "No team was found by the name red"

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  11. Offline

    sermister

    In this plugin you create NEW scoreboard...
    When you write /scoreboard (...) you referring to MAIN SERVER scoreboard.

    So i don't know how
     
  12. Offline

    eol123

    I used teams set with scoreboard commands first, but it seemed like the plugin can't refer to them
     
  13. Offline

    sermister

    I know!!
    You can create this team in Main scoreboard:

    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getMainScoreboard()
    3.  
    4. Team team = board.registerNewTeam("red");
    5.  
    6.  
    7. @EventHandler
    8. public void Death (PlayerDeathEvent event){
    9. Player player = event.getEntity();
    10. Team red = board.getPlayerTeam(player);
    11.  
    12. if(red.equals(team)){
    13. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    14. player.sendMessage("did it work?");
    15. }
    16. }


    Test now ;)
     
  14. Offline

    Assult

    if(red.getPlayers().contains(p.getName()){

    }

    What bout that?
     
  15. Offline

    eol123

    Thing is, I don't know how to join the team

    That might have worked

    How to fix that? :/
    Code:
    2013-08-29 23:19:08 [SEVERE] Could not load 'plugins/ConquestSB.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: Team name 'red' is already in use
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:607)
        at org.bukkit.Bukkit.reload(Bukkit.java:275)
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
        at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.IllegalArgumentException: Team name 'red' is already in use
        at org.apache.commons.lang.Validate.isTrue(Validate.java:157)
        at org.bukkit.craftbukkit.v1_6_R2.scoreboard.CraftScoreboard.registerNewTeam(CraftScoreboard.java:113)
        at code.eol123.ConquestSB.<init>(ConquestSB.java:234)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)
        ... 14 more
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  16. Offline

    sermister

    Code:
    team name 'red' is already in use
    Remove team red, or:

    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getMainScoreboard();
    3.  
    4. Team team;
    5.  
    6. @EventHandler
    7. public void Death(PlayerDeathEvent event){
    8.  
    9. try {
    10. team = board.registerNewTeam("red");}
    11.  
    12. Player player = event.getEntity();
    13. Team red = board.getPlayerTeam(player);
    14.  
    15. if(red.equals(team)){
    16. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    17. player.sendMessage("did it work?");
    18. }
    19. }


    First time I doing something like this XD

    Small edit:
    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getMainScoreboard();
    3.  
    4. Team team;
    5.  
    6. @EventHandler
    7. public void Death(PlayerDeathEvent event){
    8.  
    9. try {
    10. team = board.registerNewTeam("red");}
    11. catch(IllegalArgumentException e){team = board.getTeam("red");}
    12.  
    13. Player player = event.getEntity();
    14. Team red = board.getPlayerTeam(player);
    15.  
    16. if(red.equals(team)){
    17. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    18. player.sendMessage("did it work?");
    19. }
    20. }


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

    eol123

    It fixed the errors :)
    But when i die, i don't get message and respawn at /spawn instead

    Btw, thanks for helping me :D

    EDIT: The edit made the plugin not load, the error:
    Code:
    2013-08-29 23:40:37 [SEVERE] Could not load 'plugins/ConquestSB.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.<init>(CraftServer.java:217)
        at net.minecraft.server.v1_6_R2.PlayerList.<init>(PlayerList.java:56)
        at net.minecraft.server.v1_6_R2.DedicatedPlayerList.<init>(SourceFile:11)
        at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:106)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:391)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NullPointerException
        at code.eol123.ConquestSB.<init>(ConquestSB.java:232)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)
        ... 9 more
    I get the message, so it gets triggered, also no errors, but I get teleported to spawn. I guess the spawn overrides, how could I fix?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  18. Offline

    eol123

    I tried to add a delay, with this code:
    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getMainScoreboard();
    3.  
    4. Team team;
    5.  
    6. @EventHandler
    7. public void Death(PlayerDeathEvent event){
    8.  
    9. try {
    10. team = board.registerNewTeam("red");}
    11. catch(IllegalArgumentException e){team = board.getTeam("red");}
    12.  
    13. final Player player = event.getEntity();
    14. Team red = board.getPlayerTeam(player);
    15.  
    16. if(red.equals(team)){
    17. getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    18. @Override
    19. public void run() {
    20. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    21. player.sendMessage("did it work?");
    22. }
    23. }, 40L);
    24. }
    25. }
    26. }
    27.  
    28.  
    29.  
    30.  


    But i get this error when dying:
    Code:
    2013-08-31 10:49:14 [SEVERE] Could not pass event PlayerDeathEvent to ConquestSB v2.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
        at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:344)
        at net.minecraft.server.v1_6_R2.EntityPlayer.die(EntityPlayer.java:307)
        at net.minecraft.server.v1_6_R2.EntityLiving.damageEntity(EntityLiving.java:709)
        at net.minecraft.server.v1_6_R2.EntityHuman.damageEntity(EntityHuman.java:714)
        at net.minecraft.server.v1_6_R2.EntityPlayer.damageEntity(EntityPlayer.java:378)
        at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.damage(CraftLivingEntity.java:197)
        at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.damage(CraftLivingEntity.java:466)
        at com.earth2me.essentials.commands.Commandlightning.run(Commandlightning.java:58)
        at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:102)
        at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:96)
        at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:423)
        at com.earth2me.essentials.Essentials.onCommand(Essentials.java:319)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
        at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:954)
        at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:872)
        at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:829)
        at net.minecraft.server.v1_6_R2.Packet3Chat.handle(SourceFile:49)
        at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
        at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116)
        at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
        at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NoClassDefFoundError: com/eol123/conquest/ConquestSB$1
        at com.eol123.conquest.ConquestSB.Death(ConquestSB.java:247)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 31 more
    Caused by: java.lang.ClassNotFoundException: com.eol123.conquest.ConquestSB$1
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 37 more
    2013-08-31 10:49:14 [INFO] eol123 died
    
    Bump :rolleyes:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  19. Offline

    kbunkrams97

    This is what I suggest rather than checking for an exception.
    Code:java
    1. Scoreboard scoreboard= Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getMainScoreboard();
    3.  
    4. Team team;
    5.  
    6. @EventHandler
    7. public void Death(PlayerDeathEvent event){
    8.  
    9. if(!scoreboard.getTeams().contains("red"))
    10. {
    11. scoreboard.registerNewTeam("red");
    12. }
    13.  
    14. final Player player = event.getEntity();
    15. team = board.getPlayerTeam(player);
    16.  
    17. if(team.equals(scoreboard.getTeam("red"))){
    18. getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    19. @Override
    20. public void run() {
    21. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    22. player.sendMessage("did it work?");
    23. }
    24. }, 40L);
    25. }
    26. }
    27. }
    28.  
    29.  
    30.  
    31.  
     
  20. Offline

    eol123

    That gave me alot of errors

    On "Bukkit.getScoreboardManager();"
    And "Scoreboard board = manager.getMainScoreboard();"

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  21. Offline

    chasechocolate

    eol123 you have to use a build of Bukkit that has the scoreboard API.
     
  22. Offline

    kbunkrams97

    Sorry the declaration for scoreboard was still set as board and I had Bukkit.getScoreboardManager() trying to set as a Scoreboard type.
    Code:java
    1.  
    2. Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
    3.  
    4. Team team;
    5.  
    6. @EventHandler
    7. public void Death(PlayerDeathEvent event){
    8.  
    9. if(!scoreboard.getTeams().contains("red"))
    10. {
    11. scoreboard.registerNewTeam("red");
    12. }
    13.  
    14. final Player player = event.getEntity();
    15. team = scoreboard.getPlayerTeam(player);
    16.  
    17. if(team.equals(scoreboard.getTeam("red"))){
    18. getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    19. @Override
    20. public void run() {
    21. player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
    22. player.sendMessage("did it work?");
    23. }
    24. }, 40L);
    25. }
    26. }
    27. }
    28.  
    29.  
    30.  
    31.  


    That was actually caused by my failure to change some of the code.

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

    eol123

    chasechocolate, I use the newest bukkit build.
    kbunkrams97, thanks, will try!

    Get this when dying :( (I'm in team red)
    Code:
    2013-08-31 17:28:42 [SEVERE] Could not pass event PlayerDeathEvent to ConquestSB v2.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
        at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:344)
        at net.minecraft.server.v1_6_R2.EntityPlayer.die(EntityPlayer.java:307)
        at net.minecraft.server.v1_6_R2.EntityLiving.damageEntity(EntityLiving.java:709)
        at net.minecraft.server.v1_6_R2.EntityHuman.damageEntity(EntityHuman.java:714)
        at net.minecraft.server.v1_6_R2.EntityPlayer.damageEntity(EntityPlayer.java:378)
        at net.minecraft.server.v1_6_R2.EntityLiving.x(EntityLiving.java:171)
        at net.minecraft.server.v1_6_R2.Entity.l_(Entity.java:230)
        at net.minecraft.server.v1_6_R2.EntityLiving.l_(EntityLiving.java:1242)
        at net.minecraft.server.v1_6_R2.EntityHuman.l_(EntityHuman.java:157)
        at net.minecraft.server.v1_6_R2.EntityPlayer.h(EntityPlayer.java:223)
        at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:343)
        at net.minecraft.server.v1_6_R2.Packet10Flying.handle(SourceFile:136)
        at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
        at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116)
        at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
        at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.IllegalArgumentException: Team name 'red' is already in use
        at org.apache.commons.lang.Validate.isTrue(Validate.java:157)
        at org.bukkit.craftbukkit.v1_6_R2.scoreboard.CraftScoreboard.registerNewTeam(CraftScoreboard.java:113)
        at com.eol123.conquest.ConquestSB.Death(ConquestSB.java:242)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 24 more
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  24. Offline

    chasechocolate

    eol123 line 9 in his example should be: if(scoreboard.getTeam("red") == null).
     
  25. Offline

    eol123

    chasechocolate Thanks! It works now!
    But how would I make a "blue team"? I could probably make it, but it would probably mess it all up.

    Nevermind, fixed it.

    It seems like that my code makes the server lag alot, are there any good way to fix that?
    And yes, im a noob at coding.
    Code:
            Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
             
            Team team;
             
            @EventHandler
            public void Death(PlayerDeathEvent event){
             
                if(scoreboard.getTeam("red") == null)
            {
            scoreboard.registerNewTeam("red");
            }
             
            final Player player = event.getEntity();
            team = scoreboard.getPlayerTeam(player);
             
            if(team.equals(scoreboard.getTeam("red"))){
            getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
            @Override
            public void run() {
            player.teleport(new Location(Bukkit.getWorld("world"), -207, 79, 123));
            player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 100, 2));
            player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 90, 1));
            player.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 100, 3));
           
            ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
            LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
            meta.setColor(Color.RED);
            helm.setItemMeta(meta);
            player.getInventory().setHelmet(helm);
     
           
            ItemStack chestPlate = new ItemStack(Material.LEATHER_CHESTPLATE);
            LeatherArmorMeta meta1 = (LeatherArmorMeta) chestPlate.getItemMeta();
            meta1.setColor(Color.RED);
            chestPlate.setItemMeta(meta1);
            player.getInventory().setChestplate(chestPlate);
           
            ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
            LeatherArmorMeta meta2 = (LeatherArmorMeta) leggings.getItemMeta();
            meta2.setColor(Color.RED);
            leggings.setItemMeta(meta2);
            player.getInventory().setLeggings(leggings);
           
            ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
            LeatherArmorMeta meta3 = (LeatherArmorMeta) boots.getItemMeta();
            meta3.setColor(Color.RED);
            boots.setItemMeta(meta3);
            player.getInventory().setBoots(boots);
                       
            player.getInventory().setItem(0, new ItemStack(Material.WOOD_SWORD, 1));
            player.getInventory().setItem(4, new ItemStack(Material.FISHING_ROD, 1));
            player.getInventory().setItem(2, new ItemStack(Material.WOOD_PICKAXE, 1));
            player.getInventory().setItem(5, new ItemStack(Material.BREAD, 3));
            player.getInventory().setItem(1, new ItemStack(Material.GOLD_HOE, 1));
            player.getInventory().setItem(6, new ItemStack(Material.FLINT, 3));
            player.getInventory().setItem(7, new ItemStack(Material.COMPASS, 1));
            player.getInventory().setItem(3, new ItemStack(Material.WOOD_AXE, 1));
            }
            }, 40L);
            }
            }
           
            @EventHandler
            public void Death1(PlayerDeathEvent event){
             
                if(scoreboard.getTeam("blue") == null)
            {
            scoreboard.registerNewTeam("blue");
            }
             
            final Player player = event.getEntity();
            team = scoreboard.getPlayerTeam(player);
             
            if(team.equals(scoreboard.getTeam("blue"))){
            getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
            @Override
            public void run() {
            player.teleport(new Location(Bukkit.getWorld("world"), -123, 83, -283));
            player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 100, 2));
            player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 90, 1));
            player.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 100, 3));
           
     
           
           
           
            ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
            LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
            meta.setColor(Color.BLUE);
            helm.setItemMeta(meta);
            player.getInventory().setHelmet(helm);
           
            ItemStack chestPlate = new ItemStack(Material.LEATHER_CHESTPLATE);
            LeatherArmorMeta meta1 = (LeatherArmorMeta) chestPlate.getItemMeta();
            meta1.setColor(Color.BLUE);
            chestPlate.setItemMeta(meta1);
            player.getInventory().setChestplate(chestPlate);
           
            ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
            LeatherArmorMeta meta2 = (LeatherArmorMeta) leggings.getItemMeta();
            meta2.setColor(Color.BLUE);
            leggings.setItemMeta(meta2);
            player.getInventory().setLeggings(leggings);
           
            ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
            LeatherArmorMeta meta3 = (LeatherArmorMeta) boots.getItemMeta();
            meta3.setColor(Color.BLUE);
            boots.setItemMeta(meta3);
            player.getInventory().setBoots(boots);
           
            player.getInventory().setItem(0, new ItemStack(Material.WOOD_SWORD, 1));
            player.getInventory().setItem(4, new ItemStack(Material.FISHING_ROD, 1));
            player.getInventory().setItem(2, new ItemStack(Material.WOOD_PICKAXE, 1));
            player.getInventory().setItem(5, new ItemStack(Material.BREAD, 3));
            player.getInventory().setItem(1, new ItemStack(Material.GOLD_HOE, 1));
            player.getInventory().setItem(6, new ItemStack(Material.FLINT, 3));
            player.getInventory().setItem(7, new ItemStack(Material.COMPASS, 1));
            player.getInventory().setItem(3, new ItemStack(Material.WOOD_AXE, 1));
           
           
            }
            }, 40L);
            }
            }
           
           
            }
             
             
              
    Also, where do i put things like "red.setAllowFriendlyFire(false);"
    I've tried some ways but well, friendly fire and color names doesn't work, how would I do? :rolleyes:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  26. Offline

    eol123

  27. Offline

    legoman519

    I need help, how do I make it so when someone joins the online players updates on the scoreboard?

    Code:java
    1. package me.legoman519.plugins.ScoreBoards;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.event.player.PlayerJoinEvent;
    8. import org.bukkit.plugin.PluginManager;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10. import org.bukkit.scoreboard.DisplaySlot;
    11. import org.bukkit.scoreboard.Objective;
    12. import org.bukkit.scoreboard.Score;
    13. import org.bukkit.scoreboard.Scoreboard;
    14. import org.bukkit.scoreboard.ScoreboardManager;
    15.  
    16. public class Main extends JavaPlugin implements Listener {
    17.  
    18. Scoreboard board;
    19.  
    20. public void onEnable() {
    21. PluginManager pm = getServer().getPluginManager();
    22. pm.registerEvents(this, this);
    23.  
    24. scoreboard();
    25. }
    26.  
    27. public void scoreboard() {
    28. ScoreboardManager manager = Bukkit.getScoreboardManager();
    29. board = manager.getNewScoreboard();
    30.  
    31. Objective objective = board.registerNewObjective("Test", "Test2");
    32. objective.setDisplayName(ChatColor.DARK_RED + "§lCrimsonRealm");
    33. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    34.  
    35. int a = Bukkit.getOnlinePlayers().length;
    36. int b = Bukkit.getMaxPlayers();
    37.  
    38. Score onlineplayers = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Online Players"));
    39. onlineplayers.setScore(a);
    40.  
    41. Score maxplayers = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Max Players"));
    42. maxplayers.setScore(b);
    43.  
    44. }
    45.  
    46. @EventHandler
    47. public void onJoin(PlayerJoinEvent e) {
    48. e.getPlayer().setScoreboard(board);
    49.  
    50. }
    51.  
    52. public void onDisable() {
    53. }
    54. }
    55.  
     
Thread Status:
Not open for further replies.

Share This Page