public void onLogout(Player player) { try { Resident resident = getDataSource().getResident(player.getName()); resident.setLastOnline(System.currentTimeMillis()); getDataSource().saveResident(resident); } catch (NotRegisteredException e) { } setChangedNotify(PLAYER_LOGOUT); }
public void onLogin(Player player) throws AlreadyRegisteredException, NotRegisteredException { if (!player.isOnline()) return; // Test and kick any players with invalid names. if ((player.getName().trim() == null) || (player.getName().contains(" "))) { player.kickPlayer("Invalid name!"); return; } Resident resident; if (!getDataSource().hasResident(player.getName())) { getDataSource().newResident(player.getName()); resident = getDataSource().getResident(player.getName()); TownyMessaging.sendMessage(player, TownySettings.getRegistrationMsg(player.getName())); resident.setRegistered(System.currentTimeMillis()); if (!TownySettings.getDefaultTownName().equals("")) try { Town town = getDataSource().getTown(TownySettings.getDefaultTownName()); town.addResident(resident); getDataSource().saveTown(town); } catch (NotRegisteredException e) { } catch (AlreadyRegisteredException e) { } getDataSource().saveResident(resident); getDataSource().saveResidentList(); } else { resident = getDataSource().getResident(player.getName()); resident.setLastOnline(System.currentTimeMillis()); getDataSource().saveResident(resident); } try { TownyMessaging.sendTownBoard(player, resident.getTown()); } catch (NotRegisteredException e) { } if (isWarTime()) getWarEvent().sendScores(player, 3); // Schedule to setup default modes when the player has finished loading if (getPlugin() .getServer() .getScheduler() .scheduleSyncDelayedTask(getPlugin(), new SetDefaultModes(this, player, false), 1) == -1) TownyMessaging.sendErrorMsg("Could not set default modes for " + player.getName() + "."); setChangedNotify(PLAYER_LOGIN); }
public void adminSet(String[] split) throws TownyException { if (split.length == 0) { sender.sendMessage(ChatTools.formatTitle("/townyadmin set")); // TODO: player.sendMessage(ChatTools.formatCommand("", // "/townyadmin set", "king [nation] [king]", "")); sender.sendMessage( ChatTools.formatCommand( "", "/townyadmin set", "mayor [town] " + TownySettings.getLangString("town_help_2"), "")); sender.sendMessage(ChatTools.formatCommand("", "/townyadmin set", "mayor [town] npc", "")); // player.sendMessage(ChatTools.formatCommand("", "/townyadmin set", // "debugmode [on/off]", "")); // player.sendMessage(ChatTools.formatCommand("", "/townyadmin set", // "devmode [on/off]", "")); return; } if (!TownyUniverse.getPermissionSource() .testPermission( player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET.getNode(split[0].toLowerCase()))) throw new TownyException(TownySettings.getLangString("msg_err_command_disable")); if (split[0].equalsIgnoreCase("mayor")) { if (split.length < 3) { sender.sendMessage(ChatTools.formatTitle("/townyadmin set mayor")); sender.sendMessage( ChatTools.formatCommand( "Eg", "/townyadmin set mayor", "[town] " + TownySettings.getLangString("town_help_2"), "")); sender.sendMessage( ChatTools.formatCommand("Eg", "/townyadmin set mayor", "[town] npc", "")); } else try { Resident newMayor = null; Town town = TownyUniverse.getDataSource().getTown(split[1]); if (split[2].equalsIgnoreCase("npc")) { String name = nextNpcName(); TownyUniverse.getDataSource().newResident(name); newMayor = TownyUniverse.getDataSource().getResident(name); newMayor.setRegistered(System.currentTimeMillis()); newMayor.setLastOnline(0); newMayor.setNPC(true); TownyUniverse.getDataSource().saveResident(newMayor); TownyUniverse.getDataSource().saveResidentList(); // set for no upkeep as an NPC mayor is assigned town.setHasUpkeep(false); } else { newMayor = TownyUniverse.getDataSource().getResident(split[2]); // set upkeep again town.setHasUpkeep(true); } if (!town.hasResident(newMayor)) TownCommand.townAddResident(town, newMayor); // Delete the resident if the old mayor was an NPC. Resident oldMayor = town.getMayor(); town.setMayor(newMayor); if (oldMayor.isNPC()) { try { town.removeResident(oldMayor); TownyUniverse.getDataSource().removeResident(oldMayor); TownyUniverse.getDataSource().removeResidentList(oldMayor); } catch (EmptyTownException e) { // Should never reach here as we are setting a new // mayor before removing the old one. e.printStackTrace(); } } TownyUniverse.getDataSource().saveTown(town); String[] msg = TownySettings.getNewMayorMsg(newMayor.getName()); TownyMessaging.sendTownMessage(town, msg); // TownyMessaging.sendMessage(player, msg); } catch (TownyException e) { TownyMessaging.sendErrorMsg(getSender(), e.getMessage()); } } else if (split[0].equalsIgnoreCase("capital")) { if (split.length < 2) { sender.sendMessage(ChatTools.formatTitle("/townyadmin set capital")); sender.sendMessage(ChatTools.formatCommand("Eg", "/ta set capital", "[town name]", "")); } else { try { Town newCapital = TownyUniverse.getDataSource().getTown(split[1]); Nation nation = newCapital.getNation(); nation.setCapital(newCapital); plugin.resetCache(); TownyMessaging.sendNationMessage( nation, TownySettings.getNewKingMsg(newCapital.getMayor().getName(), nation.getName())); TownyUniverse.getDataSource().saveNation(nation); TownyUniverse.getDataSource().saveNationList(); } catch (TownyException e) { TownyMessaging.sendErrorMsg(player, e.getMessage()); } } } else { TownyMessaging.sendErrorMsg( getSender(), String.format(TownySettings.getLangString("msg_err_invalid_property"), "administrative")); return; } }