/*------------------------------------------------------------------------- svninfo: $Id$ Maarten's Mud, WWW-based MUD using MYSQL Copyright (C) 1998 Maarten van Leunen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Maarten van Leunen Appelhof 27 5345 KA Oss Nederland Europe maarten_l@yahoo.com -------------------------------------------------------------------------*/ package mmud.commands; import java.util.logging.Logger; import mmud.Constants; import mmud.InvalidMailException; import mmud.MailException; import mmud.MudException; import mmud.characters.Person; import mmud.characters.Persons; import mmud.characters.User; import mmud.database.Database; import mmud.database.MailDb; /** * Send a mudmail to someone. expected command something like : * <P> * <B>sendmail [to] [header length] [header] [body] </B> */ public class SendMailCommand extends NormalCommand { public SendMailCommand(String aRegExpr) { super(aRegExpr); } @Override public boolean run(User aUser) throws MailException, MudException { Logger.getLogger("mmud").finer(""); String command = getCommand(); String[] myParsed = Constants.parseCommand(command); if (myParsed.length > 4) { Person toChar = Persons.retrievePerson(myParsed[1]); if (toChar == null) { toChar = Database.getUser(myParsed[1], ""); } if ((toChar == null) || (!(toChar instanceof User))) { aUser.writeMessage("Cannot find that person.<BR>\r\n"); return true; } User toUser = (User) toChar; int size = 0, start = 0; String header; String message; try { size = Integer.parseInt(myParsed[2]); } catch (NumberFormatException e) { Logger.getLogger("mmud").info( "thrown: " + Constants.INVALIDMAILERROR); throw new InvalidMailException(); } Logger.getLogger("mmud").finer(""); start = 8 + 1 + toUser.getName().length() + 1 + myParsed[2].length() + 1; header = command.substring(start, size + start); message = command.substring(start + size + 1 - 1); MailDb.sendMail(aUser, toUser, header, message); aUser.writeMessage("Mail sent.<BR>\r\n"); return true; } return false; } public Command createCommand() { return new SendMailCommand(getRegExpr()); } }