Search in sources :

Example 11 with User

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()));
}
Also used : User(mc.dragons.core.gameobject.user.User) SystemProfile(mc.dragons.core.gameobject.user.permission.SystemProfile) UUID(java.util.UUID)

Example 12 with User

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);
    }
}
Also used : NPC(mc.dragons.core.gameobject.npc.NPC) Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) EventHandler(org.bukkit.event.EventHandler)

Example 13 with User

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);
}
Also used : User(mc.dragons.core.gameobject.user.User) QuestStep(mc.dragons.core.gameobject.quest.QuestStep) QuestAction(mc.dragons.core.gameobject.quest.QuestAction) Quest(mc.dragons.core.gameobject.quest.Quest)

Example 14 with User

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;
}
Also used : Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) Rank(mc.dragons.core.gameobject.user.Rank)

Example 15 with User

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;
}
Also used : User(mc.dragons.core.gameobject.user.User)

Aggregations

User (mc.dragons.core.gameobject.user.User)157 Player (org.bukkit.entity.Player)49 Document (org.bson.Document)28 EventHandler (org.bukkit.event.EventHandler)26 UUID (java.util.UUID)25 List (java.util.List)22 StringUtil (mc.dragons.core.util.StringUtil)21 ArrayList (java.util.ArrayList)19 ChatColor (org.bukkit.ChatColor)19 Collectors (java.util.stream.Collectors)18 WrappedUser (mc.dragons.tools.moderation.WrappedUser)17 Dragons (mc.dragons.core.Dragons)14 DragonsCommandExecutor (mc.dragons.core.commands.DragonsCommandExecutor)14 Item (mc.dragons.core.gameobject.item.Item)14 UserLoader (mc.dragons.core.gameobject.user.UserLoader)14 PermissionLevel (mc.dragons.core.gameobject.user.permission.PermissionLevel)14 Command (org.bukkit.command.Command)14 CommandSender (org.bukkit.command.CommandSender)14 NPC (mc.dragons.core.gameobject.npc.NPC)13 SystemProfileFlag (mc.dragons.core.gameobject.user.permission.SystemProfile.SystemProfileFlags.SystemProfileFlag)12