You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First, my setup is prismarine-web-client ==> flying-squid. In flying-squid, I have several world directories with maps downloaded from internet. Some of the maps I am using are large - Greenfield, Oshode City, ...
I switch maps by stopping the server, changing the settings to point to the new world dir, and set the correct version. I also had to put it a small hack in prismarine-web-client to make sure the version matches, since I'm running in off line mode.
I'm certain that the versions match on the server and client since I've added console msgs to the version dependent chunk processing and the serialization/deserialization processing.
In some cases, there are serialization/deserialization errors when the columns are passed from the client to the server.
Greenfield 0.5.3
With Greenfield 0.5.3 which is 1.14.4, I have to put a fix in the prismarine-provider-anvil to ignore certain sections (I have opened an issue for this, see below). With the fix, it mostly works, except I notice some invisible blocks. I do not think the invisible blocks are related to my fix since I can use the 1.14.4 Java client to connect to my flying-squid server and I can see the blocks.
Without the fix, I get 'attempted to read past the end of the chunk' errors for most chunks, so the error seems to be on the deserialization side since the Java 1.14.4 client seems to be able to deserialize the chunks (there are no invisible blocks).
Oshode City
This is 1.12.2, and it works with no changes!
Context
It's very easy to create the Greenfield setup. I'll include my changes here to make it easy to duplicate.
Another fix to bypass the ping which causes a hang most of the time. This is in autoVersion.js. It seems to do the ping to get the version, but the version is hard coded so we don't need it.
module.exports = function (client, options) {
client.wait_connect = true // don't let src/client/setProtocol proceed on socket 'connect' until 'connect_allowed'
debug('pinging', options.host)
// TODO: use 0xfe ping instead for better compatibility/performance? https://github.com/deathcap/node-minecraft-ping
client.version = options.version
client.state = states.HANDSHAKING
client.emit('connect_allowed')
client.wait_connect = false
return;
ping(options, function (err, response) {......
Hope this helps.
The text was updated successfully, but these errors were encountered:
Versions
Detailed description of a problem
First, my setup is prismarine-web-client ==> flying-squid. In flying-squid, I have several world directories with maps downloaded from internet. Some of the maps I am using are large - Greenfield, Oshode City, ...
I switch maps by stopping the server, changing the settings to point to the new world dir, and set the correct version. I also had to put it a small hack in prismarine-web-client to make sure the version matches, since I'm running in off line mode.
I'm certain that the versions match on the server and client since I've added console msgs to the version dependent chunk processing and the serialization/deserialization processing.
In some cases, there are serialization/deserialization errors when the columns are passed from the client to the server.
Greenfield 0.5.3
With Greenfield 0.5.3 which is 1.14.4, I have to put a fix in the prismarine-provider-anvil to ignore certain sections (I have opened an issue for this, see below). With the fix, it mostly works, except I notice some invisible blocks. I do not think the invisible blocks are related to my fix since I can use the 1.14.4 Java client to connect to my flying-squid server and I can see the blocks.
Without the fix, I get 'attempted to read past the end of the chunk' errors for most chunks, so the error seems to be on the deserialization side since the Java 1.14.4 client seems to be able to deserialize the chunks (there are no invisible blocks).
Oshode City
This is 1.12.2, and it works with no changes!
Context
It's very easy to create the Greenfield setup. I'll include my changes here to make it easy to duplicate.
settings.json for flying-squid
{
"motd": "A MineCraft Server\nRunning minecraft",
"port": 10000,
"max-players": 10,
"logging": true,
"online-mode": false,
"gameMode": 1,
"difficulty": 1,
"worldFolder":"world-greenfield",
"generation": {
"name": "diamond_square",
"options":{
"worldHeight": 80
}
},
"kickTimeout": 10000,
"plugins": {
},
"modpe": false,
"view-distance": 10,
"player-list-text": {
"header":{"text": "MineCraft"},
"footer":{"text": "Test server"}
},
"everybody-op":true,
"max-entities":100,
"version": "1.14.4"
}
config.json for prismarine-web-client
{
"defaultHost": "localhost",
"defaultHostPort": 10000,
"defaultProxy": "",
"defaultProxyPort": 0
}
fix for prismarine-provider-anvil
PrismarineJS/prismarine-provider-anvil#43
Setting version in prismarine-web-client in index.js
const bot = mineflayer.createBot({
host,
port,
username,
password,
==> version: '1.14.4',
viewDistance: 'tiny',
checkTimeoutInterval: 240 * 1000,
noPongTimeout: 240 * 1000,
closeTimeout: 240 * 1000
})
Another fix to bypass the ping which causes a hang most of the time. This is in autoVersion.js. It seems to do the ping to get the version, but the version is hard coded so we don't need it.
module.exports = function (client, options) {
client.wait_connect = true // don't let src/client/setProtocol proceed on socket 'connect' until 'connect_allowed'
debug('pinging', options.host)
// TODO: use 0xfe ping instead for better compatibility/performance? https://github.com/deathcap/node-minecraft-ping
client.version = options.version
client.state = states.HANDSHAKING
client.emit('connect_allowed')
client.wait_connect = false
return;
ping(options, function (err, response) {......
Hope this helps.
The text was updated successfully, but these errors were encountered: