Advertisement
omr__

PlayerEx FTBRanks auto rank up

Apr 23rd, 2023 (edited)
1,475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /******************************************************************************
  2.  *                    PlayerEx FTBRanks auto rank up                          *
  3.  *                                                   Version:   1.2.2         *
  4.  *                                            Author Discord:   om_r#3567     *
  5.  * -------------------------------------------------------------------------- *
  6.  *                            Requirements                                    *
  7.  *    FTBRanks config:                                                        *
  8.  *      - level => promote condition                                          *
  9.  *      - ftbranks.name_format => rank display style                          *
  10.  ******************************************************************************/
  11.  
  12. PlayerEvents.tick((event) => {
  13.   const ExAPI = Java.loadClass('com.github.clevernucleus.playerex.api.ExAPI');
  14.   const FTBranksAPI = Java.loadClass('dev.ftb.mods.ftbranks.api.FTBRanksAPI');
  15.   const RankManager = FTBranksAPI.INSTANCE.getManager();
  16.   const INTERVAL_SECONDS = 10;
  17.  
  18.   if ((event.server.getTickCount() % (INTERVAL_SECONDS * 20)) === 0) {
  19.     let rankToPromote = RankManager.getAllRanks().find(rank => rank.getPermission('level') <= ExAPI.PLAYER_DATA.get(event.player).get(ExAPI.LEVEL));
  20.     let playerRanks = RankManager.getRanks(event.player);
  21.     let isRankAddded = playerRanks.find(rank => rank.toString() === rankToPromote);
  22.  
  23.     if (!isRankAddded) {
  24.       rankToPromote.add(event.player.profile)
  25.       if (playerRanks.length) {
  26.         playerRanks[playerRanks.length - 1].remove(event.player.profile);
  27.         displayPromotionNotification(event.player, rankToPromote);
  28.       }
  29.     }
  30.   }
  31. });
  32.  
  33. function displayPromotionNotification(player, rank) {
  34.   const name = player.name.string;
  35.   const getMessage = text =>2⚔ ${text} has been promoted to ${rank.getPermission('ftbranks.name_format').toString().replace('&', '§').replace(' {name}', '').replace('[', '').replace(']', '')} §2⚔`;
  36.   Utils.server.runCommandSilent(`title ${name} title "§c§lCongratulations!"`);
  37.   Utils.server.runCommandSilent(`title ${name} subtitle "${getMessage('You')}"`);
  38.   Utils.server.runCommandSilent(`playsound advancementplaques:ui.toast.goal_complete master ${name}`);
  39.   player.runCommandSilent(`playsound advancementplaques:ui.toast.goal_complete master ${name}`);
  40.   Utils.server.tell(getMessage(name));
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement