Random Chitchat 2012-2016
Awww don't be so hard on yourself Smile
Thanks given by:
I'm sure you did well, do you have a video to share?
Thanks given by:
No, this time I didn't have anyone to record video. I might receive a few photos from the people organizing the thing; but it will take a while for them to send it.
Thanks given by:
I'm proposing a small change in cRoot. Now the sequence is LoadWorlds, Load Plugins, load mobs, start authenticator, StartWorlds. Lets put the StartWorlds after the LoadWorlds so that plugins can interact with the worlds when they Initialize.
Thanks given by:
Can't, because StartWorlds() can generate chunks, which already needs plugins. That was the main reason why StartWorlds() has been split away from LoadWorlds().

A quick easy solution that comes to my mind is to create a hook, HOOK_WORLD_STARTED, and call that in the beginning of world's tick thread. Plugins can then use that instead of the Initialize() function.
Thanks given by: NiLSPACE
Weird - I wanted to report an issue with Decoda that having Lua in a DLL crashes the server, but suddenly it started working.
Thanks given by:
Any idea why
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
bool cRoot::StopWorld(AString a_WorldName, AString a_MoveToWorld)
{
    if (a_WorldName == a_MoveToWorld || a_WorldName == m_pDefaultWorld->GetName())
    {
        return false;
    }
    if (m_WorldsByName[a_WorldName] == NULL)
    {
        return false;
    }
    class cCallback : public cPlayerListCallback
    {
    public:
        const char * m_NewWorld;
        cCallback(const char * a_NewWorld) : m_NewWorld(a_NewWorld) {}
        virtual bool Item(cPlayer * a_Player) override
        {
            a_Player->MoveToWorld(m_NewWorld);
            return false;
        }
     
    } a_Callback(a_MoveToWorld.c_str());
    m_WorldsByName[a_WorldName]->ForEachPlayer(a_Callback);
    m_WorldsByName[a_WorldName]->Stop();
    return true;
}
makes the server crash?
According to VS it crashes because of
1
2
3
4
5
AString IncomingData;
{
    cCSLock Lock(m_CSIncomingData);
    std::swap(IncomingData, m_IncomingData); // <--: This is the next statement to execute when this thread returns from the current function.
}
Thanks given by:
I'm surprised. Vanilla server in my 128mb ram 256swap was lagging (vanilla has no modifications, is the lightest java server). I tried spigot(optimized craftbukkit), and it crashed on join. At last, thinking that I wouldn't decrease lag, I tried craftbukkit without optimizations, and what my surprise! Almost lag-free and stable ram use. Amazing for my shit free VPS
Thanks given by:
STR, it might be crashing because the per-player callback is modifying the list of players while the underlying ForEachPlayer() is iterating over it. It might be a better idea to write a specialized cWorld function that moves all the players at once - effectively does something like
1
2
std::swap(m_PlayerList, LocalPlayerListVar);
MoveEachPlayer(LocalPlayerListVar);
Thanks given by:
Transferred my MCS(erver) to new subdomain, if anyone is using, please update your sources.

(12-12-2013, 06:09 AM)tonibm19 Wrote: I'm surprised. Vanilla server in my 128mb ram 256swap was lagging (vanilla has no modifications, is the lightest java server). I tried spigot(optimized craftbukkit), and it crashed on join. At last, thinking that I wouldn't decrease lag, I tried craftbukkit without optimizations, and what my surprise! Almost lag-free and stable ram use. Amazing for my shit free VPS

How does MCS compare?
Thanks given by:




Users browsing this thread: 1 Guest(s)