#Coding free multiplayer [Looking for help & testers] Zero port forwarding
1 messages ยท Page 3 of 1
nope
Yes obviously
Party B wouldnt even know we pinged him
it may work by chance but in a lot less cases than if both players use the mod
How would it work?
actually nvm it cant work
I think we can't reach B
minecraft client afaik does not use a consistent port to bind to, which is necessary for hole punching
it does
25565
25565
I forced it to
yes, using the same connection
Use 25565 every time
no, i mean client, not server
But still B will never know we tried to reach it.
when you join hypixel, does your local pc always use the same port to initiate connection to hypixel? i thought not
Nope
Then... would it be possible to make a proxy that handles client punching and then redirects?
yeah then you need the mod on both players
Well then just
Dont holepunch
It'd be more secure than e2mc though
Wait I have an idea.
I wonder how they earn enough to pay for proxy servers.
We could do something like auth server?
Imo the whole Point of this
But as optional feature
Is that only the clients know they are connected
but why, we started making this mod with the intent of having a serverless option
Hmm okay
And do net send any Data elsewhere thats Not the clients or mojank
Wait if a client spam connects to my server it trys to ping my port?
The problem would be the connection rate
but in theory we could establish hole punching with this, couldn't we?
Nono I mean we have fixed ports
if you dont ping the client first, nothing is gonna happen
Like this information is still shared by both patires
nat will reject the packet
well but if we do ping the client?
To which port would we?
you just reinvented normal hole punching
A commonly agreed upon by both patries
Vanilla does Not agree on a Open port
Well yes, but only with one side having the mod ๐ค
It opens a random one when trying to connect
But other than that the nat will drop every packet
Ohhh
you need to be able to set the port the client uses, cant do that in vanilla
No, because vanilla uses TCP.
๐ค
you can do one sided tcp, it worked in my tests
server sends a singular SYN packet and starts listening, client has about 60 seconds to do a completely normal TCP handshake
Well anyhow I think the server-less approach is the core of the project.
We shouldn't drop that.
exactly
Well gole sends 2;30 min of syn packets to answer to, then just Stop trying
the other approach is also nead but would be more suited as a fork of e2mc
We could later add it as an option/addon?
gole uses udp, it can send and receive whatever it wants
it would be close enough to a different mod probably
Yes
Btw can I currently do anything?
Shall i Ping you once i am Home?
Stop me from commiting mass genocide whilst doing ui magic
I could help with ui, as IBM is currently in exam phase :)
i needed testers 30min ago and will need them again in 30min when im done cleaning
ill come bother you two again then
Well i Just need to actually Render two Strings
Which class
Let me clone the repo
Where IP is matched with Connection state
Oh you mean where the buttons are in the text?
Once i Press create
Okay
I shall Open another screen
Where the progress of each Connection is logged
And updated
On the progress If its waiting
Failrd
Pending
Or succeeded
Give it a go
Just bang togegher a screen
I will do the loggin Integration If yea want
Ima annoy you in a few minutes
To get into vc
I'm on my discord :)
See you soon
My ToDo list:
- getPublicIP server should be configurable
- Make P2P greyed out if no interconnection can be established.
Does this "create" button exist?
I think we should remove P2P from the title screen
and move it to the multiplayer screen
maybe add a widget to the server list
"Host a World"
and "Join via P2P"
Ill mess about next week
Or even just
that was my original idea as well
though ibwas also suggesting making the multiplayer button on the title screen half as wide, and putting p2p next to it
to signify that its related to multiplayer but still different
i think P2P on the top left is kinda unfitting
the first image is IMO better, maybe slotting the P2P button somewhere in the button mess at the bottom since thats where most people look anyways
P.S if you guys need help testing something I'm down for it if I have the time
i could use a tester right now if youre up
I'll probably be free sometime today, maybe in an hour if I'm lucky
oh alright
anyone who has 5 minutes of time to test, let me know, im waiting for that currently xd
i can help, what's up
oh nice
give me 2 minutes to disable the base64 temporarily
Did the Test Work?
nope, im still writing out the bugfixed and improved system
i think im basically done though, in which case im looking for a tester again
just needs a few finishing touches
oof local test broke immediately xd
nvm im just stupid and do my sanity check in the wrong place
just ping me
once you need me
It looks like my NAT is symmetric
Yesn't
While it tries to map external port same as internal, but if it earlier receives a packet from the other client on that port it decides to not use it.
so if the router receives on port 40000 (and ofc rejects), and then an outbound connection arrives using port 40000, it picks something else cause "40000 was just used"?
Yeah, I'll test it more later.
aw rip i think thats a gg then
maybe if the time between is long enough, but thats not exactly reliable, since it still needs to be within the other NATs timeout
Timeout is about 10s
Another ToDo
- Let clients know when the server has started the world
I start to think that my NAT is specially designed to prevent hole punching:
For example:
when A connects to B, InternalA:44444 โ-> ExternalB:55555 then A's NAT maps InternalA:44444 -> ExternalA:44444,
and then B connects to A, InternalB:55555 -> ExternalA:44444 then B's NAT maps InternalB:55555 -> ExternalB:12345 โ,
but
when A connects to B, InternalA:33333 โ -> ExternalB:55555 then A's NAT maps InternalA:33333 -> ExternalA:33333,
and then B connects to A, InternalB:55555 -> ExternalA:44444 then B's NAT maps InternalB:55555 -> ExternalB:55555 โ.
Hole punching is technically a vunerability, which is why it might be blocking it
if you can connect somewhere without an external server or port forwarding, we call it a vulnerability
a wise man said once
because we cant have nice things
So in short it just prevents replying to unknown incoming packets, and when it detects it then changes the port.
@patent elbow @vapid plaza might have a solution
pfff i dont wanna type it all out
?
boils down to, if you time it exactly right so you try to connect and the other player connects less than 2,5 seconds later, it could still work
it only becomes completely impossible if both nats are evil about it
Yeah, of course it will work with the NAT described earlier and any other "friendly" NAT.
But in my case both NATs are the same ๐
in the case of tcp it also depends if the router is smart enough to consider rst/ack packets as end of communication, which could also be a stopper
not me, the java impl is borked cause i am too stoopid for multithreading lol
Just tested even more and found that if router detects bidirectional connection, then add special 2 minutes time window in which it no longer checks for hole punching.
But well, it doesn't help at all, as first you need to establish bidirectional connection.
So I'll have to do further testing using probably GSM network.
Ladies & Gentlemen we have TITLES ABOVE BOXES ๐
@lofty timber let me know when you can test again
Gimme 2 min
Nope
Definitely not GSM
Even worse, each packet is mapped to different port.
yeah 4g seems very weird, idk how it works tbh
noooo
Back then proceed
You dont walk backwards do you
And you dont go backwards by clicking in the natural direction of forwards (the right)
That wasn't me
That is work by @lofty timber
Btw IMB
I think your NativeImage trickery is weird
Because it crashed my game 
java.lang.NullPointerException: Cannot invoke "net.minecraft.client.texture.NativeImage.getWidth()" because "this.image" is null
at net.minecraft.client.texture.NativeImageBackedTexture.method_22793(NativeImageBackedTexture.java:25) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at com.mojang.blaze3d.systems.RenderSystem.replayQueue(RenderSystem.java:196) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:185) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at net.minecraft.client.util.Window.swapBuffers(Window.java:275) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1347) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:893) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at net.minecraft.client.main.Main.main(Main.java:243) ~[minecraft-merged-a00418be9b-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.3.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.3.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.3.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar:?]
first native java connection
not Native
I don't use skinshuffle here
Yeah it's fucking skinshuffle all over again
im going to cry
it's the same issue
we spent months trying to find out
and then it just vanished
magically
yeah but I'll be deafened
Well yeah
if you abuse the shit out of your screen
it'll die
that's... how abuse works
But normal minecraft doesn't die
im gonna be back later this evening, maybe or maybe not in vc
I cant do maths
but essentially:
- You need to calculate the max height, and then center it using the max height
I would need two people in aproximatly 20 minutes of time
to test the new gui and other shinanigans
loggin screen and some other things
@craggy cloak where would one put a button to show their public ip?
:)
chill out
hehe
i can help but cba with voice chat
i somehow broke everything
๐
@vapid plaza whats happenin on the native java side?
Wanna get gole Out of this equation
And i See No reason to Work in this while gole exists
Tho i could build the framework
Which is already kinda done
@gleaming beacon i enslave you to fix dis
im about to start porting to the new ui
im not gonna be in vc, my brain is kinda fried
just a chill coding session with some youtube on the second monitor
If yea braun is completly fried after some time, Just Push and Tell me where to start i will Take Off from there
sure
theres no base64 being done anywhere in the new ui right?
nop
no
atm i decided for just, ip as a string
@gleaming beacon fixed the issue that it dod not recognize a connection was made for you
interesting lol
was a good two hours of wondering tf i just did
need someone to test tho if i can now still p2p them
I am online :)
jar send per dm
is LogginScreen supposed to be spelled like that
id assume thats meant to be either LoginScreen or LoggingScreen
I have a feeling I know who wrote that
nononono
second
lmao
i am giving up for today
because nothing works anymore
It Just chose violence
Not even directly joining abworld when Set to privat smh
I think your runnable shit there broke Something @gleaming beacon
Yes
Quickplay broke
It Just, refuses to Join quickplay
What does this have to do with my quickplay
The screen was never intended to be used in that way :>
But let me take a look
Tf
When you have a private Host type
And click create
It yeets you to the world you selected
isn't that what should happen o.O?
Comprendre?
huh
if(shouldTunnel) {
MinecraftClient.getInstance().setScreen(new ConnectionStateScreen(this, startWorld));
} else {
startWorld.run();
}
So shouldTunnel must be true if we get into the ConnectionStateScreen
Obv
But we can Hammer away at that Button all we eant
And it stays true
If ya tried in game
How touched it :sus:
No sus emoji 
It is set here
I did not that touch that.
You we're the Last Person to Messe with anything
but you touched it while editing button height
Connected to quickplay
Maybe you misedited something?
I moved it Up and down my guy
i can try
@lofty timber it works for me?
What is the problem
When I click quickplay I just join into the world

