Advertisement
KananGamer

[TFM-TS] Ban system

Jul 15th, 2020
1,373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Player extends PlayerEntity {
  2.     private priv: number = 0;
  3.     private banned: boolean = false;
  4.  
  5.     constructor(playerName: string) {
  6.         super(playerName);
  7.         players.set(this);
  8.  
  9.         this.bindKeyboard(32, true, true);
  10.         this.lowerSyncDelay();
  11.  
  12.         if (staff[playerName])
  13.             this.priv = staff[playerName];
  14.     }
  15.  
  16.     onCommand(command: string) {
  17.         let cmd = command.split(' ');
  18.  
  19.         if (this.hasPriv(2)) {
  20.             if (cmd[0] == "ban" && cmd[1]) {
  21.                 let player = players.get(cmd[1]);
  22.  
  23.                 if (player)
  24.                     if (player.priv >= 2 ? this.hasPriv(4) : true)
  25.                         if (player.ban())
  26.                             this.chatMessage(translate("player_banned"));
  27.             } else if (cmd[0] == "unban" && cmd[1]) {
  28.                 let player = players.get(cmd[1]);
  29.  
  30.                 if (player && player.unban())
  31.                     this.chatMessage(translate("player_unbanned"));
  32.             }
  33.         }
  34.     }
  35.  
  36.     hasPriv(priv: number) : Boolean {
  37.         if (this.priv >= priv) {
  38.             return true;
  39.         }
  40.  
  41.         this.chatMessage("Você não tem permissão!");
  42.         return false;
  43.     }
  44.  
  45.     ban() : boolean {
  46.         if (!this.banned) {
  47.             this.banned = true;
  48.             this.chatMessage(translate("banned"));
  49.  
  50.             return true;
  51.         }
  52.  
  53.         return false;
  54.     }
  55.  
  56.     unban() : boolean {
  57.         if (this.banned) {
  58.             this.banned = false;
  59.             this.chatMessage(translate("unbanned"));
  60.  
  61.             return true;
  62.         }
  63.  
  64.         return false;
  65.     }
  66. }
  67.  
  68. tfm.exec.setRoomMaxPlayers(25);
  69. system.disableChatCommandDisplay();
  70.  
  71. function eventNewPlayer(playerName: string) {
  72.     let player = players.get(playerName);
  73.  
  74.     if (!player)
  75.         player = players.set(new Player(playerName));
  76.     else
  77.         players.call("rejoin", playerName);
  78. }
  79.  
  80. for (let playerName in tfm.get.room.playerList)
  81.     eventNewPlayer(playerName);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement