use of net.md_5.bungee.api.CommandSender in project solinia3-core by mixxit.
the class CommandAA method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player))
return false;
Player player = (Player) sender;
try {
ISoliniaPlayer solplayer = SoliniaPlayerAdapter.Adapt(player);
player.sendMessage("Current AA Points: " + solplayer.getAAPoints());
if (args.length < 1) {
player.sendMessage(ChatColor.GRAY + "Insufficient arguments (list,buy)");
return true;
}
switch(args[0]) {
case "list":
int pageno = 1;
if (args.length > 1)
pageno = Integer.parseInt(args[1]);
pageno = pageno - 1;
int sizePerPage = 8;
List<ISoliniaAARank> fullaaranks = solplayer.getBuyableAARanks();
List<ISoliniaAARank> aaranks = fullaaranks.stream().skip(pageno * sizePerPage).limit(sizePerPage).collect(Collectors.toCollection(ArrayList::new));
for (ISoliniaAARank aarank : aaranks) {
ISoliniaAAAbility aaAbility = StateManager.getInstance().getConfigurationManager().getAAAbility(aarank.getAbilityid());
if (aaAbility != null)
if (!aaAbility.isEnabled())
continue;
if (aarank.getCost() <= solplayer.getAAPoints()) {
if (solplayer.canPurchaseAlternateAdvancementRank(aaAbility, aarank)) {
TextComponent tc = new TextComponent();
tc.setText(ChatColor.LIGHT_PURPLE + aaAbility.getName() + " Rank " + aarank.getPosition() + ChatColor.RESET + " Cost: " + ChatColor.YELLOW + aarank.getCost() + ChatColor.RESET + " AA points /aa buy " + aarank.getId());
String details = ChatColor.GOLD + aaAbility.getName() + " Rank: " + aarank.getPosition() + ChatColor.RESET + "\n" + aarank.getDescription() + ChatColor.RESET;
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(details).create()));
sender.spigot().sendMessage(tc);
} else {
TextComponent tc = new TextComponent();
tc.setText(ChatColor.GRAY + "[NB] " + aaAbility.getName() + " Rank " + aarank.getPosition() + ChatColor.GRAY + " Cost: " + ChatColor.GRAY + aarank.getCost() + ChatColor.GRAY + " Cannot purchase yet");
String details = ChatColor.GOLD + aaAbility.getName() + " Rank: " + aarank.getPosition() + ChatColor.RESET + "\n" + aarank.getDescription() + ChatColor.RESET;
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(details).create()));
sender.spigot().sendMessage(tc);
}
} else {
TextComponent tc = new TextComponent();
tc.setText(ChatColor.GRAY + "[NA] " + aaAbility.getName() + " Rank " + aarank.getPosition() + ChatColor.GRAY + " Cost: " + ChatColor.RED + aarank.getCost() + ChatColor.GRAY + " Insufficient AA points");
String details = ChatColor.GOLD + aaAbility.getName() + " Rank: " + aarank.getPosition() + ChatColor.RESET + "\n" + aarank.getDescription() + ChatColor.RESET;
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(details).create()));
sender.spigot().sendMessage(tc);
}
}
player.sendMessage("Displayed Page " + ChatColor.GOLD + (pageno + 1) + ChatColor.RESET + "/" + ChatColor.GOLD + Math.ceil((float) fullaaranks.size() / (float) sizePerPage) + ChatColor.RESET + " (See /aa list <pageno>");
player.sendMessage("More items may appear when you have more AA points available to spend");
break;
case "give":
if (args.length < 3) {
player.sendMessage("That is not a valid player name and amount /aa give playername amount");
return true;
}
if (!player.isOp()) {
player.sendMessage("Op only command");
return true;
}
Player targetplayer = Bukkit.getPlayer(args[1]);
if (targetplayer == null) {
player.sendMessage("Cannot find player");
return true;
}
int newpoints = Integer.parseInt(args[2]);
if (newpoints < 1) {
player.sendMessage("Too few points never give them less than 1");
return true;
}
if (newpoints > 5) {
player.sendMessage("Too many points man.... never give them more than 5, its supposed to be hard to achieve");
return true;
}
ISoliniaPlayer targetsolplayer = SoliniaPlayerAdapter.Adapt(targetplayer);
targetsolplayer.setAAPoints(targetsolplayer.getAAPoints() + newpoints);
player.sendMessage("* Granted player " + newpoints + " aa points");
targetplayer.sendMessage("* You have been granted " + newpoints + " AA points by Operator " + player.getName());
break;
case "buy":
if (args.length < 2) {
player.sendMessage("That is not a valid AA rank id - /aa buy aaabilityrankid (see /aa list)");
return true;
}
int seekRankId = Integer.parseInt(args[1].toUpperCase());
ISoliniaAARank aarank = StateManager.getInstance().getConfigurationManager().getAARank(seekRankId);
if (aarank == null) {
player.sendMessage("That is not a valid AA rank id - /aa buy aaabilityrankid (see /aa list)");
return true;
}
ISoliniaAAAbility aa = StateManager.getInstance().getConfigurationManager().getAAAbility(aarank.getAbilityid());
if (aa == null) {
player.sendMessage("That is not a valid AA rank id - /aa buy aaabilityrankid (see /aa list)");
return true;
}
if (!solplayer.canPurchaseAlternateAdvancementRank(aa, aarank)) {
player.sendMessage("You cannot buy that AA");
return true;
}
solplayer.purchaseAlternateAdvancementRank(aa, aarank);
try {
ISoliniaLivingEntity solentity = SoliniaLivingEntityAdapter.Adapt(player);
if (player.getMaxHealth() < solentity.getMaxHP()) {
solplayer.updateMaxHp();
}
} catch (CoreStateInitException e) {
}
return true;
default:
player.sendMessage(ChatColor.GRAY + "Invalid arguments (list,buy)");
return true;
}
} catch (CoreStateInitException e) {
}
return true;
}
use of net.md_5.bungee.api.CommandSender in project solinia3-core by mixxit.
the class CommandClaim method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
try {
if (args.length < 1) {
sender.sendMessage(ChatColor.GRAY + "Insufficient arguments (list,claim)");
return true;
}
switch(args[0]) {
case "list":
if (!(sender instanceof Player))
return false;
Player player = (Player) sender;
ISoliniaPlayer solplayer = SoliniaPlayerAdapter.Adapt(player);
sender.sendMessage("Current Claims: " + solplayer.getAccountClaims().size());
for (SoliniaAccountClaim claim : solplayer.getAccountClaims()) {
ISoliniaItem item = StateManager.getInstance().getConfigurationManager().getItem(claim.getItemid());
if (item == null)
continue;
TextComponent tc = new TextComponent();
tc.setText(ChatColor.LIGHT_PURPLE + item.getDisplayname() + " /claim claim " + claim.getId());
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_ITEM, new ComponentBuilder(item.asJsonString()).create()));
sender.spigot().sendMessage(tc);
}
return true;
case "give":
if (!sender.isOp())
return false;
if (args.length < 3) {
sender.sendMessage("That is not a claim id - /claim give mcaccountname itemid");
return true;
}
String mcaccountname = args[1];
int itemId = Integer.parseInt(args[2].toUpperCase());
SoliniaAccountClaim newclaim = new SoliniaAccountClaim();
newclaim.setId(StateManager.getInstance().getConfigurationManager().getNextAccountClaimId());
newclaim.setMcname(mcaccountname);
newclaim.setItemid(itemId);
newclaim.setClaimed(false);
StateManager.getInstance().getConfigurationManager().addAccountClaim(newclaim);
sender.sendMessage("Account claim added!");
return true;
case "claim":
if (!(sender instanceof Player))
return false;
Player claimPlayer = (Player) sender;
ISoliniaPlayer solClaimPlayer = SoliniaPlayerAdapter.Adapt(claimPlayer);
sender.sendMessage("Current Claims: " + solClaimPlayer.getAccountClaims().size());
if (args.length < 2) {
sender.sendMessage("That is not a claim id - /claim claim claimid (see /claim list)");
return true;
}
int seekClaimId = Integer.parseInt(args[1].toUpperCase());
System.out.println("Looking up claims for player name: " + claimPlayer.getName() + " for claim ID: " + seekClaimId);
SoliniaAccountClaim claim = StateManager.getInstance().getConfigurationManager().getAccountClaim(claimPlayer.getName().toUpperCase(), seekClaimId);
if (claim == null) {
sender.sendMessage("That is not a valid claim - /claim claim claimid (see /claim list)");
return true;
}
ISoliniaItem item = StateManager.getInstance().getConfigurationManager().getItem(claim.getItemid());
if (item == null) {
sender.sendMessage("That is not a valid claim item - /claim claim claimid (see /claim list)");
return true;
}
claimPlayer.getWorld().dropItemNaturally(claimPlayer.getLocation(), item.asItemStack());
sender.sendMessage("Claim item dropped at your feet - ID: " + claim.getId());
StateManager.getInstance().getConfigurationManager().removeClaim(claim.getId());
return true;
default:
sender.sendMessage(ChatColor.GRAY + "Invalid arguments (list,claim)");
return true;
}
} catch (CoreStateInitException e) {
}
return true;
}
use of net.md_5.bungee.api.CommandSender in project ChangeSkin by games647.
the class InfoCommand method execute.
@Override
public void execute(CommandSender sender, String[] strings) {
if (!(sender instanceof ProxiedPlayer)) {
plugin.sendMessage(sender, "no-console");
return;
}
ProxiedPlayer player = (ProxiedPlayer) sender;
UserPreference preference = plugin.getLoginSession((PendingConnection) player);
Optional<SkinModel> optSkin = preference.getTargetSkin();
if (optSkin.isPresent()) {
String template = plugin.getCore().getMessage("skin-info");
sender.sendMessage(TextComponent.fromLegacyText(formatter.apply(template, optSkin.get())));
} else {
plugin.sendMessage(sender, "skin-not-found");
}
}
use of net.md_5.bungee.api.CommandSender in project ChangeSkin by games647.
the class MessageListener method onCommandForward.
private void onCommandForward(CommandSender invoker, ByteArrayDataInput dataInput) {
ForwardMessage message = new ForwardMessage();
message.readFrom(dataInput);
if (message.isOP() && message.isSource()) {
// bukkit op and it won't run as bungee console
invoker.addGroups(plugin.getName() + "-OP");
}
String line = message.getCommandName() + ' ' + message.getArgs();
if (message.isSource()) {
// the player is the actual invoker other it's the console
ProxyServer.getInstance().getPluginManager().dispatchCommand(invoker, line);
} else {
CommandSender console = ProxyServer.getInstance().getConsole();
ProxyServer.getInstance().getPluginManager().dispatchCommand(console, line);
}
}
use of net.md_5.bungee.api.CommandSender in project ChangeSkin by games647.
the class InvalidateCommand method execute.
@Override
public void execute(CommandSender sender, String[] args) {
boolean isOp = sender.getGroups().contains(plugin.getName() + "-OP");
if (sender instanceof ProxiedPlayer) {
sender.removeGroups(plugin.getName() + "-OP");
}
if (args.length > 0) {
ProxiedPlayer targetPlayer = ProxyServer.getInstance().getPlayer(args[0]);
if (targetPlayer == null) {
plugin.sendMessage(sender, "not-online");
return;
}
String permPrefix = plugin.getName().toLowerCase() + ".command.skinupdate.other.";
if (!sender.hasPermission(permPrefix + targetPlayer.getUniqueId()) && !sender.hasPermission(permPrefix + '*')) {
plugin.sendMessage(sender, "no-permission-other");
return;
}
Runnable skinInvalidate = new SkinInvalidator(plugin, sender, targetPlayer, isOp);
ProxyServer.getInstance().getScheduler().runAsync(plugin, skinInvalidate);
return;
}
if (!(sender instanceof ProxiedPlayer)) {
plugin.sendMessage(sender, "no-console");
return;
}
ProxiedPlayer receiver = (ProxiedPlayer) sender;
Runnable skinInvalidate = new SkinInvalidator(plugin, sender, receiver, isOp);
ProxyServer.getInstance().getScheduler().runAsync(plugin, skinInvalidate);
}
Aggregations