Open ZeroMemes opened 5 years ago
I'll need to take a look at the server code to ensure that this would actually work, the issue must reside in the synchronization when player teleportation is handled and the removal of other players from a given player's client. If it does, it would more than likely be a better option to setup a packet listener and compare current position to the position specified by the packet, rather than check for changes every tick.
Lol I like how I have to completely remove my issue for it to get listened to. Thanks anyway, let me know how it goes.
The suggestion had been noted, and was put on the TODO list. Just because we don't have anything to say doesn't mean we haven't seen the issue.
Also I don't see the point in closing/deleting the issue, if you thought it hadn't been seen then how does closing it help?
As in #1205 this can apparently also work on respawning.
@leafhacker I closed it because I’ve already created a working client with support for this feature
@cyruscook what is the name of said client?
Ebic Client @EbicClient. Was gonna sell it but changed my mine and it's now open source. For @ZeroMemes and @LeafHacker you can see my code for this exploit here: https://github.com/EbicClient/minecraft/blob/master/client/hacks/CoordTpExploit.java
It's literally my first ever Java project, so might not be the best quality code. If you use any of my code please give me credit according to the license.
Skid time 😎
Well there seem to be a lot of catches to this glitch. For some reason sometimes your client isn't given the other player's new coords at all. Sometimes your client is given the completely wrong coords. Sometimes your client has multiple different coords for the same player. Very confusing. I've got a working build done that I'm happy to share with you @ZeroMemes + @LeafHacker however it's still gonna need more work before it's completely production ready.
As in #1205 this can apparently also work on respawning.
I don't think this is true.
@0-x-2-2 @leijurv From my testing it has not appeared to be true, however I have seen a youtube video of someone successfully doing it: https://youtu.be/KcA0IejbpqA?t=152
We were going to eventually get to it, there was no reason to remove the issue. @cyruscook
Have you just implemented that @leijurv ? Good job if so. I'd recommend flooring the coordinates, I overrided the toString function for the Vec3d class to automatically floor each axis.
Have you just implemented that @leijurv ? Good job if so. I'd recommend flooring the coordinates, I overrided the toString function for the Vec3d class to automatically floor each axis.
🤡 not his screenshot
me, a wwe developer
I overrided the toString function for the Vec3d class to automatically floor each axis.
:gorilla:
what if you want to print out 3 doubles for any other reason
fuck precision!!!!
The toString function is reserved for displaying classes in a user friendly format, I don't believe that 12 decimal places could be called user friendly XD, and anyway I can't see any need for precision more than to the nearest 1 block for a function that simply prints it in a user friendly format @leijurv
Also, it's not just 3 doubles, it's a vector, I wouldn't store 3 doubles in a vector if they weren't a vector. If I simply wanted to store 3 doubles I would use an array for which the toString method does not round.
cringe
uhh where does it say its for displaying classes in a user friendly format. also very sure its for objects not classes 🤔
It should copy cords into a .goto command
@0-x-2-2 literally resigned
concise but informative representation
concise /kənˈsʌɪs/ adjective giving a lot of information clearly and in a few words; brief but comprehensive.
easy for a person to read
are you implying reading precision is hard 🤔
what if i was trying to teleport my minecraft space rocket but you remove the precision then i calculate stuff with ur wrong number then my rocket blows up.
comprehensive /ˌkämprəˈhensiv/ adjective
i calculate stuff with ur wrong number
Nothing is lost in making it concise, so it is simply more efficient w/o any downsides to make it concise, and everyone get to be happy... well... except your English teacher that requires you to have 300 words.
@0-x-2-2 I have not had a single complaint from anyone using my client that their minecraft space rocket blew up, however if you are worried about the potential loss of resources that could occur from such a tragedy, I recommend you edit line 258 of the Vec3d Class
imagine unironically making a MCP client in 2019 and committing it all to Github
tipped mojang and searge enjoy da dmca goy
Post originally made by @cyruscook
Explanation
There is currently a coordinate exploit where if someone within your render distance teleports somewhere else the client still hangs on to their new coords for a couple of seconds. I believe it even works if they die and they teleport to their spawn point. This is incredibly useful on anarchy servers like 2b2t.
At the moment the only way to leverage this is by crashing your game and finding their coordinates in the "Forced Entities" section of the crash log, so something built into the client would be a massive help.
Implementation
I believe to implement it all you would need to do is store every player and their coords in a temporary array, then on tick see if the players coords have changed a lot since their last recorded value in the temporary array. If the difference is > 100 blocks on either axis that should be enough to perhaps alert the user that player x has teleported to coordinates y.
Pseudocode (Not java):
Update: After trawling through some of the game's code I've found the way that the game creates the "Forced entities" section of the crash log, here is the relevant code (
WorldClient.java
line 454):This tells us that my
getAllEntities()
function is the equivalent tomc.world.loadedEntityList
in Java.Hopefully this helps you with your implementation. I am also working on coding my own implementation of this exploit, if I succeed I will post my results here.