private string Create(Session session, string[] parms) { bool help = false; string playerName = string.Empty; string tribeName = string.Empty; try { var p = new OptionSet { { "?|help|h", v => help = true }, { "player=", v => playerName = v.TrimMatchingQuotes() }, { "name=", v => tribeName = v.TrimMatchingQuotes() }, { "desc=", v => v.TrimMatchingQuotes() }, }; p.Parse(parms); } catch (Exception) { help = true; } if (help || string.IsNullOrEmpty(playerName)) { return("TribeCreate --player=player [--name=tribe_name] [--desc=tribe_description]"); } uint playerId; if (!world.FindPlayerId(playerName, out playerId)) { return("Player not found"); } IPlayer player; return(locker.Lock(playerId, out player).Do(() => { ITribe tribe; Error error = tribeManager.CreateTribe(player, tribeName, out tribe); if (error != Error.Ok) { return error.ToString(); } tribe.SendRanksUpdate(); return "OK!"; })); }
private void Create(Session session, Packet packet) { string name; try { name = packet.GetString(); } catch (Exception) { ReplyError(session, packet, Error.Unexpected); return; } locker.Lock(session.Player).Do(() => { if (!session.Player.GetCityList().Any(city => city.Lvl >= 5)) { ReplyError(session, packet, Error.EffectRequirementNotMet); return; } ITribe tribe; Error error = tribeManager.CreateTribe(session.Player, name, out tribe); if (error == Error.Ok) { var reply = new Packet(packet); PacketHelper.AddTribeRanksToPacket(tribe, reply); session.Write(reply); } else { ReplyError(session, packet, error); } }); }