Search in sources :

Example 6 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onDeath.

@EventHandler
public void onDeath(PlayerDeathEvent event) {
    LOGGER.debug("Death event from " + event.getEntity().getName());
    Player player = event.getEntity();
    final User user = UserLoader.fromPlayer(player);
    if (user == null)
        return;
    user.debug("death!");
    player.sendMessage(ChatColor.DARK_RED + "You died!");
    final int countdown = plugin.getServerOptions().getDeathCountdown();
    boolean normal = true;
    for (UserHook hook : userHookRegistry.getHooks()) {
        if (!hook.onDeath(user)) {
            normal = false;
        }
    }
    user.debug("-normal=" + normal);
    boolean fNormal = normal;
    sync(() -> {
        if (fNormal) {
            user.sendToFloor("BeginnerTown");
        }
        user.respawn();
        if (fNormal) {
            user.getPlayer().sendTitle(ChatColor.RED + "< " + ChatColor.DARK_RED + "You are dead" + ChatColor.RED + " >", ChatColor.GRAY + "Respawning on floor 1", 0, 20 * (countdown - 2), 40);
            user.setDeathCountdown(countdown);
        }
    }, 1);
}
Also used : Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) UserHook(mc.dragons.core.gameobject.user.UserHook) EventHandler(org.bukkit.event.EventHandler)

Example 7 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onQuit.

@EventHandler
public void onQuit(PlayerQuitEvent event) {
    LOGGER.debug("Quit event on " + event.getPlayer().getName());
    User user = UserLoader.fromPlayer(event.getPlayer());
    if (user == null)
        return;
    user.handleQuit();
    event.setQuitMessage(null);
}
Also used : User(mc.dragons.core.gameobject.user.User) EventHandler(org.bukkit.event.EventHandler)

Example 8 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class ChangeLogCommands method onCommand.

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    requirePlayer(sender);
    User user = user(sender);
    if (label.equalsIgnoreCase("whatsnew") || label.equalsIgnoreCase("news")) {
        viewNews(sender, user);
    } else if (label.equalsIgnoreCase("newsmanager")) {
        manageNews(sender, user, args);
    }
    return true;
}
Also used : User(mc.dragons.core.gameobject.user.User)

Example 9 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class SystemLogonCommand method login.

private void login(CommandSender sender, String[] args) {
    if (!requirePlayer(sender))
        return;
    User user = user(sender);
    if (args.length < 2) {
        sender.sendMessage(ChatColor.RED + "/syslogon <profile> <password>");
        return;
    }
    long wait = rateLimiting.getOrDefault(user, 0L) + 1000 * rateLimitingCounter.getOrDefault(user, 0);
    if (wait > System.currentTimeMillis()) {
        sender.sendMessage(ChatColor.RED + "Please wait " + rateLimitingCounter.get(user) + "s.");
        return;
    }
    UUID cid = LOGGER.newCID();
    if (user.getSystemProfile() != null) {
        LOGGER.trace(cid, "user is currently signed in. signing out first");
        systemProfileLoader.logoutProfile(user.getSystemProfile().getProfileName());
        user.setActivePermissionLevel(PermissionLevel.USER);
        sender.sendMessage(ChatColor.GREEN + "Signed out of current system profile");
    }
    SystemProfile profile = systemProfileLoader.authenticateProfile(user, args[0], args[1], cid);
    if (profile == null) {
        LOGGER.trace(cid, "user notified of error");
        sender.sendMessage(ChatColor.RED + "Could not log in! Make sure you are authorized on this account and entered the correct password.");
        sender.sendMessage(ChatColor.RED + "If the issue persists, report the following error message: " + StringUtil.toHdFont("Correlation ID: " + cid));
        rateLimiting.put(user, System.currentTimeMillis());
        rateLimitingCounter.put(user, Integer.valueOf(Math.max(rateLimitingCounter.getOrDefault(user, 0) * 2, 1)));
        return;
    }
    user.setSystemProfile(profile);
    user.setActivePermissionLevel(profile.getMaxPermissionLevel());
    sender.sendMessage(ChatColor.GREEN + "Logged on to system console as " + profile.getProfileName() + ". Permission level: " + profile.getMaxPermissionLevel().toString());
    LOGGER.discardCID(cid);
}
Also used : User(mc.dragons.core.gameobject.user.User) SystemProfile(mc.dragons.core.gameobject.user.permission.SystemProfile) UUID(java.util.UUID)

Example 10 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class SystemLogonCommand method changeActiveLevel.

private void changeActiveLevel(CommandSender sender, String[] args) {
    if (!requirePlayer(sender))
        return;
    User user = user(sender);
    if (!requireLogin(sender))
        return;
    if (user.getSystemProfile() == null) {
        sender.sendMessage(ChatColor.RED + "You're not logged in to a system profile.");
        return;
    }
    PermissionLevel level = StringUtil.parseEnum(sender, PermissionLevel.class, args[1]);
    if (level == null)
        return;
    boolean result = user.setActivePermissionLevel(level);
    if (result) {
        sender.sendMessage(ChatColor.GREEN + "Changed active permission level to " + args[1]);
    } else {
        sender.sendMessage(ChatColor.RED + "Could not change active permission level: requested permission level exceeds maximum level for this profile.");
    }
}
Also used : User(mc.dragons.core.gameobject.user.User) PermissionLevel(mc.dragons.core.gameobject.user.permission.PermissionLevel)

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