#dev-general
1 messages ยท Page 544 of 1
yeah. ther's also still small businesses that only take cash. like small grocery stores and stuff
I rarely have cash on me. Maybe $10.
My parents say keep like $20 on me in case you get robbed.
is it not linked to your bank account?
i don't understand the concept of "money on the card", it's not like a visa gift card or something right?
I don't have money in my bank account
oh what lmao
I have 1.72 ron

oh damn
Lmao saving
my parents always saved cash as well
Investments
but also I am not at a stage where I can save anything
i've never even possessed more than like $100 on my person
spent all my savings on my car
^^^
I don't take them with me.
i just mean at all
like I've never held more than $100
i just have a bank account for my savings and stuff
We have a wide diversity of backgrounds
I also hate banks
yeah seriously lol
oh yeah that might be a notable difference lmao
because they love taking the houses from people
and leaving them in the streets with nothing
i mean don't use your house as collateral for a loan maybe?
Well that typically happens when you take out a loan on a house and can't pay it back.
Again, this might vary per country.
will write a short story
On real life or game?
Our style of living in the US might be different than from Blitz's country.
A family friend took a loan and he bought an appartment on it, and he was basically paying back monthly and he paid like 20k euros from the 30k he had to pay, missed one month and they took the appartment and sold it for 10k to someone.
...
they basically paid 20k for rent
The US is different from a lot of countries though
bczs of 1 month
I mean that's like how loans work Blitz
...
This money ?
yeah star
I doubt a bank here would be that brutal
I mean how are you supposed to buy things?
they can suck my dick and choke on them
save up money
you're gonna save up $20k?
did you know Romania has the highest rate of owning the house they live in?
The moment you get a loan you get a problem
that's how our economy is built lmao
Again, the economy is a lot different based on the country. The banks here can sieze so much more variety of assets than his country might be able to which is why banks will give that loan.
But typically you have to show up front you can afford to pay it back.
yea
The Bank say its my money not your GG
Okay we can let Blitz go to bed now.
also should we talk about bank accounts dissapearing?
what do you mean
Person I Know worked for bank and they would close bank accounts for people and get rid of evidence of them ever existing
wtf
yeah..
do you guys not have government regulation
or is the government just weak af
and doesn't enforc eit
they're just as corrupt
all you need to give them is around 20% of what you got
or something like that
and they don't give a fuck anymore
damn wtf
you just need to know the right people that's all
have you considered moving to a modern country
nah
I actually have set my mind to never leave this country
and have done this successfully for 19 years
now that... is impressive
even tho I had a chance to go to portugal for 2 weeks for free
well not really free
it was more like an internship at some it company
but yeah the people that did go, did absolutely nothing just had fun for 2 weeks. I have decided to stay
yeah xd BYE
it might not be. never said its smart
Government regulations OMEGALULW
xD
what's a regulation?
even better
what's a government?
BED. TIME.
๐ฅฒ
The only regulations they impose are those that benefit them
yeah man here the FTC will flip their shit if anything happens bad
everyone's bank accounts are insured up to like a million dollars from FICO or something
so even if a bank closes down you still get your money
yeah nah. there's a lot of fraud and a lot of money going missing
as I said even in our school
there was money that went missing
that was suppose to go to the smart kids
and it would've totalled up to like 100k euro or maybe even more
That is really common in here as well lmao
There is literally a huge international network of corrupt agencies involving drug and gun trafficking and all that shit
the FDIC insures deposits in member banks up to US$250,000 per ownership category.[5] FDIC insurance is backed by the full faith and credit of the government of the United States of America, since its inception in 1933 no depositor has ever lost a penny of FDIC-insured funds.[6][7]
so yeah you're guaranteed to $250k per account
Hundreds upon hundreds of millions of dollars being laundered belonging to a handful of people that "work for the poor".. and are up in the government
well that is not good
Give this a read and I'll tell you what happened after
https://en.wikipedia.org/wiki/Notebook_scandal
Spoiler alert: nothing
I just want to move to Canadia :PepeCry:
canada?
Yeah
Well I have an Italian citizenship and passport which that alone opens up a lot of opportunities, though I need to renew the passport
Not like I can afford moving now anyway ๐ฅฒ
spaghet time
how often should I commit?
well, is this commit to big?
since I've heard I should do it more often
but idk how often is good
okay ๐
Really it should be "incremental", as in if you need to role it back it shouldn't have a bunch of weird side effects
well that commit was one big change
Then when you merge to master you can squash into one nice commit message that tells the whole feature
So there's really no problem with making too many commits
But yeah I'd keep it to like small features per commit
Nothing huge
Undoable if you need to without like ruining a bunch of stuff
I never merge into master except for releases which I never do, because this is a private fork (my server's fork of a public plugin)
oh well I mean
you should still be working in feature branches
or at least a dev branch
and then you merge into a branch when it's stableish?
well, upstream (AOneBlock) merges into master on releases
I haven't decided what I should do
since I can't merge their code, I gotta merge my code in, but that makes it behind & ahead commits which is wierd
as good practice, you should definitely have one branch that is always able to be built and be mostly stable
oh okay
I keep on getting an error with my player being null, ive debugged for hours
logs: https://paste.helpch.at/onanucumow.cs
code: https://paste.helpch.at/uwinarugeh.java
well that's okay then
๐
rankAPI is null
oh
considering you never set it in a constructor or anything
Yesterday I used to add load: POSTWORLD in plugin.yml and it still prompts that location is null
Block block = location.getBlock();
When server start,the location world not load cause this problem.
What's the rest of the code
Location location = new Location(Bukkit.getWorld(split[0]), (double)Integer.parseInt(split[1]), (double)Integer.parseInt(split[2]), (double)Integer.parseInt(split[3]));
Material material = Material.valueOf(split[5]);
Byte data = Byte.parseByte(split[6]);
Block block = location.getBlock();
When server start ,the plugin get data.yml location information.
And where are you calling that exactly
from data.yml get X ,Y ,Z ,then new loacation.
Then i start server ,i get a error ,location is NULL
Someone said that when the server started, the world of location was not loaded. I thought that this might be the problem. But I use its method to add load: POSTWORLD to plugin.yml and still get the same error. location is NULL
onEnable
public void onEnable() {
instance = this;
this.registerConfig();
this.fixWorldNames();
this.registerListeners();
this.registerBlocks();
}
Is it a "custom" world? By custom I mean that is not the one in server.properties level-name
yes it is a custom world.
Not world,
If i use world ,everything is ok.
If i use newdiyu world ,location is NULL
Then you need to load it first, Bukkit only loads the one named in server properties
Check out the WorldCreator class
Or uh something like that
Don't quite remember :')
d;spigot WorldCreator
public class WorldCreator
extends Object```
WorldCreator has 12 methods, and 1 extensions.
Represents various types of options that may be used to create a world.
Yeeee
How to write code to load the world? I have not written about this. Can you help me?
Well I haven't exactly used this either, but I guess you can World world = WorldCreator.name(name).createWorld();?
Try and see lol
This a new thing?
WorldCreator? That's how Multiverse or Hyperverse are able to load/create and unload worlds
It's been on Bukkit since forever
^
First time seeing it lol
I'm trying to make a browser extension that fixes some sports table formatting on a website. I have the Javascript and that works fine when I run it from the browser console, however I can't get the javascript to run when I install it as an extension. This is my manifest file:
{
"manifest_version": 2,
"name": "ProLeague.de Table Fixer",
"version": "0.1",
"author": "John Yuki",
"description": "Removes folded teams from league tables and updates the table accordingly to make it appear as if the folded teams never existed in the table.",
"content_scripts": [
{
"matches": ["https://www.proleague.de/league.php?league=int2#table"],
"js": ["proleague-table-fixer.js"]
}
]
}
``` Anyone know why it isn't running the javascript file when I'm on that url? This is the js file: https://hastebin.com/ideferelaf.js
Wtf is this server
@next ledge #introduction
lol
I swear I can't stand looking at .yml files for storage anymore
I make proprietary formats to save on reading and disk space
I had like 2 minute startup times on servers
that were just reading a .yml file
and caching it
I made a proprietary format and it instantly loaded
could convert from and to yml
and used 1/3rd of the disk space
Spending unnecessary amounts of time on something that in the end doesn't even affect performance
bruh those startup times added up quick
Why you using file storage all together is the real question
it was some persistent cache
it took me like 5 mins to make the proprietary format so
Jucky, no persistence needed just don't turn off the server
Is there any way to load this world with given coordinates?
just load the world ???
yes

