#dev-general
1 messages · Page 46 of 1
so yeah it would be pretty far off
likely wouldn't really matter for not many players, but still
That can get pretty heavy on performance.
well im no einstein but everything I have already tried hasnt worked
i'm not sure i understand the problem honestly
I did that first, and that is where my problem began
since the distance is 10 yet entities are added past that
yeah up to 14, because square bounding box
entity move event when
lmaooo oh no
here is the issue highlighted
using 14.14, it removes far past when it is added
you can clearly see it in the video
wdym "removes"
I have code that removes the armorstand
forgot to mention that
it adds it when it gets close, and removes it when they get far away
are you using the bounding box thing for JUST the initial pickup?
or also for checking the distance between the player and the mob later?
I use getNearbyEntities to add the armorstand, and then use location.distance for checking distance later (using 14.14)
idk if that answers your question
hmm
yeah i feel like something isn't working as it should
maybe like debug to make sure the starting origin is right?
how often are you polling this actually, like every 20 ticks?
currently it is every 5 for testing
hmm
I have my own box object and I loop through the world entities via NMS, so I can do it async, then check their location is inside the box.
i mean you can probably just do that in the spigot BoundingBox or whatever
not async but the bounding box part maybe.
What exactly is async there?
My own thread...
but what is it doing?
loop through the world entities via NMS
so you're doing something that isn't thread-safe
I take a copy of the list which you can't get via the api.
that doesn't make it thread-safe automatically
Its thread safe.
doesn't sound like it is
Go find out for yourself 😉
I don't know your code, so that part is difficult
Go find the NMS code.
show me your code
because there are many methods in NMS that deal with entities, and most differ in implementation between spigot and paper, for example
and just because a method doesn't have an async catcher call doesn't mean it's thread safe
and without deep cloning at a thread-safe point in a thread-safe way, almost any interaction with a specific entity is thread-unsafe again
My method works and is thread safe, thats fine for me.
it most likely isn't, you have shown before that you don't understand multithreading
I have. But also learned from it.
what are you doing when iterating over the entities async? Checking if they are inside a bounding box?
x,y,z fields, later versions the x,y,z fields of the Vec3
how do you make sure that part is threadsafe?
Its a copy, not the original
so you have deep copies of the entity?
no idea if anyone has any experience relating to this but how can I get SFTP to have its ChrootDirectory on a mounted drive while having read & write permissions?
- I can't chmod because the permissions don't persist
- I can't chroot because I don't want the sftp user to own the drive (and I haven't tried, but I'm assuming the same issue with above will happen anyways)
- I can't
umask=000the drive in/etc/fstabbecause then SFTP gives the error:client_loop: send disconnect: Connection reset(why??)
What else can I try? D:
setfacl? @half harness
Hmm I haven't seen that before, I'll try it out when I get home, ty
Eyo planning on making an sql library for funs and personal use but maybe making it public and would like some feedback on this pseudo code:
SQLDatabase db = SQLDatabase.mysql()
.host("localhost")
.port(3306)
.user("root")
.password("")
.database("db")
.build()
db.addTable(SqlTable.of("newTable")
.addField(
SqlField.of("id").type(DataType.TEXT).primary(),
SqlField.of("name").type(DataType.TEXT).notNull()
)
);
ResultSet rs = db.select("id", "name").from("newTable").where(Conditions.eq("id", "12345")).queue();
Just an overall idea on how it would look, a bit inspired in the JOOQ syntax but it's not an orm.
well, jooq isn't exactly an orm either
well, point taken, any feedback?
SqlDatabase
no, i just enjoy being a nuisance
uh?
the capitalisation
oh so SQLDatabase? xD
I mean, it's pseudo code, I just need feedback about the rest lmao
i think you should have ur own wrapper for ResultSet as well
but i don't really use sql so idk
or you should just make a whole ORM :)))))
is there any good free OS ORM for mc
exposed
Is there a way to enable placeholders to be used in bungeecode like a tab plugin?
no
theyre all ass
istg if someone says hibernate theyre getting it
real
I don't know if anything changed since but it didn't work with relocation when I tried before (https://github.com/JetBrains/Exposed/issues/1353) (would've used a masked link there
)
skill issue really
hmmm googled hibernate
whats bad about it?
Um... can you help me too?
Oh you just have to fix the service files, you can do that with a gradle task I think.
I have an example of when I did it for Mongo awhile back
I'm not sure - try asking in #placeholder-api
ah
tbh I haven't really been doing MC stuff recently, but if you find the example sometime, please lmk so that I can take note of it :)
It'd probably require a lot of hunting down what needs to be changed and how, but lemme find it rq
This is a little older, I think either gradle or shadow changed some things since, but you should still be able to do it.
This is where I call transform
https://github.com/DrZoddiak/Strax/blob/d4d405aedae705e34535b4b7ea3ace84d3042085/build.gradle.kts#L54
This is the transformer
https://github.com/DrZoddiak/Strax/blob/d4d405aedae705e34535b4b7ea3ace84d3042085/build.gradle.kts#L121-L171
It's not very technical necessarily, it's just reading matched files and transforming their contents correctly
This was written with kmongo in mind, so it's not like universal or anything.
interesting
I haven't really used service files before, but I think I could adapt this to Exposed, thanks
https://github.com/JetBrains/exposed-intellij-plugin/blob/master/exposed-gradle-plugin/README.md#shadow-plugin-relocate-extension-for-kotlin-classes
Looks like this exists though, just can't relocate the stdlib apparently
oh I remember trying that, tbh didn't really understand what that did though or remember what the results were besides the end result not working
wait you excluded kotlin?
is kotlin included in sponge or smth?
I depend on another lib, kruntime
oh
That project has bad configuration though fr
https://github.com/DrZoddiak/Crimera/blob/master/projects/plugin/build.gradle.kts
Comparatively, look how clean this baby is
too complicated for my liking
he lib is not mc focused
might be an interesting idea but what exactly would it do?
I am also wondering if I should add magic or not? For instance, .from("tableOne", "tableTwo") would automatically do an inner join with tableTwo.
and that if there were 2 elements with the same name and the dev didn't specify which table, it would automatically take the first one it finds in a table
but that might be too much magic and actually bad for debugging in some cases
which I suppose makes it a bad idea?
well, personally I wouldn't do it
makes it confusing imo
if I want to join a table, I will do a join.
though .from("tableOne", "tableTwo") implies more of a
SELECT * FROM tableOne UNION ALL SELECT * FROM tableTwo
anyways, we are currently using openjdk 17.0.10 java distr. for our server, any other recommended distributions, such as adoptium?
distributions based on OpenJDK barely differ besides licensing
the only real difference would be using something like azul platform prime, OpenJ9, GraalVM as those actually provide different implementations of JITs
and openj9
wait nvm
im deaf
I suppose although no idea how I would implement it to react as an union lol I was thinking about it as a maybe just like in normal sql, you can use from several tables but you have to add a where for each table which basically works like an inner join.
the union I will do with smt like .union(SQLQuery) aka it receives a new query instance.
thoughts on having the joins be smt like .innerJoin(TABLE, Condition)?
So it would make sure people provide the on condition
well, JOOQ does it like this
dslContext.select()
.from(AUTHOR)
.join(BOOK).on(BOOK.AUTHOR_ID.eq(AUTHOR.ID))
.fetch();
I suppose it's just skipping .on clause
well I had that idea too but couldn't people not provide the on? how would it handle that case.
Hence why I wanted to put the condition (ON) inside the join method directly.
throw
yeah sure but I wanted to make it bullet proof for those types of mistakes
well, you can't proceed with the query anymore if you don't have .on, since .join doesn't have a .where method
No builder patterns 
well that would work if I had a different class like SQLJoin which only contains the on method, otherwise it always returns an instance of the builder.
would that make sense to make to keep the "builder pattern"?
I am also wondering if I should make the host, port, etc methods into a single one since builders are usually for optional things, and making those methods optional doesnt make sense since they are required...
Unsure...
well, if you have a single builder instance then you will have to -> throw
yeah that's the plan
very anti-oopy
Meanwhile Jpa on spring allows you to write queries like this:
List<Something> findByKeyAuthorAndSomethingAndSomethingElseOrderByDesc()
So cursed
take their example
@Entity
class Book {
@Id private String isbn;
@jakarta.validation.constraints.NotNull private String title;
Book() {}
Book(String isbn, String title) { ... }
}
- must have a default constructor so youre adding an invalid state to your object
- cannot ensure any invariants hold because shitty reflection stuff
- class must be non-final
(these are more jpa things, but hibernate the bad standard so)
i think thats a spring-data thing
Yeah that's what I meant, jpa, didn't want to write the entire thing "spring-data jpa"
I know it has other stuff too not just that, but that's what we use so that was the example :')
theres a wip jakarta data spec that does essentially the same thing
i love their example
List<Product> findByNameIgnoreCaseLikeAndPriceLessThan(String namePattern, float max);
Pretty sure that's illegal
Can't find anything longer right now and too lazy to search more but this is a nice one
public fun findOneByKeyPlayerIdAndKeyQuestTypeAndSlot(playerId: UUID, questType: String, slot: Int): QuestEntity?
Ik I just meant a lib that supported mc (relocating)
😍
thats jakarta data btw not spring
Does it use the method name to fetch?
why did it tell me i cant mask my link then not delete it
yes
Yeah it's converted into a query
i might actually like jakarta data
// these are equivalent
Vehicle[] findByMakeAndModelAndYear(String makerName, String model, int year, Sort<?>... sorts);
@Find
Vehicle[] searchFor(String make, String model, int year, Sort<?>... sorts);
no more magical language in the method name
prob requires enabling parameter names tho
I didn't use it but it looks very cool ngl
hell looking at this I think mine doesn't look that bad 💀
ah okay
well I will hopefully work on it this week if no more feedback is given
idk, you say it's inspired by jooq but it just seems like a watered down version of it, you lose a lot of the static typing by using just strings to refer to columns which is one of jooq's strengths (which you can also omit and use strings as well)
well it kinda is a watered down version, as said previously it is mainly for fun and learning purposes but I still want to build a decent library since it will be public.
Why is that a requirement for a public library?
arent there plenty of watered down orms out there already
no idea tbh, just wanna do one myself, someone might find it interesting, idk.
I mean, it is an indirect requirement to me. I want to learn how to structure better open sourced projects, so making a decent library would train me on that.
might as well call it non-functional requirement 
uh? how? how is making a decent library non-functional?
well there are functional and non functional system reqs
something that abstract is definitely non functional, it doesnt define any function of the system itself
I am so confused on what you on about ngl
^
I think the idea they're attempting to convey is that a "decent library" is a "non-functional" requirement of a "public library"
In that a "public library" need not be "decent"
And because being "decent" does not define the function of the program, it is then a "non-functional" requirement.
Reading the wikipedia, if a "non-functional requirement" describes what the system is "to be", then the system is to be "decent" rather than, the system shall do decently.
I mean sure, but I already stated that I want to make a decent library to learn more about good structuring, etc. So... I am unsure what the issue is.
exactly
well that still doesn't explain what I said above
yeah I guess I am just thinking about something else
on a random note, I plan on doing like, an hybrid library where you can easily change what you are using... (mysql, sqlite, postgres, etc) would a multi module project work for this? so having the core and one for each platform? Any recommendations on where to learn more about it? Never really experienced much with multi modules.
multi module seems way overkill for that lol
at least for the SQL stuff, it's basically the same
I love multi module gradle setups
I wish gradle docs were easier to digest because gradle is so fun to use (when it works)
Okay, even easier then.
bro this is like, the third time in the 1.20 minor versions we've had an instant version bump with one bug fix
lol
Bro is version maxxing
1.20 -> 1.20.1, 1.20.3 -> 1.20.4, and now 1.20.5 -> 1.20.6
like how do they not test these things man
big gaem
lgtm push to prod
small studio
most sold game of all time can't test for gamebreaking bugs lmao
bedrock is bleh
That's aside the point, the game test feature is just super cool
havent seen it
You can write tests that generate structures that test mechanics in-game, you also get a neat little green beacon on passes
Look at this cutie
okay ingame unit tests is pretty cute
I'd love to have something like that in Java edition
it's integrated in the java edition
wait wut
Imagine hooking this up with Laravel, you get teleported as each test runs 😂 and from a distance see every beam that’s passed or failed
laracraft
How's this now?
It’s part of the source code for years
Huh
what the hell did I just decompile
Not as bad as when I checked the source of a local pest control website and found porn links scattered in the comments, that was wild
what is copilot blabbing about
Dafaq
wha
I found this (production) https://ctrlv.link/NnF5 
I looked at the div that was highlighted for 2 minutes trying to figure out what's wrong with it...
I still don't understand
OH
💀
a kid at my school showed me his java project and since he's just learning... he only used 1 class. for his entire program. "Main extends JFrame". I almost cried
or JWindow, whatever the main screen thing is called
Nice
we do a lil imperative programming
real
It's imperative after all
imperative programmers when they unexpectedly have to scale their code:
(weeks of refactoring)
(it's joever)
so true
so true
Yo
So if I have a Custom entity with a model on it and I want to check if a player right clicks on it and open a inventory
Cann I use #UseEntity?
And how should I implement it?
I was talking to devs on the Minecraft Modding Development discord server, and a couple of them were of the opinion that Paper/Bukkit is deprecated and instead Fabric/Forge server side mods should be used
Is that actually feasible? If so, how come people don't do that?
people need their servers to perform well...
Uhm thoughts on HikariCP? Thinking if it would make sense to use it on my SQL Library... since it is another library so... unsure
your library should be able to be used without it, but also with it
Tbh no idea how I would easily allow that.
it should be unaware of where the connections are coming from
take a DataSource or a Connection at worst
but that means the user still has to handle that on his own, that would make the builder quite obsolete...
By builder I mean this:
SQLDatabase db = SQLDatabase.mysql()
.username("root")
.password("")
.host("localhost")
.port(3306)
.database("database")
.connect();```
People say that for PHP too 😅 They like to say everything is "dead"
tbf php itself do be dead...
laravel is carrying though
But yeah, overall, php is huge
like, over 75% of the websites still use it probably
Haha, but you've just said its dead, but then said its huge?
just because several websites still use it, does not mean those are "recent" websites. half of them are probably not even updated anymore. I suppose the better term is "is slowly dying"
According to stats, the number of php websites is decreasing by 1-3% per year
well, are you going to depend on a bajillion drivers all at once and the user has to distribute your library with all of them despite only using one? or is the client the one responsible for including the respective driver in their classpath for distribution?
that is a good point....
as in the number of php sites went down or theres just a smaller share of php websites cuz theres more other ones?
unsure.
I would assume share?
Kinda the same thing in this context
that's where a multi-module project could work? I mean, in theory it will only support specific dbs since the some databases have things others don't.... like SQLite & MySQL
yeah thatd make the most sense but then it doesnt rly mean anything to whether php is dying
cuz php is old from when ppl had less to choose from
"It's not dying, people are just using it less for new projects and old ones"
no. a lower percentage of people could be using it for new projects, but a higher total
i dont think its true, it would also fit the fact theres more new devs/year and wayyy more options
Ah I see, I mean to be honest if a language works, why change it? Even Facebook to my knowledge still use PHP in places.
I used to be part of the “hype” of using every modern thing, but it just doesn’t get you anywhere. Use what you know and love, doesn’t have to be PHP, could be Java, C++, C# etc
But I’ll hands down agree that PHP is only popular due to frameworks like Laravel and that other one
Svelte my beloved.
any thoughts on this though? Just to close this one topic
@rotund egret
e.g.
year 2000 - 50 000 new devs, 10% use php
year 2024 - 1 000 000 new devs, 5% use php
(exaggerated to get the point across)
🤯
source trust me bro
thats an example of what im saying
Is your assertion that the original number was poorly drawn?
well its 2 things
1 is percentages can be misleading so -5% could mean 2 things
2 is that losing share doesn't mean its dying, it could be growing faster than ever
The number of websites is decreasing they said, how does that relate to what you said
Top 10 market share of programming languages btw (not really web specific, just general language)
I think a loose connection could be made to like C++
Its getting more outdated, so less are starting to use it, but it's still a very used language with more devs still learning it
php is where the lambos are
when is your lambo coming?
It's in @kindred hatch's garage
the question is, what color?
how tf did Fortran go from 20 to 10 in a year
no fking clue
doesnt that website get hate for being inaccurate asf
not sure
tiobe index or smth right
yeh
he literally said its probably market share when i asked
this is why i said percentages can be misleading and mean 2 things
literally probably, my favorite
He means yours, not mine 🤫
are you fucking deaf? i said he said it is probably market share but it could be either which is why i said it could mean two things
Woah you're hostile
do you understand a joke
Bad joke I guess
how tf would you being deaf affect your ability to read 😭
Part of why it's a bad joke I guess
Sounds like bias of the location you're talking, if you were to talk about the same thing on paper discord for example you'd probably hear that no one uses Fabric server side only
are modded servers still a big thing
well I mean they weren't ever that big but do they still exist
I remember crazycraft servers ages ago that used to get a few hundred players
They still get around a bit. I don't think they're like big big per se
Hard to keep a fairly consistent player-base with content updates while fighting against mod/vanilla/plugin bugs and being cornered with version constraints and a higher resource requirement
There's also not like a decent plugin/mod platform up to date at the moment. Only ones that exist are hybrids with their own set of issues.
yeah that all figures
i have to say, working on stuff for modded is such a nightmare
suppose a lot more is also possible in vanilla now that didn't used to be, modded servers don't serve as much of a purpose as they used to
I struggled building the fabric implementation for Analyse, as not a lot of stuff have docs
Or apis as nice as what spigot has
Waiting for Sponge to update 😩 It's getting closer
They maintain 2 implementations Vanilla and Forge
Vanilla I think keeps up mostly, Forge is and has been behind
yeah but last time I messed around with sponge (mind you a couple years ago), they were working on multiple versions of sponge concurrently
not talking about the implementations but the actual sponge api
Oh like api versions?
yeah
Uhh I think it's api 8-11 now?
I think they're dropping 8 in favor of 10 or 11 now though (support)
yeah
is/was there a 9?
I think last time I was working with sponge, 7 was stable, 8, 9 and 10 were being worked on all at the same time
but I could be misremembering
Yeah no major number skips
FWIW 8-11 are all mostly the same with some world changes I think
And it's traditionally been only for api breaks, which have traditionally happened every major minecraft version
is it not for different mc versions? i see them bump it like every other version
It's not technically, they save major version breaks for major versions of MC, but that's not necessarily the intention per se.
I think that's gearing to change "officially"
i wonder what they constitute a "major" minecraft version
given that basically now every version seems to have huge changes underneath
not that mojang follows semver anyway
Literally major ver
im more talking about maintaining different api versions rather than when they make breaking changes. is it not to support multiple minecraft versions?
that's a useless metric then
minecraft 2.0.0 when
If there were a need to include a major break mid-cycle I'm sure they might, but that hasn't been the case
Like I said 8-10* I think were all mostly the same except for some world changes, so I think they've just been doing stuff on latest and cherry picking mostly, or doing work in 8 and pulling forward
i mean 1.20.6 is much different than 1.20.2
sparky have you ever used the sponge api
They haven't started on 1.20.x yet, so hard to say, but they'll probably just jump to 1.20.6 and call it a day
mojang versioning doesn't really mean anything because it does not represent any compatibility or anything
Well forge, I think they have a vanilla impl
they just represent gameplay changes at this point
Which is in Snapshot, so it's subject to change anyway
or "hey we added a new entity and a new block, it's time to release a new 1.x"
anything else goes to 1.x.y
this is the real question
Sponge also ships a lot of nice apis that spigot just lacks.
Sponge had the benefit of hindsight but regardless I still appreciate it.
iirc sponge also is missing some things that spigot has?
don't ask me what I just remember having issues there
You'd know better than I
spigot has 10+ year old api that doesn't even work anymore 😌
bet you don't have that in sponge
no, sponge isn't cursed with the promise of backwards compatibility
Spigot is too held back by the fear of breaking things
I do recall contextual data not being a thing, which might be a hold back?
Like seeing your own name on a hologram instead of someone elses (but they see theirs)
But you could always impl that yourself with packets or something too
hey, they are slooooooowly moving forward
definitely wasn't that, I honestly couldn't say what it was I just remember running into some issues
Oh you know, there were a fair few events just not implemented now that I think of it.
Some equip events I recall I think
I could dive into the papi 3 code and see what I had to implement myself
I think it was inventory based
Oh I wouldn't be surprised. Inventory has gotten quite the buff since api7 though FWIW
That's a shame. No time or no passion?
no passion
still good at it though, helped some people with their uni assignments recently
pretty simple first year python stuff though
Have you taken a crack at Rust yet?
fuck no
I think I looked at it like once
did sxtanna ever have a rust phase, I feel like they probably introduced me to it
idk if you ever had the... pleasure... of talking to them
I am not a fan
of rust?
Recently started learning it, but I made a CLI app and then I was most recently working on my own toy-lang thing
It's unique in a certain way, but it borrows a lot of concepts from different places.
You might enjoy it, it's really not hard once you get the hang of it
might enjoy it... if I still enjoyed coding
https://doc.rust-lang.org/reference/influences.html
Their influences if you were curious
That's fair 😛
which I mean I don't hate it, just no desire to do it
yeah, that list
I haven't used any of those langs except for c#, which I've used like twice
I learned a little C++ a long time ago, and touched Haskell once I think.
Don't think they had a Rust phase, but definitely had a Go phase
damn idk who used to be a big rust nerd then
think there was definitely someone in here
I remember Kotlin being huge for a bit, then Ocaml was a meme, and then BM got into Haskell
err not ocaml
closure
clojure
what's that quote they used to say
something about functors being a functor or something
AHAHA
monad
monoid over the category of endofunctors
"a monad is a monoid over the category of endofunctors"
whatever the fuck that means
Ah yes, the nerd language
but yeah that was an interesting era for sure
Remember the Help chat kotlin project?
erm
Community effort
oh god
yes I do remember this now
wasn't this deployed on clip's smp
or was that unrelated
He's still in the Go phase it seems
Oh I don't know, maybe?
yeah but this
maybe he's lost the passion too
shame cuz he was a wickedly good programmer
just too much sass
Could also have gotten a job, mine has been pretty dead for a while too
But yeah, he was very held back by his personality :')
I don't look at showcase that much, do you still work for that server?
lemme have a look in there
Still working at Noxcrew on MCCI, moved mostly to work on systems, backend and other stuff
More like worldmachine, you'd probably still need to use world painter after
I always preferred working on that stuff than gameplay
Honestly yeah me too, gameplay can be fun but it's a lot harder to test and it breaks very easily
yeah that and I just found it very repetetive coding sometimes
and very fidgety, messing with numbers over and over till you find what works
just wasn't fun
Very real
I see all these people want to get into coding to make games and I always tell them that's the least fun way to code
idk, maybe it's different to what we do in minecraft vs using a game engine
I never ventured beyond making little 2d games in bluej or something
I think it all depends on what exactly you're doing, when working on new mechanics or new things in general I tend to really like, but when it comes to repetition and tweaking it's horrible
For example I wanna work on a "spell" system in minecraft for fun at some point which I'll probably enjoy, but the moment I have to make it better and fix bugs I'll lose interest :')
yeahh
I remember when we did that coding competition and I tried to make a galacticraft plugin
had a little rocket you could launch to the moon on
I remember that
very relatable
was great seeing the result of it, was pain with the numbers
That would be soooo much cooler to do it now on 1.20.6, so many new features have been added to the game since then, you can do so much with resource packs now
that's gonna take like a year to load cuz of my shitty vps but damn I thought it was so cool back then
Oh yeah that was really cool
hello
yes you do
yes he's got a job
we still talk occasionally
even though I never understood it and probably won't even after you paste it
Shame I was looking forward to it
not even a little dopamine rush from explaining it?
we do
but I must warn you
whatever knowledge you're about to impart will most likely fall through the holes in my sieve of a brain
ok i'll oversimplify it
so a monoid is any type that can be "combined" in some way
eg lists and strings via concatenation
numbers via addition OR multiplication
etc
it also has to have an "identity element" which doesnt change anything when combined
that being the empty list/string, or 0 for addition or 1 for multiplication
an endofunctor is a bit trickier to simplify but the best way of describing it is any type you can "map" over
think Streams, Optionals, etc
they all have this #map function
meaning they are (endo)functors
oh also the combining has to be associative, i.e. (a + b) + c == a + (b + c)
the hard bit is tying the two together
the simplest way of describing a monad is that it's any type that can "merge/flatten" a nested stucture
for example with lists we can write a function List<A> merge(List<List<A>>)
ditto with Optionals and so on
when you say that I think of like a Table from guava
that could probably form a monad too but it's not quite the same
this would just like concatenate all the elements into one list or whatever
[[1, 2], [3, 4]] -> [1, 2, 3, 4]
now if you squint we can say that merge (formally known as join) is pretty much the combining operator that a monoid has
it's a bit different because rather than 2 arguments it's 1 nested argument
but it's more or less the same
I think I get it
I don't really see how it'd be useful especially that specfici example
oh lol
monads as a design pattern on the other hand are super useful
a more practical definition is anything you can flatMap is a monad
so again, Optionals, Streams, CompletableFutures (though it's not called flatMap)
and that's like... pretty much it
The problem with functional programming is the programmers, yall make everything so unnecessarily convoluted that makes people not be interested in it 
outside of like the actual underlying maths which isnt super important
I did not know this until now
:((
well
idk man this is arguably no more complicated than learning the 1 billion different OOP patterns
I think I'm now 1% smarter
yay
if it was called the "Nested Structure Pattern" or something nobody would care
oh lmao yeah it's like a deliberate exaggeration to make it seem overcomplicated
But the SingletonFactoryFactoryBuilderFactorySingleton is so good
So true
Functor -> Mappable
Monoid -> Combinable
Monad -> Computation or Effect or Bindable or Joinable or Branchable or something (monads are kinda too abstract for there to be a single useful term)
Promises in JS/Rust too
@prisma wave what the FUCK is a magma
ummm
i actually dont know that one
oh okay it's just like a very abstract term for any set with an associated binary operation
in other words a type T and some function T f(T, T)
no other requirements, the function could be anything
wow a group is just a special case of a magma
why the FUCK is it called magma
actually i think i know that one
they just wanted it to sound cool or something
unironically
real as fuck
a group is like a very special case haha since it's got like a bajillion more requirements
but yes
magma is like the most primitive abstraction i think?
while still being useful
you cant get more abstract than "a set and any function"
https://i.ibb.co/xh4d6MC/aaaaamenu.png
This would be the menu itself
the menu image is in itemsadder and I want to add it to the deluxemenu menu
A
B
Headings have been out for like months now
Someone posted like subtexts that are apparently coming soon
But idk
call me a 10x programmer the way i delete prod db and it requires 10 people to fix it
https://en.cppreference.com/w/cpp/language/templates heheeh bro so fun
hehhehehehehe
hehehehehehehehehe
Someone that has experience with React-Native and wants to build a simple app?
Ah thank u
Also don't cross post
All good
random question but where does it make sense to use preparedstatements "variables"?
I assume no one will be using it for select, etc.
it's just in conditions right?
or in this case, expanding conditions?
I always use PreparedStatement
oof okay
that's because I usually have some parameters for the query, I guess you can use anything else for static queries (e.g. select * from table)
Any time you have a sql query with parameters. Unless you want a SQL injection vulnerability in your code :)
Even if the value can't be entered by the user I wouldn't risk it either way
Yeah any time you have more than a hardcoded string, it needs to be a prepared statement
Why wouldn't anyone use it for select? 
help placeholders api placeholders dont work
in chat
but if do "/papi parse me %betterteams_name%" it shows the placeholders but in chat dont do it
help
yeah I decided I will make everything use preparedstatement "variables"
now time to see how I implement it
My son drop tables is happy to hear this
How to make it if the player clicks the item in the gui it will open a link in deluxemenus
Send a message of the URL
You have me blocked? Because I can’t react to your message 😅
I mean, I could tell you
unlucky
Not particularly personal, I think afonso and yappers are too
Sometimes I unblock people after awhile, it depends
well, reminds me the elijah guy
who constantly leaves and re-joins the server for some odd reason
I'm not sure how that's related, but sure
idk just a weird quirk
that will only send it in their chat and they have to click the linkl. I'd like when they click the item in the deluxemenu gui, it opens the minecraft url options (Are you sure you want to open.... Yes|Copy to clipboard|No)
can confirm
I can probably guess why
You're a pinger
actually, 80% of the time I don't ping, even more since mentions are automatically off
if I ping you, then it is intended ping
Guess it was too much then idk
Haha you’re blocked too? Sad times
Jesse is not wrong though
yes he is
🤫
List<List<*>> moment
yeh lol
Didn't realize I was so popular
you aint him
I wasn't talking to you, I don't know who you are
btw for experienced developers
whats worth learning, java or kotlin
Depends what you want to do, I prefer Kotlin, but Java isn't bad
if u conclude stuff based on not knowing people, ur not gonna have a good time in life
plugin development on 1.19.4
i know some java
You're like 16, the back of a cereal box has more life experience than you
but ive heard kotlin is meare identical
17
says on my profile
Woopie
nice try buddy
anyways for people who do plugin development on versions like 1.18 1.19 and 1.20 would kotlin be a good use of time to learn?
Kotlin my beloved
Minecraft dev is going to be a little more Java oriented, but you can use Kotlin. It's great
ight
can kotlin communicate with apis written in java?
i.e say i write code in kotlin, would i be able to use the dynmap api, or towny api
or would they need one that is also written in kotlin
Yes, it's fully interopable
Java (in some situations) can even use Kotlin API :^)
i have some experience in java making android apps
but ive started to get into plugin development
for mc
Not possibly unfortunately through normal MC GUIs
your the owner of the server?
bro replied to a 4 year old message
breuh
0000
A lot can change in 4y
could somebody please direct me to the website that hosts headbase search? I'm specifically looking for the section where I can find Minecraft heads and copy their commands for the material section in DeluxeMenu.

Remind me in 4 years when it's true
I have a few different "type" classes that implement an interface. What would I use to not copy the same variables in every "type" class?
make the interface an abstract class? idk
nothing just copy em
when you try to create an abstraction declaring some fields youre doing too much
you can also have like getVariable()
wait can't interfaces have variables
oh ig you can't override the variables
kotlin >
Maybe
That doesn't allow me to have variables in the interface.
yeah but besides static, it's the closest you can go afaik
and it could work depending on your usecase
but if you truly want variables, then you need a class afaik
Yeah. Was trying not to go that route though.
Might just go back to class instead of interface then.
is there a way to make this better because every single crafting shape has its own crafting table book recipee
https://pastebin.com/4qsaZQs1
abstract class, if you're storing similar variables for multiple objects then it's beyond the scope of an interface, unless you are only accessing them from somewhere else then like someone else said, then make a getVariable function
OOP 🥴
@safe crescent you should play around with custom fonts and make a more stylized tooltip
would make it a lot nicer than reading a paragraph for all the info
looks great so far tho!
You could also just make a separate object and use composition if that fits with your design
https://www.youtube.com/watch?v=hxGOiiR9ZKg&ab_channel=CodeAesthetic (this is opinion based)
Let's discuss the tradeoffs between Inheritance and Composition
Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic
0:00 Introduction
0:25 Inheritance
3:32 Composition
5:22 Abstracting with Inheritance
6:52 Abstracting with Interfaces
8:20 When to use Inheritance
a developer's ultimate dilemma is deciding whether to spend 3 hours-months figuring out a good architecture or saying "fuck it, imperative programming!"
Not really
i'm exaggerating, but architecture can be hard to get right
big companies do major rewrites all the time because things change
Rewrites are rare
Far too costly with only little benefit
That’s why we still have COBOL systems all around the world
Although they slowly get replaced by Java applications
true, but architecture is still something any decent programmer spends some time thinking about
Yes, because that helps avoiding the need for rewrites
Will do
Ty for feedback
Hi, all.
I am looking for a working partner(EU/UK/US). If you are interested in collaborating with me, please DM me.
does this seem fine?
we appear to have a memory leak, trying to find out what's causing it
that seems to just be a circular reference somewhere
18k chunks sounds okay-ish depending on the server size
well it's definitely not 18k chunks loaded
that's 18k object instances fsr
something is definitely up with chunks lol
Is there any reason why java? I don't mind though, java my beloved

because it's old and thus tested
because it's a reliable and widespread platform
Fair
Who knows a plugin to completely disabled chat.
Like nobody can see it (Everything) even joining and leaving.
(Sorry did not mean to ping you)
yes you did
it isnt really code tho
which plugin
Does BufferedReader close everything or do I have to run it on all above classes?
what does "run it [...] on classes" mean? Run what?
InputStreamReader & InputStream in this case
you mean if it calls the close methods on what you've passed at construction time when calling close?
Yes
the javadoc tells you what it does
Guys, a tornado just hit in my town, literally half a mile from me houses were in the air
I am fine, but there's debris everywhere
Yeah
Mr. @chilly zenith , Mr. @eager fern he is defaming my server falsly. Please check on to it sir.
This is enough
First of all
We're not doing this here.
Make a ticket via @compact perch
do /report
Thank You So Much. If he want to report, he will make a ticket.
But please warn him to not run defamations here.
@knotty steeple #1236274253595414598 message still looking for it?
what exactly is the defamation? Saying your server sucks or what lol
its not ur buisness sir.
Mr. GrandJudge has already looked upon it.
Also, its not what u are saying. 🙂
lmao with your attitude, hella hope they criticized your server if it's anything similar to you
its not ur buisness sir.
Thats why he said to make a ticket 🙃
Bro couldn't even spell mercenary
Bro what is “Mr. GrandJudge”
one of the staffs here
Sherlock
yea got it. When people like you get your brain in-between some talk especially when its serious, its gotta be answered like that.
And it wasnt even what h were saying man.
Yea i was fine with it. I got it.
Bro what the hell are you saying 
Is it that hard to understand?
Yessir
😂
Dev general
Surely Javascript has reached Venus
If a statement acts as a review for any of your business then by all means it is not defamatory most especially if it's true.
Any person, especially those that has worked for you has the right to share their thoughts in regards to the environment you've provided.
Oh, my apologies.
Didn't notice staff said to drop it
"if its true", Make a reporting ticket rn. Lemme prove how is it true.
-
You have not worked with me.
You didnt even start any assignment, nor did you join our staff server. -
We didnt even discuss what assigment to handover to you. We were just discussing things, and you were dismissed in less than 24 hours of appointment lol.
yea. Apology denied 😉
Also, this isnt a review channel. Review when you can and where you are allowed to.
It's not a reportable offense, bad quality of employer doesn't mean you're a scammer or any devious person.
It simply means that it isn't nice working with you due to the reasons I've specified.
Also I was not dismissed, I told you that I am not interested in continuing the project with you due to the reasons I've specified
Furthermore I did join the staff server, I have a screenshot of that.
Moreover, I'm providing my experience so my fellow developers would know what they're going to experience.
And lastly, I shouldn't even be replying as it's been said to drop it, so once more I apologize to everyone who has to go through this, but it's essential for this message to be sent.
Move this to DMs @remote scarab @harsh ivy
I have
Stay Mad bruh.
Give your review to ur fellow devs in dms. Not here. this aint a review server. 👍
Alrighty. Sorry sir.
Personally I think
bro
Deleted messages 💀
I swear I am laughing a ton reading the messages from this cool guy
Don't bother, he already showed enough to know I would never wish to work for him
wtf drama in dev general
drama-general
this picture is actually awesome
it's from a game I used to play in like primary school lol
planet racer, cool little web game
at least I think that's what it's from, I could be completely wrong, but still unlocked a memory so bonus points for that
Piggy!
greet
What an excellent and subversive way to greet people, I love it
I think it's the perfect greeting
very concise
unfortunately I have to do a greetn't now, because i'm going to bed. just wanted to say cool picture.
uh... ungreet for our newspeak speakers
Ah well, cya!
Or.. ungreet
truly JavaScript has been haunting humanity for generations.
as if everyone wants you to join 😂
Oh yes, im begging for you to join. 🤡
zzz
go to sleep, past your bed time
weird off topic question but how its called when something push something that cause some else to move like in chain?
no no
its more like how rolex works
the mechanism
but the thing that happens
it is some sort of chain reaction
i guess its just called mechanisms.
like the pizza?
thanks everyone, its basically mechanism , i gived rolex as exmaple since it has gear clockwork mechanism
my english is dog shit or actually i'm just uneducated...
#showcase message when you can't control the player camera so you instead you rotate the world around the player :)
jesus
@everyone how to fix mod error in Vs studio?
i dont know
Maybe everyone might know
@everyone answer pls
that is actually sick though... wonder if its client side or not aka only the player sees the world rotated.
It is really cool yeah
wonder where I can learn more about shaders though
it seems to be vanilla mc and block displays tho?
pog, love algebra (I do not)
no?
well it is vanilla mc
well, technically resource packs are vanilla :^)
but not block displays
what are u referring to?
he is probably referring to the whole camera rotation
camera rotation is hacky
it's literally dispatching display transformations lmao
i implemented fully custom world renderer in post shaders
interesting
that's just matrix transformations in general I think
yes?
okaylol
Yes!
Well, one is 10€ a month more than the other and offers a free version of its most popular product :')
(not saying subscriptions are good, just pointing it out)
Community edition is very nice FWIW
love being ghost pinged!!?!??!!?
If I use a repeating task with a period of 0 is that a non-repeating task?
no it just sets it to 1
Shame
although if it's negative then it's non-repeating
That is odd
yeah 🤔
🤷
onServerLoad {
BukkitTaskScheduler.scheduleTask {
Logger.info("Run once")
}
BukkitTaskScheduler.scheduleTask(20, 20) {
Logger.info("Run every second after a second")
}
}
Works great thanks
@steady stump #showcase message Why's the mirror at an angle?
probably to showcase that it isn't limited to being axis aligned
yeah that was my thought, but considering the "hacky clientside mirrors" title, I suspect it's not intentional
I really do wonder how much do these affect performance
Minecraft mirror maze is gonna be crazy
Also walls you could walk through being mirrors, like paintings almost would make for interesting hidden corridors
it's a shame that these are not compatible with iris/optifine shaders :/
hi
yes
wrong chat @deft fjord @charred palm, stick to #general-plugins or #placeholder-api (only one)
No.
Damn... Really thought multi variable initialization would be fixed in later java versions.
Java 21 ```java
double health, health_max = -1;
````health == 0andhealth_max == -1`
Not sure I'm a fan
It’s not "fixed" because a) it’s not wrong b) changing it would break existing code c) it’s a terrible feature anyway, no need to make it even worse
what r u ultimatte spammer
or somethinig?
multi variable init should be illegal
nuh uh
tf since when should that be possible? so you are forced to set health to 0 if you want it to be default?
dont think that is even coming anytime soon
inline variables are already sketchy in regards to readability, initializing those like that would be even worse
Hey guys,
I just want to have your attention for a second. @final hinge as a client is a scammer. He never paid for our plugin and wants to sue us for taking his code (completely rewritten and got permission).
Do not interact with him if you don't want your brain get drained.
Please ban him from this server.
Actually would like to contest that.
I never received any plugin from you guys. The plugin I requested does not at all correlate to what you showed in the video.
You stole my source code and tried distributing it if I didn't pay you for a job you didn't accomplish. Furthermore do /report in bot commands if you have a problem with me
And yes, we are suing you. Thanks for adding cyber libel to the claims now.
So you were making me pay for a faulty plugin, and if I didn't you'd end up distributing my work. Thank you for that.
Take it to DMs or wait for the report to be handled
@pallid gale may I request their message to be deleted as it's damaging without any substance.
It'll be a pleasure seeing you in court though @sharp mountain Just wondering if it'll be monetary compensation or seeing you in jail 🙂
You won't be warned again.
Oh, right
When you have a bunch of variables that all have the same value that isn't default its kinda annoying to have to write the same value for each variable individually.
Open to suggestions it does have to be inline.
you can still do a = b = c = d = 1
but also if you have many variables with the same value, something is wrong already
Yeah but to many = signs lol.
You're saying you don't have 5 or more variables with the same value?
something is wrong with ur design if you do
how is = different from , 🤨 but yeah I don't jave 5 or more variables with the same value bruh
Even uninitialized? You don't have a class with multiple variables of the same type?
If they are uninitialized, I never initialized them, so I never needed to write a =
but even then having 5+ sounds like a nightmare
The data base classes in fastasyncworldedit have multiple string variables.
Not having to write private final String for each variable is a lot cleaner.
More code isn't
Isn’t what? Cleaner? Not automatically, but if it’s more explicit, it’s often easier to read and understand
private int x,y,z;```Vs
```java
private int x;
private int y;
private int z;
```I prefer inline. At this point it's preference.
since when can you sue for a mc plugin hahaha
maybe you could but (in my opinion) it is not a good use of resources 🥲
ok
i have no legal knowledge and idk the details of the situation so 🤷
but either way
it wouldn't be a good use of resources
🙃
GNU allows modifications and sharing
and says software should be free
so, selling mc plugins in theory are against that license.
Why do you have to bring back the drama by pinging them? Cube explicitly told to drop it
I know you are not directly involved in it, but pinging them will just make it continue, it's the CoolAllRounder person situation all over again
free as freely available to anyone
did not bing them
ping*
this is literally false
how so
free as in free speech, not free beer
ya thats what I meant
forgot exactly so I just stopped
the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
again, free as in free speech, not free beer
GNU GPL does not say anything about being unable to sell the licensed software
TLDR of the license
what website is that btw?
mhm thanks for clearing that up
although, even in this case, unsure if they could sue them for a software under the gnu license
that is not even his
wait so GPL allows piracy (of its programs)?
Plugins aren’t automatically under the GPLv3
it isn't piracy if it's GPL?
Plotsquared is a perfect example
I guess so
why not? GNU doesn't allow sublicensing...
Yeah and the people whose rights you violated can sue you then, but someone else can’t just randomly sue you for that
so, bukkit can sue, but not a random person
so this applies to this case, the guy saying he will sue, is basically bullshitting
lol
Based on the message the guy stole his code and attempted to sell it.


