Giter Club home page Giter Club logo

craft.net's Introduction

craft.net's People

Contributors

aholmes avatar ammaraskar avatar aragas avatar citizenbean avatar ddevault avatar dogwatch avatar fixyourshit avatar jbou avatar kaltinril avatar nsdex avatar owen2 avatar pdelvo avatar sapphire-arches avatar seferan avatar tuomas56 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

craft.net's Issues

possible reason for null packet in SendQueue: multithreaded access to Queue, which is not thread safe

regarding this:

https://github.com/SirCmpwn/Craft.Net/blob/master/Craft.Net.Server/MinecraftServer.cs#L356

                            Packet packet = Clients[i].SendQueue.Dequeue();
                            // I don't understand why this happens. The only place the SendQueue
                            // is modified is through Client.SendPacket, and I watched for null packets
                            // entering through there. There is never a null packet that is added
                            // into the packet queue
                            if (packet == null)
                                continue;

you are accessing Queue from more than 1 thread without locking. Queue is not thread safe itself.

if thats really the actual reason for the null problem, simply using concurrent queue instead of the standar queue should solve the problem

http://msdn.microsoft.com/en-us/library/dd267265.aspx

Add logging via ILogProvider interface

The ILogProvider interface should be an abstract view of textual logging. Also required is the ConsoleLogProvider class that will implement ILogProvider.

Track connection strength

Track how long it takes for clients to respond to keep alive packets and use this value in player lists.

Update player lists on all clients every 60 seconds.

Add all placement items

Add support for any item whose use results in the placement of a block, such as flint and steel.

Add lightning

Don't implement weather completely, just add a means to bring about a lightning strike

Add speedhack prevention

Base maximum speed on player status (flying, sprinting, etc) and ensure that it can be customized by the library user.

Play around with the player abilities packet and try to manipulate player speed, too.

Create async networking engine

The engine should use asynchronous socket I/O and the server should be completely idle when there are no active connections.

Send worlds to connected clients

Implement the initial sending of chunks upon player login. In order for this to be complete, the basic chunk management skeleton must be added for asynchronous compression and sending of chunks.

Add inventory management/tracking

Track the inventory of each player and disallow placement of blocks that are unavailable to them. Survival mode inventory transactions need not be supported.

Entity appearance is glitched

When tracking entities on the client, the second client sees the first client's nametag and shadow at strange locations.

Add bed function

Add the ability to sleep in beds to manipulate the time of day.

Add survival mode mining

Note that mining in survival mode is working, but time limits and tool damage is not enforced.

Player equipment modifiers

Allow players to wear equipment and modify the damage they receive based on the quality of the equipment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.