NOT SOLVED How to set a max xp level?

Discussion in 'Plugin Development' started by Schaakmatth, May 6, 2014.

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

    Schaakmatth

    My goal:
    Give the player 1 xp level
    When they kill someone
    But i want to set a limit how to that?
    Code:

    @EventHandler
    public void onPlayerKill (PlayerDeathEvent e) {
    String killer = e.getEntity().getKiller().getName();
    String killed = e.getEntity().getName();
    killer.setLevel(killer.getLevel() +1);
     
  2. Offline

    Zacky1

    Well first off, youre accessing a method that isn't native to the String class (meaning you probably meant to type Player killer = e.getEntity().getKiller(); ) HOWEVER you cannot assume the player's killer is a player. It could be an arrow or a zombie ect..

    Next, a maximum would be something like
    Code:java
    1.  
    2. double MAX_EXP = 750.o;
    3. if(killer.getExp() + 2 <= MAX_EXP){ //Since killer.getExp() returns a float lets not cast and stuff...
    4. killer.setExp(killer.getExp() + 2);
    5. }
    6.  
     
  3. Offline

    Schaakmatth

    @EventHandler
    public void onPlayerKill (PlayerDeathEvent e) {
    Player killer = e.getEntity().getKiller();
    killer.setExp(killer.getExp() +1);
    e.setDroppedXp(0);

    I don't understand i want to set the Max. To 100 Zacky1
     
  4. Schaakmatth 1. Learn more of Java otherwise you'll encounter problems a lot.
    2. Check if their level is equal to or greater than your maximum.
     
  5. Offline

    Schaakmatth

    I think that you don't understand my goal i want when player1 kill player 2 player 1 get xp when player1 kill player2 player have a Total of 2 xp but i want that he cant get higher than 100xp ok?

    AdamQpzm Schaakmatth

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 8, 2016
  6. Schaakmatth Do you want to just stop your plugin from giving them levels when they're at 100, or do you want to prevent them from getting any more levels at all? (i.e. so that no player can never have 101 levels or higher ever)
     
  7. Offline

    Schaakmatth

    Stopping giving new levels at 100 AdamQpzm
     
  8. Offline

    jusjus112

    Schaakmatth
    Just check when the player reached level 50 or something, cancel the levelChangeEvent!
    Code:java
    1. @EventHandler
    2. public void onxpChange(PlayerLevelChangeEvent e) {
    3. Player p = e.getPlayer();
    4. if (e.getPlayer().getLevel() > YOUR_MAXLEVEL_HERE-1) {
    5. p.setLevel(YOUR_MAXLEVEL_HERE);
    6. }
    7. }
     
  9. Offline

    FabeGabeMC

    Schaakmatth as jusjus112 said,
    You can create a new integer and test if the level is bigger to the integer you created:
    Code:java
    1. int maxLevel = 100;
    2.  
    3. //EVENT HANDLER
    4. @EventHandler
    5. public void onPlayerLevelChange(PlayerLevelChangeEvent e){
    6. Player p = e.getPlayer();
    7. if(p.getLevel() > maxLevel){
    8. p.setLevel(maxLevel);
    9. }else return;
    10. }
     
Thread Status:
Not open for further replies.

Share This Page