Skip to content

Instantly share code, notes, and snippets.

/AcceptCommand Secret

Created June 15, 2015 13:55
Show Gist options
  • Select an option

  • Save anonymous/b146f7e02c1f0398dcb2 to your computer and use it in GitHub Desktop.

Select an option

Save anonymous/b146f7e02c1f0398dcb2 to your computer and use it in GitHub Desktop.
1v1
public class AcceptCommand implements CommandExecutor
{
private ChallengeMain plugin;
public AcceptCommand(ChallengeMain plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
if ( !(sender instanceof Player) ) return true;
Player playerSender = (Player) sender;
if (args.length != 1)
{
sender.sendMessage( "Usage: /accept <player>" );
return true;
}
Player player = Bukkit.getPlayer( args[ 0 ] );
if (player.isOnline())
{
} else
{
// handle offline
}
}
}
public class ChallengeCommand implements CommandExecutor
{
private ChallengeMain plugin;
public ChallengeCommand(ChallengeMain plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
if ( !(sender instanceof Player) ) return true;
Player playerSender = (Player) sender;
if (args.length != 1)
{
sender.sendMessage( "Usage: /challenge <player>" );
return true;
}
Player player = Bukkit.getPlayer( args[ 0 ] );
if ( player.isOnline() )
{
if ( !handleAdd( playerSender, player ) )
{
playerSender.sendMessage( "you have to wait to challege again!" )
}
} else {
// TODO: handle offline player
}
}
private boolean handleAdd(Player challenger, Player challenged) {
Map<String, Long> innerMap;
if ( plugin.getChallenges().containsKey( challenged.getName() ) )
{
innerMap = plugin.getChallenges().get( challenged.getName() );
if ( innerMap.containsKey( challenger.getName() )
&& ( innerMap.get( challenger.getName() ) +
plugin.getExpireTime() ) - ( System.currentTimeMillis() / 1000 ) > 0 ) )
{
return true;
}
} else {
innerMap = new HashMap<>();
plugin.getChallenges().put( challenged.getName(), innerMap );
}
innerMap.put( challenger.getName(), System.currentTimeMillis() / 1000 );
return false;
}
}
public class ChallengeMain extends JavaPlugin
{
private Map<String, Map<String, Long>> challenges = new HashMap<>();
private long expireTime = 15; // seconds
@Override
public void onEnable()
{
getCommand( "challenge" ).setExecutor( new ChallengeCommand( this ) );
getCommand( "accept" ).setExecutor( new AcceptCommand( this ) );
}
public Map<String, Map<String, Long>> getChallenges()
{
return challenges;
}
public long getExpireTime()
{
return expireTime;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment