ModsJava
PowerRank
Rank users based on mcMMO power levels. Free Minecraft Java mod — download and open it in the game.
⬇ Download on SpigotRequirements: mcMMO, Vault
What it does: Assigns users to groups based on their mcMMO power level.
Config:
rank:
'1' : noob
'5' : potato
'50' : experienced
'500' : god
interval : 60
Installation:
Configure your ranks in the form of powerlevel: group. The interval is the time in seconds between trying to rank players.
Note:
This plugin will remove users from all other "rank" groups, except the highest one they are meant to be in.
Source (BSD Licensed):
What it does: Assigns users to groups based on their mcMMO power level.
Config:
Code (YAML):
rank:
'1' : noob
'5' : potato
'50' : experienced
'500' : god
interval : 60
Configure your ranks in the form of powerlevel: group. The interval is the time in seconds between trying to rank players.
Note:
This plugin will remove users from all other "rank" groups, except the highest one they are meant to be in.
Source (BSD Licensed):
Spoiler
Code (Java):
package
net.md_5
;
import com.gmail.nossr50.datatypes.player.McMMOPlayer ;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent ;
import com.gmail.nossr50.util.player.UserManager ;
import java.util.Map ;
import java.util.TreeMap ;
import net.milkbowl.vault.permission.Permission ;
import org.bukkit.configuration.ConfigurationSection ;
import org.bukkit.entity.Player ;
import org.bukkit.event.EventHandler ;
import org.bukkit.event.Listener ;
import org.bukkit.plugin.RegisteredServiceProvider ;
import org.bukkit.plugin.java.JavaPlugin ;
public class PowerRank extends JavaPlugin implements Listener, Runnable
{
private final Map < Integer, String > ranks = new TreeMap < Integer, String > ( ) ;
private Permission permission ;
@Override
public void onEnable ( )
{
RegisteredServiceProvider <Permission > permissionProvider = getServer ( ). getServicesManager ( ). getRegistration ( Permission. class ) ;
if ( permissionProvider != null )
{
permission = permissionProvider. getProvider ( ) ;
}
if ( !getConfig ( ). contains ( "rank" ) )
{
getConfig ( ). addDefault ( "rank.1", "noob" ) ;
getConfig ( ). addDefault ( "rank.5", "potato" ) ;
getConfig ( ). addDefault ( "rank.50", "experienced" ) ;
getConfig ( ). addDefault ( "rank.500", "god" ) ;
}
getConfig ( ). addDefault ( "interval", 60 ) ;
getConfig ( ). options ( ). copyDefaults ( true ) ;
saveConfig ( ) ;
ConfigurationSection rankSection = getConfig ( ). getConfigurationSection ( "rank" ) ;
for ( String key : rankSection. getKeys ( false ) )
{
String group = rankSection. getString ( key ) ;
ranks. put ( Integer. parseInt ( key ), group ) ;
}
int period = getConfig ( ). getInt ( "interval" ) * 20 ;
getServer ( ). getScheduler ( ). scheduleSyncRepeatingTask ( this, this, period, period ) ;
getServer ( ). getPluginManager ( ). registerEvents ( this, this ) ;
}
@Override
public void onDisable ( )
{
permission = null ;
}
@Override
public void run ( )
{
for ( Player player : getServer ( ). getOnlinePlayers ( ) )
{
rank ( player ) ;
}
}
@EventHandler
public void rankEvent (McMMOPlayerLevelUpEvent event )
{
rank ( event. getPlayer ( ) ) ;
}
private void rank (Player player )
{
if ( player. hasPermission ( "powerrank.exempt" ) )
{
return ;
}
McMMOPlayer mcMMOPlayer = UserManager. getOfflinePlayer ( player ) ;
if ( mcMMOPlayer == null )
{
return ;
}
int power = mcMMOPlayer. getPowerLevel ( ) ;
String highestRank = null ;
for ( Map. Entry < Integer, String > rank : ranks. entrySet ( ) )
{
if ( rank. getKey ( ) > power )
{
break ;
}
highestRank = rank. getValue ( ) ;
}
if ( highestRank != null )
{
if ( permission. playerInGroup ( null, player, highestRank ) )
{
return ;
}
for ( String group : permission. getPlayerGroups ( null, player ) )
{
if ( ranks. containsValue ( group ) )
{
permission. playerRemoveGroup ( null, player, group ) ;
}
}
permission. playerAddGroup ( null, player, highestRank ) ;
}
}
}
import com.gmail.nossr50.datatypes.player.McMMOPlayer ;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent ;
import com.gmail.nossr50.util.player.UserManager ;
import java.util.Map ;
import java.util.TreeMap ;
import net.milkbowl.vault.permission.Permission ;
import org.bukkit.configuration.ConfigurationSection ;
import org.bukkit.entity.Player ;
import org.bukkit.event.EventHandler ;
import org.bukkit.event.Listener ;
import org.bukkit.plugin.RegisteredServiceProvider ;
import org.bukkit.plugin.java.JavaPlugin ;
public class PowerRank extends JavaPlugin implements Listener, Runnable
{
private final Map < Integer, String > ranks = new TreeMap < Integer, String > ( ) ;
private Permission permission ;
@Override
public void onEnable ( )
{
RegisteredServiceProvider <Permission > permissionProvider = getServer ( ). getServicesManager ( ). getRegistration ( Permission. class ) ;
if ( permissionProvider != null )
{
permission = permissionProvider. getProvider ( ) ;
}
if ( !getConfig ( ). contains ( "rank" ) )
{
getConfig ( ). addDefault ( "rank.1", "noob" ) ;
getConfig ( ). addDefault ( "rank.5", "potato" ) ;
getConfig ( ). addDefault ( "rank.50", "experienced" ) ;
getConfig ( ). addDefault ( "rank.500", "god" ) ;
}
getConfig ( ). addDefault ( "interval", 60 ) ;
getConfig ( ). options ( ). copyDefaults ( true ) ;
saveConfig ( ) ;
ConfigurationSection rankSection = getConfig ( ). getConfigurationSection ( "rank" ) ;
for ( String key : rankSection. getKeys ( false ) )
{
String group = rankSection. getString ( key ) ;
ranks. put ( Integer. parseInt ( key ), group ) ;
}
int period = getConfig ( ). getInt ( "interval" ) * 20 ;
getServer ( ). getScheduler ( ). scheduleSyncRepeatingTask ( this, this, period, period ) ;
getServer ( ). getPluginManager ( ). registerEvents ( this, this ) ;
}
@Override
public void onDisable ( )
{
permission = null ;
}
@Override
public void run ( )
{
for ( Player player : getServer ( ). getOnlinePlayers ( ) )
{
rank ( player ) ;
}
}
@EventHandler
public void rankEvent (McMMOPlayerLevelUpEvent event )
{
rank ( event. getPlayer ( ) ) ;
}
private void rank (Player player )
{
if ( player. hasPermission ( "powerrank.exempt" ) )
{
return ;
}
McMMOPlayer mcMMOPlayer = UserManager. getOfflinePlayer ( player ) ;
if ( mcMMOPlayer == null )
{
return ;
}
int power = mcMMOPlayer. getPowerLevel ( ) ;
String highestRank = null ;
for ( Map. Entry < Integer, String > rank : ranks. entrySet ( ) )
{
if ( rank. getKey ( ) > power )
{
break ;
}
highestRank = rank. getValue ( ) ;
}
if ( highestRank != null )
{
if ( permission. playerInGroup ( null, player, highestRank ) )
{
return ;
}
for ( String group : permission. getPlayerGroups ( null, player ) )
{
if ( ranks. containsValue ( group ) )
{
permission. playerRemoveGroup ( null, player, group ) ;
}
}
permission. playerAddGroup ( null, player, highestRank ) ;
}
}
}
PowerRank is a free Minecraft Java mod. Downloaded 5,923 times (via Spigot). Download it and open it directly in the game.