public void Execute(EMMServerMessage serverMessage) { if (CheckAccess(serverMessage.User)) { ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteTask), serverMessage); } }
/// <summary> /// Perform a backup. /// </summary> protected override void ExecuteTask(EMMServerMessage command) { if (CheckRequirements()) { Manager.Server.RaiseServerMessage("Backing up..."); PerformBackup(); Manager.Server.RaiseServerMessage("Backup complete."); } }
protected override void ExecuteTask(EMMServerMessage command) { string[] parameters = command.Data["command"].Split(' '); string itemName = ""; int quantity = 0; if (parameters.Count() >= 2) { itemName = parameters[1]; } if (parameters.Count() >= 3) { int.TryParse(parameters[2], out quantity); } int itemID = 0; int.TryParse(itemName, out itemID); Item item; using (EMMDataContext mDB = Manager.GetContext) { if (itemID != 0) { item = mDB.Items.SingleOrDefault(i => i.Block_Decimal_ID == itemID); } else { item = mDB.Items.SingleOrDefault(i => i.Code == itemName); } } if (item == null) { Manager.Server.Whisper(command.User, "I don't know what item that is"); return; } if (item.Min_Level > command.User.Rank.Level) { Manager.Server.Whisper(command.User, "You are not allowed to summon that item"); return; } ExecuteTask(command.User, item, quantity); }
protected override void ExecuteTask(EMMServerMessage command) { if (AmRendering) { Manager.Server.RaiseServerMessage("Cannot start mapper, already mapping"); return; } AmRendering = true; Mappers.Mapper mapper; Manager.Server.SendCommand("save-all"); Manager.Server.BlockAutoSave(); System.Threading.Thread.Sleep(2000); try { mapper = new Mappers.C10t(); mapper.RenderMap(); } catch (Exception ex) { Manager.Server.RaiseServerMessage("Error generating C10t map"); Manager.Server.RaiseServerMessage(ex.Message); } try { mapper = new Mappers.Overviewer(); mapper.RenderMap(); } catch (Exception ex) { Manager.Server.RaiseServerMessage("Error generating overviewer map"); Manager.Server.RaiseServerMessage(ex.Message); } Manager.Server.Broadcast("The maps have been updated"); Manager.Server.UnblockAutoSave(); AmRendering = false; }
/// <summary> /// Method that will be called to perform the command /// </summary> /// <param name="serverMessage">User's full command</param> abstract protected void ExecuteTask(EMMServerMessage serverMessage);
/// <summary> /// Method that will be called to perform the command /// </summary> /// <param name="serverMessage">User's full command</param> protected abstract void ExecuteTask(EMMServerMessage serverMessage);