sprenger120 / fastcraft Goto Github PK
View Code? Open in Web Editor NEWUnfinished C++ Minecraft Server implementation for 1.3.2
Unfinished C++ Minecraft Server implementation for 1.3.2
Chunk Root unregard world height
Fastcraft checks the ping from the serveradmin (host). If the ping is to high (maybe 60), a warning will appear, like: "Your ping is high. Maybe your players can't play without laggs."
ChunkProvider::CheckSpawnedChunkList doesn't despawn all too distant chunks.
the ability to hold a player in a specific region
Don't send a higher than 60 MaxPlayer size, otherwise the PlayerInfo window won't render correctly.
--CraftBukkit
FastCraft only use EntityTeleport. It should use all entity movement packets for a smarter movement.
Sometime, FC tryes to write/read at adress 0x00000000 or reads/writes in a already freeed heap block.
This bug occurs very rarely.
Edit2: Not PackingThread causes this. NetworkWriter do.
The "Logged in from another connection" kick will be written twice into console.
The actual chunk delivering system is just a temporary solution. The full map become packet and transmitted. This will increase server lags a lot.
A better solution is to create a new class, that reads map data from a central chunk class and send one for each look packet, sent by client.
Needed functions:
-Pre Chunk generating
-Chunk packing
-Request new map chunks from central chunk class
-Keep in track of actual player position and spawned chunk count
-Editable chunk spaw radius
Addition: Send prechunks in a row
Add support for 0xFF (leave), sent by client
FastCraft ignores the shift flag in Window click.
If view distance is odd, ChunkProvider stops working
If you build something like the pictures below, you will be teleported to the top of this constructions.
This is caused by World::isSuffocating. It handles Redstone/glass panel (and all the other blocks that are not 'normal' such as vines,neather wards, cake, half slaps, ladders, rails...) as a ordinary blocks and doesn't consider it's width and height.
The send health authstep doesn't exists.
The connection to the client will be aborted every minute
Sometimes, you can see a connection error in the minecraft client, while fetching server information.
Say which user can fly and which not. Like the Gamemode, but with the Flying.
gz Retus
FastCraft doesn't output custom leave messages to server log.
Server provide hooks where plugins have the possibility to hook in.
maybe with help from the POCO class-loader?
FastCraft still only supports UTF-8 in chat and settings.
It should be UTF-16.
SOLVED Ingame time calculation is "too fast"
SOLVED Time is frozen to noon now
There is no time increment thread.
Since build 34, there are big chunk holes, generated by first ChunkProvider::HandleMovement.
NetworkIO::addDouble works incorrectly
I think, the ServerTime thread, is not longer required, the main thread can increase time.
Handle chunk creation exceptions from player pool in networkhandler
It's very useful if a server admin forget to set it to true.
If you connect/disconnect many times the writer performance goes down to a minimum.
Transform TCPHelper and TextHandler to a DataIO class.
Features:
-read/write basic types like int,char,double...
-read/write minecraft types: e.g. string16
-automatic endian conversion
-each class instance have an own buffer
It seems that it works incorreclty
ChunkMath::isIndexInBound doesn't check negative values
If a username is too long, it doesn't fit in the box anymore.
Solution: Short after 60 characters
Able to read IRC Messages in Game, write Messages to IRC Server etc :)
ServerSocket doesn't throw an exception if FastCraft binds two equal ports
When a player has a very slow internet connection, he fell down into void or suffocate in the map.
The best way to fix that, is to fix the player into his position till his client stops to fall.
The server checks the ping of the player. If the ping is to high, force the player to kick.
If a player gets kicked, the kick job will be queued.
This queue time can be reduced, if Disconnect and Kick become connected.
Suggestion: -Direct network writing while kicking, then disconnect.
Sometimes Minecraft crashes with a blackscreen if you want to enter the server.
I could catch the stacktrace via MCP. It seems to be a problem with the sendTime method...
at net.minecraft.src.NetClientHandler.handleUpdateTime(NetClientHandler.java:654)
at net.minecraft.src.Packet4UpdateTime.processPacket(Packet4UpdateTime.java:35)
at net.minecraft.src.NetworkManager.processReadPackets(NetworkManager.java:229)
at net.minecraft.src.NetClientHandler.processReadPackets(NetClientHandler.java:77)
at net.minecraft.src.GuiConnecting.updateScreen(GuiConnecting.java:33)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1313)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:686)
at net.minecraft.client.Minecraft.run(Minecraft.java:627)
at java.lang.Thread.run(Thread.java:722)
I'll try to fix it.
A Solution against Distributed-Denial-of-Service Attackers.
ChunkProvider::generateMap doesn't generate light.
You can put players in different Groups, to chat witch another.
If a player timed out, the thread is trapped in an endlessloop.
Class: NetworkIO
It won't stop the eaeting animation if you look straight on the ground.
NetworkIO is not thread save while writing to output buffer.
Add a message to the server full kick.
When a player disconnects, something throws a Poco::RuntimeException.
If a player lost the connection to the server (Client side - maybe provider restart) the server checks 2 times (interval 10 sec) if the connection is stable again.
If the connection is not stable = force player to leave
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.