use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.
the class SystemLogonCommand method showProfileInfo.
private void showProfileInfo(CommandSender sender, String[] args) {
if (!requirePermission(sender, PermissionLevel.ADMIN))
return;
SystemProfile systemProfile = systemProfileLoader.loadProfile(args[1]);
if (systemProfile == null) {
sender.sendMessage(ChatColor.RED + "No system profile by that name exists!");
return;
}
sender.sendMessage(ChatColor.GOLD + "Viewing system profile " + systemProfile.getProfileName());
sender.sendMessage(ChatColor.YELLOW + "Status: " + ChatColor.RESET + (systemProfile.isActive() ? "Active" : "Inactive"));
sender.sendMessage(ChatColor.YELLOW + "Max. Permission Level: " + ChatColor.RESET + systemProfile.getMaxPermissionLevel());
sender.sendMessage(ChatColor.YELLOW + "Flags: " + ChatColor.RESET + systemProfile.getFlags());
sender.sendMessage(ChatColor.YELLOW + "Allowed Users:");
for (UUID uuid : systemProfile.getAllowedUUIDs()) {
User user = GameObjectType.USER.<User, UserLoader>getLoader().loadObject(uuid);
if (user == null) {
sender.sendMessage(ChatColor.RESET + "- " + uuid);
} else {
sender.sendMessage(ChatColor.RESET + "- " + uuid + " (" + user.getName() + ")");
}
}
sender.sendMessage(ChatColor.YELLOW + "Current User: " + ChatColor.RESET + (systemProfile.getCurrentUser() == null ? "(None)" : systemProfile.getCurrentUser().getName()));
}
use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.
the class EntityDamageListener method onEntityDamage.
/**
* Handles damage where the player is not being damaged by another entity.
*
* @param event
*/
@EventHandler
public void onEntityDamage(EntityDamageEvent event) {
LOGGER.trace("Damage event on " + StringUtil.entityToString(event.getEntity()));
Entity target = event.getEntity();
if (target.isInvulnerable())
event.setCancelled(true);
NPC npc = NPCLoader.fromBukkit(target);
if (npc != null && npc.isImmortal())
event.setCancelled(true);
if (target instanceof Player) {
User user = UserLoader.fromPlayer((Player) target);
if (user != null && user.isGodMode())
event.setCancelled(true);
}
}
use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.
the class QuestDialogueCommands method questChoice.
/* 0=<questName>, 1=<response text> */
private void questChoice(CommandSender sender, String[] args) {
if (args.length < 2) {
return;
}
User user = user(sender);
String questName = args[0];
String response = StringUtil.concatArgs(args, 1);
user.debug("Selected quest choice " + response + " for quest " + questName);
// get the current quest action they're on
Quest quest = questLoader.getQuestByName(questName);
// invalid quest name
if (quest == null)
return;
QuestStep progress = user.getQuestProgress().get(quest);
// user has not begun quest
if (progress == null)
return;
int actionIndex = user.getQuestActionIndex(quest) - 1;
QuestAction action = progress.getActions().get(actionIndex);
// not a stage where the user needs to input anything
if (action.getActionType() != QuestAction.QuestActionType.CHOICES)
return;
// possible responses are mapped to a new quest stage
Integer stage = action.getChoices().get(response);
if (stage == null) {
return;
}
sender.sendMessage(ChatColor.GRAY + "[1/1] " + ChatColor.DARK_GREEN + "You: " + ChatColor.GREEN + response);
user.setQuestPaused(quest, false);
user.updateQuestProgress(quest, quest.getSteps().get(stage), false);
}
use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.
the class RankCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!requirePermission(sender, PermissionLevel.ADMIN))
return true;
if (args.length < 2) {
sender.sendMessage(ChatColor.RED + "Insufficient arguments! /rank <player> <rank>");
sender.sendMessage(ChatColor.RED + "Valid ranks are: " + StringUtil.parseList(Rank.values()));
return true;
}
User targetUser = lookupUser(sender, args[0]);
if (targetUser == null)
return true;
Player targetPlayer = targetUser.getPlayer();
Rank rank = StringUtil.parseEnum(sender, Rank.class, args[1]);
if (rank == null) {
return true;
}
if (rank.isStaff() && !hasPermission(sender, PermissionLevel.SYSOP)) {
sender.sendMessage(ChatColor.RED + "Staff ranks are only available through system profiles.");
return true;
}
targetUser.setRank(rank);
if (targetPlayer == null) {
sender.sendMessage(ChatColor.YELLOW + "Player is not online on this server! They will have to rejoin for the rank update to be fully applied.");
} else {
targetPlayer.sendTitle(ChatColor.DARK_GRAY + "Rank Update", rank.getNameColor() + rank.getRankName(), 20, 40, 20);
targetPlayer.sendMessage(ChatColor.GRAY + "Your rank was updated to " + rank.getNameColor() + rank.getRankName());
}
boolean verified = false;
if (rank.isStaff() && !targetUser.isVerified()) {
targetUser.setVerified(true);
verified = true;
}
sender.sendMessage(ChatColor.GREEN + "Rank updated successfully." + (verified ? " User was automatically verified." : ""));
return true;
}
use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.
the class RespawnCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!requirePermission(sender, PermissionLevel.TESTER))
return true;
User user = user(sender);
if (!user.hasDeathCountdown()) {
sender.sendMessage(ChatColor.RED + "You're not currently on a death countdown!");
return true;
}
user.setDeathCountdown(0);
user.getPlayer().resetTitle();
sender.sendMessage(ChatColor.GREEN + "Respawning now...");
return true;
}
Aggregations