#dev-general
1 messages ยท Page 244 of 1
I just linked my account manually, it says I have to sign up for a queue or something like that, how do I do?
Go to clojure.org and read the first 10 pages of the docs
That will tell you everything you need to do
@hot hull Trying to set custom skull as block? Give me a sec i have code for it
Already did it
o
Like 5 min after I asked that :p
(action package is mostly just a copy paste of gaby's lib, gotta clean that up at some point)
thought it was nice for a moment
php good language 10/6
I have to offload this process since the php script ends before this async function is finished
which means it just stops
CLOJURE
no
YES
I know it's a running joke but clojure is genuinely a nice language to use
people do until they use them
apl is a nice language
and thats a fact
pff
don't bash it until you've tried it
Same goes for the "JavaScript bad" hivemind
i will NEVER try clojure
it still sucks though
I don't have anything against either
only thing which makes it atleast somewhat nice is a shit load of linter rules and the latest es version
I've used python and have came to the conclusion that it sucks dick
python is nice for small things
what advantages does python even have honesty?
big ecosystem
except for small scripts
it's very easy to learn
fix this 4 me kthx https://i.lemmotresto.com/2020-12-27--11-13-10am.png
๐ฅถ
ye kaliber main things python has going for it is community support/big ecosystem, misinformed love, and easy to learn
but as far as languages go, it's really bad
it might be a good starting point
I kinda like JS's type system, like being able to define objects in pseudo JSON is nice
hmm yeah JS is probably a better starting point
we can't help unless you show a stacktrace! - Niall 2020
yeah it's more predictable
the js ecosystem and tooling stuff sucks
and should just purely be used for client side
Node is nice for small things imo
Compared to the java / Kotlin ecosystem it's nice to be able to make a working discord bot in 1 file and 2 commands
what's the ideal language for small things like that
something that isn't utter shit like js/python
but can still be used as a scripting language for small things
kotlinscript ๐ฅฒ
I thought the focus of that was for embedding
imo js is good for that sort of thing
yeah but I mean are there any languages that are objectively good design wise, and work for this sort of thing
elara
a language that's easy to get started with, and good for small script like things?
npm init 
this language should be easy, concise, and good (i.e. not python or js)
good = good design
you like clojure
so clojure for example
or kotlin
oh you mean personal preference?
typescript :]
oh yeah maybe typescript
I haven't looked into it too much
brister I mean objective goodness
hm
well it's kind of subjective, i usually prefer dynamic languages for small things
typescript is just javascript with types
objectively
consistency within the design of the language, and adherence to the principles of a good language (if such things exist)
so then js is also good
yes but python is objectively shit
yeah I mean js is at least practical in my opinion
it's inconsistent and it's oop impl sucks
but you rarely need objects for small things
I don't think I've explained what I'm looking for very well
possibly not
My go-to would be javascript, but that's objectively a badly designed language
possibly
yes so I'm looking for a language that's objectively well designed
basically combine a language like kotlin with a language like python that can be used for sma stuff
Lua is good for scripting as far as I know, but it's tricky to learn
lua is meant to be easy to learn
lua is the ideal language, apart from one flaw
never used it
also arrays start at 1 don't they?
Kotlin scripting is fine, but I think it's too verbose compared to others (no collection literals etc), and I would also prefer a dynamic language
odd
brister dynamic languages are stupid
most of the time
it's meaninglessly limiting
but I like them for small things
dynamic typing is a part of static typing
a good statically typed language will allow you to work dynamically
to limit a language to only dynamic typing is counter intuitive
but for small things I'd prefer to not have to care about types at all
For mathematical stuff Julia is very good
but not so much for, say a discord bot

the perfect language actually exists ๐คจ
well no
lua aint perfect
it's still dynamically typed
although there was a proposal spec for types
sadly there's no impl afaik
there's also things like arrays starting at 1 which don't really make sense
elara will solve this issue
we'll see
I would still say JavaScript is the perfect candidate for a simple language that's good for small scripts and apps - the language will fall apart on a large scale but imo it's perfect for stuff like this
Discord.JS is very nice to use for example imo
and while something like JDA would be better for a big thing, it's nice to not have to worry about gradle scripts or a fully fledged IDE
not to mention because d.js is written in typescript you get actual meaningful IDE suggestions
or maybe it's written in js but has typescript bindings
idk
still
the outcome is the same
okie
oh shit vlang
eh maybe not actually
not yet at least
haven't looked into go all that much
I think vlang has the most potential for such a language, but it'll take years to build up that sort of ecosystem
it's too new
yeah newer languages have a big disadvantage
go could be it
js and python's main strengths are similarity and ecosystem
when Go has generics it'll be close to perfect
is that planned?
yeah, for Go 2
how big is go anyway? ik its made by google so it must be pretty big right?
file size or like community shit
docker is definitely go
pretty sure it powers google's advertising platform too
lemmo was telling us that the other day
yeah
Aah yes, JavaScript
Perfect
go is actually kinda popular now that I think about it
lots of shit is being replaced by it
ptero wings for example
i never claimed js was a good language, but for a discord bot with a few commands you're never gonna run into issues like that
yeah Go is getting very popular
elara is also powered by go, gotta remember that
how's goland?
Wasn't JS designed with the idea of never throwing exceptions? Or some other insane batshit like that
Pretty much as good as IJ
what's a good starter project
good question
calculator ๐
i pretty much started with elara, go doesn't have many gimmicks so it's very easy to learn
it's also very good at concurrent stuff so maybe something involving that?
webscrapers are a pretty good place to start afaik
URL shortener perhaps
okie
or rewrite docdex in Go
yeah that's a lot more effort than it seems
xd
ok maybe not that then lol
8.3k lines in java is like 3k lines in any other language ๐
good
Go seems like a pretty cool language
haskell is a cool language
No.
yes
I agree
how do you all pronounce regex
Because I just watched a video that said reg-x
Whereas I say ree-gex
Which is weird now I think about it
ugh
regex
...
xD
you know the good thing about romanian is that you pronounce the most things as you write them. Like no special thing if you put these 2 letters together or those 2 etc. Well for most things at least
I say reh-jeks / re-gex
you say it like rejects
ree jex
He's used to those
lmao
๐
"reg" as in registry or regular?
GIF or GIF
who the frick says jif ๐ ๐
Not me
good
gif in my language is poison
I say gif as in gift
jeff
in java is a null pointer something like 0x000000? Does it have an actual value? Or is it an implementation detail
its actual value is nil ๐
oh obviously
I'm guessing the only people here that could answer are Lemmo and Johnny
But maybe someone else clever will save the day
maybe
me? maybe?
std::nullptr_t ๐
isn't that a type
yuh lol and nullptr is of that type
It's quite a strange type tbh, because in cpp you can do something like if (!somePointer) to check for nullptr
since apparently in C it's like (*void) 0
Yeah but C doesn't even have bool lol
that's presumably syntax sugar though for something else?
true
i am just curious as to how it's implemented
specifically in java
Quite a strange thing
I'd chose the second option tbh
ye but its better to bald than read his DMs
bald
:(
๐ฑ
name should never be null :)
I dont get how you can infer that like,
var x = null; //now we can infer x is not null
ye
would it not make more sense to just do private String name; then
maybe
This is one of the reasons i love Kotlin's constructor
private final String name; // Seems like it starts as null
public class Class(final String name) {
this.name = name;
}
While in kt
class Class(val name: String) // Easy to see that it's never null
Noone judged my code :(
where is it lol
imagine if java was good
util/actions is not mine so don't judge that
wtf Frosty
private final Map<LocationHolder, TreasureHolder> treasures = new HashMap<>();
private final Map<@NotNull LocationHolder, @NotNull TreasureHolder> treasures = new HashMap<>();
^
I will shoot you
I'll do after
default List<String> getAliases() {
return Collections.emptyList();
}
default String getDescription() {
return null;
}
default String getUsage() {
return null;
}
WTF
dude
Conclure
I will seriously smack you
It's Gaby's
sin
I was too lazy to finish converting my lib to java so I just used his instead
lib for what
Actions
still wearing that christmas pfp like u think gucci aint cool
I mean the mere fact it's final and isn't assigned a value in that line implies it's initialized in the constructor
There is no other way
Well there is a way, you can use Eclipse and force compile it ๐
I know, was saying in terms of readability
Anyone that knows Java would understand it well
Was just a simple comparison
Let's make a lombok like thing that makes that happen!
๐ฌ
I have a question
There is no time to wait! Ask your question @prisma wave!
shut up
Rat
Should I work on pdm or a premium plugin
premium plugin means money but pdm means minor clout
both at the same time

pdm ๐ฅบ
i vote pdm
but you're asking a group who is going to vote pdm cause we use it lol
relocations ๐ฎ
In this house we don't make premium plugins ๐ค
it will be open source
but i wanna get some passively generating income in time for uni
I'm all about open source stuff, but i feel like unless you make it premium it's too much trouble for what's worth
Like, 120k downloads on a free plugin, 1 donation of $10 over 4 years lol
Yeah people are very unlikely to donate unless it's something really outstanding
but if you make a high quality plugin that's free, but $10 for support and peace of mind
that seems like a good deal
how come?
There won't be premium plugins in it
I understand why though, but yeah pretty sad
Their loss I guess
I can't see them getting much of a "market share" if they've intentionally ignored a large proportion of plugins
i need some help
so the plugin i made
when i loaded it into my test server it just didnt show
when i did /pl it didnt say it exists
so idk how to fix that
I can share source code as well
#development for support @weary epoch
my bad
that looks like pain
that is the ugliest thing i have ever seen
๐คฃ
get out of there
;-;
I go there to help out some nubs
how is this project structure
anything i should change?
those package names are questionable
yea
wdym
plugins {
id 'java'
}
group 'me.dkim19375'
version '1.0.0'
repositories {
mavenCentral()
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' }
maven { url = 'https://maven.enginehub.org/repo/' }
}
dependencies {
compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT'
compileOnly 'me.clip:placeholderapi:2.10.9'
compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.4'
}
processResources {
from(sourceSets.main.resources.srcDirs) {
expand 'pluginVersion': version
}
}
this is my build.gradle
Idk what to name it
tier 3 and still using caps ๐ฌ
placeholders
^
renamed
rewrite time i think
o
you could do this dkim
jeez
no #783231033629212672 needed?
maybe
processResources.from(sourceSets.main.resources.srcDirs) {
expand 'pluginVersion': version
}```
more ugly and more compact
but fewer lines
and idm if its shorter
ok
but
i did it
it might be nice to know that you can almost always merge closures sorta
so
a {
b {
c value
}
}
//can be
a.b.c value
or smtng
wdym
(some exceptions exist but ye)
ok good bye
idk how groovy works
groovy is nice
plugins {
id 'java'
}
group 'me.dkim19375'
version '1.0.0'
repositories {
mavenCentral()
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' }
maven { url = 'https://maven.enginehub.org/repo/' }
}
dependencies {
compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT'
compileOnly 'me.clip:placeholderapi:2.10.9'
compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.4'
}
processResources.from(sourceSets.main.resources.srcDirs) {
expand 'pluginVersion': version
}
```new `build.gradle`
seems good
what should I do?
clojure buildscript
i dont understand but that seems funny
lmao
you were supposed to delete that message bm
what should i name it
(plugins [
{:id "java"}])
(group "me.bristermitten")
(version "1.0.0")
(repositories [
(mavenCentral)
(maven {:url "https://oss.sonatype.org/content/repositories/snapshots"}))
(dependencies [
(compileOnly "me.clip:placeholderapi:2.10.9")])
surely we can agree this is better
NO
๐
BM is there any point reimplementing an interface like this:
interface Kaliber {
}
interface Efefury extends Kaliber {
}
class Sxtanna implements Kaliber, Efefury {
}
what
very arbitrary example
i have no idea what you're asking
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
why does HashMap implement Map again
when AbstractMap already does that
:[
Conclure stfu
good question
You're asking too many questions
๐ staff watching
No
probably just to make it more obvious
oka ima stfu
what should i dooooo
โ
this man makes best themes
?
This mf using ECLIPSE ๐ญ ๐คฃ
I remember when I was so reluctant to switch to intellij
same
i was so stupid back then
i still hate IJ
oh
cause im still struggling with gradle
wut is issue
eclipse is just good u should switch to it
still didn't tell me..
@half harness i did
tf does "bm" mean
c'est moi
idk isn't an answer-
oh
Brister Mitten
mfs will use eclipse and complain why their plugins dont work
woah
im mfs ๐
how did I react to my message
it is so ugly
a moment of redemption and freedom
switch to "dark" mode
vc :>
oh no
omg so pretty
what
theyre main page when u open the app is a donation page ๐คฃ
u dont see that with IJ ๐คฃ
i also say no
static isnt that badddd
so that means no
gn efefury
pro tip: do java underwater so no one can see you crying
that's not a good thing
Eclipse IDE is good cuz it makes me look like a fool
Hey
I made my chat format
But I don't know why the server doesn't use the deluxechat one
it uses the essentials chat format
@prisma wave sublime was actually the first editor I coded java in
back in like 2014
HAHHAH
Or maybe notepad
I started Java with eclipse as well
and back then my dad wouldn't let me fuck with the networking
so my only options were sublime & ij
lmao
eh it has a separate compiler than javac
you can disable compile time error checks
so Errors would be thrown like Exceptions
Ok so, start with an IDE or start with text editor + CLI?
text editor + CLI
๐ฅ
notepad
BMtuts
using notepad is self harm
n++ for dark mode
use vi
That's self harm too
xD
ok
So
my current plan is something like this:
first 3-5 episodes will be sublime based, CLI based, introducing absolute basics
then introduce IJ and move on to more complex things with a calculator or something
Then start plugins, immediately using Gradle
Then profit?
profit ๐
make sure to remove plugins from sublime so you have a vanilla install (apart from theme)
maybe gradle first? idk
yeah
like gradle then plugins
same with ij when you move onto that
I don't wanna overwhelm people though
Uh maybe explain build tools for an episode and go through the options and differences between them and then start with using gradle
did sublime ever add a replace text feature?
sublime has always had that
wait
it's not a typical replace feature
you use the find feature, then you can play your cursor on the matches
and replace them by hand
i'll make a demo
2 secs
Yeah, I'll probably have pretty short episodes so that makes sense
awesome
id ur introducing spigot at the same time as gradle, then that may be overwhelming too
hmm i guess so
more complex things with a calculator
I laugh at this comment but people really do struggle with "how do I convert a string to an int" lol
Yeah exactly
.toInt ๐
I also wanna introduce basic OOP outside of spigot, and then expand on that later
@eager fern
a calculator would also be a good example for a switch case (for the operators)
ah not bad @quiet depot I need to look into that
Pig doesnt it also have a normal replace feature?
no
it's not needed
what I just showed you is way more versatile than a normal replace feature
much more effective
eh
hmm alrighty ill give that a go next time I find myself using replace
lol
the new way I am saying
o
GITHUB IS THE BESTTT_ _
I accidentily ctrl + clicked one of my classes (enum) and for some reason just deleted it and modified a bunch of files making like a billion errors in my code (and the enum had like a billion values)
and intellij ctrl + z didn't work
and so I just rollbacked via github and its fixed
:))))))))
Lol
https://docs.google.com/document/d/11irjGreXzUdavS5xNBg45ZU-VCtWngv41eCYEAbaRSA/edit?usp=drivesdk
how does this look in terms of content?
Pure Section Install JDK, write a basic hello world with sublime + CLI Introduce variables and basic types (primitives + String + Object) Basic arithmetic operations Move to a proper IDE Strong typing, type conversions (casting, parseInt, etc) If statements and basic Boolean algebra Methods (func...
wHat in the wOrlD is tHaT
@quiet depot @old wyvern @angone else interested
Java course
Intellij also recovers deleted files
Pure Section good
but for some reason it didn't detect that it just destroyed my files
๐
Not talking about ctrl + z
Right Click > Local History
cleared
Idk
nope its not in local history
unless github rollback changes it
nvm
its all the way
okay
but
edit: Github and matt saved me
๐
that looks like a solid course BM
this is like when the teacher shares a google doc and the class goes crazy
๐คฃ
lmao
oh thank god
xD
I got so scared then lmao
lol
@prisma wave maybe go over javadoc and how to use/go through it cause a lot of beginners dont understand javadoc
could do that in the spigot section
Good idea
You making a video bm?
Wait is this all in one video?
no lol, 1 video per episode, probably like 10 minutes each
Hopefully
you should remove our permission to suggest lmfao
Finally getting around to making this course
A whole video on "Move to a proper IDE"
nice
Obviously
lol
that's very important lol
he can explain why eclipse is so shitty
no it means like you can type but it wont affect the document xD
lol
xD
know how to change permission at least lol
its fixed nvm
yeah I got that lol
GODDAMMIT
XD
๐
๐ญ
5. Jav gonna be a great episode i can already tell
lol
yeah I have no idea how to remove the suggestions
Ig I'll finish this in the morning
i think you did
its removed
it looks fine for me at least
They're still showing up for me lol
oh rip
Ooh I think I found it
Yea
how?!
google docs app prob
thats some powerful phone
I have to manually deny each one ๐ฅฒ
lol
lol?
lol
Google docs app
y u keep moving Move to a proper IDE
i feel like maybe starting with a proper ide is a good idea, no?
sublime but
IDE is better to be used later on
wut
then what do u use
bc the ppl are gonna have to do it themselves too
not just watch
Use any text editor
;-;
IDEs are complex
Today in this java tutorial we're going to be coding in Notepad
Starting with an IDE just makes people dependent on them
You wanna keep it simple at first
BM - dependency injection video?
My prof makes sure we only use text editors for our classes
ah ok
We are not allowed to have an IDE open during class
oh gosh
this might be pog to be able to send to new people in here if they need more explanation of a topic lol
๐ฑ
seems a bit too strict
You can code on the terminal
wUTt
Hopefully :)
nano, vim, Emacs etc
Yea but he teaches really well tbf
vim > nano
Thats the only class that I really like this sem
idk what vim and emacs is
Others ar ejust professors crying their throats out
that's stupid
It isnt
I get the idea behind it but in the real world you will use an IDE at work
As you will use Google
And StackOverflow
The idea is to be able to code even without the help of an IDE
not to complete ignore IDEs
I know
Yeah I think you should always know how to do it the hard way
But you should also be taught how to use an IDE
Not at the start itself
Otherwise your first day at work when you are introduced for the first time you will have no clue how anything works
If you know the bare bones then an IDE Is only going to make things easier though
^
That doesn't work the other way around
mhm
I like to disagree
You are being introduced to a whole new environment, a whole new workspace
but at the end of the day it's still just a text editor
use eclipse instead of notepad
It will make what you already know easier (debatable, but for the most part yes), but you still have to learn how to use the tool
or netbeans
Netbeans is cursed
We are not using eclipse under any circumstances
no i mean use eclipse instead of notepad
notepad + terminal > eclipse
notepad < eclipse < intellij
:)
Notepad would be better
Vscode
ew
Too IDE-like
ik someone in codedred discord who switched to vscode
If you're learning the basics then start with something simple
iirc they used to use intellij
VSC is fine
But using it for Java is a strange decision
Any reason not to target java 11 on the course?
none
๐
1.8 is like 6 years old if they are using 1.8, they should update :)
exactly
no
The 1.8 API also sucks so it's harder to learn / teach
You have to use NMS for the most basic things
bm you should make a gh organization for the series and upload each episode as a repo so people can go view the code
or smth like that
ppls gonna copy/paste
yea i just dont know if it would get so big that one repo would be not enough
And then maybe just tags for each episode
ah yea thats a good idea
cause some stuff will probably be carried over more than 1 episode
Yeah
It'll probably be 2 projects that grow over time
Calculator for pure, essentials remake for spigot
And then we just keep adding to that
That will probably be further down the line
But yeah
I wanna teach proper code structure, API design, SOLID principles etc
I've made quite a few additions to the doc so
This is good
good good
if i do an economy thing for a plugin im working on should i do my own economy/storage/etc and give access to it through the api or should i use vault so it will have better compatibility
yes
wdym exactly?
any of the two sound great
Making an economy plugin?

