Sign in to follow this  
jix

Simple server-time code + fix GetTime (C#)

Recommended Posts

Once I faced a problem with NAPI.World.GetTime and didn't find on it the adequate answer. Can anyone help my code. Bonus will make a simple server time system

class server_side : Script
    {
        // The global variables that will be replace our GetTime
        int serverHour = 6;
        int serverMin = 0;
        int serverSec = 0;

		// A method that, when accessed, will change the time on the server
        private void server_Time(int hour, int minute, int second)
        {
            NAPI.World.SetTime(hour, minute, second);
            serverHour = hour; // ----------------------------------
            serverMin = minute; // save in our variable time
            serverSec = second; // ---------------------------------
        }

		// Bonus code that creates server time (1 server minute = 20 seconds)
        async void time()
        {
                while (true)
                {
                    serverMin++;
                    NAPI.World.SetTime(serverHour, serverMin, 0);
                    if (serverMin == 60)
                    {
                        if (serverHour >= 23)
                        {
                            serverHour = 0;
                            serverMin = 0;
                            NAPI.World.SetTime(serverHour, serverMin, 0);
                        }
                        else
                        {
                            serverHour++;
                            serverMin = 0;
                            NAPI.World.SetTime(serverHour, serverMin, 0);
                        }
                    }
                    await Task.Delay(20000);
                }
        }

        [Command("time")] // command to know the current time on the server
        public void CMD_time(Client client)
        {
            if (serverMin < 10)
            {
                NAPI.Chat.SendChatMessageToPlayer(client, $"Current time {serverHour.ToString()}:0{serverMin.ToString()}");
            }
            else
            {
                NAPI.Chat.SendChatMessageToPlayer(client, $"Current time {serverHour.ToString()}:{serverMin.ToString()}");
            }
        }
                               
        // Change the time on the server
        [Command("settime")]
        public void CMD_settime(Client client, int hrs, int min)
        {
            server_Time(hrs, min, 0);
            NAPI.Chat.SendChatMessageToPlayer(client, $"Time was change to {hrs}:{min}");
        }
        // Event that the time worked
		[ServerEvent(Event.ResourceStart)]
        public void OnResourceStart()
        {
            NAPI.World.SetTime(serverHour, serverMin, serverSec);
            time(); // Cycle start time at the start of the server
        }

 

sorry for my russian english xd i hope this will help u ❤️

Edited by jix

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.