#help-development
1 messages · Page 49 of 1
^ statistically speaking
there was no gum
it's even ahead of Parks & Recreation
rip there was no gum
I mean
I find peaky blinders like
50% weird silence, 50% cool beans
what you’re all favorites donut
well
forgive grammar my phone is annoying to type on
we don't really have donut shops here
like
we have plain sugar donuts for 35 cents
but they're absolute garbage
we also have chocolate donuts here for 45 cents each but they all melt in your fingers and it's absolute garbage
fun fact: germany tried to copy the office, which already is a copy of the original british series. the german one is called "Stromberg" and the first episode is basically a 1:1 copy of the original thing. but then it went into it's own direction and they even made a 100 minute cinema movie out of it
you don’t have bakery donuts? Tf
this is the german office, "Stromberg"
whut
yeah we don't
that’s sad :(
well we only have donuts in normal bakeries
dunkin donuts is a weird ass concept to me and I'm willing to check it out next year when I visit the states
yeah it's indeed weird but their breakfast stuff is awesome
I also tried starbucks here
closest starbucks is like 2 hours away
it's decent
pricy as hell but decent
starbucks can suck my gay dick
their chocolate cake is nice
I mena
I could buy a whole crate of beer for 7€
it's more of a milkshake thing
java iced coffee tho
it's nice
has like tiny bits you can almost chew on
think its chocolate not sure
hm well
it's coffee for the people who don't like coffee type deal
also a great place to chill
coffee here is just tiny and all
what if you want a longer thing
https://www.youtube.com/watch?v=1c1F0PpbHdg well I take my coffee black... like my men
- More hilarious Airplane clips here https://www.youtube.com/playlist?list=PLPC9Lmc1DqoblBOiI7mjyBdZ6Fv4zH8Ox
- Video Source: Airplane! Blu-ray Disc
- Screenshots - https://imgur.com/69rDPsh
that doesn't make you more energetic than crazy frog
hehehehaw
this really went down in history as the best worst movie ever
right above Morbius
"non-existant"
"i dont like coffee"
😄
I'm a developer I forgor
idek how I'll find a partner later on in life
well, being a dev doesn't have to mean you don't get laid. unless you do stuff in kotlin
I pull up to the programming course and there's like 28 guys and 1 girl
or php
I make minecraft plugins for a living
win/win situation for me
HAHA fr
true lol
my comp sci class had like 4 girls including me and then like 20 guys
the gay guy and the single girl there get along pretty well
exactly
there are 2 girls in the entire course compared to the ~110 guys
I have more female teachers than I have females in my class it's painful
since I told everyone I'm gay, I made so much friends with girls, because they simply think "ok this dude won't try to hit on me, he really just wants to be friends"
You make a living off Minecraft plugins?
also it seems like the more knowledgeable the teacher is, the more freaky he is into crypto
yeah
Must be nice
it kinda is
me too
and kinda isnt
but it sucks
sometimes you make 200€ on one day, and nothing on the next. you never know how much money you actually make, it's always different every day
and started licking all over himself
some days you make 600$, other days you only make 100
well i never made 600 by selling plugins
some days u become an overnight millionaire some days ur wallets as dry as the sahara
I made 600$ in 56 minutes from a single commision
What
I used to make 100k€/year when I was still a lawyer but that's a loooong time ago lol
I used to do commissions for bedrock edition but no money there so I’m tryna get started in Java edition. I got a couple of years of experience with spigot
I got about 5-6 years experience
how did an hour commission pay 600 usd
I offered 200$/server or 600$ with unlimited resell rights
guy went with the 600$ option
ah okay
selling a cheat?
wdym
wait
he only used it in a single server
$200 for whole server? Damn that’s cheap
i made a client for cheating on NoCheatPlus (lol remember when that was relevant) and sold the jar to ppl
it's a plugin
200$ for the license to use in a single server
single seat type thing
You made a plug-in in an hour and sold it for 200$
why btw
yes
tell me where you find such willing clients what the fuck
Makes sense. Where do you guys even find commissions anyways?
they contact me
you dont find them, they find you
god i wish someone would find me
had a guy offer me a contract for 40$/hr
my website is out there 💔
to work on my own public plugin
no joke
or well, a fork of it
this is my main source of income lol
at least right now, until I got my flying insctructor license
does it work well
do you get a lot of commissions
too many, I can't reply to them all anymore
that sucks
I get to pick and choose what commissions I Want
yes it's annoying. especially people who demand an answer within an hour
I guess what sets me apart is my quick response times
they don't understand that I have to sleep sometimes
After I'm done working for the server I work for atm I might conisder comissions now that I had my parents set me up paypal and such
I can also accept crypto lol
if a customer asks a question via DM I reply within 5 minutes
say that again when you're asleep and people keep demanding answers >.<
I’ve dealt with annoying clients like that. Usually little kids
it wasnt the prettiest but ||https://youtu.be/IgKpRP4w-Js|| (mods pls no ban im just showing old work) @tender shard
Like and Subscribe for more Hacking Content.
Finally the developer added Scaffold!
Leave a like if you liked the video!
Subscribe to support me and my channel!
Client -
Name - Hope 4.7 UPDATE!
Download - Buy Hope for 15$ contact me or alerithe on discord for info | @Alerithe#6319 My discord Smart_ass_LOL#2457
Developer - Alerithe
Developer...
yeah it's really annoying
I got my phone under my pillow
probably not worth your time anyways if they’re like that
they’ll make more trouble than it’s worth
some kids are like
"I want this within a day"
and ping you every 3 hours for an update
exactly
on a 5$ commission
LOL
and they want it to work in 1.8 - 1.19
I got paid $60 for a commission and then my client ghosted me. Made 0 sense
Free money though
okay now let me tell you a story
take the cash and move on
you take upfront for annoying clients
in full*
or for very low budgets
ah
higher budgets you take smaller cuts as you go
I have a high budget plugin that has paid me a percentage of the budget every meeting to avoid banks getting too suspicious
when I was still a lawyer, I once made 1500€ or so within an hour. But I had to be at the court within 10 minutes or so, so I totally speeded. police caught me doing 140kmh where only 70kmh is allowed. I had to pay over 1000€ for the traffic ticket. But, and that's the funny thing - I could deduct that from the tax because obviously I was only going so fast to do my job. Oh, yeah, and when I arrived at the court, it was already too late
My first plugin sold for 20 dollars lol
imagine pulling up a lawyer in a traffic spot
why not
my first commission was for 20$
took me a week
second was for like 5$
took me a week
whut
I did 5$ jobs for way too long
you should adjust your prices lol
you sold your first commission I sold my first plugin :P
he definitely did already lol
First java project as well
nowadays I charge like 50$ minimum because I won't bother with stupid jobs
anything below 50$ will be outsourced to my IRL best friend
that has like 4 months of spigot experience
what about $49.99
I usually simply tell people "it's 25€/hour and no, I have no idea how long it will take" and then they either accept that, or leave my server again
rofl
Yeah I charge similarly for longer projects
what are y’all talking about
"It's 25-35$/hour, tracked with wakatime"
customers
making shmoney
selling plugins?
Doing MC development as a job
that’s me rn on Fiverr lol
fiverr lmfao
im like a jack of no trades master of none 😢
its better to just build a name for yourrself buy putting out good shit and building a community who just come to you for plugins
it’s not worth it in the beginning but when you start getting more customers i think it’s pretty good
I wouldn't consider myself as noteable within the community
illusion, what's your retention rate if you had to guess
my normal commissions are roughly 20-100€. if something takes longer than 5 hours to do, I usually don't accept it in the first place anyway
o wuts that
how are you sending invoices then? o0
I use clockify for my current project, but it'd be impossible to use that for commissions where there's too many new clients and not enough old ones
don't your clients want invoices, so they can tax deduct it?
most people just send the money as G&S
G&S?
Goods & Services
goods and services
those who want invoices get a paypal invoice
how else would they send it
as I have a business account
Friends & Family are for the sketchy customers
hm but then they couldn't even use the "complain" system
I'd need to pay big for refunds and chargebacks
as a seller, I can issue a refund and it will even refund the paypal tax
do you just archive and not put in Delivered
or is that in like due-payment status
I put it in delivered until the customer has paid and doesn't want any changes
ah ok
Once the customer moves on with the project, I archive it
It's basically past any testing phase
🥲
I also make a single card per project instead of doing like alex and putting a card per feature
sinec you have several projects you're working on, do you like stop after a few hours, take a break & start working on something else?
the project can have a feature of checklist
it kinda depends
I come yet again with a stupid question
I work on what I feel like working on the moment
Scarry BEes!
prioritizing tasks with sooner deadlines
I had this working before but I forgot how.
Beehive beehive = (Beehive) block.getState();
PersistentDataContainer container = beehive.getPersistentDataContainer();
List<UUID> currentStoredUUIDS = pdcManager.getStoredBeeUUIDS(container);
currentStoredUUIDS.add(beeEnteredHive.getUniqueId());
pdcManager.storeBeeUUIDs(container, currentStoredUUIDS);
beehive.update(true);
he forgor
This isnt actually updating the pdc of the block in the physical world
look in file history
public void storeBeeUUIDs(PersistentDataContainer container, List<UUID> beeUUIDs) {
NamespacedKey beeUUIDKey = new NamespacedKey(cadiaBees, "stored-bee-uuids");
container.set(beeUUIDKey, PersistentDataType.STRING, Arrays.toString(beeUUIDs.toArray()).replace("[", "").replace("]", ""));
}
if you had it working previously check your file history for ap revious version
iirc intellij has that
even vsc has that so I highly doubt you would be unable to access such info
erm why why why are you replacing the [ ] things
because i want it to be stored like uuid,uuid instead of [uuid,uuid]
just makes it looks better for the end user
presumably
oh
please take a look at this - https://www.spigotmc.org/threads/more-persistent-data-types-collections-maps-and-arrays-for-pdc.520677/
then why tf bother
alex being shameless
shameless plug
What exactly am I looking for here
well if I see someone storing UUID arrays and then manually removing the [, ] part, it's safe to assume that I'll send my library instead lol
it allows you to store more data types
e.g. arrays other misk objects etc
that way you don't have to do string fuckery
you're looking at something that allows you to store a list or array of UUIDs without needing to parse them in some weird, manual way
ahha I beat you too it
ughhhh...
true lol
I dont like using tons of extra libraries.. 😩
I don't care how many libraries I have as long as I actually use most of what it adds lol
^ that's why i dont like monolithic libraries
like set to do 1 thing for me, and do it well
Funnily enough I actually don't have one put together lib I use in my projects I have 5 smaller ones lol
THATS THE JAVADOCS
bakka
yeah it's 36kb in total
I stopped hosting nexus
who do you buy your server from mfnalex
I'm hosting reposilite now
man even has his own maven repo
it looks so bae https://maven.dominick.sh
I got dedicated servers at hetzner
I don't want to pay monthly costs
hmm I was thinking about that except the whole I'm not able to grab one in the US type thing
so I don't see the need for servers and all that enthusiast stuff
hetzner doesnt have dedicated in the US yet, but they'll have them soon
Got an example of how I should do this with the library @tender shard ?
I see the ones on github but
nice
bruh even my server has certs lol
11 months and already messing with nms sheesh
I've yet to setup most of it tbh lol I've been to busy
I feel like I wasted my time now
Its like 13 now I made this 2 months ago
DataType.asArray(DataType.UUID)
I've just not had time to update
😭
https://winnpixie.xyz letsencrypt ssl 💪
I've been making plugins for 5-6 years and messing with code for about 11 years now
and I'm still trash
dont ask why it redirects
hmm well my code isn't exceedingly good I've yet to learn to properly incorporate things like consumers and such but I got most other concepts down
But for setting
I've yet to touch bytecode as well, but I plan to do that and contribute to optic's libs
but ofc you'd use asArray for arrays, and DataType.UUID instead of DataType.ITEM_STACK
container.set(beeUUIDKey, DataType.asArrayList(DataType.UUID, beeUUIDs));
all right k3s didnt properly unapply something
back up now <3 https://maven.dominick.sh/#/
oh no, you did it wrong . the DataType.asArrayList(...) only takes the datatype, not the actual contents
so beeUUIDs should be outside of the ) bracket
container.set(beeUUIDKey, DataType.asList(DataType.UUID), beeUUIDs);
thats a List<UUID> btw
like this
yes
I was so confused why you linked some random site
yes
I thought it was because of the .sh domain
thats my site
tbf to you I was put in an immediate position to succeed. My friend has known java for 7 years and taught me the ropes and was there for me every step of the way. Thats a huge head start
use asList, not asArrayList
bet
lol imagine being a developer and having friends that know more than you
rofl
He was the one that got me into scripting and such without him I'd still be more fascinated learning about human psychology
I was lucky to know people who were better than be at java as well to start, but past a certain point I just stopped asking them (fell out of touch)
So, .... this to check if it has it?
if(container.has(beeUUIDKey, DataType.UUID)) {
@tender shard
now I've got a lovely community @Dyescape that teaches me kubernetes and microservice architecture
it's lovely
even though its an array of it
No. You also need DataType.asList(DataType.UUID) there
wow
the people i taught programming ended up becoming better devs than me lolz
this is almost as easy as my ex
one gave you 2 STD's
that wasnt my ex
👀
😐
me too, at 12
me since I was like 6
damn I still have his instagram
I made the mistake of denying the only girl to ask me out before I started coding and watching anime
started coding bukkit stuff at 12
I've had 1 girl ask me out
and I still suck ass at 22 😭
she was special needs and I didn't like her
lol
I started coding early as well
so did you go out with her, or not
not really no
it doesnt get any better
u let That hit u?
he looks sinister
DONT ASK ME WHY; IDK
he is
maybe imma delete that link
didnt want to publicly shame him lol
lol
too late
creepy mf
who could've guessed
he was cute though 😢
oh hell naw
no
well instagram is different from real life
his instagram makes him look ugly
also y'all can't participate anyway unless you're into dudes
bro im straight and that dude is decent looking tf
I call myself ugly but I'm happy I look nowhere near as bad as that guy
YEAH
Thats why I can fucking participate
THATS WHAT I SAID
haha
he looks like he'd be a dick
yeah true
anyway let's stop stalking him haha
it was a mistake to send that link lmao
rofl
xD
we can talk about your commissions
it actually isn't
print out the value you get in console
if u deny it and they say "know anyone else" you've got someone in mind 😉
we can talk about you paying me money
Beehive beehive = (Beehive) block.getState();
PersistentDataContainer container = beehive.getPersistentDataContainer();
List<UUID> currentStoredUUIDS = pdcManager.getStoredBeeUUIDS(container);
currentStoredUUIDS.add(beeEnteredHive.getUniqueId());
pdcManager.storeBeeUUIDs(container, currentStoredUUIDS);
beehive.update(true);
How would I minus 1 from an int?
I have a countdown that is counting down but it's stuck on 15 so it keeps saying "15 seconds left". So I want to minus one from countdownTimer after it says that.
?learnjava
Here are some links to get you started on learning Java:
- https://www.codecademy.com/learn/learn-java
- https://www.sololearn.com/learning/1068
- https://www.learnjavaonline.org/
- https://programmingbydoing.com/
- https://docs.oracle.com/javase/tutorial/java/index.html
The last one is the only official one, however some of those concepts assume that you already know a bit about programming.
--
what exactly is null?
easiest learn java of my life
google shit before asking here
lmfao
wtf
The key's value or key itself I guess
asking here should be last resort
its just not saving
Alright sorry
that's something that's kept me afloat, learning to google
my bricklayer uncle mf decided to pull up at my house at 7:30am wtf
block's PDCs are very weird. I'd suggest you to use my CustomBlockData lib to save information in blocks instead
bro
LMAO
the most important learning resources projects and google
I've went through the same shit that you are doing, right now lol
that's why I made those libs lol
I use your libs on the server I work for xD
by abusing the chunk's PDC instead
as explained on spigot:
lol don't call me daddy
rather, call me Stepsister
hol up
uh huh
I call alex by bae only
yeah I simply map every block to their "in chunk" position, and then use the chunk's PDC
but like
mm it's very neat bae
how do you set it back to the block tho
I had this idea in a dream
no need to
wtf
the lib does that automatically
wizard?
ah bae
it calls this method everytime the PDC is changed
why is nexus not in a sub domain
i think i love you
mine? because why would it
:(
idk why
it's an independent app
anyone here listen to edm?
sure
u know modestep?
sometimes
yes but I gotta run everything through a reverse proxy anyway
yes
but what if you move nexus to a different machine in the future
now you cant
no u cant
everything I run is in its own container or VM anyway
the "web" thing is just a proxy to forward to the docker VM
hub.jeff-media will point to server1 which is directed to the VM in that server
no
but what if u have nexus off of the server of your hub
@tender shard
PersistentDataContainer container = new CustomBlockData(block, cadiaBees);
List<UUID> currentStoredUUIDS = pdcManager.getStoredBeeUUIDS(container);
currentStoredUUIDS.add(beeEnteredHive.getUniqueId());
pdcManager.storeBeeUUIDs(container, currentStoredUUIDS);
So is this all id need then?
it is on another server
wat
yeah that loks good
this is
public void storeBeeUUIDs(PersistentDataContainer container, List<UUID> beeUUIDs) {
NamespacedKey beeUUIDKey = new NamespacedKey(cadiaBees, "stored-bee-uuids");
container.set(beeUUIDKey, DataType.asList(DataType.UUID), beeUUIDs);
}
my storeBeeUUIDs btw
it doesnt return anything idk if that matters.
regardless, you still have you hub and nexus under hub.jeff-media.com
no I have several
so like if you want to move nexus off of that dedi, u cant without moving the other hub.jeff-media stuff
what
the nexus thing runs on 10.0.0.104:8002
not even nginx 🙄
well yes you're capable of proxying it from server1
but why
why not just have nexus.jeff-media.com point to server2 directly
because I don't wanna handle getting SSL certificates on 10 different servers
like this is my current setup
well I could do that, but why? I got the reverse running anyway
it has to, anyway
heh
everything runs through the reverse proxy so I can do SSL offloading or however it's called in one place
I don't want 10 different servers to need to get new LE certificates every 3 months
well that's the benefit of load balancers but, you could also just rsync the cert directory
I could, but then the VM that runs cerbot needs root access to the other servers
why is smp not just cnamed? i originally had it on a diff server
What's the latest version of maven shade?
3.3.1
or 3.3.0?
I always use 3.3.0
ok thx stepsister
I have my cert under root:ssl-xxx.tld so they could just have an erroneous user in my case
np stepbro ❤️
ah okay then 3.3.1-SNAPSHOT is the "latest"
I use maven shade 3.2.3 damn I'm old timer
3.2 doesn't support java 17
heh
hm
ok well ima go back to bed
so yeah, just use 3.3.0 and everything'll work fine
gn peoples
my shade setup has been working really well I really don't wanna change it :P
but kotlin sucks
yeah now im staying
jk, have a good night ❤️
nah jk lmao, ty alex, gn
they hated jesus because he spoke the truth
what's the difference between EntityPickupItemEvent and PlayerAttemptPickupItemEvent
dont bring the liqour to bed tonight
Scala >
WTF
is that new?
the Attempt event
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<executions>
<!-- stuff here -->
</executions>
</plugin>
never seen that
i think its only on paper
Is this the wrong plugin lmao
oh sorry just need to say
its a paper event yeah
that's something that infuriates me with maven
sometimes official apache plugins
just like disappear from maven central
and I can't import them
or use certain versions that should exist
it's so weird
so does anybody know?
this is exactly what I'm talking about
3.3.0 definitely exists
but you can't import it
swear to god cloudflares security check page just gets worse and worse
cause ur profile is Jeff but ur discord name is Alex so
hannah-media.com when
aaah yes
@tender shard getting a classnotfound for customblockdata
actually
this ^ is the reason why my company is named JEFF haha
I even did this
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<!-- stuff here -->
</executions>
<configuration>
<relocations>
<relocation>
<pattern>com.jeff_media.customblockdata</pattern>
<shadedPattern>YOUR.PACKAGE.customblockdata</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
okay so, yes, you need this. and you need to change "YOUR.PACKAGE" to your actual package name
how much memory do persistent data containers take up? could it be a worry if, say 50 entities are storing 2 pieces of data
no problem at all
is there a point i should worry?
no
didnt even notice that...
the PDC takes exactly as much space as storing the information in actual NBT would do
so practically nothing
yes
yeah well, it takes as much space as the actual data has
16 bytes
a UUID is 2 longs
plus the name maybe 10 bytes
so, nothing to worry about, at all
so 26 whopping bytes
got it thanks
yeah not megabytes
a boolean here and there, maybe a spicy string, and a chicken, np lol
sorry I'm drunk
🥸
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<!-- stuff here -->
</executions>
<configuration>
<relocations>
<relocation>
<pattern>com.jeff_media.customblockdata</pattern>
<shadedPattern>com.squallz.customblockdata</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
so uh..same error lol
When are we going to see you put a player in a player pdc
how do you compile?
utf-8 char * 16 is a bit more than 10 bytes 😅
already possible with my MorePersistentDataTypes library
WHAT
that's correct, and it should work
?paste the full stacktrace pls
how did I fuck that up
your stupid
wait, so I can literally be in your walls?
thank you for correcting me
96 bytes* ahem
the irony is I did the wrong you're
send the full stacktrace pls
hold on i gotta get it again
I wasn't talking to you :( I'm sorry if i hurt you
I think it's time to ping @noble lantern now
too laaaate
I might see leroy jenkins if he shows up and that mfing thing scares me
@tender shard https://hastebin.com/qojufefolo.properties
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
Shouldnt burchard be asleep at this time?
hm weird. Please pate your full pom.xml
oh boy
a small price to pay for 16 bytes
isnt he murican?
ok here @tender shard https://hastebin.com/fotesalulo.xml
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
enjoy
very tasty pom
you forgot the <executions> part in the maven-shade-plugin
its 3am
pacific time?
wait
I thought so. So its like monday 1 am or something for him
or eastern?
what do I put in there?
that's a time where I expect burchard to be awake
XD
anyways I meant if the uuid was stored as 2 longs or as a byte array, would be 16 bytes of data; then 10 utf8 characters would be 10 (now 80) so 26 bytes (96 bytes*)
I mean, I woke up at 5 am today
ok now I’m leaving bye
what do I need to put in shade executions?
yeah but you also gotta store the NamespacedKey, which is a string
Pls just read the README of my CustomBlockData thing 🥲
which has overhead
I-
yeahhh
Im sorry, I expected people to know this stuff already, which is a stupid assumption
because 90% of people don't know how it works, fair enough
1 min pls
nah i dont dive deep into everything unless i have to
you need this in your <plugin> thing
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
after you added this, run "clean", then "install" or "package" again
then it should hopefully work
Unsupported class file major version 61
ah yeah
that's because your shade is too old for your current java version
1 sec
in line 98 of your pom
change "3.2.4" to "3.3.0"
bro wtf it wasnt finding 3.3 earlier but now it is?? 💀
okay what's the problem now? 😄
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
waittt
wuddafuq
I see. you shaded stuff you don't wanna shade
please send your updated pom again
?paste
sounds about right
should just have to set the scope of my other plugin to provided
also, what's CadiaBees line 103 ?
yep
you should have EVERY dependency as "provided" unless you are sure you wanna shade it
e.g. MorePersistantDataTypes and CustomBlockData should be <scope>compile
but basically everything else should be <scope>provided
I didnt have the shade plugin before so that issue didnt come up
exactly
whats the diff between shade and compile?
there is no "shade" scope
you mean the difference between "provided" and "compile", right?
so compile is shade
Compile just means that's when the dependency is needed essentially
compile basically means "shade it", yes
Well I know provided means its like.. already expected to be there in a jar or something right
like we provide it alrdy..
"provided" = We don't need to shade. The jar that runs spigot provides this already (e.g. another plugin)
"compile" = We actually put this into our own .jar when compiling.
alright cool
so, if you access any other plugins, in 99% of times you make it "provided". E.g. You wanna ask WorldGuard "Is there any region at location X,Y,Z?" Then we assume that the server runs WorldGuard anyway, so it's "provided"
However, my CustomBlockData library, you wanna shade that, because we cannot assume that it's already there anyway - you gotta "compile" it into your own plugin
np! It's a bit confusing because gradle uses similar terms that mean a whole different thing
in gradle, what maven calls "provided" is called "compileOnly", and what maven calls "compile", is called "implementation"
why cant they all just use the same terms reee
graldes a bit groovy if u ask me
who uses gradle anways
https://discuss.gradle.org/t/is-it-recommended-to-use-compileonly-over-implementation-if-another-module-use-implementation-already/26699
they for example think that "using provided scope" is bad design
Currently we build an Android App which will use a bunch of modules. We have a main-module (com.android.application) and multiple library modules (com.android.library) like login, tracking, logger, sharedressources. The main-module declare all of these library modules as dependency. Furthermore it may happen that other modules have other modules...
which is kinda bullshit if you ask me, but noone asked, thank god haha
shameful
get out!
gradle is perfectly fine. it's basically just the answer to questions noone has ever asked
why do bees have to be so damn complex
e.g. if you think "I need some volatile environment to build my stuff", then maybe you just did something wrong
should I make a custom player name library
like a bee will just RANDOMLY DECIDE TO CHANGE HIVES
a simple one to just change the text above players
whats all the buzz about?
they make our whole eco system work
fuck em
for real, hannah
DO NOT FUCK THE BEES
You can just write your own bee goals
I am bee myself
i still havent figured out how to even see what ones its running
goals are complex man.
I've done modding before so I know how to make my own goals for mobs
Anyways I'm at my PC now so I can help you
if you wanna add your own goal, then use a very low priority (e.g. Integer.MIN_VALUE) and decide through canUse() whether it runs or not
like what triggers them to move hives
Let me check what goals the bee has
I can set my bee's hive location, right
then it goes and dances around the flower
I think I'm CraftBeeSexual
and doesnt go back to its hive
so I punch it which I have a debug on to broadcast its hive X
and it says its hive is null
BITCH I SET IT WHEN IT SPAWNED
hm
that is weird
are you 100% sure that the location you use for setHive actually has a hive?
ok Integer.MaxValue * Integer.MaxValue
💀
ok nvm
It will only use that if it doesn't have a hive
It will drop the bee hive if it goes further than 32 blocks away
So you need to make sure it doesn't do that
L e a s h
other than listening to its move event and checking if its distance is 31, then teleport it back lmao
story of my life
heh
another fun fact: this always prints -2
tf
protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world) {
public boolean isStableDestination(BlockPos blockposition) {
return !this.level.getBlockState(blockposition.below()).isAir();
}
public void tick() {
if (!Bee.this.beePollinateGoal.isPollinating()) {
super.tick();
}
}
};
navigationflying.setCanOpenDoors(false);
navigationflying.setCanFloat(false);
navigationflying.setCanPassDoors(true);
return navigationflying;
}
Override this method and put a distance check in that isStableDestination
Is that stock mc code..?
Yes
Actually just use isTooFarAway(blockposition)
ok I added it to my custom class and set it to override
and add that to the if check
public void tick() {
if (!Bee.this.beePollinateGoal.isPollinating()) {
super.tick();
}
}
this if...?
another fun fact: the @Override annotation is basically totally useless, it's only there are reminder to yourself "okay this method exists in a super class too", but it doesnt actually do anything
also, 'net.minecraft.world.entity.animal.Bee' is not an enclosing class
well it’s still not useless if it still has a purpose
That's to prevent it from flying away when pollinating a flower
so what is it?
ah..
to remind yourself just like you said
bruh
your class does extend Bee, doesnt it?
lol
yes
make them
there's a goal for that already
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftBee;
import net.minecraft.world.entity.animal.Bee;
my imports
it also makes your IDE give a warning if the method doesn’t override anything which can be helpful
add this to the bee to make them able to open doors
LMAO
yeah, that's true
For once in my life, my code works on the first try
I just wanted to say, it doesn't "actually" do anything. but yeah, it throws errors and make your code not compile if you try to "@Override" something that a super class doesn't declare, that's true
So I wonder why its saying 'net.minecraft.world.entity.animal.Bee' is not an enclosing class
its
using the wrong import huh
?paste your custom bee class
it just doesn’t do anything at runtime is what you mean
yep
oh god
Are you extending CraftBee instead of NMS bee
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
incoming judgement
some stuff isnt even used im gonna remove it
you are not extending the vanilla / NMS Bee class
fuck me
how old are you?
22
LMAO
👀
do you got any class called "bee" in the same package
I do not
it says "extends Bee", but you don't even import any "Bee" class
They do
👁️👄 👁️
not an enclosing class... 🤔
send the full stacktrace again pls
I cant even compile it
protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world) {
public boolean isStableDestination(BlockPos blockposition) {
return !this.level.getBlockState(blockposition.below()).isAir();
}
public void tick() {
if (!Bee.this.beePollinateGoal.isPollinating()) {
super.tick();
}
}
};
navigationflying.setCanOpenDoors(false);
navigationflying.setCanFloat(false);
navigationflying.setCanPassDoors(true);
return navigationflying;
}
its erroring on the "!Bee.this"
Yeah the problem is the beePollinateGoal
It has no access modifier so you can't access it
but stuff without modifiers should be accessible by extending classes, no?
No
if I click on the "isPollinating" it jumps to the bee class
so it knows it exists
only if it's a subclass in the same package
its just trolling me
oh yeah
the fucking package
right
just for fun, try to change your CustomBee's package name to net.minecraft.world.entity.animal
does it compile now?
Package name 'net.minecraft.world.entity.animal' does not correspond to the file path 'com.squallz.cadiabees.objects'
yeah you also gotta "move" the file
nope still the same error
I think you need to use reflection here
huh that is very weird then
sigh
yeah that will definitely work
something like this
Method method = Bee.class.getDeclaredMethod("theMethodYouWannaInvoke");
method.invoke(this, parameters....);
ive avoided it like the plague for years
ok, herpaghonnasiphiliritus
unless you abuse it for stuff that doesn't actually require it
Where would this go?
after further examination, shits fucked and only like 20% of my changes worked
in the place where you currently try to use Bee.this.theMethodYouWannaInvoke()
haha
relatable
So like..
public void tick() {
Method method = null;
try {
method = Bee.class.getDeclaredMethod("isPollinating");
if (!method) {
super.tick();
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
```?
All I wanted was for my objects to convert to mongodb documents dynamically 😦
Nooo
@Override
protected PathNavigation createNavigation(Level world) {
final PathNavigation vanillaNav = super.createNavigation(world);
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world) {
public boolean isStableDestination(BlockPos blockposition) {
return vanillaNav.isStableDestination(blockposition) && blockposition.closerThan(blockposition, 32);
}
public void tick() {
vanillaNav.tick();
}
};
navigationflying.setCanOpenDoors(false);
navigationflying.setCanFloat(false);
navigationflying.setCanPassDoors(true);
return navigationflying;
}
Try this @carmine nacelle
you still gotta invoke the method
code like this should never exist
Document document = new Document();
document.append("uuid", uuid.toString());
document.append("name", name);
document.append("category", category);
document.append("permissions", permissions);
return document;
you only "get" the method, but you never "invoke" it
Well it lets me compile that..
Why?
not even using methodhandles smh
That looks like your everyday factory method
yeah, nothing wrong wth that
So just like that, it should never travel out of range now?
because as you add more properties it bloats
So?
I just don't like it
I believe so
and what's your suggestion to fix this?
Thats not a good reason for it to not exist
this feels illegal
Well it can still be pushed too far away
Its called function abstraction in a more enterprisy way, every line in a function should be at the same level of abstraction
it got pollen and now its stuck here
A factory method encapsulates and abstracts the need to think about instantiation
this is my current fix
static Document toDocument(Object instance) {
Document doc = new Document();
try {
for (Field prop : instance.getClass().getDeclaredFields()) {
prop.setAccessible(true);
Object value = prop.get(instance);
if(value instanceof UUID)value = value.toString();
if(value instanceof Documentable)value = ((Documentable) value).asDocument();
if(value instanceof Listable)value = ((Listable) value).asList();
doc.put(prop.getName(), value);
}
}catch (Exception exception) { exception.printStackTrace(); }
return doc;
}
That function is impolite to the reader as it both violates the fundamental rule of function abstraction and the fact that its quite huge
But well Ig
and you actually think that is better, becauuuuuse ... ?
for some of my classes, yes. It has a lot of flaws
@chrome beacon It completely breaks once it finishes pollinating
Feels like an unnecessary use of reflection unless you’re trying to do some annotation based pojo or bean populating
it like doesnt know what to do
yeah let me just use reflection when it is highly unnecessary
I think because we got rid of the pollinating part?
public void tick() {
if (!Bee.this.beePollinateGoal.isPollinating()) {
super.tick();
}
}
vanillaNav.tick();
This should call that method
Wrong reply
but yeah
hmm.
yeah it pollinates and floats in place forever
oh well ill worry about it more tomorrow
thanks guys
It really is. I'm most likely going to remove this but I'm only attempting at it because its a nuisance to change that function every time I add a property or modify a property.
Yeah dw dw, I was just nitpicking
Generally speaking that function is fine or well probably more than fine if you ask someone at random
I made a system to convert an object to a Map<String, Object>
then serialize all of that data to any database I want
sql, mongo
amazon s3
flat file
it's bascally bootleg json serialization
Sounds like bukkit ConfigurationSerializable 
and for subclasses I flatten the map type deal
thats pretty much the point of the function. I have an interface called Documentable and its to convert objects to Documents for mongo and convert Documents to objects
so
public class Whatever implements SkyblockSerializable {
private UUID uuid;
private Vector position;
}
would turn into
UUID|position@x|position@y|position@z on an sql table
the table also dynamically adjusts itself to any changes in the class
so it doesn't cause issues with upgrading the structure
I was storing stuff as pojo before but any changes would cause issues
Sounds like bootleg hibernate to me
I mean these automatic systems are probably nice in terms of time saving and taking away manual work, tho the issue it that some of the intent gets hidden away which to some extent can imply subsequent unit tests to break unexpectedly if someone change a class that relies on that module in terms of serialization, one reason I tend to avoid hibernate like frameworks, pros and cons just like everything else