protected MethodReturnValue CheckAccess(Item item, MmoActor actor) { if (item.Disposed) { return(MethodReturnValue.Fail((int)ReturnCode.ItemNotFound, "ItemNotFound")); } if (((IMmoItem)item).GrantWriteAccess(actor)) { return(MethodReturnValue.Ok); } return(MethodReturnValue.Fail((int)ReturnCode.ItemAccessDenied, "ItemAccessDenied")); }
private MethodReturnValue CheckAccess(Item item) { if (item.Disposed) { return(MethodReturnValue.Fail((int)ReturnCode.ItemNotFound, "ItemNotFound")); } if (((IMmoItem)item).GrantWriteAccess(this)) { return(MethodReturnValue.Ok); } return(MethodReturnValue.Fail((int)ReturnCode.ItemAccessDenied, "ItemAccessDenied")); }
public OperationResponse OperationCreateWorld(PeerBase peer, OperationRequest request) { try { var operation = new CreateWorld(peer.Protocol, request); if (!operation.IsValid) { return(new OperationResponse(request.OperationCode) { ReturnCode = (int)ReturnCode.InvalidOperationParameter, DebugMessage = operation.GetErrorMessage() }); } MmoWorld world; MethodReturnValue result = MethodReturnValue.Ok; if (GameApplication.ResourcePool() == null) { log.Info("Resource pool is null"); } log.InfoFormat("find resource for world = {0}", operation.WorldName); Res resource = GameApplication.ResourcePool().Resource(operation.WorldName); if (MmoWorldCache.Instance(application).TryCreate(operation.WorldName, Settings.CornerMin, Settings.CornerMax, Settings.TileDimensions, out world, resource)) { result = MethodReturnValue.Ok; world.Initialize(); } else { result = MethodReturnValue.Fail((int)ReturnCode.WorldAlreadyExists, "WorldAlreadyExists"); } return(operation.GetOperationResponse(result)); } catch (Exception ex) { CL.Out(LogFilter.PLAYER, ex.Message); CL.Out(LogFilter.PLAYER, ex.StackTrace); } return(null); }