#dev-general
1 messages · Page 106 of 1
I also have this one from 3 weeks ago
https://www.youtube.com/watch?v=c3L6mjogtM4
Probably because I peaked it
u play on ps4 right matt?
Yeah
ps4 share button quality is 💩
Extremely
I got a capture card but it's getting dust for like 4 years
Actually imma go play some warzone
https://github.com/sedmelluq/lavaplayer/blob/master/demo-jda/src/main/java/com/sedmelluq/discord/lavaplayer/demo/jda/AudioPlayerSendHandler.java#L27 does that have to go in an init block by the way?
I'm guessing so
Pretty sure you can do that in the field without needing to do in the init
Oh yeah good point
ideally it should either have a constructor taking a ByteBuffer, and/or have setBuffer() return the class
https://img.bristermitten.me/17-36-26-16-06-20.png HE'S DONE IT
😦
how does he do it
@topaz bay That's pretty cool
@prisma wave this could be good for you to play around in go with
Its like processing
do you need to download sources and documentation with gradle or is that done automatically
should be automatic
assuming there are any provided ofc
alright
also, anyone know if discord.js has any good music players?
Cause you need spigot, instead of spigot-api
wym by that
Ohh, those methods don't exist on your version
I'm making this for 1.12.2
I already put the spigot 1.12.2 jar
so I'm assuming the methods need to be updated?
"cryptographic nonce"
tf haha
anyone know how to use emotes in JDA?
Oh, I should've mentioned that I'm updating an old plugin made in 1.7
1.7 
@jovial warren You can use the mention for emotes, do \:emote: on chat and you'll get the code, for example
-> !theotherpig
matt its really old
was updated
by someone else, but it was only 1.10-1.11
so im trying to make it 1.12.2
The emote id
there isn't any arrow code
so dont do this
HAHAHAHA
waduhek
doing that can easily lead into arrow code
yeah I'm not doing that
was talking to remence
that is quite the disgustingness
the only thing is, is that it's a bit all over the place since it's essentially converted Java code lol
also, what mention @ocean quartz ?
MessageBuilder#mention?
Ori huh?
arrow code
whats that
it's basically nested if statement within nested if statement within nested if statement
yeah makes sense
just noticed that
but I still have that problem 😦
idk how to fix it
if (condition) {
if (otherCondition) {
if (otherOtherCondition) {
if (otherOtherOtherCondition) {
// do something
} else {
// do something else
}
} else {
// do something else
}
} else {
// do something else
}
} else {
// do something else
}
that's arrow code
you just don't do that
sounds like one of those things that is much harder than it looks, but it really isn't
if you take another look at it, you'll probably be able to find a fix
prioritise if-not-return over if-so-continue @oak raft
that'll work
if(!condition) {
//error message
return;
}
//the rest
hey KM you might know the answer to my question
I might
how do I append an emote with MessageBuilder?
because I'm guessing it's IMentionable
but idk how I'm supposed to get an Emote instance
actually nvm hold up
Guild#getEmoteById exists
⏸️
👍
now how do I use bold text 🤔
**
and that works?
okay
@jovial warren No, like literally just pasting  in the message will turn into the emote, and to get the id is like i said \:emote: in the chat
By emote I meant the actual emote xD
Like \ 
I did put in the actual emote
there ya go
but the thing is, I can't use that
is there a way to register custom emotes just for the bot's use?
Hmm for emotes for the bot to use I normally cache them on guild ready event
where's that available from?
What is your GitHub I can give you access to my bot's code
just BomBardyGamer
cheers
also, that wasn't what I was saying
about the emotes
what I was saying is that for example Rythm uses it's own youtube emote
or can bots use emotes from other servers they're in?
They can use from servers they are in I think
okay
so should be fine then
\⏸️
\⏸️
wait tf
they're resolving to unicode characters
⏸️
also, can't I just right-click and copy ID?
No, i thought so too, but it gives you the message id instead
ah okay
because if I put \:pause_button: in chat it resolves to the pause button unicode character
You can just copy that
copy ID returns the message ID
no
yes
oh you want me to do something different? okay
and ctrl c
yeah but that doesn't paste properly
also I don't think that's how it's supposed to work
What are you trying to do with it
paste it directly in to IntelliJ
\⏸️
wait will unicode characters get resolved by discord?
You're trying to react to a message with that right?
no
I'm trying to put that IN a message
This is my bot's message:
Paused ⏸️
it's sent when you pause the music the bot is playing
paste what? the unicode char?
Yeah
yes it worked
thanks
@ocean quartz any way to make optional args?
like args that can be sent, but aren't required
You're using his framework right?
yep
There's @Optional
@Optinal annotation on the parameter
okay thanks Matt
how do I send a message? just update the message variable?
e.g. message = "My Custom Message"
actually no, message is a val
@ocean quartz how do I change the message being sent?
or should I say, send a response message
You would send the message to the channel
so message.textChannel.sendMessage()? seems a bit stupid tbh
maybe message.editMessage() might work actually
That would edit the user's message wouldn't it?
You cant edit their message
yeah it would you're right
exactly
This does not translate the code to kotlin
I know it doesn't
Its not switching the language
I know that
but making 1 language look like another, speaking personally would just make development more confusing
Its not making it look like another
yes it is
it is though
val is in kotlin and not in java
It really isn't
Some of these folds do not exist
I know
it isn’t becoming a different language it just has traits of other languages
it resembles a language that isn't java
As if thats a problem for a fold?
well... yes it is...
it could cause confusion
as I've said, if you're writing java you expect to see java. making java code suddenly look different would most likely make it more difficult to understand
I often find myself confusing kotlin and java just from muscle memory, having something like this would make that worse
Literally everything it folds increases the readability of what it is
Simply by using more concise syntax
Like I said before, install it and actually use it
Instead of arguing from hypotheticals
conciseness does not mean readability
WHAT
Thats literally 90% of the logic behind kotlin's design
Youre just talking bullshit now
it doesn't necessarily mean readability
Nothing "necessarily" means ANYTHING
I’m just gonna say we aren’t gonna agree on this lol
for(int i=0;i<100;i++)System.out.println(i);
``` this is consice. not readable
That is not "concise"
concise
giving a lot of information clearly and in a few words; brief but comprehensive.
This does not give a lot of information in few words
It is not brief
And it is not comprehensive
my problem is that it's not consistent. some sort of transpiler that would actually translate val to final var would be fine, but having java code made to look like a different language sometimes is my problem
It is by definition, not concise.
if you are writing java, you expect to read java. if you don't like how that language looks, use a different one rather than sometimes making java look different
i'm sure it's fine for some people but we're gonna have to agree to disagree here. I think it's less readable
on an unrelated note, which do you think is better for storing functions? A Multimap<String, Function> or a Table<String, Parameters, Function>
what is String, and Parameters?
actually I think I understand
table > multimap
@prisma wave
ah alright
how come? Faster lookup?
String would be the name, Parameters would be the function description (params and return type)
well I assume key based is faster than an iteration match (multimap)
@prisma wave beep boop
ngl this confuses the hell out of me in kotlin
player.server.info
Like damn have you not heard of () ?
idk
Yea ik
When you think about it getters are pointless for example
unless you've got some custom functionality
Ah yes, just use static :eeee:
😳
Lol
||Joking btw, don't kill me||
|| 🗡️ ||
||static doesn't exist in kotlin||
bm
Yea
I have a question about coroutines
Stop complaining
Lol
Uhh so when a suspend function is called basically it just runs a new couroutine task on any of the threads in the thread pool then return with a callback right?
wait what?
Suspend just means that you can pause the function and resume it later
uhh I read that suspend functions can only be used in coroutines
They explained it as the compiler splitting the coroutine into pieces then store current point in a statemachine and then calls back the same function with the new state to execute the next piece
Honstly im confused af xD
that's pretty much what happens, except it's the suspend function that is split
The coroutine is responsible for executing the function
so like since the thread runs the next task while something is suspended... where the hell does the suspended function run?
xD
when it reaches something blocking, it suspends the function, does the blocking operation on another coroutine (I think), then resumes it once it's complete
xD
but kinda every function like schedules a new task to comeplete it at some other time
welp
Yeah it's kinda confusing
now- writing database connecting without spring isntead with hikari
Best way to learn is just to try it out
Oof
well Im working on something similar but maybe you wont like it idk xD, its not ready atm have to retrieve the saved stuff now
https://github.com/Vshnv/PersistenceFramework/blob/master/src/main/java/me/vshnv/easypersist/sql/SQLRepository.java
😮 nice
Ah cool
Basically trying to provide a use as is Map like implementation
That sounds useful
🙂
Is it only for SQL?
Remember to add batching!
have to add nosql suppourt
currently trying to finish sql part so i can make sure the field collectors and stuff work properly
Ah cool
If you're adding nosql which I imagine is mongo could you add JSON flatfile too?
😁
Maybe even add support for custom backends
🤢
What's wrong with that?
wdym?
Have an abstraction so it can work with any persistence method
So people could add yaml support if they wanted
or redis
Etc
flatfile json
Sure 👌
Redis will already be suppourted btw
as in i mean its planned to be implemented
ah alright cool
😂
Damn I havnt written proper sql for ages
I have fallen victim to the power of hibernate
Ooh nice
I wanna try out this config4j thing
new SelectStatement(tableName).column("test").column("somethignElse").where("id", someThing).executeQuery(ISQLConnector)```
do you call your friends IFriend?
do you call people IPerson
no
Jks 🙂
I kinda like the I for interface thing
NoFriends :c
There are 2 types
public void cancelOpenOnPlacement(BlockPlaceEvent event) {
if(event.getBlock().getType() == (Material.ENDER_CHEST)) {
onOpenEnderChest(null);
event.setCancelled(true);
}
}
what do I put in onOpenEnderChest();
?
I think thats where the mistake is
@EventHandler
public void onOpenEnderChest(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (event.getClickedBlock().getType() == (Material.ENDER_CHEST)) {
event.setCancelled(true);
Location location = event.getClickedBlock().getLocation();
changeChestState(location, true);
openEnderChests.put(event.getPlayer().getUniqueId(), location);
}
Player player = event.getPlayer();
if (extrainv.containsKey(player.getUniqueId())) {
// already has a saved inventory
player.playSound(player.getLocation(), Sound.CHEST_OPEN, 1.0F, 0.8F);
player.openInventory(extrainv.get(player.getUniqueId()));
return;```
yes
onOpenEnderChest(event);
ohh ttyy
sm
The method onOpenEnderChest(PlayerInteractEvent) in the type Enderchest is not applicable for the arguments (BlockPlaceEvent)
It's not a subclass
no I meant another class in the same class
You should refactor the method to accept a combination of the 2
Eg accept a Player and a Cancellable
Also #development
ohh srry
You could use SimpleORM or whatever it's called
Queue
Which kind?
what kind of queue is it
LinkedBlockingQueue
ArrayBlockingQueue
or if you want priorites use PriorityQueue
Not the queue I meant, referring to a waiting queue (not the actual queue object)
but a queue is a queue
literally
you just .add to it like a list
then .poll it for the next item in the queue
Not sure which one would suit it most
List, Set, Queue? or queue implementation
well a Set would be pretty wack
loose ordering
hey @ocean quartz any idea why I get Nothing found by [Ljava.lang.String;@39881f32 when I try to run !play with the optional argument of trackURL: Array<String>?
I've tried toString(), joinToString() is what I'm using at the moment, can't seem to figure it out
the Nothing found by part is something I put in there as part of the message, but it's the String displaying as an object that's confusing me
Connection connection = null;
try {
connection = connectionSource.getConnection();
} catch (final SQLException exception) {
exception.printStackTrace();
} finally {
try {
//TODO: close result set as well
connection.close();
} catch (final SQLException exception) {
exception.printStackTrace();
}
}
this is what i hate
if you use ORM software that's handled for you
I think Spring might have it built-in, but if it doesn't, or you don't want to use it, here's what I recommend:
ORMLite for Java
Exposed for Kotlin
also, for this music bot I'm working on, I'm very tempted at this point to just write my own library
@heady birch use kotlin ```
connectionSource.connection.use { connection ->
//some query
}
cool
maybe you should have told me that 10 months ago 😦
also
does .use close automatically?
@prisma wave Didn't you say this was a nono in kotlin?
util classes are a nono
why?
there's no point
for one thing, static doesn't exist
which makes things problematic
and for another thing there are better ways of doing it
as Niall said file level extension functions are usually the way to go
Go yell at Glare
:/
eg (StringUtil.java) ```java
public class StringUtil {
private StringUtil() {
}
public static String color(String s) {
return ChatColor.translateAlternateColorCodes('&', s);
}
}would be replaced with (Strings.kt)kotlin
fun String.color() {
return ChatColor.translateAlternateColorCodes('&', this)
}```
That one yes
I saw you contributed
lol?
Is that why it's broken :kek:
So you were the devil that did that
yep 😎
Hey KM will you convert this to kotlin after I finish updating it? https://github.com/squishybanana04/RacesAndClasses
what on earth is this
for what
you're welcome :)
i got paid to do it as well
after I finish updating it?
bRuH
i'm very proud @hot hull
smh
https://img.bristermitten.me/11-34-09-17-06-20.png don't tell me that's not beautiful
Yo KM I'll officially use Kotlin if you can give me actual reasons to use it
Not just "it good"
iT gOoD
It's not
null safety as part of the type system
Called it
Like the fuck is this?
if (!file.exists()) {
getResourceAsStream(name).use {
file.outputStream().use { out ->
it.copyTo(out)
}
}
}
Yea, but what the fock is .use
use is like try with resources
it automatically calls close after you finish the operation
i was just about to criticise that code and then I realised I wrote it lmao
Lmao
nice one
that code in java would be java if(!file.exists()) { try(InputStream in = getResourceAsStream(name)) { try(OutputStream out = new FileOutputStream(file)) { int next; while((next = in.read() != 0) { out.write(next); } } } }
there's a clear winner
fuck is that frosty^
KM wtf is an stdlib
standard library lol
🤢
o
as in the library that comes with the language
Quickly deleting that
the java one is everything in the java and javax packages
ah
but kotlin builds off that a lot
Isn't kotlin slower tho?
not really
it compiles to java bytecode
it might be a tiny bit slower because it does checks automatically, but most of the type you'd be writing those anyway
Alright
another reason: immutable collection types are a thing in kotlin
List<T> doesn't have add() or remove() etc, you have to have a MutableList<T>
which is very nice for encapsulation
Depends how you measure it
It's almost definitely faster than groovy
Not sure about the others
They all compile to the same stuff so
What situations would you want an immutable list in?
It's more the other way around
In what situation would you want to be passing a mutable list around?
The answer is very few
Fair, so functions would return an immutable list and then internally you could use a mutable one?
precisely
makes sense
"make everything immutable unless you need it mutable", the same goes for collections in Kotlin
And pretty much everything else
All classes and functions are final unless you specify them as open
for things like getSomething where you dont want people to modify the result e.g
getPlayers().add() or something if you get what I mean
Exactly
there are very few situations where you should be exposing a mutable collection
In Java you would typically make a copy of the list and pass that
yeah
So I created a table 🙂
How can you check if someone has had a name before with the Mojang API like namemc does?
@prisma wave 😦 Idk what to do now
Make my app communicate with db by itself
Or rest post to another system
just communicate with it yourself i guess
having another system seems more trouble than it's worth
might just throw 3nf out the window
@jovial warren Show me your code ;o
I know it's a mess, I'm planning on clearing it up later
originally I had trackURL be a vararg, and then join that to a string
but me and my team are working on our own music playing library atm so I'll redo it once that's done
Oh yeah optional doesn't work well with array
Also why even make it an array?
Url should be a single string, no?
yeah but it isn't just supposed to take URLs
Oooh
the way lava player works, it'll search youtube if I prefix it with "ytsearch:"
Well, with the string array you basically need to handle what the framework would, it's set like that to give more freedo6
ah okay
so I can't have it be optional or what?
actually yeah I can just check if it's empty
but the framework will get to it first then and say it's invalid
Yeah you can check if it's empty, the framework will do nothing if the parameter is array, since it'll assume you want to handle it yourself
ah okay
How would you render a minecraft skin as a statue in python to output like a png render file 🤔
Make a request to Mojangs API for the skins, use the Pillow and/or numpy libraries to convert to/modify the image if needed, then just save it like anything else in a with open block
I need to turn it from the skin file to something like this: https://imgur.com/a/zyIvKTB
And whats the skin file look like?
@pallid gale Yeah I was looking for one any recommendations?
https://crafatar.com/ is what we use
Merci
why the heck did it insert "null" instead of actually being null
so I just created a new repo and chose the readme and license options, and I've just cloned it, so now how do I turn this in to a gradle project?
just run gradle init in terminal?
Yup
so what kind of project am I generating? basic?
most likely
@jovial warren you really shouldn't have made the repo first
make the gradle project in IJ, then push it, then add the readme and license on GH
then pull those changes
lol
Hi guys, I have a question unrelated to plugins. What Minecraft hosting do you guys recommend for a good server?
Might be better to ask on #minecraft I think
@prisma wave how 2 kotlin
With difficulty
With very ease
how
fun main() {
println("Hello World")
}```
It's pretty hard fun main() = println("hello world")

VERY difficult
This is easir
system.out.println 
smh
public static void sendMessage() {
MyAwesomePlugin.player.sendMessage(MyAwesomePlugin.color("You Suck"));
}
jesus christ
that's an awful lot of static you got there

delete that
Never
Yes
Hey Frosty didn't realise you remade my first plugin
There we go
Sx u wanna see my dog again? Or a cute bunny?
I found a cute bunny on tinder
Thats a weird banana
Is it.. not normal to drive 11 miles where you live Kat?
I'm 1068 miles away from the White House
Only 4 hours away from st louis
No it is, but like,
clearly the bunny is the one who lives in dc
Thought Sx meant he didn't live in DC
@errant geyser I am now
k
4 hours what
Katsu, #development
I move across half the country in 4 hours
I could drive across England horizontally in hours, vertically too
Just the time it takes to get set to fly and get there and unboarded
The process is just as fast
that is not the same xD
About 6 hours from NY to California
Might as well be
Just drive to me, half the time and double the fun
FUCK that
Gimme your aprox address Sx, so I can tell you how long you're gonna have to wait before I smack you

We know
@hot hull just use the white house
@rotund egret also shut up
you know nothing
I'm big rich
lol
Darn
also, anyone know how I could get the project version in a YML file from gradle?
because with maven you just put ${project.version}, wondering if gradle has something similar
It does
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: project.version]
}
}
You would use @version@
one of my friends cant join my server, but everyone else can. When he tries to connect, he gets this message: Java.net.connectexception: connection timed out: no further information. When he restarts his router he can join sometimes but once he leaves he cant join back, and he cant just keep restarting his router. We've tried disabling his firewall so far, could anyone help me?
(this has been happening since yesterday)
i think they just have very bad internet 
wellthenidk
And it’s only them that can’t connect to my server
i remember working for a server in the past which had a few members with that issue
never solved it tho
[17:24:58 WARN]: Caused by: java.lang.IllegalStateException: This does not represent a hash
REEE
{
"cool Boi 420": {
entity: {
type: "VILLAGER",
menu: "example_menu"
meta: {
glowing: true
}
}
locations: [
"420,69,420",
"410,69,420",
"400,69,420"
]
}
}```
fixed t loli
It's not that hard to figure out why
Any idea how to get someones network level from the hypixel api? I cannot find a key for it anywhere 🤔
And the posts on their forums say you need to calculate it but only give code for java as to how this is done
No clue what exactly you mean by that, so can't say
basically want a method made so I can just start a countdown + get the seconds left on he countdown
=pl mastercooldown
Something along these lines?
I wanna use it for my simple pl
so I need the code made. lazy I know but im wlling to pay
I mean best way is for you to learn how to do it yourself - feel free to ask in #development if you get stucks with anything
rather pay atm, would if I had the time
Fam I'll make you that for $15, holy crap
Go for it
$15 should be enough to make a actuall class that can handle multiple countdownssurely 😉
He wants it for his own plugin from what I've seen
Yes
$15 should be enough to make a actuall class that can handle multiple countdownssurely 😉
@gusty fulcrum whoever can make this first ill send $15
40$ and I'll consider it 😏
😆
why u need $40 so bad frosty
Saving up for a new pc, what u think
ah ofc
40$ is just so that I consider it, it's gonna be like 100 more to actually make it
frcsty ill give you $2 if you uninstall 1.8 (cant reinstall)
Aj, I can't do that
public void addCooldown(UUID uuid, String name, long start, long expiration) {
Cooldown cd = getCooldownByName(uuid, name);
if (cd == null) {
cooldownsList.add(new Cooldown(uuid, name.toUpperCase(), start, expiration));
} else {
getCooldownByName(uuid, name).setStart(start);
getCooldownByName(uuid, name).setExpiration(expiration);
}
}``` @distant sun why do you store cd and then go back to getting it in the else?
sure you can, it's easy
@errant geyser dont judge that code, I need to rewrite it at some point
do it in kotlin
I'll probably do it for you at some point since this is useful for some of my projects
do it in kotlin
@obtuse gale maybe, but I dont want the jar to be 5mb 😕
Ok Gaby I'm updating it for you, but only the bits I'd actually use
Sure
Also your Api sucky sucky big time big time
It's ez
Just register the class you want with the Bukkit ServiceManager
and voila
api
update your shit Gaby
Dude shut up
ew
Hey I'm updating this garbage
Ok now your API will actually work
All ur dependencies wack
hmm?
In IJ its not picking up anything
¯_(ツ)_/¯
Ohk yeah I'm not touching this, srry Gaby
I'll just copy the two classes I actually will need to use
I know it's bad, just stop xd
lol gaby bad xd
Any idea how to get someones network level from the hypixel api? I cannot find a key for it anywhere 🤔
And the posts on their forums say you need to calculate it but only give code for java as to how this is done
why u shouting smh
not even top 1
go upvote it
dont question my urban dictionary name pls
WELCOME TO THE KORM FIELDS
pls caps
Barry said it was ok
¯_(ツ)_/¯
Can anyone else use Piggy's TimeAPI?
I can't rn
https://github.com/PiggyPiglet/TimeAPI I have whats in the usage part in Gradle, but TimeAPI isn't there
¯_(ツ)_/¯
ikr, that's surprising
That's like half the fun of developing
Cube knows, he edits JSON files for Barry for a living
yeah but half the time its the other way round
Cube how much does Barry pay per hour for those JSON files?
40
69
He's got 13 json files <o/
Go study trigonometry
or
keep making a minecraft plugin
Trig
mm
make barry os
no
wow
Send me source cube
And sell rights
😕
people will just steal barry and ask for help fixing it to make it actually work elsewhere
under freedom of information act 2000 section 21(c) you must give me the source code to barry
and ownership of the helpchat
Cube don't you have his source on GH?
🤔
it is my RIGHTS to see it
Cube I can see it
Basic human rights!
cube, I mean 450$ for source, with no support included
hot
fair deal if you ask me
I looked yesterday Cube
we split 50/50 k?
Play with harry
He's os
Barry is built of the same core
is gary os
yeah
harry b-tec barry
gary was/is os
https://github.com/Aj3douglas/AJ-Bedwars/blob/master/src/main/kotlin/org/aj3douglas/ajbedwars/core/StoreEntityManager.kt
https://github.com/Aj3douglas/AJ-Bedwars/blob/master/src/main/kotlin/org/aj3douglas/ajbedwars/core/MenuManager.kt
If anyones up to quickly lmk where this can be improved (I pressume it can lol) thatd be great
Magic values
Barely any formatting
Returning a nullable type when it will never be null
Anyone know a good multi module tutorial for maven?
I asked Piggy to make one, but he said no :c
rip
link?
val menuMap = fileManager.readMenu(menuName) ?: return null If the file doesnt exist it will be null, Ill get IJ to format all the things rn lol, also what can I do about the magic values? Make them variables?
Constants
I wouldn't return null if the file doesn't exist
I would throw an exception
On the basis that that method shouldn't care about where the input is coming from
This one BM?
Quick question
What's the best way of handling same dependencies accross multiple plugins?
Just having it in each of the plugins, or is there a more efficient way?
You could make a folder to hold all of them
So I exported my plugin with eclipse and it works
so why does it not with intelij ?
Use gradle
then artifact
use maven or gradle
@hot hull have each plugin look in a folder to see if the dependency exists, otherwise download it to that folder perhaps
Oh missunderstanding, I'm reffering to plugin dependcies, ie. FUUID
what does reimport dependencies mean ?
Reimporting maven dependencies (clicking this button in maven)
but I'm creating a java plugin /
??
why are you using Java enterprise lol
and use gradle for building and dependency management
what is java enterprise lol
wait
makes things much easier
make a gradle project
Smh was using the wrong channel whoops
I have openjdk-14
and I added that to it
so now go to project structure and import the server spigot thing ?
with libraries
no
do I import it from java or maven
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
use gradle
Follow this
so I copyed that code to build.gardle
yes
then put code in src/main/java and plugin.yml in src/main/resources
Then to build run gradle build
the jar will be in build/libs
so why is this all gray https://imgur.com/a/KPmG7mm
Good question
Click the ok, apply suggestion thing at the top
and the little elephant circle on the right
thats an elephant?
Could not open cp_init remapped class cache for 8z9nf239siqtsjv18dsomm4sa (C:\Users\youfi\.gradle\caches\6.1.1\scripts-remapped\wrapper_init3_5z5g5awquwj9fbd1qfp5prhsl\8z9nf239siqtsjv18dsomm4sa\cp_init3607aee355f62839c5e6f549478ccc87).
> Could not open cp_init generic class cache for initialization script 'C:\Users\youfi\AppData\Local\Temp\wrapper_init3.gradle' (C:\Users\youfi\.gradle\caches\6.1.1\scripts\8z9nf239siqtsjv18dsomm4sa\cp_init\cp_init3607aee355f62839c5e6f549478ccc87).
> Could not initialize class org.codehaus.groovy.classgen.Verifier
yes it's an elephant xd
o_O
Invalid Gradle JDK configuration found. Open Gradle Settings
Open the settings and configure the JDK
Send a screenshot of your gradle settings
Ah apparently that error is because older gradle versions aren't Java 14 compatible
Follow this https://stackoverflow.com/a/61509462
I am getting this exception
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 and java.lang.NoClassDefFoundError: Could not initialize class org.co...
that is confusing my brain a 1000 times
Basically either use an older JDK version or use a newer gradle version
True
Those switch statements are sexy
gradle -version
the more we upgrade java, the closer we get to using kotlin without having to actually learn kotlin
how to run that
in a command prompt
lmao Ori
Download the latest JDK 14 EA build from http://jdk.java.net/14/ Set your PATH and JAVA_HOME variables to point to jdk-14 Run gradle -version -- that correctly prints:
It's that simple
'gradle' is not recognized as an internal or external command, operable program or batch file.
It's that simple
You sure -_-
You don't have gradle installed
ah i love it when new people start installing jdks and gradle
me too -_-
it's a complete struggle i love watching from a distance 
why is eclipse that much easier then ?
It's doodoo
no eclipse
Just cause it's easier, doesn't mean it's wiser
How do I download gradel ?
amazing emoji
its from facebook 
Imagine not using sdkman
The 5th one is ready to go to action
Brister




