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);
}
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);
}
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;
}
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);
}
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.");
}
}
Aggregations