#dev-general
1 messages ยท Page 147 of 1
Yea
Its nodejs right? Or am I misguided
It seems to run pretty well for a nodejs program.
Ok. Ill try and connect dots using awt
Doesnt google have an api for graphs / charts?
js canvas
Is it possible to let a chunk unload if the server deems it okay to do so, after calling Chunk.load(true)?
I don't want to specifically force it to unload, in case a player or something else needs it loaded, but to sort of "let go" of the chunk and let the server handle it as it is needed?
Just found this ๐
https://github.com/valich/intellij-markdown
Gonna try learning from this lexer and parser
Finally windows updated and I was able to convert my wsl 1 to wsl2
took fucking ages
Hehe
Does anyone know how to use repl.it for production react builds?
Using something like serve
yo have you guys heard of bitbucket before? What is it, and what does it do?
you don't use serve in production
@obtuse gale github alternative
and repl.it is for creating code not for creating production builds
What do I use. Ive never used this production scriot
On repl? Thats what id normally do but my client is a tight arse wont get a vos
vps
He wants to use it as a host lol
oh you mean like github pages
yeha that kinda thing
BM when's that lang competition and are you still doing it after Sx went poof? and am I still invited ๐ญ
wait what. Sxtanna left?
๐ฆ he was smart asf
That's why we have senpai
who
Hallo
I think registration started yesterday
the actual thing starts on the 10th
idk how enthusiastic sx is tbh
he's ghosted me for 2 days straight now
Rip
You're telling me I have to enter it with my IRL friends who have no idea what the fuck they're doing, to the point they dont even know a single langauge
Holy shit this is a disaster
Is there a max team size
i'll check
Or can we start Effectively HCCCE 2.0โข๏ธ
hccce 2.0 = elara? ๐
Did hccce 1 0 die because clip stopped responding to the and I havent hear dnay news
Indeed, I'd imagine Matt's next move is to make an entire langauge in markdown syntax
Doesn't say there's a maximum team size
although with more than 5 people this could get complicated
Loophole exploited
also, it wants unique ideas
could be
welp, here's my proposal that I sent to sx and he ignored
it's not very detailed yet
but it's got some cool ideas I think
Looks pretty interesting
Bear in mind I've never built a lexer/parser, much less a langauge before, is there anything I should know
not really
I'm not sure we'll have time to do the lexer and parser ourselves, we might need to use an existing library
maybe, maybe not
Could we not "re use" Frigga/Odin's and change it up to what we want?
possibly
Frigga is using antlr which generates one for you
based on a grammar
but speaking from experience, it's a pain in the ass
and Odin's is a mess
what's the language you want to build it in
Didn't you want to do it in Kotlin or Clojure?
but maybe we could write the lexer and parser in something faster
I'm not familiar enough with clojure
Go lexer when
probably some jni/jna libaries
I've also never used Go, guess that's another starting point
Go is fairly simple
can also use c/cpp
could do
Interessant
only if we have someone who's familiar though
Interessant
bruh why you speak my native language
smh
bruh why you speak my native language
I dont, I just learnt it from a class in school and cant shake it
yay it worked https://i.lemmotresto.com/2020-08-01--07-34-33pm.png
your docker addiction is scary
inb4 I use kubernetes for ecloud
uh oh
Cant read that on mobile so no idea what it is, I assume its something to do with the docker you've been messing with for hours, gj
I mean I just find it incredibly useful
and at work I mostly make all the dockerfiles etc
I've only once used Docker, and that's for my Jenkins since it was super easy to set up
Looks kinda cool though
it is cool
I've removed use of jenkins for ecloud tho
also for self hosted CIs I'd recommend using teamcity
but yes docker is very neat
I don't even have a database server installed on my laptop
I just have XAMPP
ew
I know, I know, but it's really easy for MySQL databases
docker is easier
can I just express
how much I despise antlr
I am literally about to punch something
github actions is weird, you can upload and download artifacts but not remove them
and there's a storage limit which does not reset
that makes zero sense
@old wyvern reading over your fork now and trying to understand the grammar, looks pretty nice
how do i cancel the death event?
Is your server on paper?
If so I think you can cancel it
If not I think you juts gotta listen for the damage event or smthn
ok
reading over your fork now and trying to understand the grammar, looks pretty nice
@ocean quartz
Yea now need to finish the Parser part to actually find the exact grammer rule to use and build the result from those.
I think registration started yesterday
@prisma wave
Where does one register?
@distant sun I saw the error you sent for iridescent, what plugin are you trying to use iridescent with? And what line of text are you trying to color?
I get that right after the plugin is being enabled
The only places where I have hex are KiteBoard (default config) and TAB (through luckperms prefix)
I saw a kiteboard mention in there
Wheres the error?

