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"));
        }
Example #2
0
        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"));
        }
Example #3
0
        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);
        }