Could someone troubleshoot this for me?

Discussion in 'Plugin Development' started by Zix, Apr 12, 2014.

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

    Zix

    Im really not sure why this isnt working.
    Im trying to make it so when a player already has a quest, they cannot activate another one.
    Code:java
    1. @SuppressWarnings("deprecation")
    2. @EventHandler(priority = EventPriority.HIGHEST)
    3. public void onBlockClick(PlayerInteractEvent event){
    4. Player player = event.getPlayer();
    5. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    6. Block block = event.getClickedBlock();
    7. if(block.getType() == Material.STONE){
    8. String quest = "bread";
    9. String current = "bread";
    10. if (this.getConfig().get(player.getName() + ".currentquest") == current){
    11. player.sendMessage(ChatColor.RED + "You already have an active quest");
    12. } else if (this.getConfig().get(player.getName() + ".currentquest") == current) {
    13. player.sendMessage(ChatColor.DARK_AQUA + "New quest started!");
    14. player.sendMessage(ChatColor.AQUA + "Deliver this bread to the bakery");
    15. player.getInventory().addItem(new ItemStack(Material.BREAD, 3));
    16. player.updateInventory();
    17. this.getConfig().get(player.getName() + ".currentquest", quest);
    18. saveConfig();
    19. }
    20. saveConfig();
    21. }
    22. }
    23. }
    24.  
    25. @EventHandler(priority = EventPriority.HIGHEST)
    26. public void onQuestFinish(PlayerInteractEvent event){
    27. Player player = event.getPlayer();
    28. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    29. Block block = event.getClickedBlock();
    30. if(block.getType() == Material.GOLD_BLOCK){
    31. if (this.getConfig().get(player.getName() + ".currentquest") == "bread"){
    32. player.sendMessage(ChatColor.RED + "You did it!");
    33. this.getConfig().get(player.getName() + ".currentquest", "none");
    34. saveConfig();
    35. } else if (this.getConfig().get(player.getName() + ".currentquest") == "none") {
    36. player.sendMessage("That quest is nut fur u!");
    37. }
    38. }
    39. }
    40. }
     
  2. Offline

    zDylann

    So why is line 10 and 12 the same condition?
     
  3. Offline

    xJeremyCx

    Yep, why's line 10 and 12 are the same?
     
  4. Offline

    FabeGabeMC

  5. Offline

    Zix

    xJeremyCx Oh, didnt see that there lol
    I changed some things around and now I got this;
    Code:java
    1. @SuppressWarnings("deprecation")
    2. @EventHandler(priority = EventPriority.HIGHEST)
    3. public void onBlockClick(PlayerInteractEvent event){
    4. Player player = event.getPlayer();
    5. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    6. Block block = event.getClickedBlock();
    7. if(block.getType() == Material.STONE){
    8. String none = "none";
    9. String bread = "bread";
    10. if (this.getConfig().get(player.getName() + ".currentquest") == bread){
    11. player.sendMessage(ChatColor.RED + "You already have an active quest");
    12. } else if (this.getConfig().get(player.getName() + ".currentquest") == none) {
    13. player.sendMessage(ChatColor.DARK_AQUA + "New quest started!");
    14. player.sendMessage(ChatColor.AQUA + "Deliver this bread to the bakery");
    15. player.getInventory().addItem(new ItemStack(Material.BREAD, 3));
    16. player.updateInventory();
    17. this.getConfig().get(player.getName() + ".currentquest", bread);
    18. saveConfig();
    19. }
    20. saveConfig();
    21. }
    22. }
    23. }
    24.  
    25. @EventHandler(priority = EventPriority.HIGHEST)
    26. public void onQuestFinish(PlayerInteractEvent event){
    27. Player player = event.getPlayer();
    28. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    29. Block block = event.getClickedBlock();
    30. if(block.getType() == Material.GOLD_BLOCK){
    31. if (this.getConfig().get(player.getName() + ".currentquest") == "bread"){
    32. player.sendMessage(ChatColor.RED + "You did it!");
    33. this.getConfig().get(player.getName() + ".currentquest", "none");
    34. saveConfig();
    35. } else if (this.getConfig().get(player.getName() + ".currentquest") == "none") {
    36. player.sendMessage("That quest is nut fur u!");
    37. }
    38. }
    39. }
    40. }

    But it still doesnt work

    EDIT: Got it working now, thanks for the help guys :D
     
  6. Offline

    xJeremyCx

    Zix
    Try this maybe?
    Code:java
    1. getConfig().getString(player.getName() + ".currentquest") == bread
     
  7. Offline

    Wizehh

    Wrong. Strings are compared with '.equals()' or '.equalsIgnoreCase()'. I don't know the exact technicalities, but you cannot compare Strings with '=='.
     
  8. Offline

    xJeremyCx

    Oh yes, you are right. I forgot that :p
     
  9. Offline

    amhokies

    Comparing two objects with the equality operator compares their memory addresses, I believe.
     
  10. Offline

    Aljed_The_Legit

    Done.

    Code:java
    1. @SuppressWarnings("deprecation")
    2. @EventHandler(priority = EventPriority.HIGHEST)
    3. public void onBlockClick(PlayerInteractEvent event){
    4. Player player = event.getPlayer();
    5. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    6. Block block = event.getClickedBlock();
    7. if(block.getType() == Material.STONE){
    8. String quest = "bread";
    9. String current = "bread";
    10. if (this.getConfig().get(player.getName() + ".currentquest") == current){
    11. player.sendMessage(ChatColor.RED + "You already have an active quest");
    12. } else if (this.getConfig().get(player.getName() + ".currentquest") != current) {
    13. player.sendMessage(ChatColor.DARK_AQUA + "New quest started!");
    14. player.sendMessage(ChatColor.AQUA + "Deliver this bread to the bakery");
    15. player.getInventory().addItem(new ItemStack(Material.BREAD, 3));
    16. player.updateInventory();
    17. this.getConfig().get(player.getName() + ".currentquest", quest);
    18. saveConfig();
    19. }
    20. saveConfig();
    21. }
    22. }
    23. }
    24. }


    Edited.
     
Thread Status:
Not open for further replies.

Share This Page