Well, using Vault as economy is more of a standard for a "global" economy, of course you could make your own API and make it isolated from it, or you could do both if 
if you're making an economy plugin definitely hook into Vault
im working on that core plugin still so I figured I'd add in a way for players to pay each other then maybe work that into some shops or something in the future so vault is probably the best option
just making sure before i use it lol
Yeah use vault API
@prisma wave be careful with 8
java is a mix of pass by value & pass by reference
I mean technically it's all pass by value, but the value you're passing 99% of the time is a reference
consider having a little extension lesson on bitwise operators also
what
wym what
this
do you know what pass by value/reference means?
yeah

but in reality, it doesn't always work out like that
primitives for example, work great
afaik objects pass by reference
you pass them, and they work as expected for a pass by value system
and primitives by value
when you pass an object, you're still passing a value
but the value is a reference lol
at least that's the way it was explained to me
Yup
well yes, you are passing the value of the pointer
yep
also known as "pass by reference"
I know how it works, you pass a copy of the pointer to the object around, the underlying data is the same in memory, but the reference itself is not, it's a copy
private String test = "blah";
public void meth(String blah) {
blah = null;
}
psvm {
blah.sout
test(blah);
blah.sout
}```
if java was pass by reference, the second sout would print null
i think
no it wouldn't
inside meth you are reassigning the local reference
i.e. the copy of the reference
but in a true pass by reference there are no copies
therefore java is not pass by reference
yes and therefore, it's pass by value
hence why that would print "blah" both times
with the value being a reference in the case of non primitives
also this is exactly why I want bm to go in depth on this because it's confusing
Well yes but it's easier to teach references instead of pointers, something you don't have access/control in Java at any layer
For that matter go learn C++, you got all them 3, values, pointers and references
you sorta can do pointers in java
via unsafe
it's not pointers in the traditional sense but it's similar
I think
mind you i've never used a language with pointers
Disgusting
try {
String fileName = parse[2];
if (parse.length <= 3) {
backgrounds.add(new Background(fileName, 0, 0));
} else {
int xOffSet = Integer.parseInt(parse[3]);
int yOffSet = Integer.parseInt(parse[4]);
backgrounds.add(new Background(fileName, xOffSet, yOffSet));
}
} catch (Exception ex) {
ex.printStackTrace();
throw new CorruptedBeatmapException("Corrupted Beatmap File!");
}
parsing at its finest
find any exception?
just throw the damn thing back at the compiler
tbh i would just put minecraft in a try and catch statement
What there would throw exception?
well
in my case if parse
the array was out of bounds
also i got some other stuff i need to add such as the length
it has to be a specific length or else its wrong
basically im parsing a special file
and it has its own weird ass format
and that requires hard coding
honestly
is there any reason
plugin.server.servicesManager.getRegistration(Economy::class.java)
would return null if vault is installed
did you add Vault to your depend list?
its a soft dependency but yea
should have the same effect of making it load first
what about loadService instead of getRegistration?
d;spigot ServicesManager#loadService
There was no direct match for that query, did you mean any of the following?: org.bukkit.plugin.ServicesManager#load org.bukkit.plugin.ServicesManager#getKnownServices org.bukkit.plugin.ServicesManager#isProvidedFor org.bukkit.plugin.ServicesManager#load org.bukkit.plugin.ServicesManager#register
@quiet depot ServicesManager#load shows twice but there only exists one load method
huh
where are you doing that?
gonna see if isprovidedfor returns true
constructor, onLoad or onEnable?
it ends up being called in the onEnable

also isProvidedFor returns false
sounds a whole lot like your plugin is enabling before Vault
agreed
how does your plugin.yml look like?
https://paste.jaims.dev/eqehusayej.md logs seem to say vaulkt is loading & enabling before though. plugin.yml -> https://paste.jaims.dev/ojogomafah.http
wait so
wait
you're trying to make your plugin be Vault's economy?
or trying to get an existing one?
get an existing one i believe. I am trying to create commands like /balance /pay etc that change vaults data using the api. Currently what I have setup is using Economy#getBalance for a simple balance command but again its not working because the RSP is returning null
Do you... have a plugin that backends the economy?
have I misunderstood what vault does? I thought vault was the economy (it stores the data), and other plugins can use Vault's api to get data about the economy / set it.
lol yes you have

