Exemple #1
0
 public void StartHosting()
 {
     CloseClientConnection();
     _networkServerConnection = new NetworkServerConnection("127.0.0.1");
     _networkServerConnection.Start();
 }
        private void ItemAdd(string parameters)
        {
            string text = parameters;

            parameters = parameters.ToLowerInvariant();
            string playername = parameters;

            string[] commandPars = null;
            if (parameters.Contains(" "))
            {
                int num = parameters.IndexOf(' ');
                playername  = parameters.Substring(0, num);
                commandPars = parameters.Substring(parameters.IndexOf(' ') + 1, parameters.Length - num - 1).Split(' ');
            }
            else
            {
                //Dump out here, need more params
                global::Console.LogTargetFunction("itemadd playername itemid amount [metavalue]", ConsoleMessageType.Trace);
                return;
            }
            if (commandPars.Length < 2)
            {
                //Dump out here, need more params
                global::Console.LogTargetFunction("itemadd playername itemid amount [metavalue]", ConsoleMessageType.Trace);
                return;
            }

            int id      = Convert.ToInt32(commandPars[0]);
            int ammount = Convert.ToInt32(commandPars[1]);

            bool item = false;

            ItemBase itemStack = null;

            if (ItemEntry.mEntriesById[id] != null)
            {
                //its an item
                itemStack = new ItemStack(id, ammount);
                item      = true;
            }

            if (item)
            {
                int count = NetworkManager.instance.mServerThread.connections.Count;
                for (int i = 0; i < count; i++)
                {
                    NetworkServerConnection networkServerConnection = NetworkManager.instance.mServerThread.connections[i];
                    if (networkServerConnection.mState == eNetworkConnectionState.Playing)
                    {
                        if (networkServerConnection.mPlayer.mUserName.ToLower() == playername.ToLower())
                        {
                            if (networkServerConnection.mPlayer.mInventory.CanFit(itemStack))
                            {
                                networkServerConnection.mPlayer.mInventory.AddItem(itemStack);
                                if (itemStack.mType != ItemType.ItemCubeStack)
                                {
                                    global::Console.LogTargetFunction("Gave " + (itemStack as ItemStack).mnAmount + " of " + ItemEntry.mEntriesById[itemStack.mnItemID].Name + " to " + playername, ConsoleMessageType.Trace);
                                }
                                return;
                            }
                            else
                            {
                                global::Console.LogTargetFunction("Inventory full", ConsoleMessageType.Trace);
                                return;
                            }
                        }
                    }
                }
                global::Console.LogTargetFunction("Player Not Found", ConsoleMessageType.Trace);
                return;
            }
            else
            {
                global::Console.LogTargetFunction("Item Not Found", ConsoleMessageType.Trace);
                return;
            }
        }
Exemple #3
0
 private void CloseServerConnection()
 {
     _networkServerConnection?.StopServer();
     _networkServerConnection = null;
 }
        private void CubeAdd(string parameters)
        {
            string text = parameters;

            parameters = parameters.ToLowerInvariant();
            string playername = parameters;

            string[] commandPars = null;
            if (parameters.Contains(" "))
            {
                int num = parameters.IndexOf(' ');
                playername  = parameters.Substring(0, num);
                commandPars = parameters.Substring(parameters.IndexOf(' ') + 1, parameters.Length - num - 1).Split(' ');
            }
            else
            {
                //Dump out here, need more params
                global::Console.LogTargetFunction("cubeadd playername cubeid amount [metavalue]", ConsoleMessageType.Trace);
                return;
            }
            if (commandPars.Length < 2)
            {
                //Dump out here, need more params
                global::Console.LogTargetFunction("cubeadd playername cubeid amount [metavalue]", ConsoleMessageType.Trace);
                return;
            }

            int id      = Convert.ToInt32(commandPars[0]);
            int ammount = Convert.ToInt32(commandPars[1]);

            bool cube = false;

            ItemBase itemStack = null;

            ushort cubeid    = Convert.ToUInt16(id);
            ushort cubeValue = TerrainData.GetDefaultValue(cubeid);

            if (commandPars.Length > 2)
            {
                cubeValue = Convert.ToUInt16(commandPars[2]);
            }
            itemStack = new ItemCubeStack(cubeid, cubeValue, ammount);

            if (itemStack != null)
            {
                cube = true;
            }

            if (cube)
            {
                int count = NetworkManager.instance.mServerThread.connections.Count;
                for (int i = 0; i < count; i++)
                {
                    NetworkServerConnection networkServerConnection = NetworkManager.instance.mServerThread.connections[i];
                    if (networkServerConnection.mState == eNetworkConnectionState.Playing)
                    {
                        if (networkServerConnection.mPlayer.mUserName.ToLower() == playername.ToLower())
                        {
                            if (networkServerConnection.mPlayer.mInventory.CanFit(itemStack))
                            {
                                networkServerConnection.mPlayer.mInventory.AddItem(itemStack);
                                if (itemStack.mType == ItemType.ItemCubeStack)
                                {
                                    var itemCubeStack = itemStack as ItemCubeStack;
                                    global::Console.LogTargetFunction("Gave " + itemCubeStack.mnAmount + " of " + TerrainData.GetNameForValue(itemCubeStack.mCubeType, itemCubeStack.mCubeValue) + " to " + playername, ConsoleMessageType.Trace);
                                }
                                return;
                            }
                            else
                            {
                                global::Console.LogTargetFunction("Inventory full", ConsoleMessageType.Trace);
                                return;
                            }
                        }
                    }
                }
                global::Console.LogTargetFunction("Player Not Found", ConsoleMessageType.Trace);
                return;
            }
            else
            {
                global::Console.LogTargetFunction("Cube Not Found", ConsoleMessageType.Trace);
                return;
            }
        }