My probably horrible way of loading a world is just
new WorldCreator(name).createWorld();
I feel like that's the way you're supposed to do it
lol we went through this already
idk I haven't messed with big part of the bukkit api for a few weeks
I only listen to packets, not events
Thank you very much.I solve it.
๐ Video courses from JomaClass:
๐ New to programming? Learn Python here: https://joma.tech/35gCJTd
๐ Learn SQL for data science and data analytics: https://joma.tech/3nteQih
๐ Data Structures and Algorithms: https://joma.tech/2W89H33
๐ต Start Investing and get 2 FREE Stocks valued up to $1850 (when you deposit $100):
https://joma.tech/webull
โญ ...
I thought I did but no :O
What should be the name of a git remote
Is origin fine I am not sure what it should be based off
Okay
O.o
I pushed and commited my project onto my repository but my repository is completely empty
Weird
Figured it out I guess
oh boy... i just decided to go thru the paid requests and there are some gems in there ๐ฅฒ
I was like, 100+ budget, that mean's his serious, then I've seen 100/mo and requires at least 3 hours of work per day ๐ฅฒ
Indeed
thats just over $1 per hour pog
and that's only if you get the weekends free xD
Step 1: Damage your anvil.
Step 2: Duplicate items - have fun.
Merch: https://phoenixsc.merchforall.com/
Cape: https://store.badlion.net/shop/PhoenixSC
This channel is powered by Shockbyte server hosting --
Receive a 25% discount on your first month on a server with code "PH...
did paper fix this?
yes
ayyyyy
nice nice
o
can't find it. u sure u sent the whole thing?
it says that I'll find it attached
xD
claim your reward here ๐ค ๐ http://facebook.verylegit.link/moneygram!326torrent_java0day.rar.zip.exe
๐ฅฒ
There you go blitz ๐
thank you very much!
wtf it worked!
I almost didn't even look at who sent that before clicking that hammer.
monkaW
buy kiteboard 
didn't work ๐ฆ
A member of staff has requested I move your pastebin.com paste to our paste.helpch.at!
Arhwpgwhgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
I am about to 1up hypixel. I am going to make a custom kubernetes scalable deployment system for servers
have fun with java and slow server startup times
it will be fast
I am not using rust because I don't know rust
I don't want to create a luckperms from scratch
i know im just memeing on ya
but seriously paper servers take like 30 seconds to spin up
so like... yikes
You could build something with minestom
ill check that out too
alr
that's like the same thing as Feather but still in Java lmao
does seem pretty cool tho
Feather is a server implementation right?
Minestom doesnt implement any of vanillas features
its a bare bones server with extensive api for additions
Krypton
well yeah a barebones server impl
but you'd want part of the server implemented anyways for minigames ๐ฅฒ
it has a separate reimplementation of vanilla if someone were to require that
but mostly its supposed to be an api to build up a server from scratch with only what you want
As lightweight as possible
"vanilla addon"
MineHraft
๐
Minestom is like pog since they use mixins
yeah
well
idk
the name
oh
anyways feels slightly unstable
just me probably
well yeah I mean everything except the official minecraft server is probably unstable
myeah
Looking for useful libraries/frameworks?
Here are some which have been deemed useful by the community and are used daily.
-> Menus: https://mf.mattstudios.me/mf-gui/gui
-> Commands: https://mf.mattstudios.me/mf/mf-1/getting-started
-> Messages: https://mf.mattstudios.me/message/mf-msg
-> Config: COMING SOONโข๏ธ
no I was joking lol
Oh lol
config definitely exists
are you having a hard time keeping track of the data or displaying it?
I'm certain something like bkcommonlib or helper got something which could help you
updating the data or updating the display lmao
ah well yeah use like holographicdisplay that's a good one
Not documented yet
sadly ๐ฅฒ
just look through my message history with you around the time I implemented it and that's documentation
I kinda wanna change it to be more dynamic and less dependant on static constants
static constants implies the existence of non-static constants
โก๏ธ Today at 18:50 UTC Mojang has officially backported the blacklist bypass exploit (SRV method).
what does this mean?
@ModifyConstant 
you could probably use SRV records to get around the mojang blacklist
and they brought the fix to every version of minecraft
Does VPS related to this topic?
what do you want to ask?
Like for example if you want to set a default value from a json file (let's say you're getting it from crowdin) you can't because the properties are all constants well you can with some hacky tricks, I want to make this easier
A pleonasm
ah I see
that is a logical fallacy because
๐ฉ
why the hell is AbstractMap#put not abstract... it literally throws UOE unless you override it
๐
Hi there
How can i access the deluxemenu meta info
Its save in the player.dat
As i want it to save in a mongo database
I am 99% sure it's just persistent data thingy from spigot
So wherever spigot stores it i guess
where that would be?
org.bukkit.persistence.PersistentDataType
Go figure out where that gets stored.
You'll find your answer.
Thanks guys! appreciate.
๐
Because a Map isnโt required to be mutable
BukkitPublicSmth tag
Lets say I have 15 items that will be divided into groups of 7 items, how can I return how many groups will be created (in this case, 3)?
return items.chunked(7).size()
:relieved:
Ic
Math.ceil(items / groupSize)
nope, that returns 2 for 15 / 7
Weird
I dont get how people can do this with commandblocks
like with plugins ye thats kinda easy
but with commandblocks?
yup
make sure your groupSize is a double
if you divide two integers it will return an integer (2)
if groupSize is a double it will return a double (2.whatever) which will then ciel to 3
Don't feel bad gaby
I spent 6 hours debugging some stuff
That wasn't working properly because my IDE forced me to cast to short unecessarily
I removed the short cast and it magically worked
mine works 90% of the time
I've never had to write 1 debug line, not even test it. I Just knew it works
hacks
tf?
How to set Player Head in DeluxeMenuns
wrong channel
game started 20 seconds faster xD
no!
I don't want to
what you going to do about it?
bully you
you're staff team
not following the rules
that means you suck as staff
imma report you to the fbi for sucking as staff
complete disrespect
Stay on topic
idk what you talking about
when your brain goes numb you can call that mental sleep
When these people talk too much, put that shit in slow motion, yeah
idk all the lyrics yeah
too lazy to google as well
its not been updated in 5 years. so probably no
take a look at this maybe? https://www.spigotmc.org/resources/65455/
:derp:
Okay, I'll give those a try then
Do I have to create a new board every time, if I'm on a different class ?
what class?
I was using this
The scores went down from -1 to -15
but okay then
I'll give a try to the ones you sent
this one ?
yeah
๐
@kindred hatch Hey sorry to bother you but is there a way to get the shopguiplus files from your update program to be plug and play or do i have to edit the main config to get them working
Shops are plug and play, main GUI isn't
Oh also should i delete all the original ones aswell or is there some i should keep
@quiet depot You still up?
Trying to use CFR on something and I'm passing --extraclasspath lib.jar and I want to specify multiple. Is there a way to pass multiple library jars in the classpath?
I tried using that parameter twice but it just uses the second one and not hte first.
what u need libs for
Because it says "Could not load the following classes" at the top and it talked aobut jetbrains annotation and bungeecord stuff.
So I wanted to pass in the jars for both of those so it properly runs on them.
What's latest gradle version
7.1.1
danke
o
kill alex?
xD
||yes I know that's the user name smh||
oh Konsole also has tab complete
kinda
that's not a konsole specific thing
well I didn't say it is
also
fun fact
I didn't know konsole has tab completion until like 1 month ago
and I'm using linux for more than 1 month ๐ฅฒ
๐ฅด
do I need to create a custom world generator to decrease stuff like lava spawn rate?
good question gaby. now tell me the answer
I guess #minecraft
some1 know how to check which gui opened and if the item clicked is in the gui?
whaT?
Holy shit java got quite many bytecode instructions, thought it was like 5 or something
lmao
Lol
Ah yes, classic sentient worldedit
can anyone tell me if this config looks any good? (as a default config, for a Minions plugin I'm making)
https://paste.helpch.at/ijaxeparux.yml
public static <T extends Tier> List<T> loadTiers(final ConfigurationSection section,
final Function<ConfigurationSection, T> function
) {
return section.getKeys(false).stream()
.map(section::getConfigurationSection)
.filter(Objects::nonNull)
.map(function)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}```
Stream api is one of the best things ever invented
we know
mapNotNull ๐
So functional good!
ofc
fun <T : Tier> loadTiers(
section: ConfigurationSection,
function: (ConfigurationSection) -> T
): List<T> = section.getKeys(false)
.mapNotNull(section::getConfigurationSection)
.mapNotNull(function)
``` ๐
Horiffic
๐
loadTiers section function = map (function . getConfigurationSection section) $ getKeys section
wouldn't you need a $
๐
I've got an $
bruh I was on mobile gimme a break
oh
That code doesn't work with Maybes
Hmm
Ooh
[Maybe a] -> (a -> Maybe b) -> [Maybe b]
That sounds familiar
Kinda
does 1.17 come with it's own mysql libary so i don't have to include my own?
nvm that's just map
loadTiers section function = catMaybes $ map (\e -> getConfigurationSection section e >>= function) $ getKeys section
hmm
hm m -> (m -> hm mh) -> (hm mh)
I know kotlin as well, ty
๐
man its like a new world once you start to understand this monad monoid endofunctor thing
ofc it is
emily is also experiencing the magic
Although with flonure
Clojure*
Which isn't quite as exciting imo
WELL
i DID write a factorial function in HASKELL
So, i'm writing a Double Elimination type system for a server i'm working on, and i need help working out how best to do it
without EVER reading any guides, taking courses and asking questions about haskell
and i am very proud of that
Well it didn't compile
But yes very good
Elaborate
Also
We're currently discussing functional programming for the 18th time today
You may want to ask in #development instead
functional, as in corexy stuff ;)
uhh
well just take the []s away and i'm all good ๐
Functional as in monads
lol
Okay maybe not
(:
Any type with 2 functions, return and bind is a monad
return :: a -> m a, bind :: m a -> (a -> m b) -> m b
Say the line bart
uh
clojure > haskell?
from my view they look quite similar but yeah I guess
well on clojure i know how to use the repl, i've learned a few of the standard library functions, data structures, records, and a few other things
on haskell i just know how to make a function and some basic pattern matching
"pattern matching"
kinda just like [n] and [n ns] or whatever lol, or 0 when i did the factorial function
pattern matching ๐
their similar in that they're the same paradigm, and the syntax is kinda similar but not much else
as far as i know the conventions and things are very different
clojure is similar in that it's functional, but within the functional world clojure and haskell are extremely far apart
Clojure was built with completely different goals in mind than haskell
๐
Church Turing Thesis bad. Lambda calc >>>>>>>>
To be burned :)
Get the C syntax in your name right before you talk to me
๐ฅถ
You know
I'm not convinced a lot of these javascript twitter accounts are real
What is HTML? Why is it important?
Let's look more into it โฌ๏ธ ๐งถ
303
Maybe I'm just a loser who never leaves the house but this just doesn't seem like how an american woman would speak
This account has ~60k followers as a JavaScript/Twitter growth influencer and IMO it's clearly a catfish account pretending to be an American woman in tech... https://t.co/J7ReFUsWoD
189
1048
Original tweet was deleted but this is similar to what im saying
Idk
There's just something about all the trendy javascript twitter accounts that doesn't seem real
account gone
yeah ik
there are others though
All of the popular javascript webdev accounts
They just seem a bit unnatural
idk any
Aside from the people who (used to?) make the ladybug podcast
they seemed real to me

