Sueta

Banwaves - PlaceholderAPI Support [Multi Waves + API]

1.0.2

Simple and Thorough Banwaves

·Plugin

Banwave
A thorough and simple banwave plugin.

Features

  • Extensive configuration
  • Multiple banwaves supported
  • Banwave statistics - announce how many have been banned
  • Configurable timings
  • Configurable messages
  • Simple API, includes Events
  • PlaceholderAPI Support for commands
  • Run commands per player or for each banwave


Example Config
Banwaves  :  
  'Default'  :  
    Enabled   :  true  
    Rate   :  600000  #Milliseconds, 600000 = 10 minutes, 1000 = 1 second   
    RunAtCapacity   :  5  #Automatically run the banwave if more than 5 players are queued   
    RemoveOnStop   :  false  #If true, players will be removed from the banwave if it is manually stopped (/bw stop)  
     #Placeholders: %player%, %reason%, %staff%, %playerUUID%, %staffUUID%   
    Commands  :  
      OnBanwave   :   #These commands will run once the banwave initiates (not player specific)  
      - 'say The  %name% banwave has initiated'   
      PerPlayer   :   #These commands will be run per player when the banwave initiates  
      - 'ban  %player% %reason% (%staff%) [Banwave]'   
      Online   :   #These commands will be run when the banwave initiates and the player is still online  
      - 'say  %player% has been kicked and banwaved from the server.'   
      Offline   :   #These commands will be run when the banwave initiates and the player is offline  
      - 'say  %player% is offline and has been banwaved from the server.'   
      OnAdd   :   #These commands will be run when the player is added to the banwave  
      - 'say  %player% is now added to the banwave'   
      OnRemove   :   #These commands will be run when the player is removed from the banwave  
      - 'say  %player% has been removed from the banwave.'   
    Permissions   :   #If not set, default is "banwave.add.[name]", "banwave.remove.[name]", [etc]   
      Add   :  'banwave.add.default'  
      Remove   :  'banwave.remove.default'  
      View   :  'banwave.view.default'  
      Start   :  'banwave.start.default'  
      Stop   :  'banwave.stop.default'  
      Stats   :  'banwave.stats.default'  
    Statistics  :  
      Enabled   :  true  
      WaveHistoryDuration   :  2.628e+9  #1 month  
       #Placeholders: %name%, %count:___% (milliseconds)   
      PublicRate   :  1.8e+6  #Milliseconds (30 minutes) [Set to -1 to disable]   
      InternalMessage   : 
      - ' ' 
      - '&4&l  %name% Banwave Statistics &7[INTERNAL]'  
      - '&3&lTIMESPAN&7 | &e&lAMOUNT' 
      - '' 
      - '&3&l1 &bHour &7- &e  %count:3.6e+6%'  
      - '&3&l1 &bDay &7- &e  %count:8.64e+7%'  
      - '&3&l1 &bWeek &7- &e  %count:6.048e+87%'  
      - '&3&l1 &bMonth &7- &e  %count:2.628e+9%'  
      - ' '  
      PublicMessage   : 
      - ' ' 
      - '&4&l  [   %name%&4&l] Banwave Statistics'  
      - '&cIn the previous &4&l7 days&c, this banwave' 
      - '&chas banished &4&l  %count:6.048e+8%&c total players.'  
      - '&cPlease make sure to check out the' 
      - '&crules and report rule breakers!' 
      - ' '
Language File
NoPermission   :  '  %prefix% You do not have permission to do this.'   
Banwave  :  
  Unknown   :  '&cUnknown banwave.'  