pro tip: git pull
This Mod hates my mere existance
I meant him
I Made the Last commit
on to 10k
Yes?
SOMEBODY HELP ME OUT OF MY MISERY
OH THE MISERY
IT WORKS BY JUST,, DOING NOTHING
EVERBODY WANTS TO BE MY ENEMY
:)+
port 5000, ip is known
Sounds like projects where I just watch enjarai work :)
connect?
get yo ass connecting to me
Worked
IT WORKS
Can I start world?
try to join now
;V
CONNECTION WORKS
HEHEHEHAW

time to add one last button to copy your public IP, and call the gole impl of this done
well code beautification aside
"code beautification"
considering ima throw out half the ui, maybe wait on that a bit lmao
Statments dreamed up from a ridiculos
WHYY
:dies:
we cant keep hardcoding ports forever
we are not
Oh that stuff
Let the User think for once
orrr just dont make the user worry about that and pick a free one
Or Well If you get IT to Work your way
I am Happy to remoce the Option to specify ports
Is literally Just trimming parts Out of the config
The other guis stays the Same
Except Join ofc
oh no not my ip
Bad Snake
Im a snek
nope we cant
one port, one person
it might have been possible if i used mixins to edit minecrafts internal netcode, like e4mc does, but that would have been way more complicated
and not nearly as elegant
isn't port punching out of minecraft?
i mean, you could argue it would be more elegant
no, not really
the minecraft world runs on the lan port
Because that way we don't get exponentially more ports like we currently do
every players tunnel arrives on a different random port, and those all locally connect to the lan port
blame jdk
cant send packets from server sockets
if we could it would all be 1 tunnel
buutt
What we could do
Is make ports 1-1
5000 on client will 5000 on server.
what does that achieve tho
Just thinking about how we can simplifiy the system
Or possibly get it down to one server port
that doesnt really make it any simpler
anything that doesnt use 1 port per user will require substantial custom network code
can't we just do that and prepare everything for minecraft before it even sees the packets?
like it would be neat, but how about first we make something that works before reimplementing java sockets xd
we already do that, kinda
hmmmmmmm
IT WORKS currently
@vapid plaza per your request, i added a ip button, where you can specify the service to use in the config by just puttin in another http://.....
default beein v4.ident.me
urgent is, that i wanna finish this and maybe already publish without native java impl
and wait till griffins finishes native java impl
get higher res images ig
@vapid plaza i now have given join and create screens their ip field
both depend on the config ip value, they wont crash when the ip doesnt work
just return x.x.x.x
bruh i was out here working on the base64 thing again
but the mod itself works
i should probably wait until youre done with all the ui
stay away demon
wont change no more
all the buttons are there i want
all the configs
whey it was neat, and also i need to include ports in addresses
we may exchange an image but that does nothing
wat?
the join ip needs to include a port cause thats gonna be different every time

