#dev-general
1 messages · Page 75 of 1
And the justification in this case is very strange
As i said, Bardy probably should of just stopped typing instead of forming the list
My opinion is that I am the richest person in the world
the justification is indeed strange, besides the points about his preference
thinking Java is better is fine
The evidence is bullshit
sx the facts basing that are wrong tho
My opinion is that I am the richest person in the world
@topaz bay the grumpiest
@topaz bay your opinion still isn't wrong though
but this justification is inherently wrong
Youre fucking dumb.
or at the very least it doesn't make sense
you can believe your the richest
lmfao
ok let's not get toxic
doesnt make you the richest
but your opinion still isn't wrong
My opinion is that I am the richest person in the world
@topaz bay
Hit me up with 2k, ktnx
because the facts basing it are wrong
as I said, facts can be wrong, opinions can't
In certain situations, you have to learn how to stfu :)
He's the richest and you ask for 2k? Go for 2m at least xD
Ok this has gone too far
if you think you're the richest man in the world and you aren't, you're just delusional, doesn't mean your opinion is wrong
@ocean quartz JEEZ
Matt, I only need 2k, so..
I only need $500
In some situations you do need money
thats whats known as the economic problem i think
We'll I do, but I'm not that scummy to ask for more than I need atm
to ya know, to eat and shit
well you don’t ‘need’ more
Humands wants are unlimited but the resources are limited
Have you ever been to atrain station ?
since you have everything paid for you to live
Ori, here train station toilets are free :))
:((
Well, most of them
rich countries
70 cents here but on the train itself it’s free
wdym rich countries
wiKiPeDiA isNt RelIaBle
shut up bardy
@remote goblet don’t be toxic
End of story
Y'all gotta just zip it kek
for real it’s just an discussion no need to be rude like that
about time someone got some sense around here, thank you @prisma wave
Stop.
and yeah I agree with Brister’s statement.
let's move on shall we
fuck
Yep
could you not send that message a second later
Let's leave it here
I think it's time to return to this
now I look like a weirdo
click it
I fixed it lenmo
NO
lemmo*
no balls
lmao thanks
You right
what is this @remote goblet ?
@remote goblet
Jesus christ get yourself together
Ori make things final
the best thing ive ever done
Yes
Yes
oh no
lmao
yeah try to make things that don't need updating final
I KNEW IT
you knew what?
lenmo lmao
Not talking to you.
mature
🤣
I want icecream
same
we have vanilla and raspberry ripple :o
I should organise a clash of code here one time
Hmm Ori, an Island object accepting an Island object on the constructor doesn't make much sense >.<
just for fun
ew wtf
nothing in that class makes sense
that entire class doesn't make sense
:(
@frigid badge that would be cool
Sx wow
You see
Raspberry Pie
I want the volcano ice cream :o
volcano icecream?
Stop.
What is that
How dare you even post that image
omg
the ones that are just covered in sherbert
the volcano ice creams are godlike
they seriously are
ice cream vans come back 😭
😢
@solemn monolith Now, add unlimited messages (if you want an example of what I mean, run =pl frozen join in #bot-commands)
My dad really enjoys oyster ice cream :o
Where are you from Ori?
Y'all people are mad
Normal oysters suck
Rocket and Mr Magic :oooooo
Ice cream oysters good
@hot hull I'll have a look 🙂
Btw yes, I usually fry the oyster to eat
I have never understood why your first shit plugin, probably join messages, MUST be posted on spigot
Just .. why?
Lol
It's tradition
lol
Gaby, why are you rude..
😢
each plugin must have join messages
oo
||jk <3||
its not a joke if its true
Btw one question
Does anyone like fried field-mice?
I do 👀
mice?
What doodoo land are you from?
Yes
also this is the Island.java now kek https://paste.helpch.at/urayuzivam.java
What's next? roasted human?
@topaz bay
oh god
Is this clean enough? https://paste.helpch.at/oqonesutov.sql
Gaby, why are you rude..
@hot hull im not
Lies
Read my next response nerd
Shut up matt xd
See rude!
Your shit plugin (gui helper) is also posted on spigot, and here we are
@hot hull
Your shit plugin (gui helper) is also posted on spigot, and here we are
@hot hull you wish :)
r3kt
Im not against join plugins but for real
You cant make a plugin without posting it on spigot?
I get what you mean but still no need to demolish the guy :p
If only showcase was actually for showcasing purpouses :c
And not straight up advertisment
that's the fucking second time I hit ctrl + alt + shift + k by accident 😐
Just disable it lmao
cba
I know i'm gonna hit it one day by accident and brister and sx will find it funny
Then stop complaining lmao
i'm not
that is exactly what i said to myself frosty
i'm just saying it's too easy to press
what does it do
What the fock are you doing that you're holding down ctrl, alt, shift and K
What's excel got to do with IJ lmao?
i'm just saying because excel has long keybinds
Still doesn't explain what you're doing to be pressing all that shit..
wait waht does cntrl alt shigt k do
converts java to kotlin
So guys
o
I want to make it so when player has invincible it also hiddes the armour, anyone know a way? I have also protocollib as depency if that helps
I'd assume it might use the #canSee method or using packets
canSee would probably do
;p
second is better though
It's a "hard" skill
Light mode...?
How to google should be tought in school
None of this Ask a teacher bs
Just Ask google
When you've been trying to work out where the bug is all day and then you add some debug messages and find https://i.imgur.com/u4ksLYS.png :/
@hot hull Like this?
There you go, it's pushed for 1.2.8
anyone know how I can get a javadocs page on my site?
spigot javadocs? buildtools
no custom javadocs
so I can put my own javadocs on there
do I just generate javadoc files and upload them?
Yes
bonus points if you use CI
I want to use CI
I want javadocs at https://docs.prevarinite.com/java/ and CI at https://ci.prevarinite.com/
I just wanna know how I can automatically get documentation uploaded to the folder that houses the javadocs
what CI provider are you going to use?
Jenkins is cool
even then I don't know much about what it is or how it works
no idea how CI server's even work
I don't know many other self hosted options
also I'm assuming I can customise my javadocs page with a good old bit of CSS
you can
I get free Travis CI with GitHub Student Developer Pack
from what I read
but that's a paid service
Jenkins is free
Travis is free?
is it?
But normal Travis is free afaik
@ocean quartz Did you add that to the util thingy, or the gui one as well?
Cause I'm only using mfgui for this plugin, and "my own" command thingy
That is just in the itembuilder so only the gui one
Yea just noticed :p
@foggy pond
Does your karma plugin have an API?
I see it
Nevermind, how can I use it to access one's karma?
what
i have the plugin in my maven
just need to figure out how to actually access karma data
Do I make a new instance of KarmaManager or
I also don't see a getKarma or getPlayerKarma method in the api
@remote goblet can you send me that link
what
oh
How can I hide the armor of a player from the players on other teams when he has an invisibility potion? Is there a way I can intercept packets to make...
can someone help me with that issue?
hey @pallid gale I thought I'd let you know if you didn't already that https://helpch.at/faq doesn't take you anywhere
So uh, I just bought a domain. Any ideas on how I could host a Maven repo at repo.mysite.com ?
If I don't reply within like 3 mins please ping me
@errant geyser vps + sonatype nexus is the way to go
How about a raspberry pi 2B?
yeah you need a hosting provider
You could probably run it off a raspberry pi
I wouldn't suggest using something on your local network
as long as it had ~1gb of ram
since that requires port-forwarding
^^^^
I'm doing it on my network for now. The pi 2b has 2? I think GB of RAM
Hm ok
Just bear in mind that could effectively end up ddossing your home network if it gets enough traffic
I'm aware
Is there some sort of quick start guide for a sonatype repo? I was following a tutorial that showed to use Tomcat and archiva
@dry coral It does but in the current version it is kinda under-developed
The next update will have a much better API
Nexus is pretty simple
There's an installation guide on the website
and then you can setup a simple nginx config to proxy a subdomain if you want
As by default it runs on hostname:8081
The world's only repository manager with FREE support for popular formats.
that one should be it right
Yeah that's it
can I push to jenkins and nexus directly from IntelliJ IDEA? I'm curious
Assuming you have a bit of sysadmin knowledge
I'm not entirely sure
I think Jenkins can support GitHub webhooks
oh I have plenty of sysadmin knowledge
most of system administration is just following instructions anyway
knowing what commands to not copy and paste
That's slightly harder
cough curl | bash cough
So, what would that nginx config look like and how could I like, make it work. I'm following that guide tomorrow
am I the only one here who uses caddy lol
most people use Apache, and some use nginx
I use caddy due to it's simplicity and the fact that the person who helped me set it up when I didn't know what I was doing uses it
also hold on a second
is nexus oss not on a centos repository?
that's like rule #2 for linux: don't install things from tar
the first being don't install things from curl | bash
it's on AUR
never heard of caddy
yeah I'm not installing nexus from a tar file screw that
what's wrong with a tar file
it needs manual updating
oh yeah true
the whole point of a package manager is that it auto-updates software for you
proxy_send_timeout 120;
proxy_read_timeout 300;
proxy_buffering off;
keepalive_timeout 5 5;
server {
listen 443;
server_name repo.bristermitten.me;
client_max_body_size 1G;
ssl on;
ssl_certificate /etc/letsencrypt/live/repo.bristermitten.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/repo.bristermitten.me/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/repo.bristermitten.me/chain.pem;
location / {
proxy_pass http://127.0.0.1:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
}
}``` @errant geyser this is by no means elegant and I'm not an expert but it does the job
proxy to the subdomain + SSL
that in caddy is literally:
repo.bristermitten.me {
root (repo root)
}
caddy automatically handles ssl certificates
what about the proxy?
if you have certbot and certificates available
BM do you know anything about docker?
oh wait isn't it available using docker?
I think so
that's another option for automatic updates
Trying to figure how to update Java version on ptero but know nothing about it xD
Thanks BM, I'll modify that to what I need tomorrow. Or attempt to.
pterodactyl panel
oh that's a pain
i'm not overly familiar with how docker works
neither am I to be honest
I know the basic concepts and commands but nothing like that lol
I just need something that I can use for auto updates
I'm not installing from a tar file
I wish they'd use a more recent Java by default
that would be nice
I guess you could go into the container's filesystem and just change the files yourself
but that's probably an awful idea
actually since it's latest-unix.tar.gz I could probably create my own thingy
let's see this
fancy
lemmo does @ocean quartz
Ooh I should message him then
yeah according to my mate there actually isn't a way to have nexus auto update with yum
Ooh I should message him then
@ocean quartz ye
@ocean quartz
tupppllleeessss
And it supports nested tuples
Which is probably a terrible idea, but we're rolling with it for now
How can I add the Player's name here? https://prnt.sc/sdkvxw (New to coding)
Sorry forgot to add the link
might just be me
The link is working for me fine
probably just me
Do you want me to upload it to some where else?
@ocean quartz with the ItemBuilder, if something doesn't exist (ie. a specific path - in this case lore (isn't set)), will that throw an npe, or does it handel it properly?
Why would it throw NPE?
An ItemStack only needs a Material to make a new instance of it.
config path throws an npe if not present
In his fw?
Not sure, hence my question
ye we are
I only see a method and a static method
But when I think of an ItemBuilder I thought you meant something which takes different args in methods and return itself so you can just keep using the methods and then a method to make a it an ItemStack. If we skip generics with something like a supplier. We would make a list null and then redeclare it on #setLore then on #toItemStack we first check if it’s not null then set the lore. That shouldn’t give NPE idk how Matt did it but I don’t think it should give NPE.
@hot hull IColor.colorize 🤨
wut
Naming it just Color is annoying cause IJ sometimes suggests ChatColor as the first line
Icolor tells me its an interface

Looks like i'm going to have to use a VM for the sonatype repo
My raspberry pi has 1GB of RAM lol
@prisma wave what variant of Linux would you say is best for this?
Ubuntu is always a good option
I've never tried CentOS but some people seem to prefer it for website things
VirtualBox doesn't have an option for CentOS
Can't decide on Debian vs Ubuntu, any thoughts?
ubuntu is user friendly debian
anyway
1gb won't be enough for nexus
it's hungry boy
Im aware. Its needs 2.7GB min, thats why I'm setting up a VM for it
alright
also
virtualblox shouldn't need an "option for centos"
doesn't it accept the image?
ubuntu
ok
When I went to start it, it said it required 2.7GB, and obviously since the Pi 2B has 1GB, it couldn't allocate it
ah, ic
I could've altered it, but eh
Java or C++?
Depends on the application and requirements?
Skript ftw
@distant sun leave
=ban @hot hull
wew
how often should a database data be updated? what interval is too much?
On player logout?
#705633782086107209 I feel like a dick now lol
feels like by offering a free service I'm undercutting other's business
then dont lol
don't what? undercut other's business?
ye
smh
didn't seem like it did anything though
just ignore it
xD
@hot hull Well if you're getting from the config null then Spigot will throw NPE, but if you set the lore to null it shouldn't
Anyone friends with PCPSells...?
Do yall answer private calls or not?
ew no
hi guys
when i change slots on my server from 100 to 80 will it impact performance?
i heard about something like ram for 1 player
I mean unless you can fill the slots, you can set it to anything.
Damn Brister sniping me.
yikes
sorry lol
Is PaperMC always the goto for plugin development?
55% is on Paper now
We have hope
Since I have to support spigot tho I just compile against that
yeah the paper api isn't that much different
So would it be advantageous to develop plugins to run with paper instead of spigot?
It's a lot easier if you run your own server on paper cause then you only have to worry about your server
Well it depends if you're developing publically or for single server
Ah yeah that makes sense
basically - if you want to appeal to the mass market (public plugins), compile against spigot. If you are making a private plugin compile against paper
Paper includes a lot of optimized events / logistics such as async teleporting, async chunk loading, custom GameProfile stuff
if I built it for spigot would it automatically have compatibility with paper servers?
Alright that's great, thank you
Yup!
Paper is best though
@prisma wave how much of my code would i have to change to run paper
Fr?
paper isn't vastly different in terms of its api
Interesting, might have to put it on the dedi
there's absolutely no reason not to use it
Didn't know if I had to change stuff that's all
Btw i did a big oopsie today
anyone here know how to update what plugins you got?
I purchased something ages ago before linking and I purchased more plugins since and I need extra roles on this discord
deprecation doesn't cause errors
it makes warnings
you just have to wait for spigot + the db to be updated @limpid sun
All the same thing
does it do it automatically?
iirc they have to do it manually because spigot api sucks
Wait
Isn't there =check or =checkroles?
I think so
=checkroles
It's =spigot check in #bot-commands
but as far as I've seen it still takes time to update
Guys, I need to connect a second currency independent of the currency essentials to my server, do you have a proven plugin?
I apologize for my English
😄
I'm looking for a plugin
@prisma wave up to 12hrs iirc
I do not trust the developers, because they can write something bad in the code
Who?
but I can’t verify the code myself
I do not trust the developers, because they can write something bad in the code
What developers
which make custom plugins
Why not..?
Not everyone makes scumbag code. If they do they'd be called out by everyone..
if you want a reputable developer then go for someone with lots of previous experience and vouches
and this should really be in #705633781070954517 , #705633782811590666 or #off-topic
I mean, this is a development subject...?
and find a ready-made plugin is not an option?
just because of the exchange rate the price will not be very good for me
If you're looking for one try asking in #general-plugins
well thank you very much, sorry if I wrote the wrong way, I'm new here)
no problem
I have absolutely no idea but I doubt it
No you dont
What do you guys think of my new tutorial https://www.spigotmc.org/threads/custom-entityplayer-class-with-skins-that-take-damage.437594/
https://github.com/latham7/HelloWorld
Hello! Dev student who is practicing java plugins. I made (followed tutorial) this hello world plugin but does not work. It does not show up in /pl on the server
any help would be great!
If it doesn't show up on the plugin list at all, are you sure it's on the servers plugin folder? Also make sure you compiled it properly
Im pretty sure it is. Im using eclipse
and yes it is in the plugins folder
Also not sure if this is the correct chat channel. Since im looking for help and it says "relaxed area"
Switch to IJ :))
^ though you can still work with Eclipse, it's just like, harder. And no visible option to use Maven/Gradle
There should be an error in console about your plugin, what is it?
I have no errors
what is IJ?
Nevermind, lol I used to use PyCharm so I like the look of this IDE
actually there in an error
A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.
sorry ill remember that for next time ^^^
Indentation is wrong in plugin.yml
http://www.yamllint.com/ run your plugin.yml through this
And get help from the spigot website or official discord, people on this server will only say to use IntelliJDEA
I just downloaded it lol
I mean he can still get help but people do tend to prefer IJ
how do i export to jar from IJ
If you do use IJ, check out a plugin called MinecraftDev
Doesnt matter which one he likes, the plugin.yml was the issue
yes thank you for that
Should be 2 spaces under command if you know what Im saying
no..? should i ?
commands:
Hi:
usage:
description:
ohhh yes yes I know sorry. Like I said, Im new and learning so sorry about my silly confusion
It's not tho..
Try this place instead
Okay well I can try the Spigot channel if I need some more help. Thank you for your help tonight
🙂
The people on the spigot discord are generally more knowledgable
Debatable kek
Yep, It is an opinion, but I can back up my point
Zuhko, you really are starting to annoy me.
Litteraly whenever someone asks for help, they get an arrogant response or get told to use intelijdea, even if its a simple plugin.yml error
They don't, but there's no point arguing that here.
They just did just scroll up and read the responses
But if IJ can help me work a little bit more productively then its moreso helping than someone trying to push a software onto me
lol
Its true
And IDE should be a tool, a choice of whags easiest for you
Agreed, however IJ offers easier usage imo
If you work the best with notepad than use it, but my point is all people say on this server is use ij
Although, I wish IJ had the project tree as eclipse does (for ease of looking at other projects code)
And generally speaking, people in the spigot discord are more experienced in the industry
Again, debatable, but not trynna start an argument, so let's just say you're right 
Then go hang out there?
hit reimport if it doesn't do it auto
where is that
Maven tab right side, the two circle arrows
im sorry, im tryiing to use IJ but what the fucc am i doing
how the fucc do you get to the maven tab
i googled it and no help either
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/ to upload images/screenshots.
You still gotta enable maven for the project
Is that a new project, or from existing source?
i just made a new project with maven.
now its there
but cant make classes or packages
oh do you need to do it inside of the java folder?
ye
hurr durr intellij
intellij good eclipse bad !1!!?!
dae??
?ij
Yup
thats what happening rn
Cos I used to like compile my code every time i like added anything and test it... and now i make like massive changes and then test
The best feeling is when you spend like 8 hours coding without testing, and it works
^
the best feeling is spending 10 hours coding without testing and then it doesn't even compile, it won't load it just completely breaks and with no way of fixing ;)
mh i f I have a code session of 8hrs and it works it makes me suspicous
finding at least one thing makes me have a better feeling xd
When did that happen to anyone lol
the rare occasion that it happens
Happened to me the other day
I mean it worked, but the code was ew
(also when I say 8 hours coding session, I mean while slacking and doing other things in the meantime as well)
ah yes good old yt notifications kicking in with useless videos
yup kek
Haha
does the method name matter with matts command framework?
Or just as long as it has the annotation and commandSender param?
no, it doesn't
Anyone experienced in luckperms api?
i am trying to make like a boolean for isStaff via a track, so example getting the groups and then checking if user has the track staff
on the old api i now it was
.getAllNodes().stream()
.filter(Node::isGroupNode).anyMatch(node -> luckPermsApi.getTrackManager().getTrack(node.getGroupName()).getName().equalsIgnoreCase("donator"));``` but now i can't seem to find it how it worked.
Got bored, designing a language. Thoughts? ```
factorial = num::BigInt -> BigInt {
if(num <= 0, throw[IllegalArgException("Factorial of 0 or lower")])
if(num == 1, yield[1])
yield(num * factorial(num - 1))
}
5Factorial = lazy(factorial[5])
If anyone's interested the full spec so far is here https://docs.google.com/document/d/1MsqGZ-_5KCx9Fd9FSQSzqa8vrIkx5UK6G4i2lAhI9Tc/edit?usp=drivesdk
Idk might be 2 gs
time to go through my whole project and remove all NPE catches 😄
Alex, you're making a language too..?
Mhm
fuck
Got bored at 2 am yesterday
I am really dumb 😦
what problem is the language trying to solve
@topaz bay @prisma wave How are you guys even making languages? Are you just designing them at the moment?
NiallLang™️ 🔜
I've not got any form of lexer or parser yet
I wouldn't know how to start on making a language......
Start by thinking what the language wants to achieve
FULL CAPS SYNTAX
you ok there niall? lol
@heady birch mine sort of works
In my case it's for personal interest and to make a simple FP language that's statically typed
Nothing advanced yet
just properties and referencing them
Im working on the parsing of traits atm
FUNCTION NiallCoolFunction ARGUMENTS a AS INT32 VIA REF, b AS BOOL VIA VAL RETURNING Result AS BOOL
that's hideous
genuinely the worst thing I've ever seen
That is objectively untrue
how so
Odin = best >:)
Because Odin is the all father
no
Odin is literally the God
The god of the gods
yes, i'm the god of coding too
Niall lang
just rewrite @pale shell
yes
hell no
No
I will build Nialllang spec
please make it not ugly
I'm actually terrified to find a NullPointerException catch now
i "might" have removed them all but idk
NPE's are 10x better than something just not working and you dont know what
And null in the type system is 100x better
^
@heady birch you must not have seen how i was using it then..
Odin?
neither does Friga
Is that your language?
Sx, did you see how bad i was using NullPointerException?
idk why Sx made the language odin lol
traits are actually really cool
gonna have to steal that
They are like interfaces, but implemented?
I'm scared to look
quite a nice set of guidelines actually
traits are like a combination of abstract class and interfaces
I wish java had that
Sort of like how interfaces behave in Kotlin
no i mean i'm scared to see how bad i've been doing it
it says exactly why you shouldn't catch NPE
with examples
that entire website is actually very handy
relax alex
oof
It's gone
Atleast you named it ex
there are so many things wrong with that
Lol
what
just purge it all
you guys seem to love seeing my npe catches 🙂
on the contrary
that had better be a joke
Start catching pokemon
gotta catch em all
😎
What? Like catch pokemon?
why would you need a plugin to catch exceptions
there's plugins out there what do it
like what
give me a sec i'll try and remember it
I find it extremely unlikely a plugin exists entirely to catch Throwable
ew
=pl Console Spam Fix
thats it
I mean that just removes everything tho..
almost fnished my 2fa plugin
Doesn't really catch it, just prevents you from seeing it
i mean... why would you even make that tho
I mean for non-devs i can see a purpose for it
was that to me alex or?
if there is an error it should be fixed
not just ignored
that plugin represents everything I dislike about spigot development
but some plugins that have shitty authors dont do that lol
Ah the plugin not me phew.
then don't use the buggy plugin
Alex, you able to give a real quick opinion on something
yes
i sent you a link via dm is that a good way to do it?
then you can handle OutOfMemoryError 😎
@prisma wave 😮
Any1 here good with getting so hoppers move items faster and can pickup items faster?
Hoppers pick up items instantly
if you want them to transfer items faster
spigot.yml
Yeh, but i use wildstacker and the stacks are like x5000
i can tell you this
Any1 mobhoppers plugin for skyblock? for 1.12.2?
@prisma wave is there more spec for that language of yours
Only what's on the doc at the moment
It's in infancy, I just had an idea at 2am yesterday lol
So more of a draft and a broad idea of the aesthetics
yeah pretty much. I've not even defined specific tokens yet
I was just planning out what it might look like
like what
Ah. Because the more interesting question imo are the features in general and how you work with the language. Syntax and aesthetics aren't really important to begin with
Yeah I agree
I think the "everything is a function" idea is actually pretty interesting. pretty sure I stole it from another language though
What would be the benefits of that?
I'm not sure yet frankly
it could be a gimmick
but I suppose it would mean you could pass direct values to functions that took a Provider for example
I.e. laziness
indeed lol
there are probably some other benefits but I've not thought what they could be yet
I'm curious, btw: that factorial example, how would you make that lazy?
Whatever that means in this context
5Factorial = lazy(factorial[5]) this bit?
Yeah
the square brackets resolve the function call as a function itself. So it's like the equivalent of () -> factorial(5) instead of the direct value
or did you mean internally how would the lazy function be handled?
What would lazy do there?
it's like the kotlin lazy block. It lazily initializes and stores the value returned from the function
Which in many cases allows you to remove recursion from recursive algorithms, even if you don't have tail recursion
yeah that could be an interesting addition
Something like that could be interesting as a first class feature
Lemme plan out what it would look like
I guess this is why everything being a function is useful. () -> Int could be just 5
I've not tested this for obvious reasons but I think this should be roughly the same ```
factorialFun = num::BigInt -> (() -> BigInt) {
if(num == 0, yield[_])
if(num == 1, yield[1])
yield(yield[num * factorialFun(num - 1)])
}
10Factorial = trampoline(factorialFun(10))
@prisma wave replace the word nothing with an underscore, and youve got my support
Except I dont understand the double yield
I also dont understand the semantics of the parentheses and brackets
I think they should both be () actually
quite difficult as I'm making up the rules as I go along lol
I guess if everything is a function anyway that distinction doesn't need to be made
not exactly no
Like I said the [] is for resolving the function call as a function itself
Why does the final yield have parens, but the other ones use brackets
you're right they should all be parens in this case
I think
factorialFun returns a () -> Int. Which can be resolved to just an Int, so factorialFun[num - 1] would return a () -> (() -> Int))
so yeah just ()
How could it not need to be made
@topaz bay I mean if everything is evaluated upon access you don't need to distinguish between values and functions in that sense
values are functions
What you do need of course is some syntax for an anonymous function
I suppose technically factorialFun could just return an Int
paramName::Type -> ReturnType {
}```
it's just this for any function right now
I suppose technically factorialFun could just return an Int
@prisma wave yeah that's what I meant by trampoline behaviour in the language space
...
wat
fun factorialFun(num: Int): (() -> Int)
{
require(num != 0)
if (num == 1) return { 1 }
return {
num * factorialFun(num - 1)()
}
}
factorialFun(3)()
``` I think this is the closest equivalent of what is happening but that seems to defeat the point of trampoline as 1 function call calls all of them. Probably impossible to properly resolve in Kotlin
What is better than NMS development in terms of Packets detection?
Like Anticheat detection
It should be possible
wait no
@prisma wave I just realised trampoline doesn't work with that implementation anyway
oh how come?
at least not in the user space
because you have to call the function in order to multiply it with the number
Oh yeah
so in this example you'd have to make it tail recursive
hmm
I wonder if I could make Int * () -> Int resolve to () -> Int
then it would work
I think
the benefit of trampoline emerges when multiple functions are involved that depend on each other
but yeah I guess if you have really good analysis you might be able to optimise such things
honestly not sure it's worth it or not
yeah I expect so
cool idea though
In theory it could happen if every direct type was fully interchangable with a supplier of itself. Which I guess they already are
my plan is for a literal to resolve to a () -> Type anyway
hmm
yield(num * factorialFun[num - 1])
factorialFun[num - 1] would resolve to () -> Int, so that could establish that the multiplication should become a function rather than the result of a function call
this is getting very hectic
Hi, is there an autosell bee wiki? I can't set a multiplier for a user.
@ornate mantle What you mean by that? docs for autosell..?
They can't handle Niall Lang```vb
FUNCTION IsEqual [Var1 BYVAL AS Int32, Var2 BYVAL Val AS Int32]
END WITH True IF Var1 = Var2
END WITH False
This example shows the default return value
VB sucks
INFERRED PROCEDURE DoSomething