Help  :  
  default   : 
  - '&3&l  ---------  -- &b&lBanwave Help &3&l  ---------  -'  
  - '&3/banwave &b- Main Banwave Command &7(Alias   :  /bw  )  ' 
  - perm:banwave.add &3/banwave add &e  [  Player  ]   [  Banwave  ]   [  Reason  ]  &b- Add a player to a banwave 
  - perm:banwave.remove &3/banwave remove &e  [  Player  ]   [  Banwave  ]  &b- Remove a player from a banwave 
  - perm:banwave.trigger &3/banwave trigger &e  [  Banwave  ]  &b- Manually trigger a banwave 
  - perm:banwave.view &3/banwave view &e  [  Banwave  ]  &b- View players and timing of a banwave 
  - perm:banwave.stats &3/banwave stats &e  [  Banwave  ]  &b- View statistics for a banwave 
  - perm:banwave.start &3/banwave start &e  [  Banwave  ]  &b- Start a stopped banwave 
  - perm:banwave.stop &3/banwave stop &e  [  Banwave  ]  &b- Stop a banwave 
  - perm:banwave.reload &3/banwave reload &b- Reload configuration 
  - perm:banwave.reset &3/banwave reset &b- Reset configuration 
  - perm:banwave.list &3/banwave list &b- List  all  banwaves  
  banwave  :  
    list   : 
    - ' ' 
    - '&3&lThe Banwave &b&lList &3&lCommand'  
    - '&3Description   :   &bLists   all  banwaves in config.' 
    - ' '  
    - '&9Usage   :   &3/banwave  list'  
    add   : 
    - ' ' 
    - '&3&lThe Banwave &b&lAdd &3&lCommand'  
    - '&3Description   :   &bAdds  a player to a banwave, will not work if the player is 
      already in it.' 
    - ' '  
    - '&9Usage   :   &3/banwave  add &e  [  Player  ]   [  Banwave  ]   [  Reason  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave add &eMSWS Default Fly Hacking' 
    - '  &3/banwave add &eFooBar Default Leaking Memory'  
    remove   : 
    - ' ' 
    - '&3&lThe Banwave &b&lRemove &3&lCommand'  
    - '&3Description   :   &bRemoves  a player from a banwave, will not work if the player 
      is not in it.' 
    - ' '  
    - '&9Usage   :   &3/banwave  remove &e  [  Player  ]   [  Banwave  ]   [  Reason  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave remove &eMSWS Default' 
    - '  &3/banwave remove &eFooBar Default'  
    trigger   : 
    - ' ' 
    - '&3&lThe Banwave &b&lTrigger &3&lCommand'  
    - '&3Description   :   &bManually  triggers a banwave. &cWill &4not &creset or modify 
      timings.' 
    - ' '  
    - '&9Usage   :   &3/banwave  trigger &e  [  Banwave  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave trigger &eDefault'  
    view   : 
    - ' ' 
    - '&3&lThe Banwave &b&lView &3&lCommand'  
    - '&3Description   :   &bView  a banwave''s players and timings.' 
    - ' '  
    - '&9Usage   :   &3/banwave  view &e  [  Banwave  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave view &eDefault'  
    stats   : 
    - ' ' 
    - '&3&lThe Banwave &b&lStats &3&lCommand'  
    - '&3Description   :   &bView  a banwave''s stats.' 
    - ' '  
    - '&9Usage   :   &3/banwave  stats &e  [  Banwave  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave stats &eDefault'  
    stop   : 
    - ' ' 
    - '&3&lThe Banwave &b&lStop &3&lCommand'  
    - '&3Description   :   &cStop  &ba running banwave, will prevent commands and queues 
      to be issued. Players may or may not be removed depending on what''s configured.' 
    - ' '  
    - '&9Usage   :   &3/banwave  stop &e  [  Banwave  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave stop &eDefault'  
    start   : 
    - ' ' 
    - '&3&lThe Banwave &b&lStart &3&lCommand'  
    - '&3Description   :   &aResume  &ba &cstopped &bbanwave.' 
    - ' '  
    - '&9Usage   :   &3/banwave  start &e  [  Banwave  ]  ' 
    - ' ' 
    - '&9Examples:' 
    - '  &3/banwave start &eDefault'  
    reload   : 
    - ' ' 
    - '&3&lThe Banwave &b&lReload &3&lCommand'  
    - '&3Description   :   &bReloads   all  configuration files  (  config and lang  )  , refreshes 
      Banwave messages.' 
    - ' '  
    - '&9Usage   :   &3/banwave  reload'  
    reset   : 
    - ' ' 
    - '&3&lThe Banwave &b&lReset &3&lCommand'  
    - '&3Description   :   &bResets   all  configuration files  (  config and lang  )  , &4&lcan 
      not be undone.' 
    - ' '  
    - '&9Usage   :   &3/banwave  reset'

Permissions

banwaves.[command] - Give access to the command
banwaves.[command].[action] - Give access to run an action on a command, eg: banwaves.add.default

Example of listening to a banwave event.

@EventHandler 
     public   void  onBanwave  (  BanwaveEvent event  )   {  
       Banwave bw  =  event.  getBanwave   (   )   ;  
       Set  <  PlayerEntry  >  players  =  bw.  getPlayers   (   )   ;  
       Iterator  <  PlayerEntry  >  entries  =  players.  iterator   (   )   ;  
         while   (  entries.  hasNext   (   )   )   {  
           PlayerEntry e  =  entries.  next   (   )   ;  
             if   (  e.  getPlayer   (   )  .  isOp   (   )   )  
               entries.  remove   (   )   ;  
         }  
       bw.  setPlayers   (  players  )   ;  
     }

Really enjoy the plugin and would like to donate?

Similar projects

Plugin →