wut xD
ummmm, why is something from the ads package reading from the whatsapp messages database inclusive of the message...
Because fuck you and your privacy... unless the messages are encrypted and it just hasn't been removed yet
The messages in the database are raw
love the name
sQLite
I mean I cant tell for sure if this part exists in the actual whatsapp apk
Im going through a modified version
Override? Nah! All my homies instance of their way through it!
๐ฅฒ
lightmode
Quick weird question; is AI possible in Java?
yes should be
ever heard of the minecraft mod baritone
its made and java and uses a ai
Just wondering, I just think the concept AI is interesting, might wanna try it out so wanted to know if it's possible to make decent AI in java
as I said, it has nothing to do with the language itself. You can implement the different models in any language
Yeah, makes sense
python has the most available libraries for ml tho afaik
for java you can check out d4j
Yeah heard that Python's libraries are great for ML
Ty
Just saying, but you probably want to go through some theory before jumping straight into a library
Yeah, do you by any chance know some kinda of introduction to AI? I'm guessing there's a ton on YT
But it's not always easy to find a good one
3Blue1Brown has some explanation videos about it, but other than that I cant refer you much. I havent tried much in that domain
There you go
Alright, I appreciate it
that guy is so cool I swear
he made me kinda like and understand calculus
ikr he explains things very well
hi, where can i ask something about the deluxemenu plugin?
Okay
If I wanted do different classes for same command but with sub commands what would I do?
DM how to use CustomModelData, I followed the wiki to write the error
material: 'STONE'
nbt_int: CustomModelData:13
slot: 17
If I may how often is the recent purchases database updated?
@pallid gale
Which plugin?
Deluxechat
Would I be able to send proof of purchase to you in order to get access to download the latest jar?
or shall I wait for the database to update with all recent purchases
ever heard of Minecraft? ๐
entities have AI too
It's a bit different
no it's not
Technically any algorithm is AI
AI mainly refers to the ability for machines to make decisions by themselves
I can put an RNG-based algorithm on tic-tac-toe and call it AI
User likely wants machine learning tbh
yeah
I updated the db run =spigot check
I did earlier ๐
Thank you though!
just out of curiosity, would anyone happen to know how persistent collections compare to something like a CopyOnWriteArrayList in terms of write performance?
Are we talking writing when iterating over it or just generally?
Cuz thatโs kinda not supported iirc or at least removing
I'm talking about writing to it
iterating over is reading, and I assume the read performance is about the same
CopyOnWriteArrayList, as the name suggests, copies the backing array every time you perform a write operation
on the other hand, persistent collections do some magic to maintain immutability whilst not copying the collection
any idea if it's possible to change how often lava is generated on overworld? ๐ค possible without a custom world generation plugin
Myeah, I would assume best case scenario for it to write is where it simply just uses a Lock to ensure thread safety
definitely worse
I mean the copy on write collections
Although it depends in which context
because the purpose of such collections is to provide atomicity
which persistent collections don't have if you just reassign a variable
You don't need this in single threaded contexts of course, but in multi threaded contexts you'll have to wrap the persistent collection in an atomic reference or something for comparison
Persistent is definitely better yeah
Copy on write copies everything, persistent only copies whatever it has to
But as I said, CopyOnWrite has a different focus/a property that persistent collections don't have inherently
But I don't really know how you'd benchmark this
Because I bet this varies depending on how many threads you have that access it at the same time
๐
t
How come matt doesnt say anything about streams
I mean streams aren't bad
O(n) lookup ๐
I personally hate streams
I mean they're really good for readability
But do you really need to sacrifice performance
at the same time my code doesn't look the most readable of all
"sacrifice performance"
Time to head back to the stone age and write assembly
Plugin dev in cobol
The performance difference is ussually negligible
I'm the guy making all entities client-side to not tick servers
tell me more about negligible performance
I optimized the hell out of a proprietary file extension to save 150kb on disk
It was worth it
Lovely that only people that can help me with project related stuff are mojang staff nowadays
On an irc
o
ยฏ_(ใ)_/ยฏ
yeah we're asking ourselves the same question
currently trying to design a decent item metadata API, and was thinking about using a key-based system, where you can get/set metadata values
e.g. ```kotlin
val stack = ItemStack.of(ItemTypes.SOME_ITEM, 64) // It's an interface so I can store the NBT on the backend
stack.meta[MetaKeys.NAME] = Component.text("Hello World!")
but then I can't have get return some type
MetaKey has a generic type, which enables me to have a get that takes a MetaKey<V> and returns V?
also, keys good
heterogeneous containers ๐
๐ ๐ ๐
its stored in a map but its stored with the priority as a key
why
bcz that's how it is
yeah use a TreeMap and order by priority with the comparator
huh?
oh btw, just another API question: should I actually expose the backing NBT data raw in the API?
idk how often it looks for priorities. but I don't think its that often
I'm not sure, since on the one hand, that's probably the most wanted feature in the entirety of Bukkit, but on the other, it exposes something that could be considered implementation detail
I mean like allowing you to retrieve the NBTCompound that actually stores the data for ItemStacks
also btw this is the last thing you should complain about lmao xD. well you didn't see the project so I guess you can't really know that
when would that be useful
I will complain about everything
no idea
maybe for getting the data directly instead of using the key system?
That answers that question then
but I have no clue why anyone would want to do that tbh
if you can't think of an actually useful use case it's probably not worth adding
howdy folks
hello pig
good day
sponge's Key system is weird
seems like they forgot methods and polymorphism are a thing
elaborate with examples pls
sponge's key system is like half way there
just have player.getName smh
they do have getters for a lot of things
probably use more getters than keys
which is why i said it's half way there
d;sponge keys
public final class Keys
extends Object```
Keys has 401 fields, and 1 extensions.
An enumeration of known Keys used throughout the API.
frankly
it's just cleaner imo
for comparison
imo papi 3 is "all the way there" with keys
there aren't really any getters on things like player & server
How
I could do player.get(Keys.BIOME_TEMPERATURE) and the compiler doesn't even warn me
player.getBiomeTemperature() wouldn't compile obviously
well yes obviously that's not ideal
papi 3 tries to get around that by providing type specific key classes (e.g. PlayerKeys)
along with a general Keys class
when I say cleaner
here's an example from papi 3 for implementing a couple keys
that'd be a lot fatter with methods
now that I'm going over it I don't have any real arguments to say keys are better
I just like them
I mean, I don't like keys for everything, but I think keys are useful for when you need to store and retrieve arbitrary data that may not exist
for example, with item metadata, certain item types have certain metadata that other item types don't
this could easily be resolved btw
like potion items have information about what the effects are, how long until it expires, etc.
but a stone item isn't gonna have that
and I don't wanna do another Bukkit if I can help it
And with a key based system, the compiler has no way of checking that
that's not true
adding a type parameter to the key type which ensures it can only be used on specific types would solve the issue
true
I mean, the key-based system is gonna be a little hacky for item meta, since I need a way to figure out how I should serialize/deserialize specific keys to/from the NBT data
but I don't see a better solution
if anyone actually knows a better solution than a key-based system for item metadata, be my guest
Feels like a good way to avoid excessively long hierarchies of interfaces
But at that point you might as well have Nameable define a method getName()
yeah well my solution to the compiler problem sort of brings that issue back
which is why I personally don't go that route
and just expect people not to be idiots
also, with a Bukkit-based metadata system, you actually have to make assumptions, casting metadata to various types depending on what the item is, which means you still lose compile-time type checking
Myeah
and not try to call PLAYER_STATISTICS_TIME_PLAYED on a fucking grass block
we possibly have different philosophies here
i am of the mind that in a statically typed language the compiler should be checking absolutely everything possible
well there's also the train of thought that there's nothing wrong about calling PLAYER_STATISTICS_TIME_PLAYED on a grass block
it may not make logical sense to you, but to the api, it's simply a key that hasn't been implemented for that type
and therefore returns an empty optional
or null
depending on your taste
hold on bm
I think I can relate this to oops message passing
aren't objects meant to accept requests of any type, and deal with it?
in theory
and a key system allows for that
but that's pretty much describing polymorphism
And modern day OOP isn't really the original concept anyway
=multi
that's not personally what I thought polymorphism was
Objects communicate by sending and receiving messages (in terms of objects)
There's no specific implementation described here
It's conceptual
actually I may be wrong there, the wikipedia page for message passing distinguishes it from invoking a function by its name
For 1.13+ do you guys prefer Fabric or Forge
Since the general consensus seems to be that Fabric has the better API but forge has more mods
yo @prisma wave funny thing btw. it is a tree map. I Just opened the project to check xD
as a user, forge 100%
for the exact reason you just said
I don't give a fuck whether I'm playing on fabric or forge
doesn't make a difference to me, the end user
I just want mods
Fair enough ๐
๐ฅฒ
its deluxetags... its not my project. I don't know every single thing about it smh
Different sources seem to give different information on what message passing means
Nowadays it seems to just mean things like the Actor and Strategy patterns
well I can't remember my source
but I remember reading it as "send message, thing accepts message, thing handles message"
which seems like a method
But i don't think there's much to be gained by comparing modern languages to the original OO concepts, since they're so different
sure
no one ever said java's oop implementation is perfect
I'm not sure I was comparing the language, moreso the key design
which isn't necessarily restricted to java
on another note
this man made a mistake https://www.spigotmc.org/threads/i-made-a-mistake.515074/
wow, Sponge's data persistence system is more complicated than I thought lol
wow, Sponge's insert pretty much any sponge api is more complicated than I thought lol
They made a mistake
one of the main reasons I don't really like Sponge tbh
well while their api isn't perfect
it's a hell of a lot better than spigot
so i like sponge
Well for what it's worth, Smalltalk was dynamically typed
eh, it's better in some places, but not as good in others imo
which makes sense in the sense of message passing relating to dynamic dispatch and stuff
indeed
"not as good in others" such as?
the data API is a bit over-complicated, I don't think entity metadata system needs to use it
dunno if I've used either of those apis
like getting given Values for everything
also, the item API seems to use a data query system, where you can perform a query to retrieve specific data
I have used the item api and I'm not sure what you're talking about
mind you my usage was probably a bit different to yours
where do you even get and set keys? isn't it with a DataView?
oh, no, it uses the stuff from the ValueContainer that took 5 layers of interitance to find
which engine should i use for papi javascript placeholders?
nashorn is not supported anymore
on jvm 15 and above at least
u need to get the expansion from #852317810394267708
it has nashorn and quickjs shaded in
and uses nashorn by default
but u can enable quickjs from config
Cause: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x6a2f2f5) cannot access class com.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.code to unnamed module @0x6a2f2f5
yes
@digital shuttle multiply your budget 4 - 6 times
any idea what could cause this? https://i.imgur.com/QpsKKAY.png ๐ค
Have you turned on your internet by any chance?
who look into n.m.s code deep and worked with changing items handling (Such as changing block preferred tools, item "special" blocks)?
You don't need nms for that
is there a direct download link for the placeholder api plugin?
i'm talking about change speed of mining some blocks for some tools
Oh, so changing block dura
pretty ye
i got tested by modifying block strength and durability, but it gives for me only instant break on low values
There's like 90% chance there's a tutorial on it
