Invalid argument to operation ++/--

Discussion in 'Plugin Development' started by Jack3885, Jan 18, 2015.

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

    Jack3885

    Hi what I want is to give a player a point every hour, the code I was gave:
    I get Invalid argument to operation ++/--
    playersOnline.put(p.getName(), playersOnline.getValue(p)++);
    Code:java
    1.  
    2. [LIST=1]
    3. [*]HashMap<String, Integer> playersOnline = new HashMap<String, Integer>();
    4. [*]
    5.  
    6. [*]new BukkitRunnable(){
    7. [*]@Override
    8. [*] public void run() {
    9. [*] for (Player p : Bukkit.getOnlinePlayers()) {
    10. [*] if(!playersOnline.contains(p.getName())) playersOnline.put(p, 0);
    11. [*] playersOnline.put(p.getName(), playersOnline.getValue(p)++);
    12. [*] if(playersOnline.get(p.getName()) > 5){
    13. [*] // Do stuff.
    14. [*] }
    15. [*] }
    16. [*] }
    17. [*]}.runTaskTimer(this, 0L, (20*60)*5L);
    18. [/LIST]
    19. [syntax/]
    20. Any help at all is apreciated
     
  2. @Jack3885
    Code:
    playersOnline.getValue(p) + 1
     
  3. Offline

    Zombie_Striker

    Did you try
    Code:
    [*] playersOnline.put(p.getName(), playersOnline.getValue(p)+1);
     
  4. Offline

    1Rogue

    increment and decrement operators only work on variables, not values.
    Code:java
    1. Map<String, Integer> test = new HashMap<>();
    2. test.put("example", 42);
    3. test.get("example")++; //bad
    4. Integer example = test.get("example");
    5. example++; //fine
    6. example = 42++; //bad
     
Thread Status:
Not open for further replies.

Share This Page