Solved getLocation and getPlayer for specified player

Discussion in 'Plugin Development' started by elsheggie, Oct 5, 2013.

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

    elsheggie

    So i want a thunder effect only for myself if i join the game. (My in game name is MaartenDekkers)
    Now i have this code:
    Code:java
    1. @EventHandler(priority=EventPriority.LOW)
    2. public void onPlayerJoin(PlayerJoinEvent event) {
    3. Player player = event.getPlayer();
    4. thunder(player, player.getLocation());
    5. }
    6.  
    7. public void thunder(Player player, Location l)
    8. {
    9. player.getWorld().strikeLightningEffect(l);
    10. }


    How can i only have this for myself?
    PS: it also doesn't not work.
     
  2. Offline

    jimuskin

    Did you register the listener in your onEnable?
     
  3. Offline

    3ptO

    Code:java
    1. if (player.getName().equals("MaartenDekkers") {
    2. //execute
    3. }
     
  4. Offline

    elsheggie

    no, im just new at java/bukkit programming.
     
  5. Offline

    jimuskin

  6. Offline

    3ptO

    Try this,
    Code:java
    1. public void onPlayerJoin(PlayerJoinEvent event)
    2. {
    3. Player player = event.getPlayer();
    4. World world = player.getWorld();
    5. Location loc = player.getLocation();
    6. String name = player.getName();
    7.  
    8. if (name.equals("MaartenDekkers")) {
    9. world.strikeLightningEffect(loc);
    10. }
    11. }
     
    jimuskin likes this.
  7. Offline

    elsheggie

    Gives this error:
    Syntax error, insert ") Statement" to complete IfStatement
     
  8. Offline

    3ptO

    elsheggie See edited post, simple mistake on my part. Writing code on Bukkit forums doesn't return errors :p
     
    jimuskin likes this.
  9. Offline

    Techy4198

    elsheggie insert another ) after "MaartenDekkers"
     
  10. Offline

    3ptO

  11. Offline

    elsheggie

    Still doesn't work... Is this right?

    Code:java
    1. package me.maartendekkers.thunderjoin;
    2.  
    3. import org.bukkit.entity.Player;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.EventPriority;
    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.Bukkit;
    11. import org.bukkit.Location;
    12. import org.bukkit.World;
    13.  
    14. public class ThunderJoin extends JavaPlugin implements Listener{
    15. public void onDisable()
    16. {
    17. getLogger().info("ThunderJoin is gestopt!");
    18. }
    19.  
    20. public void onEnable()
    21. {
    22. getLogger().info("ThunderJoin is gestart!");
    23. }
    24.  
    25. public void onPlayerJoin(PlayerJoinEvent event)
    26. {
    27. Player player = event.getPlayer();
    28. World world = player.getWorld();
    29. Location loc = player.getLocation();
    30. String name = player.getName();
    31.  
    32. if (name.equals("MaartenDekkers")) {
    33. world.strikeLightningEffect(loc);
    34. getLogger().info("MaartenDekkers kreeg de bliksem op zn kop");
    35. }
    36. }
    37. }
     
  12. Offline

    3ptO

    elsheggie You need to register the event, also, providing the StackTrace helps...
    Code:java
    1. public void onEnable()
    2. {
    3. getLogger().info("ThunderJoin is gestart!");
    4. Bukkit.getPluginManager().registerEvents(this, this);
    5. }
     
  13. Offline

    Techy4198

    3ptO if he didn't register the event, then there wont be a stacktrace...
     
  14. Offline

    elsheggie

    Thanks! It worked when i added @EventHandler to it!
     
  15. Offline

    3ptO

    Techy4198 It's late lol, he said it doesn't work and so I expected a StackTrace
    elsheggie Always register your events and all events require an @EventHandler.
     
Thread Status:
Not open for further replies.

Share This Page