1 20 21 package freecs.commands; 22 import freecs.interfaces.ICommand; 23 import freecs.content.MessageState; 24 25 30 public class CmdAccept extends AbstractCommand { 31 public final String cmd= "/a"; 32 private static final ICommand selve=new CmdAccept(); 33 34 private CmdAccept () { } 35 36 public static ICommand getInstance () { 37 return selve; 38 } 39 40 public boolean execute (MessageState msgState, String param) { 41 if (isPunished(msgState)) return false; 42 msgState.targetGroup = msgState.sender.invitedTo (); 43 if (msgState.targetGroup == null) return false; 44 msgState.usercontext = msgState.sender.invitedBy (); 45 if (!msgState.targetGroup.usrIsPresent (msgState.usercontext)) { 46 msgState.msgTemplate = "error.a.noLongerValid"; 47 msgState.sender.sendMessage (msgState.mp); 48 return false; 49 } 50 if (msgState.targetGroup != null 51 && msgState.targetGroup.usrIsBaned (msgState.sender)) { 52 msgState.msgTemplate = "error.j.banned"; 53 msgState.sender.sendMessage (msgState.mp); 54 return false; 55 } 56 msgState.sourceGroup = msgState.sender.getGroup (); 57 if (msgState.targetGroup.equals (msgState.sourceGroup)) { 58 msgState.sender.unsetInvitedTo (); 59 msgState.msgTemplate="error.j.alreadyHere"; 60 msgState.sender.sendMessage(msgState.mp); 61 return false; 62 } 63 if (!msgState.targetGroup.addUser (msgState.sender, msgState.usercontext, true)) { 64 msgState.msgTemplate = "error.a.noLongerValid"; 65 msgState.sender.sendMessage(msgState.mp); 66 return false; 67 } 68 msgState.msgTemplate = "message.a"; 69 msgState.usercontext.sendMessage (msgState.mp); 70 msgState.msgTemplate = "message.a.personal"; 71 msgState.sender.sendMessage(msgState.mp); 72 msgState.sender.unsetInvitedTo (); 73 msgState.msgTemplate = "message.user.leaving.group"; 74 msgState.sourceGroup.sendModeratedMessage (msgState.mp); 75 msgState.msgTemplate = "message.user.join.group"; 76 msgState.targetGroup.sendModeratedMessage (msgState.mp); 77 return true; 78 } 79 } 80 | Popular Tags |