yescallop / Nukkit

Nuclear Powered Server For Minecraft: Pocket Edition
http://nukkit.cn
GNU General Public License v3.0
32 stars 5 forks source link

1.2 Branch && Suggestions. #45

Open ghost opened 7 years ago

ghost commented 7 years ago

This is not one Issue, it's one suggestions for Branch 1.2 and Suggestion Nukkit

I'm watched to Issues and others code from Nukkit and code is not enought. Why i'm says that? Move, Kill, Attacks and others is caused by Packets bugged. Why them are bugged?

  1. Because is incomplete. (Decode and Encode is not fully and get Gameplay some bugs.)
  2. Because use function this.reset(). (This function set Packets get reseted and delete themself function for added by Nukkit. Dylan (Who develop PM-MP right now) says reset() function isn't good and them changes that to one method, one method more good. Now, PM-MP don't have bugs on Gameplay (Attack, Kill, Move, and others). and that's so good.

And my suggestion is that: Port all decode and encode methods from PM-MP (Nukkit is PM-MP old ported to Java for more performance, all knows that.) and get more good gameplay.

Nukkit have good performance, code, but bugs gameplay is why more persons not use Nukkit, other than plugins. (For me, plugins is enought).

For more easy to implement that, i observe that changes to PM-MP:

  1. encode() and decode() have replaced in packets with encodePayload() and decodePayload().
  2. Deleted super.reset() function.
  3. More functions from BinaryStream moved to Packets.
  4. Added full encodePayload() and decodePayload() methods. -> Nukkit not have full.
  5. Add all packets.

Suggestion for Nukkit

And one suggestion for Nukkit: Create one Discord Group. Why? Because all uses Discord now, more players active like as Gitter 👍

@yescallop Thanks for developing Nukkit.

ghost commented 7 years ago

NycuRo create DiscordGroup

sero583 commented 7 years ago

@NycuRO Respone on your wants to rename the functions, are you sure renaming the function will make any changes? No, it won't.

ghost commented 7 years ago

@sero583 Lol, are you kidding me? Please watch code after and before changes. It's not that.

sero583 commented 7 years ago

@NycuRO I think you don't know how code works it can be even named ass or something, it will still work if you use it right. Changing a name won't give any more performance.

ghost commented 7 years ago

@sero583 -_- It's not changing a name, lol.

sero583 commented 7 years ago

@NycuRO I don't know what the matter is if the function is called encode or encodePayload, just keep it on encode() wont matter anyways. Also did you know that MC:PE does not even cares how packets are being "prepared"/"created" if I could call it so, but in removing the reset function it may improve performance because one task in packet sending is now less and well yeah but really it does not matter how the name is called.

ghost commented 7 years ago

@yescallop What's your oppinion?

SupremeMortal commented 7 years ago

Need to be looking at ways of implementing Xbox Live authentication. It will require using either a native library or JCE Unlimited Strength policy since Java doesn't support the encryption strength used by default.

ghost commented 7 years ago

@SupremeMortal Why you implement Xbox Live Authentification ? All players in 1.2 need use Xbox Account for enter on server. Xbox Live Authentification on server is useless in 1.2

SupremeMortal commented 7 years ago

It's still possible to spoof Xbox username data so players could access other peoples accounts so it's of highest priorities.

ghost commented 7 years ago

@SupremeMortal Ok

ghost commented 7 years ago

@yescallop All packets and broken. I'm watched diference of encode and decode and much is incorrect.

Exemple Crash: (AddEntityPlayer)

Now is like that:

this.getVarInt() = this.getEntityRuntimeId();

What is in PM-MP:

this.getUnsignedVarInt() = this.getEntityRuntimeId();

And in PM-MP getEntityRuntimeId and getEntityUniqueId is int, in nukkit is long.

Man, you need fix that problems.

SupremeMortal commented 7 years ago

They are only simple issues that don't take long to fix.

ghost commented 7 years ago

@SupremeMortal I know.

vzlomka76 commented 7 years ago

@NycuRO entityRuntimeId and entityUniqueId is long, And it has always been long

ghost commented 7 years ago

@vzlomka76 It's one exemple, i know that. You can watch in my PR.