i think i am gonna annoy the hell out of a few people tomorrow
to test the limits of this
i told you making the netcode actually reliable is gonna be a major refactor of stuff
ye i totally understand
like the auto-reconnect screen on the serverside, which might break cause the client does not necessarily have access to the same port as last time
What
i mean the part where the server goes over all tunnels and tries to connect to them
or you mean in your port
You want to keep ports and ip seperate
I thought that only was hacky workaround?
no, it makes more sense when you think bout it
the port is just as important as the ip, and they will always be used together
they do kinda need to be together in the config
And thats what they currently are
They are in the Same config File, where you can assign every IP their own Port
oh alright
tomorrow i really need to just try the mod in its current state, trying to understand all the components without having used them is getting me nowhere
ive basically just wasted 2 hours doing the wrong thing
If we keep this Up we could create our own Org and start our own discord and not clutter this thread
oof
With all them Messages we produce
i think its funny lmao
You dont waste your time, you learned smth
ill make a channel
i got cucked by the server
add a phone number to discord then lol
That's why I have a random prepaid card just for this sorta thing
This thread shall go down in history for the most messages
And there's 28 members + fabric bot following the thread
Bruh
Are we the longest request thread?
probs
I did
go and fix it ig
yea no, i aint touching no gui anymore
only internal networking code
only wanted this to work sofar, to get some people together to test
ok, imo, the create screen is good
the join screen has all it needs, just needs beautification
the loggin screen is meh, you can let your wildest dream come true there
yea
imo create screen done
no touchie touchie
join screen just reorg and beautification
and log screen complete makeover to your desire
Did you fix the math for the world icon rendering?
I might just GPT4 it, cant be arsed thinking properly on how to formulate it
only got 3.5 ;V
sadly
Copilot is GPT4 i believe
but what i can happily tell, networking logic works
also aint got that ;V
No student plan?
nope, i am already outa school workin
and even if, my old school is a (not so nice word here)and wouldnt do it
Ah lol
As I will do some university shinanigans
Part time
Maybe they accept that
ADD LANG FILES
For that good ol degree: Master of Science
Once it's going to ship, then yea
Make sure to make p2p.screen.config_button translate to something
For the moment I couldn't be bothered less
(yes we know... we weren't born yesterday \s)
Sounds fancy in english
Do you mean Natural Sciences?
A Master in IT
Cs?
computer science
Yes
Nice!
Im going to start a software engineering degree in september ๐
And work full time IT
en_us.json
{
"p2p.screen.config_button": "Configureโฆ",
}
Probably either BEng or MEng
Currently full time EMS worker
Oh nice
Soon IT
That's a career change and a half haha
Yes
But not unheard off
And I will still work in EMS
For free
Community service or however it's translatedn shit
EMS is unpaid?
wtf?
Or volunteer work?
i assume the latter
To be fair
thats one hell of a thing to put on your University Application
No
ATM I get paid for it
Because full time
But you can volunteer to do it alongside another job
Already basically got the uni seat in my hand
Was at UNI Dortmund because I took part in the Bundeswettbewerb Informatik
Those problems were hard af
Traveling Salesman
Tho in a slightly different form
Was really fun implementing tho
Djikstras ๐
your impl needs to be completly original
my algorithm was absolutly borked
but the repo contains my absolutlyfull name
so no sharing sadly
it worked, rather good
anyone free to test in 20 minutes?
Bro got left hanging for over 20 hours
Bro still searching
At this very moment
I know that for a fact because I dipped him because of volleyball
You could've been playing volleyball with packets
i just want someone to test with ๐ญ my code is full of bugs and i cant find them without trying to make tunnels
Fucking smashing em into griffins forehead
I will try to be quick and come still this day
@vapid plaza i am once again existing
I am once again not free
bro stole my meme
it cant be intellectual theft if i dont have any intellect to steal from
bro is gaslighting himself smh
i did just fail an exam really hard, its not helping my confidence lol
oooof
how hard
\s
maybe not \s
depends on the context
๐
@lofty timberim down for testing if you need
was just now leavin

#new-releases message I think you guys should have waited until the project gets approved before showcasing it?
why did we get a cursed emoji from you :c
alright fine I'll remove it, but my point still stands
Yes we may be a bit dumb
Ah
Yeah you should've waited for it get confirmed
๐
Just post in #update-releases once we get the final version out, is gonna be 10x cooler anyway!
Happens to the best of us
Imagine having the skills to spell shit right
Mobile browser yebaited me
Or no
It is now listed
nice
Wasn't that huge of a delay
Huh that was fast
might be because it was already created for a few days, just not public yet
Ye
Well the initial file should take longer tho?
Took my first mod 72 hours
And normal is 24-48
Ig got lucky
You managed to jump my pending mod. It's just cool enough that someone already was waiting to review it I bet
(just to be clear I don't mind that it happened in that order, all the same to me)
Some modrinth moderators may watch this channel ๐ต๏ธ
Seems like he or she likes the idea
I also wouldn't have minded to wait longer
I am generally curious if that's the case
Or if it's just a coincidence of some sort
Smooth criminal dududundun insert Michael Jackson here
Normaly it is a simple queue
We may never know
Well that was fast
https://modrinth.com/mod/no-hat-for-da-ground/
(Sneak peek before I put it in new releases ig)
I was sneak peeked
I think you misclicked.
I don't get it xd
neither do i
Oh wait I misread ๐
I thought you just send it into the wrong thread
Ah that makes sense
backport to 1.20.1 exists
I happen to have talked with that dev before. They are somewhat of a GOAT and even put the effort in to support me and my desire to help people on outdated minecrafft versions like 1.20.1
1.20.1 is outdated now? Cool, good to know ig
1.20.1 was the last update before big changes so some mods (create) are stuck their
I mean my mods are pretty much stuck there too xd
yes, 1.20.1 is outdated and devs are dropping support for it if they havent already. its 7 months old, how can you expect anyone to support anything for more than 6? /s
i hope your kidding
no
the running issue pack devs have are that mod devs seem to be supporting versions for less than 6 months
Yea ig
It's older
And not latest version
Devs stuck there cus rendering changes and such
The Problem also lies in the Version naming, because useres can't comprehend the difference between 1.20.1 and 1.20.2 as in the past minor version updates were actually minor.
Would also port to earlier versions, but don't see no demand
like versions lower 1.20.1
60 downloads wooo
onto 100
Wonder if this mod ever picks up or just gotta be one of my failed ideas again lol
I'll probably check this mod out for myself soon
If it turns out stable I do see this as being popular
Well the idea isn't failed non matter the download count, and I think once we get the java impl the mod is gonna get a hell of a lot easier to work with
have you considered changing the P2P button in the main menu to use an icon instead of the text? and possibly making it show up next to the realms button?
I have
But I don't got the skills to make an icon
And the logo doesn't really fit
Update hoppers. Getting really annoying. As soon as a new mc version comes out, they move to it and abandon all older versions. LTS is dead
Which is understandable
Maybe the dev doesn't have that much time
Or passion to support alla those versions
But now that I say that
Time to port to newest snapshot
You should at least support the last major version. When 1.19 came out they abandoned 1.18. 1.20 came out so they abandoned 1.19. And soon 1.21 is coming so 1.20 will be abandoned
And LTS doesn't necessarily mean backport new features. Backporting bugfixes is still nice. Especially critical ones
But nah they dont even do that
Which I will not do
Critical bug fixes yes
Not more
No new features
Nada
so you're saying the people who are volunteering to make and maintain 15-20 mods or one massive mod should be keeping support for a previous major version as well?
i mean you're fully free to invest your time and maintain it for them, i think everyone would appreciate that
So I'm saying they should backport critical bug fixes to the last major version
i mean, ideally they should pin to 1-2 major LTS versions and develop against current/snapshot rather than only developing for current/snapshot and dropping all other version support. <6 month support makes modpack devs either have to make buggy modpacks, make custom mods for their modpacks or just not support their own modpacks. that leads to the fabric environment effectively being a bug riddled mess
okay i do think this depends case-by-case, for smaller mods its definitely fine for them not to be supporting or backporting critical bugs since thats a lot of effort for almost nothing, but something like geckolib yeah they should be doing that
by 1.19 you mean 1.19.2 right
not 1.19 and 1.19.3
A lot of effort? The effort is already done. You fixed the bug so just copy it over
the problem comes in when you have 1.20.4 and 1.20.1 for instance, where rendering in .4 is not the same as .1 so the "fix" may not be the same between them
if you think its less than 30 minutes to patch and test a critical bug you're crazy
sure for small mods you can get away with a quick 10 minute pop-in pop-out with a publish plugin
not for anything thats large or with a team, far from it
and thats in the case that the code for fixing the bug is the same across both versions, it may not be
especially if its so critical that it has to be backported to version thats no longer recieving feature updates
1.19.2 and 1.20.4 do have a fair bit of differences for where it matters as well :< rendering, registry and world gen n all that
oh yeah then theres testing it across every minor version you intend to support
That's what happens when patches aren't patches anymore. Mojank turning patch into minor
*for cases where the bug isnt "oh i forgot to put an if condition" e.e
or geckolibs oops i forgot to remove crashy mixins for unused code
man at this point you guys should make a discord server for this mod
But thread go brrrrr :(
wouldn't be surprised if this is the thread with the most amount of messages in this forum
but ideally you guys want to be able to give support to users of the mod who are not in this discord and do not feel like making github issues
especially considering that the mod is on track to becoming quite popular, from what I can tell
Well imb11s discord has a channel for this mod
It's much easier if you discuss any issues/requests about this on my discord, since I can easily keep track
I have around 30-50 threads followed here lmao
aight
Currently I do the maintaining ;7
You are gui slave :>
nearly 3k
with that, here are some links. might be good to see if OP can update the first post with some useful links to the project stuff?
#1192525333665157220 message OP first thead post here (would be good to link the current mod and the discord its being devved in?)
#1192525333665157220 message initial mod post
https://modrinth.com/mod/p2p mod release page
#1192525333665157220 message post with discord link
The OP is just gone, we overtook the thread 
then i would suggest a #1112985493777428501 thread ๐ to showcase the cool stuff and keep things easier to find for people enter the chat
why op gone?
idk
sorry OP that others have essentially published your mod and idea
๐ฌ
They at least know that we develop it
i thought op left the server
yeah op just stopped reacting, nobody really knows why
I suppose he wanted someone to develop into a mod
That's why he opened this thread in the first place
@gleaming beacon I summon you to make a showcase thread
Like linguardium said
Oh okay lol
done
Good work
uh
@livid lake you ARE aware that.. "your" mod just got published right
there is a big chance they just dont check this thread
yeah idk this is kind of messed up unless they like very explicitely agreed
i mean iv been sitting here thinking hey uh he agreed right
they got explicit consent right
anyways its the apache license not MIT so make sure you guys reflect that accordingly and credit him appropriately before he even comments
i hope you guys didnt just blindly nab the mod idea without crediting the original source
in all fairness they asked for help and published it as an open source thing so ultimately even if it is a bit of an incredibly inpolite-ish thing, as long as you follow the fucking original license let me be clear you are in the green
even if you didnt take any code its best to credit, link and throw some love because the idea was ultimately his... this is all if you havent obtained consent, if you have, ignore me
@lofty timber @gleaming beacon ^ i hope one of you has a confirmation picture or something
jesus christ they wrote a whole wiki and readme
Ideas can't be copyrighted so why would you give credit for someone giving an idea. And p2p isn't an original idea either as shown by the other mods and games. Plus the OP has vanished, so either he abandoned this thread or doesn't care
well they pushed this project forward, published the code, wrote a wiki, made some videos and got people on-board while commenting about how people wouldnt help them in that prospect
so i would consider it to be a bit of a.. major a-hole move
im not saying there isnt equal if not greater effort from both sides
just im reading the showcase post right now and theres not even a single mention of how this idea came to be or who started the original train
the credits section:
The A Team
zOnlyKroks: Project Owner and residential Networking maniac mineblock11: Residential UI Wizard Dev0Louis: Emotional support person and all the tasks noone wants to do Four_Griffins: Yet another residential Networking maniac
Oh yeah we should mention him at the very least
i would say its more like
your ex from 3 years ago has been raising your child this whole time
If OP cared they wouldn't have gone MIA
controversial and bad opinion above
But they are definently aware that we started this project: #1192525333665157220 message
OP could be unresponsive atm (out on a trip)
or they havent checked this channel in a bit which is understandable
i mean if something did concern him someone would ping or DM him.. right? i can see the logic
I already pinged him (let me find it)
yeah that should be fine then
as long as hes fine with it being published but even then you should credit him yeah
great mod, not insulting anyones efforts, just a little more transparency i think
We are not trying to scam everyone of here.
We started this with him and he just for what ever reason stopped responding.
@lofty timber I'm gonna credit them now on modrinth
and the showcase post
"- Deflecto: Starting this Project, coming out with the Idea and developing first prototypes. "
yeah I think that's good for now until they respond
Anything else I need to add?
maybe check licensing? I'm not sure what you guys did or didn't take
He used apache 2
Oh we maybe still use the Gole part (using it, downloading it, unpacking it).
We are currently switching to the Java Impl
@lofty timber Can you please tell me if we have rewritten that code or used it from them.
its definitely rewritten
the source for multiplayer possible was basically only a swing gui
which MB did in yacl
thanks corgi!
he is alive ๐ฅฐ
yeah I've not been checking this channel for a bit, if anyone wants to dm me they can
also if we want to make a discord server for this I'd love to join
ah
last time I checked (a while ago) the GoleExecutor class seemed to be based off of my code but that might've changed
my repo is open source licensed though, everyone has permission to use it following some simple terms under Apache 2.0
Just so anyone reading knows the context.
I messaged Deflecto and explained the current state of the project and how he feels about it.
He in short answered: yes, it is fine and they are proud of our work.
Correct me if I'm wrong Deflecto ๐
Oh I see your edit now.
That is something Finn needs to look into, we are currently working on our java impl as soon as it is finished gole would be gone regardless.
oh interesting, do you know if Finn is doing it all from scratch, or using a library?
scratch
We are trying to do everything in java only. So yeah from scratch
It would be mildly concerning if it actually was scratch
With the Java impl we are gonna have one port one server
Punching to multipile clients with the same port
I checked and the latest version still contains some of my copyrighted code, and they haven't included my copyright, or a notice that it contains code licensed under Apache 2.0.
Am I going to sue them? Of course not.
They had no bad intentions, it's just some code
they're trying to bring this out to the public and so was I
On Modrinth I already did
We have curse o.o
look you guys don't gotta credit me
To late XD
You are gonna get credited if you want it or not ๐ซ
No but you did bring the Idea, without you we wouldn't be here.
thank you, I appreciate it; just saying you're not forced to ๐
the apache 2.0 license requires a copyright license notice in distributions/the code, but it doesn't mean you gotta put me in the credits
I am gonna update the published latest versions and include a license header and a comment linking to your name and github
Fine to you?
honestly I'd like to give it some more thought, as I've gotten enough shade from random commenters that don't know the full story...
corgi linked my wiki that I wrote, about player safety, code info, previous projects, as well as the story behind the project
Recode would take no time tbh
look... I have 0 problem with what you guys have done, I support the project fully
this isn't about me, this is about bringing a positive idea to minecraft
You can still talk about how you feel like this should be continued, as you are the one that brought us here ^^
can we please talk about something else? you guys are fine to dm me if it's about copyright questions
I don't wanna turn this discussion into some big worry, it's really not that big of a deal.
@fleet falcon if you want to ask me why I've gone absent, feel free to DM me. I'm on discord every couple of days.
please don't speculate that I'm just some guy that doesn't care, that's not the case, I wrote down the story behind the original project on the wiki
yeah, i am not sure anyone that read it would be confused about that. glad to see the community coming together!
now let's continue the discussion, but about positive things, features for the mod; not about copyright or me or this or that ๐
So our current plan is to make the server only open one port for all players
Not my idea
Yeee all of my homies hate symmetric nats
Id you wanna try this sure
on others, if you uhh... reuse the same port for 2+ connections, the symmetric nat gives 2 different ports even if you only have 1
But I still do it the good ol deflecto way, just pimped up
Huh I thought that was one of the biggest promises for the java impl
Griffins tried and didn't succeed

I don't blame him, it's really hard
Neither do it
So I take the easier route that all symmetric nats hate
The deflecto way
uh
my way is to use a nickname system actually xD
so it assures a unique port for every player
that should work on symmetric NATs
The kind of deflecto way
i did succeed, but probably not with symmetric nats
My shinanigans I did to your code work on symmetric nats too :>
also what the frick went down here xd
Tldr
Lord bandit spreading false claims
That deflecto doesn't care what happens with this mod
WE ARE DAM CLOSE!
And that we violated his copyright
xD
thats not what i said. i said he might because he was MIA
that's not a very friendly comment... saying I "dont care", even if it's a maybe :p
so tldr drama about our lord and savior deflecto not being here for a while
In a nutshell
man i cant type xd
And me violating copyright on one class
anyway, lets not focus on all that anymore
Which I copied and mangled my own code into
Which I am probably just gonna rewrite as I cannot stand looking at the garbage I made outa perfectly good deflecto code ;7
is that what you meant @fleet falcon? I may have misunderstood...
It's open source, I wrote on the wiki that I spent 3 months trying multiple solutions, and open sourced this one so others can hopefully use it and not have to spend as much time as I did
I'm gonna go to sleep now
Nighty
good night!
๐ค
3 more days and im looking at java again 
no i was saying because you havent been in this thread for awhile that you might have abandoned the project
understood
You can enslave me again to test for you :>
there's still some things I'm hoping to improve with Multiplayer-Possible. Like a server ID you can share with all your friends, that's secure, and only you have access to
But I'm taking a break right now, and have been also somewhat taking a break from discord
the hope is this would simplify things so everyone gets one ID, instead of server + player both having to type in eachother's ip and nick
one ID that stays the same even if your ip changes
That with the server id will prob get really awkward to implement
Which in our mod is just the IP and the port they both agree on atm
that is true, which is why I'm hoping to make a library, so you can easily add it in a few lines ๐
sadly I'm burnt out atm so I wouldn't count on it tho
Because the client basically has to reverse engineer the IP outa it somehow
With no third party server in there
how would you keep the id consistent when ip changes?
I've been playing on a smp lol, taking a break from discord ๐
If you could answer my DM real quick I would greatly appreciate it
every server owner will have a small file that contains a private/public key pair
Last thing I annoy you with
they log in to a central web server, show that they own the public key by signing via their private key
Ah there we have the thing our mod tries to avoid
then once they're logged in, any player who asks the central web server for that ID can join their game ๐
Scary third party server
ah, central server, i see
Yeah we already thought about smth like that
yes; what I want to make is a system where even if a malicious actor controlled the server, nothing bad will happen as all the messages will be cryptographically secured, signed and verified
Our thing was that this might be good as an companion mod, but not in the main mod.
its a valid approach, but i think it would be different from this one
eh we'll see lol
Maybe seperate it?
yes it is a different approach
As easy mode or something?
e4mc is a proxy, p2p goes hard on zero servers, and there can be another one that focuses on security
Please deflecto
the players minecraft uuid
p2s2p
Player2Server2Player
call it e5mc lol

๐ฏ for now you should continue the 1-1 based connections that you guys are doing.
we'll cross that bridge when we get there ๐
That would be a not so nice move
yeah obv dont actually do that xd
we got emc, e2mc, e3mc, and e4mc, and now you want e5mc?
yes