Smh
๐
Although this is actually a bug
I still need to send when empty
@foggy pond Check if prefix/suffix is null
Anyway I have changed that to not return null any more
@steel heart You can actually store shit within a block state :OOO
but not persistently, right?
I'll see, but I'd assume it's persistent
doubt
Yea no persistency :((
Well I chcked the maven
only 1.4mb apparently
it better count its dependencies
else
one unhappy me ๐
What does rpf do again? please don't hurt me
oh ok
oh god
not funny
I just added annotations to everything
Got it down to 3.6
beans
Down to.... 4kb ๐
Magic- I got spring + kiteboard into 308kb
PDM*
bruh my IJ is broken
it didnt work
mavens thing is so shit
it includes stupid things
then excludes stuff I obvisouly use in the code
use Gradle 
I have no idea how you'd do it, but you can exclude things from the jar
F
Maybe I should just have not added spring
Liskov is a pain with spring
The context extends about 10 separate other classes
Is anybody proficient with database design? I kinda need help because I feel like my approach to my problem is wrong
Niall is 
Niall mind if I annoy you for a bit?
Oh god, Niall no Enterprise Logicโข๏ธ names here
ClassPathXmlApplicationContext
AbstractXmlApplicationContext
AbstractRefreshableConfigApplicationContext
AbstractRefreshableApplicationContext, BeanNameAware, InitializingBean
AbstractApplicationContext
DefaultResourceLoader, ConfigurableApplicationContext
ApplicationContext, Lifecycle, Closable
AutoClosable
it is lol
so is Closable
smh niall
What
use the jdk ver
they have the advantage of automatically closing in try/catches
oh
then why did u list it before?
I was just showing all the classes that context extends
oh ok
big
I thought those were classes u made or something
Now I have 4.3mb kiteboard ๐ฆ
was smaller when u just had guice
only cuz u didn't want to redesign kiteboard around it
I did
which makes no sense cuz u would've had to do the same for spring
Yeah but bukkit had a diff version or something
yea u just have to use a lower ver of guice
I dont wanna deal with anything named after fruit
spring onion
lower versions probably didnt have the multibinding thing I needed
no
thats different
of course
papi 3 looking like ๐ฅ
Imagine not using PDM 
I usually manage that shit manually
Yeah can I do multi module projects with gradle (for nms)
bruh
rpf has pdm embedded
sorta
it has my own version of pdm that I made yonks ago
yes niall
is it easy
Can I easily convert from maven to gradle in intellij
no
but
you can easily convert from maven to gradle via gradle
and then reimport in intellij as a gradle project
@quiet depot Will itauto gen the modules as well?
cant find gradle
need to install it ๐
hold
how come it works with ecloud ๐
loading
where does gradle put compiled files
build/libs
takes long
probs cuz it's downloading dependencies
261 bytes
?
Jar is a little small
oh god what did you do
it's pretty good, but it's not perfect
wtf
not surprised it failed on a spring project tbh
well
especially such an unconventional use of spring
YIKES
new record
not funny piggy
?
lol
so whats wrong with it
well your dependencies aren't there
probably because gradle init can't configure the shadowJar plugin
you'll have to do it manually
kiteboard-dist
ยฏ_(ใ)_/ยฏ
kite-board core jar looks right
that was the worst prank ever
@quiet depot what shadow jar you use
I said gradle minimizeJar is probably better
and then I said I've never used it
how is that "niall, use gradle"
everyone said gradle better
it is
obviously not
is there gradle delete
no
gradle thinks this is funny
it added commons gson and guava
2 of my most hated libraries
project broken
Piggy
How do I remove the annoying main and test its added as modules
yes
just close the project
remove it from intellij
and import it as a maven project
oh i forgot a step
click the x
navigate to the folder
delete .idea
and *.iml
remove any gradle files if you haven't already while you're at it
then in ij
open/import project
select the root pom.xml
I had already reverted the .idea folder to my backup though
this is gradle fault
going to open an issue on their github
top 10 pranks that went wrong
dont do that again
bruh
@prisma wave
Where does one register?
@old wyvern
https://blog.repl.it/langjam?ref=newletter
Apparently you have to write it in repl.it which kinda sucks
It's gonna be difficult to do anything big in that
It's a repl website
lol
I was asking to join your team km
oo
can I join team brister as unqualified paradigm and design implementation coordinator?
We're all unqualified, except maybe BM
I even stored and coded myself an entire flow puzzle game made on js on that lol
My school didn't even offer CS lol
u what
theres a qualification criteria?
lol i was joking
oh xD
ยฏ\_(ใ)_/ยฏ
but yeah anyone who wants can join but probably maximum of like 5 people
Ayy
noice
Very nice
How many members atm?
OUTRAGED
pretty much
So we can jsut import into that finally from git 
i thought repl was some fancy hotswap tool that a bunch of languages implemented
๐
I thought it was something about read-eval-print
I thought it was a language or library
ah
I beg to differ
You never really see labels used in java
very
Comparitively better than the @ syntax
Possibly
Personal preference maybe
Although they're slightly different ofc
niall do you ever shutup about them lol?
No nial
I like Kotlins return@Whatever
Kotlin labels
niall do you ever shutup about them lol?
@pallid gale labels or annotaitons
Kotlin's are usually implicit
You're literally the only person who triggers that blacklist on a daily biases lol
which blacklist?
i was suggesting alternative to frosty if he didnt want to make his own
songbada?
epic spawners or something
ah yes
weird
It's quite controversial
I'm not sure Niall would survive that
I think that's why
ah
Ban Java 
Ban Frosty
Ban Banning
Banish non-boosters
ouch
phew, I'm actually safe for once
that hurt
Beans.xml
inb4 Frosty yells "BAKED Beans HA"
BAKED BEANS
Bake d beans
ego deaf
i love kiteboard
like a feat of human engineering
one day I will release it
OS
do it then
yeah
then everyone will be buying some " kite board recoded ++ "
just pick the license that means you can't commercially redistribute it or something
So license it under something that doesn't allow derivatives, if thats even allowed cos of Spigot's GPL thing
I love being semi comprehend
Now
I must figure out how to properly register my plugin class and the Server as a bean
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'net.kitesoftware.board.user.UserManager' available
๐ญ
lol wait
that should actually exist
oh forgot to load the xml file
@prisma wave
If I put a file in the resources folder its on the classpath right?
im looking at this bean definition and alot of people say they moved it to the src folder and it worked
src folder doesn't seem appropriate though
Ugh, do i really need to get out of bed and "exist"
Yes.
@heady birch should be
Existence is pain
Damn, you can't cancel entity death event :((
I think you can in paper?
Not using paper
I think it's ctrl alt o
But I don't remember
respawn it 
katsu, that's what I'm going to do, but that's innefficient AF
If it works ain't a solution tho, what do I care if it works, if it causes lag due to thousands of entities being spawned each scond
second*
ok then
Do EntityDamageEvent, check if their health is low (pick your own bound obv) and then set their health to something higher, or full
Oh yea that might actually be better
sm0rt
ok
anyone got any idea why it cant find the file?
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist
๐
whats the easiest way to add gradle to an existing project?
ty
@errant geyser I wonder if we should make our events Cancellable
We could, but I don't reeealy see the point tbh
I can do that for you though ๐
Alright fine ๐
We're going to have to cancel the actual event though if we do that
wym?
So like the ClickEvent, if someone cancels that, you're going to have to cancel the underlying PlayerInteractEvent otherwise its useless
not rly
I guess it could be useful actually
also about the persistancy
or if its called that
isn't that something the end developer should fix
They'd essentially have to rewrite a lot of our own code to do that though
I mean
just store the itemstack in a data file?
and create a new one upon onEnable?
(ActionItem)
Sure they could do that, but they'd have to keep track of the actions too
Which at that point they'd be rewriting part of our code
Niallll
Currently I have an Enum which dictates what drop each specific mob has (to allow for custom mob support), what would be a clean way of being able to assign/customise these drops through an api, should I load them into a list instead, and make the list accessible through the api?
Dont
make
the list accessible
why not just have a Multimap<Mob, Drop>
or smtng?
oh that exists?
The entire joint is my own
then go with nialls concept
Enum set is immutable right?
Kotsu alternatively we introduce some sort of identification system
Interessant
What are you thinking?
Okay yea I'm going to have a Set of classes, which you can edit the drops off, just so it's fully modifiable I guess? (And if I want to add stuff in the future I can just throw it in the classes)
What if in the future you want different amounts of drops?
Will be modifiable through the type class itself
Oh I see
ie.
final class ZombieDrops implements EntityDrop {
private static final List<ItemStack> DROPS = Arrays.asList(
new ItemStack(Material.APPLE, 3),
new ItemStack(Material.TNT, 1)
);
@Override
public List<ItemStack> getDrops() {
return DROPS;
}
}
(Still not final, but an example - missing the edit methods still)
Another thing I need to consider is chance based drops
Haven't really got this done in my brain yet but I was thinking there is no real way we can actually make it persistant and still keep track of it. Since even if we store nbt we wouldn't be able to load those items in after reboot.
One version where we create a new ActionItem and then assign an Action to an ActionType. From there the action would only be performed if the ItemStack from the ActionItem isSimilar to the event ItemStack although this would make us not able to have some events such as ShiftEvent ince no itemstack necessarily is involved there.
The other version would be that we check nbt inform of a key on the ItemStack from the ActionItem and compare it to the involved ItemStack from the event. This would allow more presistance.
If we would change it to this it would also mean we would remove the uuid totally and instead go with stringed keys, why? Since it would ease it up for the end developer to re-register items. I've also consider this but the purpose of this lib is that the Actions should only be performed if the ActionItem allows the Action to which would be through checking if the involved ItemStack to the ItemStack from ActionItem. We could also introduce a custom check through using Predicate. @errant geyser sry for the bible
gg
Can you use kotlin for spigot plugins? o.o
Yea
Ofc
Conclure, why do you even need to store it, since you can just store it within nbt?
kotlin good
I'm not sure if I want to deal with switching from java
addDrop(DropType.TYPE).withAmount(2).withChance(0.1)
do it
Frosty huh?
No Niall, ew
That doesnโt make sense?
@hot hull because right, if someone adds an action to an item and then the server reboots, as it is now, the action won't be there
If you're storing the action using nbt it will be
I mean, we could do that but
No but I think we should implement some sort of system where it first checks if the item is similar to the item involved in the event and then perform an action
Wouldn't that be an awful idea depending on the size of the action code
The check would be inform of NBT or isSimilar
Or have objects which represent your action executions, and just store an identifier on the item
final Drop drop = new Drop();
drop.setType(drop type);
drop.setAmount(2);
drop.setChance(0.1);
addDrop(drop)
Honestly how i would do it
Frosty not that easy
Identification is the part?
How do you define your actions? Are they from a config or hardcoded?
Sec, let me link you a project where I do something similar
Like a consumer
Like this, Frosty
good
Ah I see, so similar to how Matt does it
Kotsu can I rewrite it to what I wrote before
What did you have before?
Can't you use CustomItemTagContainer to store custom primitive data
We use NBT already
YES
but with uuid
Making it impossible to reregister and obtain after restart
Almost
If not the end developer tracks it
Your rewrite looks like we'd have an easier time with doing this
Any cleaner ways of having this?
@Override
public String getIdentifier() {
return "ZOMBIE";
}
Would a better way be to have another custom enum which stores all the types, including custom entities (since string is a bit jucky?)
Everything I show I'm making myself, meaning it's all changeable (so you know for the future when I ask questions
)
So each enum constant has a getIdentifier?
I mean you could just pull up a back up if it would be too bad
nah I trust u
Because it's not an enum?
Kotsu (::
thoughts?
I really feel like converting kiteboard to kotlin
A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.
with kotlin i could make alot of design changes
:}
staff only
oh u actually posted something
poor
you know you can use spring
literally a couple MB for the context only
seriously
lmfao
Aj, that's is beautiful.
Did Mojang add new chat fonts into 1.16? I could have sworn I saw that somewhere but I can't see any usage of it
Yeah, i'm not sure exactly how to do it but you can specify font
They use UTF-8 in 1.16
Before they weren't
Speaking of fonts and chat, you can't detect a player chat size correct?
I don't think that's serverside info so no
Could atleast let us access shit like that 
Ah UTF-8, that's very useful actually ๐
i mean there's fontrendercontext but I don't think that's helpful lol
Do you know how to access them Niall?
Or rather apply them to a string / text
or however it's presented
no
Looks to be able to set fonts in basecomponent class however it takes a string 
Is there a way I could automatically and reliably track all worlds on a given server/bungee network?
I know I can do something like getServer().getWorlds() but that would only give me the worlds on the current server, not the whole network
Loop through the servers :^)
How do you guys actually do clean DI manually?
Like I'd end up giving almost every class a instance of my plugin
Which I really dont want
I try to do as minimal as possible, if the class only needs the config, don't pass the plugin
dependency injection
Directional Input
Dumb Idiot
Smash term :(
Damn IDontBelieveImNotUsingClojure
๐ณ ๐ ๐
Loop through the servers :^)
@rotund egret Yeah but how? I can't access other servers with the plugin, right?
Also, does anybody know where/how UUIDs for worlds are stored or generated?
Hello, question for developers: I'm developing a new plugin, and I would like to get oriented a bit: what service to use as download page ? bukkit or spigot ? I would like to make a little bit of money out of it, if possible, with ads or donations (I want my plugins to be free). I know I won't get very much with donations, so I would like to use ads. So where can I put them ? I thought about not hosting the plugin on spigot but make an external link, that would show ads before the download to start, like ad.fly ? I won't use ad'fly because there are only viruses on it... But maybe another service ? Or just putting lots of ads on the download page ? If I do a download page, is there still a way to store the plugin on spigot's website (or bukkit's, bit it seems like spigot is more likely used)
ew ads
?
Fun, installed a plugin on IJ and it no longer opens lmao
Rippo
f
Have I told you yet how DAMN CUTE your pfp is
no u
If someone can figure this kotlin thing out that would be awesome
which?
I may be blind but does anyone know the link to the PAPI java docs?
Why do you need the javadocs?
Everything youd want to use is explained in the wiki https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Hook-into-PlaceholderAPI
Well .register is deprecated when I register my expansion in my plugin
and a few things on the wiki are a bit out of date/deprecated
if you use an ide you should be able to view the docs in there
It doesnt seem to be deprecated
Well it must have been in v1.10.7 as 1.10.8 makes it not deprecated anymore...
indeed it was
@deprecated This is going to be final in the future, startup and shutdown logic will have their own methods soon.```
Ah yes
Hey Yugi, kinda confused about something on the grammar matching stuff, i kinda understand the logic now, like, i think matching *test* wouldn't be that hard, but breaking my head thinking about other possibilities, like for example **~test~** i know discord will parse it well -> test (it uses ~~ instead of ~ though)
Recursion?
We will pass the inner part as text again
its labeled parsable
BOLD(
// * ... *
TokenType.ASTERISK, TokenType.PARSABLE, TokenType.ASTERISK
);```
If we see that grammer, we take the middle tokens and pass it to the initial parser again
Oooh, that's what the parsable is!
should probably have let you finish that part before messing with it
xD
Are you implementing a markdown parser?
You can check it out a bit, Im studying for my cat exams atm, once I finish algebra and computer arch Ill continue on that
should be like 2 days I guess xD
exam starts 6th
Similar yeah, it'll be a markdown like implementation for mc, let me show you an example of what i want
This: [<#e74c3c>**Testing Message**](hover: "<#3498db>*Hover message*")
Parsed into this:
And sure thing Yugi!
Where did Sxtanna go?
banned
Why? What happened?
Not sure
a bit of a dispute about the papi update
So... I've created another project - and when I go to build it, I don't get the gradle build option
Working project
Other (not working) project
You have to add that manually?
How do I name the caught it in the PlayerFishEvent?
Item fishItem = (Item)event.getCaught();
fishItem.setCustomName(fishFormat);
ItemStack fishStack = fishItem.getItemStack();
//fishStack.getItemMeta().setDisplayName(fishFormat);
((Item) event.getCaught()).setItemStack(fishStack);
That is what I have tried, including the commented out line
I believe on those events it's a reference so ```java
ItemStack fishStack = fishItem.getItemStack();
ItemMeta fishMeta = fishStack.getItemMeta();
fishMeta.setDisplayName(fishFormat);
fishStack.setItemMeta(fishMeta);
Could be wrong. If that doesn't work, try your method and just set the item meta as I believe that's what was missing
Do I still need my last line?
So what's the diff between kotlin-stdlib and kotlin-stdlib-common? Cause I know we're mainly using kotlin-stdlib-jdk8
I'd guess common are the cross platform libraries?
@somber tulip fishFormat includes colour codes, how would I apply them?
Ooo the RC came out on the 27th
ChatColor.translateAlternativeColorCodes('&', str)
yeah
@frail glade afaik common is cross platform stuff, kotlin-stdlib is for the JDK (possibly Java 6)
Oh so if I'm using 11 or something, I don't need any of them.
I mean you probably want jdk8?
Isn't the whole point of that just to add some extra stuff that wasn't in the jdk8 by default?
Maybe I misunderstand the purpose of it.
no I'm pretty sure the jdk8 is extension functions on stuff introduced in Java 8
Ahh that makes a lot more sense.
and then that depends on stdlib and stdlib-common
Just trying to see what difference I get compiling under 8 and compiling under 11
if i want a to have a list of levels for a tier and its anything above 50, can i do like listOf(50, ..., Int.MAX_VALUE) or something to capture all ints above 50 in that list
Interesting that kotlin also works or used to work with java 6
Yeah I'm not sure there's anything specific for 11 yet
because of android
A lot of android phones were still on 6 at the time
Make sense.
@surreal quarry use IntRange?
ok ty
50..Int.MAX_VALUE
What the hell is the kotlin sdk you can use in IJ?
I mean I imagine some of it to be horrible to implement without invokedynamic. Same for clojure
There are a ton of workarounds afaik yeah
@frail glade I think that's just the kotlin compiler and things
possibly the common lib too
Hopefully pdm within the month too
Speaking of which, i noticed that pdm downloaded junit for me. Haven't looked any further into it yet, but does it ignore test dependencies?
Or generally respect scopes
It's supposed to
Of transitive dependencies that is
I literally hard code in to ignore the test dependencies
So perhaps the transitive dependency didn't flag the scope properly?
Odd
Maybe, just wanted to get that clear
why donโt you just register a configuration for pdm deps?
pdmImplementation
pdmCompileOnly
kiteboard with spring is looking FRESH
because implementation doesn't really make sense
It does have its own configuration
That extends compileOnly
when it works
but I think this is for transitive dependencies which are obtained by parsing the maven-metadata.xml
What would be the point of pdmCompileOnly
There really is just one scope that pdm is useful for
I think what would look better imo would be like
implementation "to shade stuff"
compileOnly "to depend stuff"
pdm "to download stuff"
I mean you can just do that anyway can't you
The pdm configuration extends compileOnly and marks that it should be downloaded
I don't know the existing, was just saying what I liked xD
Oh fair enough lol
What would be the point of pdmCompileOnly
Nothing, but it extends compileOnly because the dependency isn't supposed to be shaded
No i mean in addition to regular pdm
Big sad. Jar size too big if I take out runtime stuff.
I have a big brain idea tho. I make it runtime Kotlin instead.
listen

maven is useless
i got spring into 1.7 mb
I'm using gradle, haha.
unironically using maven in the year 2020
Not using it again
Damn
Proguard it
How to with gradle
Literally
Idk I do it manually
Although I think there are plugins for build frameworks
Idk I do it manually
:/
makes me sad
cant autowire bean cant find it
after proguard it dont want to register any beans in my configuration classes
I'd happily proguard it if I can figure out how the heck to make it work.
Pain
My proguard config is a mess of everything
I have specifically -keep every single api class
Yikes
Do you happen to know a library to parse proguard obfuscation maps niall
No
Other than retrace
For stacktraces
Even then that doesn't seem to be so accurate
Hey guys, anyone can help me ? I have some errors with plugins ๐ฆ
I don't even care if it's heavy changes, if it can reduce my jar size by like 500Kb, I'm good.
I don't know if i'm on the right channel
Tho I just tried doing a runtime download of Kotlin and it took it down like 1.2MB
Okay, so, we can stick with that, just need to make it work first.
Random question here: call function recursively or using a normal for-loop is the best way to return final values?
nvm solved ty
Wdym by final values
๐
for {
a = //random thing
}
}
return a;``` for example
Annoys me that libby doesn't do transitive.
Okay, I think we're all good.
Is PDM ready enough yet to just do kotlin without relocations?
@frail glade in all my testing it's worked fine so probably yes
I think i get why you actually need ";" in javascript-expansion...
A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.
niall...
you've committed a grave sin
never ever give obfuscated stack traces
they're useless
anyway I'd recommend checking what jar this is loading
org.b.c.a.e.N#b
yeah that's why you don't obfuscate
I'll probably keep obfucating till I go open source
And even then I still need shrinking to reduce the jar size
=paste
Please use a paste service to share configs, errors, code and long logs.
โข HelpChat Paste
I havnt looked at it yet btw
Oh this thing again
Creating some stupid bean because they literally have 2 kotlin classes in the whole project
@onyx loom How's that gif coming along?
you tried turning it off and on again?
Shut up ๐
I dont get it
Theres no kotlin at all
No kotlin-reflect even before proguard
There must be though
Hm
Ok maybe there was
But its in META-INF
MANIFEST.MF spring-context.kotlin_module
kotlin-coroutines.kotlin_module spring-core.kotlin_module
license.txt spring.factories
maven spring.handlers
notice.txt spring.schemas
services spring.tooling
spring-beans.kotlin_module
๐
Bois
We may be on to something
I am SICK of this
Making my own context container
Literally
And thats how the kite-context was born
@heady birch I was told you were good with databases? May I consult you for a sec?
So imagine the following scenario:
I have 4 classes A, B, C and D, each with its own array of string-boolean pairs. The boolean is just a flag that says whether the string is displayed or not.
If A defines a string in the array, then B has access to that same string. But B can decide to alter the associated flag independently of A. So A can decide to show it, B can decide to not show it.
Basically it is a sort of inheritance propagation?
What A defines in the array applies to B, C and D. Each with their own display toggle for each element in the array.
What B defines in its own array applies to C and D, again both with their own toggle, and so on.
Now What I came up with, database wise, is the following:
Table STRING_DEF stores all the actual strings since they are re-used between A, B, C and D.
Then each class has a one-to-many relationship with table STRING where the columns are the CLASS_ID (instance of A, B, C or D) and the STRING_DEF_ID. This gives me the propagation functionality since B has a reference to A, C has a reference to A and B etc.
Now to enable the toggle, I am thinking of creating a STRING_TOGGLE table that is like an exclusion table with a reference to the STRING table entry. If the reference is present in the table, then it's excluded from being displayed. If there is no entry then it's displayed
But this seems like bad database design to me since I need 3 tables to do that and I'd have to use subqueries to retrieve the data for the simple array of strings that are supposed to be shown.
What are your thoughts, @heady birch ?
One sec while I read and think
i might not have understood correctly, but can't you do:
Table: STRING_DEF
ID, NAME
Table: CLASS (a, b, c, d) e.g
ID,
Table: STRING_VAL
STRING_DEF_ID, CLASS_ID, Boolean
Another option I am considering is having the STRING table contain the ID of the source class of the string and a boolean column that specifies whether it applies to the current class or not.
what would a b c d typically represent?
Hm I would have to have 4 entries in the STRING_VAL table at all times.
with the exclusion table I only have one entry per string def
Right?
So if I deleted a string def entry, I'd have to delete 4 string_val entries as well
but I guess it makes only a small difference, I can cascade the deletion and do that automatically
what would a b c d typically represent?
@heady birch Just 4 classes that have some sort of scope. Imagine it like 4 levels of configuration: global, per_world, per_player, per_player_per_world
So if a string is globally defined and the player wants to switch it off, it's turned off for the player only
Idk why most people still use this stuff on js
The unit is already hard enough to manage tho
js bad ?
So... spring didnt work
And I'm stuck with nothing to wire my plugin together
I have had to do the unthinkable
N.java
else its very close to 5mb
so adding anything else like mysql it would just go over
why though?
else its very close to 5mb
?
making bardy understand

