Advertisement
Marcely99

MBedwars: Example for creating custom stats

Sep 2nd, 2021
1,687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. class LevelStatSet implements PlayerStatSet {
  2.    
  3.     @Override
  4.     public String getId(){
  5.         return "leveladdon:level";
  6.     }
  7.  
  8.     @Override
  9.     public Plugin getPlugin(){
  10.         return myPlugin;
  11.     }
  12.  
  13.     @Override
  14.     public String getName(@Nullable CommandSender sender){
  15.         return Message.buildByKey("LevelAddon_Stat_Level", "Level").done(sender); // will try to obtain it from the messages file or display "Level" by default
  16.     }
  17.  
  18.     @Override
  19.     public String getDisplayedValue(PlayerStats stats){
  20.         return Helper.get().formatNumber(getValue(stats)); // how it will be displayed in /bw stats
  21.     }
  22.  
  23.     @Override
  24.     public Number getValue(PlayerStats stats){
  25.         return return stats.get("leveladdon:exp").longValue() / 1000L; // your fomular to convert exp -> level
  26.     }
  27. }
  28.  
  29. class ExpStatSet implements PlayerStatSet {
  30.  
  31.     @Override
  32.     public String getId(){
  33.         return "leveladdon:experience";
  34.     }
  35.  
  36.     @Override
  37.     public Plugin getPlugin(){
  38.         return myPlugin;
  39.     }
  40.  
  41.     @Override
  42.     public String getName(@Nullable CommandSender sender){
  43.         return Message.buildByKey("LevelAddon_Stat_Experience", "Experience").done(sender); // will try to obtain it from the messages file or display "Experience" by default
  44.     }
  45.  
  46.     @Override
  47.     public String getDisplayedValue(PlayerStats stats){
  48.         return Helper.get().formatNumber(getValue(stats).longValue()); // how it will be displayed in /bw stats
  49.     }
  50.  
  51.     @Override
  52.     public Number getValue(PlayerStats stats){
  53.         return return stats.get("leveladdon:exp").longValue();
  54.     }
  55.  
  56.     @Override
  57.     public void setValue(PlayerStats stats, Number num){
  58.         stats.set("leveladdon:exp", num);
  59.     }
  60. }
  61.  
  62. StatSet expSet = new ExpStatSet();
  63. StatSet lvlSet = new LevelStatSet();
  64.  
  65. PlayerDataAPI.get().registerStatSet(expSet);
  66. PlayerDataAPI.get().registerStatSet(lvlSet);
  67.  
  68. PlayerDataAPI.getStats(player, stats -> {
  69.     expSet.setValue(player, 12489);
  70.  
  71.     player.sendMessage("Your exp: " + expSet.getValue(player) + ", your lvl: " + lvlSet.getValue(player));
  72. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement