Beispiel #1
0
        internal void InvokePlayerItemUseEvent(Player player, Api.Items.SynapseItem item, ItemInteractState state, ref bool allow)
        {
            var ev = new PlayerItemInteractEventArgs
            {
                Player      = player,
                CurrentItem = item,
                State       = state,
                Allow       = allow,
            };

            PlayerItemUseEvent?.Invoke(ev);

            allow = ev.Allow;
        }
        public CommandResult Execute(CommandContext context)
        {
            var result = new CommandResult();

            if (context.Arguments.Count < 2)
            {
                result.Message = "Missing parameter! Command Usage: give player itemid";
                result.State   = CommandResultState.Error;
                return(result);
            }

            var player = Server.Get.GetPlayer(context.Arguments.FirstElement());

            if (player == null)
            {
                result.Message = "No Player was found";
                result.State   = CommandResultState.Error;
                return(result);
            }

            if (!int.TryParse(context.Arguments.ElementAt(1), out var id))
            {
                result.Message = "Invalid Parameter for ItemID";
                result.State   = CommandResultState.Error;
                return(result);
            }

            float durabillity = 0;
            uint  sight       = 0;
            float xsize       = 1;
            float ysize       = 1;
            float zsize       = 1;

            if (context.Arguments.Count > 2)
            {
                if (!float.TryParse(context.Arguments.ElementAt(2), out durabillity))
                {
                    result.Message = "Invalid Parameter for Durabillity";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 3)
            {
                if (!uint.TryParse(context.Arguments.ElementAt(3), out sight))
                {
                    result.Message = "Invalid Parameter for Attachements";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 4)
            {
                if (!float.TryParse(context.Arguments.ElementAt(4), out xsize))
                {
                    result.Message = "Invalid Parameter for XSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 5)
            {
                if (!float.TryParse(context.Arguments.ElementAt(5), out ysize))
                {
                    result.Message = "Invalid Parameter for YSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 6)
            {
                if (!float.TryParse(context.Arguments.ElementAt(6), out zsize))
                {
                    result.Message = "Invalid Parameter for ZSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (!Server.Get.ItemManager.IsIDRegistered(id))
            {
                result.Message = "No Item with this ItemId was found";
                result.State   = CommandResultState.Error;
                return(result);
            }

            var item = new Api.Items.SynapseItem(id)
            {
                Scale = new UnityEngine.Vector3(xsize, ysize, zsize),
            };

            player.Inventory.AddItem(item);
            item.Durabillity       = durabillity;
            item.WeaponAttachments = sight;


            result.Message = "Added Item to Players Inventory!";
            result.State   = CommandResultState.Ok;

            return(result);
        }
Beispiel #3
0
        public CommandResult Execute(CommandContext context)
        {
            var result = new CommandResult();

            if (!context.Player.HasPermission("synapse.command.give"))
            {
                result.Message = "You don't have permission to use this command";
                result.State   = CommandResultState.NoPermission;
                return(result);
            }

            if (context.Arguments.Count < 2)
            {
                result.Message = "Missing parameter! Command Usage: give player itemid";
                result.State   = CommandResultState.Error;
                return(result);
            }

            var player = Server.Get.GetPlayer(context.Arguments.FirstElement());

            if (player == null)
            {
                result.Message = "No Player was found";
                result.State   = CommandResultState.Error;
                return(result);
            }

            if (!int.TryParse(context.Arguments.ElementAt(1), out var id))
            {
                result.Message = "Invalid Parameter for ItemID";
                result.State   = CommandResultState.Error;
                return(result);
            }

            float durabillity = 0;
            int   sight       = 0;
            int   barrel      = 0;
            int   other       = 0;
            float xsize       = 1;
            float ysize       = 1;
            float zsize       = 1;

            if (context.Arguments.Count > 2)
            {
                if (!float.TryParse(context.Arguments.ElementAt(2), out durabillity))
                {
                    result.Message = "Invalid Parameter for Durabillity";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 3)
            {
                if (!int.TryParse(context.Arguments.ElementAt(3), out sight))
                {
                    result.Message = "Invalid Parameter for Sight";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 4)
            {
                if (!int.TryParse(context.Arguments.ElementAt(4), out barrel))
                {
                    result.Message = "Invalid Parameter for Barrel";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 5)
            {
                if (!int.TryParse(context.Arguments.ElementAt(5), out other))
                {
                    result.Message = "Invalid Parameter for Other";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 6)
            {
                if (!float.TryParse(context.Arguments.ElementAt(6), out xsize))
                {
                    result.Message = "Invalid Parameter for XSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 7)
            {
                if (!float.TryParse(context.Arguments.ElementAt(7), out ysize))
                {
                    result.Message = "Invalid Parameter for YSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (context.Arguments.Count > 8)
            {
                if (!float.TryParse(context.Arguments.ElementAt(8), out zsize))
                {
                    result.Message = "Invalid Parameter for ZSize";
                    result.State   = CommandResultState.Error;
                    return(result);
                }
            }

            if (!Server.Get.ItemManager.IsIDRegistered(id))
            {
                result.Message = "No Item with this ItemId was found";
                result.State   = CommandResultState.Error;
                return(result);
            }

            var item = new Api.Items.SynapseItem(id, durabillity, sight, barrel, other);

            item.Scale = new UnityEngine.Vector3(xsize, ysize, zsize);
            player.Inventory.AddItem(item);


            result.Message = "Added Item to Players Inventory!";
            result.State   = CommandResultState.Ok;

            return(result);
        }