public void OnModifyWorldProperty(ModifyWorldProperty packet)
        {
            lock (WorldProperty)
            {
                foreach (var pair in packet.Property)
                {
                    WorldProperty[pair.Key] = pair.Value;
                }

                if (packet.RemovedKeys != null)
                {
                    foreach (var key in packet.RemovedKeys)
                    {
                        WorldProperty.Remove(key);
                    }
                }
            }

            if (packet.Slient)
            {
                return;
            }

            lock (Sessions)
            {
                Sessions.Broadcast(packet);
            }
        }
Exemple #2
0
    private void ProcessModifyWorldProperty(ModifyWorldProperty packet)
    {
        foreach (var pair in packet.Property)
        {
            worldProperty[pair.Key] = pair.Value;
        }
        if (packet.RemovedKeys != null)
        {
            foreach (var key in packet.RemovedKeys)
            {
                worldProperty.Remove(key);
            }
        }

        if (onModifyWorldProperty != null)
        {
            AddTask(() => onModifyWorldProperty.Invoke(packet));
        }
    }