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
Add a message to the server full kick.
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
Able to read IRC Messages in Game, write Messages to IRC Server etc :)
A Solution against Distributed-Denial-of-Service Attackers.
ChunkProvider::generateMap doesn't generate light.
If a player timed out, the thread is trapped in an endlessloop.
Class: NetworkIO
If view distance is odd, ChunkProvider stops working
FastCraft only use EntityTeleport. It should use all entity movement packets for a smarter movement.
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
ChunkMath::isIndexInBound doesn't check negative values
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."
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 ability to hold a player in a specific region
NetworkIO is not thread save while writing to output buffer.
It's very useful if a server admin forget to set it to true.
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.
Chunk Root unregard world height
The send health authstep doesn't exists.
Say which user can fly and which not. Like the Gamemode, but with the Flying.
gz Retus
ChunkProvider::CheckSpawnedChunkList doesn't despawn all too distant chunks.
The connection to the client will be aborted every minute
When a player disconnects, something throws a Poco::RuntimeException.
Don't send a higher than 60 MaxPlayer size, otherwise the PlayerInfo window won't render correctly.
--CraftBukkit
Since build 34, there are big chunk holes, generated by first ChunkProvider::HandleMovement.
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.
If you connect/disconnect many times the writer performance goes down to a minimum.
I think, the ServerTime thread, is not longer required, the main thread can increase time.
Server provide hooks where plugins have the possibility to hook in.
maybe with help from the POCO class-loader?
The "Logged in from another connection" kick will be written twice into console.
Handle chunk creation exceptions from player pool in networkhandler
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.
It seems that it works incorreclty
Sometimes, you can see a connection error in the minecraft client, while fetching server information.
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.
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
You can put players in different Groups, to chat witch another.
The server checks the ping of the player. If the ping is to high, force the player to kick.
Add support for 0xFF (leave), sent by client
ServerSocket doesn't throw an exception if FastCraft binds two equal ports
FastCraft ignores the shift flag in Window click.
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.
NetworkIO::addDouble works incorrectly
It won't stop the eaeting animation if you look straight on the ground.
If a username is too long, it doesn't fit in the box anymore.
Solution: Short after 60 characters
FastCraft doesn't output custom leave messages to server log.
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.