Exemple #1
0
        /// <inheritdoc />
        protected override void HandleJavaMeta(MetaDataEntry entry)
        {
            base.HandleJavaMeta(entry);

            if (entry.Index == 7 && entry is MetadataSlot slot)
            {
                var item = JavaWorldProvider.GetItemFromSlotData(slot.Value);
                if (item != null)
                {
                    SetItem(item);
                }
            }
        }
Exemple #2
0
        public void ConnectToServer(IPEndPoint serverEndPoint, PlayerProfile profile, bool bedrock = false)
        {
            WorldProvider    provider;
            INetworkProvider networkProvider;

            IsMultiplayer = true;
            if (bedrock)
            {
                provider = new BedrockWorldProvider(this, serverEndPoint,
                                                    profile, out networkProvider);
            }
            else
            {
                provider = new JavaWorldProvider(this, serverEndPoint, profile,
                                                 out networkProvider);
            }

            LoadWorld(provider, networkProvider);
        }
Exemple #3
0
        public void ConnectToServer(IPEndPoint serverEndPoint, PlayerProfile profile, bool bedrock = false, string hostname = null)
        {
            var oldNetworkPool = NetworkThreadPool;

            var optionsProvider = Services.GetService <IOptionsProvider>();

            NetworkThreadPool = new DedicatedThreadPool(new DedicatedThreadPoolSettings(optionsProvider.AlexOptions.NetworkOptions.NetworkThreads.Value, ThreadType.Background, "Network ThreadPool"));

            try
            {
                var eventDispatcher = Services.GetRequiredService <IEventDispatcher>() as EventDispatcher;
                eventDispatcher?.Reset();

                WorldProvider    provider;
                INetworkProvider networkProvider;
                IsMultiplayer = true;
                if (bedrock)
                {
                    provider = new BedrockWorldProvider(this, serverEndPoint,
                                                        profile, NetworkThreadPool, out networkProvider);
                }
                else
                {
                    provider = new JavaWorldProvider(this, serverEndPoint, profile,
                                                     out networkProvider)
                    {
                        Hostname = hostname
                    };
                }

                LoadWorld(provider, networkProvider);
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"FCL: {ex.ToString()}");
            }

            oldNetworkPool?.Dispose();
        }
Exemple #4
0
 public JavaClient(JavaWorldProvider javaWorldProvider, Socket socket, DedicatedThreadPool networkPool) : base(PacketDirection.ClientBound, socket, null, networkPool)
 {
     MCPacketFactory.Load();
     JavaWorld     = javaWorldProvider;
     WorldReceiver = javaWorldProvider;
 }
Exemple #5
0
        public JavaClient(JavaWorldProvider javaWorldProvider, Socket socket) : base(Direction.ClientBound, socket, null, null)
        {
            MCPacketFactory.Load();

            WorldReceiver = javaWorldProvider;
        }