#dev-general

1 messages ยท Page 244 of 1

ocean thunder
#

hi

#

I just linked my account manually, it says I have to sign up for a queue or something like that, how do I do?

prisma wave
#

Go to clojure.org and read the first 10 pages of the docs

#

That will tell you everything you need to do

ocean quartz
#

@hot hull Trying to set custom skull as block? Give me a sec i have code for it

hot hull
#

Already did it

ocean quartz
#

o

hot hull
#

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)

frigid badge
#

i fucking hate php

#

absolute garbage

steel heart
#

thought it was nice for a moment

prisma wave
#

PHP is probably the worst programming language

#

I can't think of any worse ones

steel heart
#

its useful tho

#

and its the programmers fault if any issues are encountered

#

/s

prisma wave
#

no it's not

#

Oh good

#

r/lolphp is one of my favourite subreddits

quiet depot
#

php good language 10/6

frigid badge
#

I have to offload this process since the php script ends before this async function is finished

#

which means it just stops

onyx loom
prisma wave
#

no

onyx loom
#

YES

prisma wave
#

I know it's a running joke but clojure is genuinely a nice language to use

quiet depot
#

actually yes clojure

#

i thought everyone hated lisps

prisma wave
#

people do until they use them

onyx loom
#

liar

#

everyone hates them

quiet depot
#

apl is a nice language

onyx loom
#

and thats a fact

prisma wave
#

pff

#

don't bash it until you've tried it

#

Same goes for the "JavaScript bad" hivemind

onyx loom
#

i will NEVER try clojure

quiet depot
#

oh yeah honestly people bash js too much

#

like python is way worse

#

kbye

frigid badge
#

it still sucks though

prisma wave
#

I don't have anything against either

frigid badge
#

only thing which makes it atleast somewhat nice is a shit load of linter rules and the latest es version

quiet depot
#

I've used python and have came to the conclusion that it sucks dick

prisma wave
#

python is nice for small things

onyx loom
#

what advantages does python even have honesty?

quiet depot
#

big ecosystem

onyx loom
#

except for small scripts

prisma wave
#

it's very easy to learn

quiet depot
#

lua is nice for small things

#

but yes that's not lua's purpose

#

ik

frigid badge
onyx loom
#

๐Ÿฅถ

quiet depot
#

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

steel heart
#

it might be a good starting point

quiet depot
#

nah

#

I say skip it entirely

#

unless you have to learn it for a job/education

prisma wave
#

I kinda like JS's type system, like being able to define objects in pseudo JSON is nice

steel heart
#

hmm yeah JS is probably a better starting point

prisma wave
#

python is definitely the easiest language to learn imo

#

Or js

frigid badge
#

python is easier to learn

#

js has a lot of hidden shit

hot hull
prisma wave
#

yeah it's more predictable

frigid badge
#

and plain js is ass

#

you really need to preprocess it first

prisma wave
#

the js ecosystem and tooling stuff sucks

frigid badge
#

and should just purely be used for client side

prisma wave
#

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

quiet depot
#

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

onyx loom
#

kotlinscript ๐Ÿฅฒ

quiet depot
#

I thought the focus of that was for embedding

onyx loom
#

idk

#

never used kts tbh

prisma wave
#

imo js is good for that sort of thing

quiet depot
#

yeah but I mean are there any languages that are objectively good design wise, and work for this sort of thing

onyx loom
#

elara

quiet depot
#

ideally ones with a large eco system

#

or support from other languages

prisma wave
#

a language that's easy to get started with, and good for small script like things?

#

npm init clojuremoon

quiet depot
#

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

prisma wave
#

oh you mean personal preference?

steel heart
#

typescript :]

quiet depot
#

oh yeah maybe typescript

#

I haven't looked into it too much

#

brister I mean objective goodness

prisma wave
#

hm

#

well it's kind of subjective, i usually prefer dynamic languages for small things

frigid badge
#

typescript is just javascript with types

steel heart
#

objectively

quiet depot
#

consistency within the design of the language, and adherence to the principles of a good language (if such things exist)

frigid badge
#

so then js is also good

prisma wave
#

Python arguably has that

#

There aren't really any obvious other candidates

quiet depot
#

yes but python is objectively shit

steel heart
#

yeah I mean js is at least practical in my opinion

quiet depot
#

it's inconsistent and it's oop impl sucks

prisma wave
#

but you rarely need objects for small things

quiet depot
#

I don't think I've explained what I'm looking for very well

prisma wave
#

possibly not

#

My go-to would be javascript, but that's objectively a badly designed language

steel heart
#

possibly

quiet depot
#

yes so I'm looking for a language that's objectively well designed

onyx loom
#

basically combine a language like kotlin with a language like python that can be used for sma stuff

prisma wave
#

Lua is good for scripting as far as I know, but it's tricky to learn

quiet depot
#

lua is meant to be easy to learn

prisma wave
#

oh maybe

#

idk

quiet depot
#

lua is the ideal language, apart from one flaw

prisma wave
#

never used it

quiet depot
#

it's not meant for scripting

#

it's meant for embedded usage

prisma wave
#

also arrays start at 1 don't they?

quiet depot
#

dunno

#

can't remember

#

haven't used lua for a while

#

yeah they start with 1

prisma wave
#

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

quiet depot
#

conventionally

#

it's not forced

#

you can use 0

prisma wave
#

odd

quiet depot
#

brister dynamic languages are stupid

prisma wave
#

most of the time

quiet depot
#

it's meaninglessly limiting

prisma wave
#

but I like them for small things

quiet depot
#

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

prisma wave
#

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

quiet depot
#

lua on the jvm

#

it's perfect

#

it already exists

#

ima start using it

prisma wave
onyx loom
#

the perfect language actually exists ๐Ÿคจ

quiet depot
#

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

onyx loom
#

elara will solve this issue

quiet depot
#

we'll see

prisma wave
#

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

quiet depot
#

okie

prisma wave
#

Go is also a good candidate

#

it compiles so quickly that it feels interpreted

quiet depot
#

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

prisma wave
#

yeah newer languages have a big disadvantage

quiet depot
#

go could be it

prisma wave
#

js and python's main strengths are similarity and ecosystem

#

when Go has generics it'll be close to perfect

quiet depot
#

is that planned?

prisma wave
#

yeah, for Go 2

quiet depot
#

idk if that's smart

#

go's known for simplicity

#

generics can get complicated

onyx loom
#

how big is go anyway? ik its made by google so it must be pretty big right?

quiet depot
#

file size or like community shit

onyx loom
#

community

#

users

prisma wave
#

pretty big

#

it's used by a lot of big programs

#

docker, kubernetes (i think)

quiet depot
#

docker is definitely go

prisma wave
#

pretty sure it powers google's advertising platform too

quiet depot
#

lemmo was telling us that the other day

prisma wave
#

yeah

quiet depot
#

go is actually kinda popular now that I think about it

#

lots of shit is being replaced by it

#

ptero wings for example

prisma wave
#

yeah Go is getting very popular

onyx loom
#

elara is also powered by go, gotta remember that

prisma wave
#

which is good to see

#

indeed

quiet depot
#

how's goland?

obtuse gale
#

Wasn't JS designed with the idea of never throwing exceptions? Or some other insane batshit like that

prisma wave
quiet depot
#

what's a good starter project

prisma wave
#

good question

onyx loom
#

calculator ๐ŸŒ

prisma wave
#

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

quiet depot
#

okie

prisma wave
#

or rewrite docdex in Go

quiet depot
#

yeah that's a lot more effort than it seems

static zealot
#

xd

quiet depot
#

shit has 8.3k lines

#

and not even close to being done

prisma wave
#

ok maybe not that then lol

onyx loom
#

8.3k lines in java is like 3k lines in any other language ๐ŸŒ

prisma wave
#

true

#

oh just a heads up if you're learning, Go isn't object oriented

quiet depot
#

good

prisma wave
#

no classes

#

no extending things

#

etc

ocean quartz
#

Go seems like a pretty cool language

prisma wave
#

it is

#

very cool

#

it's also very fast

frigid badge
#

haskell is a cool language

hot hull
#

No.

prisma wave
#

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

static zealot
#

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

frigid badge
#

I say reh-jeks / re-gex

prisma wave
#

yeah that's normal

#

I think

#

Mine is... Weird

frigid badge
#

you say it like rejects

onyx loom
#

ree jex

hot hull
frigid badge
#

lmao

prisma wave
obtuse gale
#

GIF or GIF

prisma wave
#

as in reject

#

oh

#

gif

obtuse gale
#

reg-x

onyx loom
obtuse gale
#

Not me

onyx loom
#

good

frigid badge
#

gif in my language is poison

ocean quartz
#

I say gif as in gift

prisma wave
#

fun fact the creator of the format says "jif"

#

but they are wrong

frigid badge
#

jeff

stuck harbor
#

no it is just G I F

#

seperately

prisma wave
#

in java is a null pointer something like 0x000000? Does it have an actual value? Or is it an implementation detail

onyx loom
#

its actual value is nil ๐ŸŒ

prisma wave
#

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

stuck harbor
#

maybe

static zealot
prisma wave
#

Maybe

#

Do you know the answer?

prisma wave
#

isn't that a type

obtuse gale
#

yuh lol and nullptr is of that type

prisma wave
#

but what is the actual value

#

and im more asking about java

obtuse gale
#

It's quite a strange type tbh, because in cpp you can do something like if (!somePointer) to check for nullptr

prisma wave
#

since apparently in C it's like (*void) 0

obtuse gale
#

Yeah but C doesn't even have bool lol

prisma wave
#

true

#

i am just curious as to how it's implemented

#

specifically in java

obtuse gale
#

Quite a strange thing

static zealot
#

I'd chose the second option tbh

stuck harbor
#

oh no not bald

#

that is the greatest threat

static zealot
#

ye but its better to bald than read his DMs

prisma wave
#

bald

obtuse gale
#

:(

blazing walrus
#

๐Ÿ˜ฑ

hot hull
#

Depends what part bald

#

Cause like if buttcrack then hell yes!

prisma wave
#

average spigot plugin

steel heart
#

bruh

#

why r u exposing me

stuck harbor
#

lol

#

always null

surreal quarry
#

name should never be null :)

steel heart
#

I dont get how you can infer that like,
var x = null; //now we can infer x is not null

prisma wave
#

To be fair

#

It probably meant that it should always be initialised in a constructor

steel heart
#

ye

surreal quarry
#

would it not make more sense to just do private String name; then

prisma wave
#

maybe

ocean quartz
#

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
hot hull
#

Noone judged my code :(

surreal quarry
#

where is it lol

steel heart
#

imagine if java would add good updates

#

like maybe make it even more kotlin

surreal quarry
#

imagine if java was good

hot hull
#

util/actions is not mine so don't judge that

steel heart
#

wtf Frosty

#

private final Map<LocationHolder, TreasureHolder> treasures = new HashMap<>();

#

private final Map<@NotNull LocationHolder, @NotNull TreasureHolder> treasures = new HashMap<>();

#

^

hot hull
#

I will shoot you

ocean quartz
#

I'll do after

steel heart
#

default List<String> getAliases() {
return Collections.emptyList();
}

default String getDescription() {
    return null;
}

default String getUsage() {
    return null;
}
#

WTF

#

dude

hot hull
#

I will seriously smack you

steel heart
#

its ur fault

#

only urs

hot hull
#

It's Gaby's

steel heart
#

sin

hot hull
#

I was too lazy to finish converting my lib to java so I just used his instead

steel heart
#

lib for what

hot hull
#

Actions

steel heart
#

still wearing that christmas pfp like u think gucci aint cool

hot hull
#

Yeye I haven't changed it yet

#

Tommorrow

obtuse gale
#

There is no other way

#

Well there is a way, you can use Eclipse and force compile it ๐ŸŒ

ocean quartz
#

I know, was saying in terms of readability
Anyone that knows Java would understand it well

#

Was just a simple comparison

obtuse gale
#

I don't see how it's any less readable

#

But that's me

#

ยฏ\_(ใƒ„)_/ยฏ

hot hull
#

I just want extensions in java

#

All I want

ocean quartz
#

Let's make a lombok like thing that makes that happen!

onyx loom
#

๐Ÿ˜ฌ

prisma wave
#

I have a question

compact perchBOT
#

There is no time to wait! Ask your question @prisma wave!

prisma wave
#

shut up

#

Rat

#

Should I work on pdm or a premium plugin

#

premium plugin means money but pdm means minor clout

surreal quarry
#

both at the same time

prisma wave
surreal quarry
#

two keyboards

#

get to work

ocean quartz
#

pdm ๐Ÿฅบ

surreal quarry
#

i vote pdm

prisma wave
#

fair enough then

#

now

#

rewrite shit? or just a big refactor

surreal quarry
#

but you're asking a group who is going to vote pdm cause we use it lol

prisma wave
#

true

#

But still

#

I need an excuse

onyx loom
#

relocations ๐Ÿ˜ฎ

lunar cypress
#

In this house we don't make premium plugins ๐Ÿคš

prisma wave
#

it will be open source

#

but i wanna get some passively generating income in time for uni

ocean quartz
#

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

prisma wave
#

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

ocean quartz
#

Yeah it's what i plan on doing too

#

Sad that won't be possible on hangar

prisma wave
#

how come?

ocean quartz
#

There won't be premium plugins in it

prisma wave
#

oh rip

#

seems like a bit of a mistake

ocean quartz
#

I understand why though, but yeah pretty sad

prisma wave
#

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

weary epoch
#

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

surreal quarry
weary epoch
#

my bad

half harness
#

best theme

weary epoch
#

that looks like pain

half harness
#

i agree

#

credit to codedred discord

prisma wave
#

that is the ugliest thing i have ever seen

half harness
#

๐Ÿคฃ

prisma wave
half harness
#

;-;

#

I go there to help out some nubs

#

anything i should change?

prisma wave
#

those package names are questionable

steel heart
#

placeholderapi

#

sounds like ur shading it in

prisma wave
#

yea

half harness
#

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

half harness
prisma wave
#

tier 3 and still using caps ๐Ÿ˜ฌ

onyx loom
#

placeholders

prisma wave
#

^

half harness
#

renamed

prisma wave
#

enums is a bit janky as well

half harness
#

i had so many enums tho

#

๐Ÿ˜ฎ

prisma wave
#

rewrite time i think

onyx loom
#

o

steel heart
#

you could do this dkim

half harness
#

jeez

onyx loom
prisma wave
#

maybe

steel heart
#
processResources.from(sourceSets.main.resources.srcDirs) {
    expand 'pluginVersion': version
}```
#

more ugly and more compact

#

but fewer lines

#

and idm if its shorter

half harness
#

ok

steel heart
#

but

half harness
#

i did it

steel heart
#

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

half harness
#

wdym

steel heart
#

(some exceptions exist but ye)

half harness
#

i always copy and paste

#

my build.gradle

steel heart
#

ok good bye

half harness
#

idk how groovy works

prisma wave
#

groovy is nice

half harness
#
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`
steel heart
#

seems good

half harness
prisma wave
#

clojure buildscript

weary epoch
steel heart
#

lmao

half harness
#

you were supposed to delete that message bm

half harness
prisma wave
#
(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

onyx loom
#

NO

half harness
steel heart
#

BM is there any point reimplementing an interface like this:

interface Kaliber {

}

interface Efefury extends Kaliber {

}

class Sxtanna implements Kaliber, Efefury {

}
prisma wave
#

what

onyx loom
#

what

#

no

steel heart
#

very arbitrary example

onyx loom
#

u extend me

#

u my bitch

prisma wave
#

i have no idea what you're asking

half harness
#

rip me

#

๐Ÿ‘‹

#

wtf

steel heart
#

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

#

:[

obtuse gale
#

Conclure stfu

prisma wave
#

good question

obtuse gale
#

You're asking too many questions

half harness
obtuse gale
#

No

prisma wave
#

probably just to make it more obvious

obtuse gale
#

No one has to know this

#

No

steel heart
#

oka ima stfu

half harness
prisma wave
#

idk

#

just like

#

make it more natural

half harness
#

โ“

weary epoch
half harness
#

?

weary epoch
prisma wave
#

๐Ÿคฃ

#

couldnt be me

half harness
#

I remember when I was so reluctant to switch to intellij

weary epoch
#

same

half harness
#

i was so stupid back then

weary epoch
#

i still hate IJ

half harness
#

oh

weary epoch
#

cause im still struggling with gradle

prisma wave
#

wut is issue

weary epoch
#

eclipse is just good u should switch to it

prisma wave
#

i used to use it

#

like 4 years ago

half harness
prisma wave
weary epoch
#

tf does "bm" mean

prisma wave
#

c'est moi

half harness
weary epoch
#

oh

half harness
weary epoch
#

mfs will use eclipse and complain why their plugins dont work

half harness
#

woah

weary epoch
#

im mfs ๐Ÿ˜”

half harness
#

how did I react to my message

prisma wave
#

guys

#

i am trying eclipse

half harness
#

YES

#

do it

#

pls

#

:>

prisma wave
#

it is so ugly

weary epoch
weary epoch
half harness
#

vc :>

prisma wave
#

this is the ugliest thing i have ever seen

onyx loom
#

oh no

weary epoch
prisma wave
#

what

onyx loom
#

theyre main page when u open the app is a donation page ๐Ÿคฃ

#

u dont see that with IJ ๐Ÿคฃ

#

i also say no

half harness
#

static isnt that badddd

onyx loom
#

so that means no

prisma wave
#

gn

#

yeah im not using eclipse anymore

weary epoch
#

gn efefury

steel heart
#

to debug something or not debug something

#

just use sout

#

:]

weary epoch
#

pro tip: do java underwater so no one can see you crying

steel heart
#

data structures and algorithms :]]]]]

#

eclipse is my favorite ide

weary epoch
#

same

#

cause i can easily ignore all the errors barraging me

prisma wave
#

that's not a good thing

steel heart
#

Eclipse IDE is good cuz it makes me look like a fool

wise badger
#

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
quiet depot
#

@prisma wave sublime was actually the first editor I coded java in

#

back in like 2014

prisma wave
#

Oh nice

#

I'm pretty sure I started with eclipse

weary epoch
#

HAHHAH

prisma wave
#

Or maybe notepad

weary epoch
#

eclipse > notepad

#

eclipse > IJ

quiet depot
#

I could never install eclipse on my pc

#

router firewall blocked it

old wyvern
#

I started Java with eclipse as well

quiet depot
#

and back then my dad wouldn't let me fuck with the networking

weary epoch
#

eclipse lets u bypass errors

#

best IDE

quiet depot
#

so my only options were sublime & ij

prisma wave
#

lmao

old wyvern
#

eh it has a separate compiler than javac

#

you can disable compile time error checks

#

so Errors would be thrown like Exceptions

prisma wave
#

Ok so, start with an IDE or start with text editor + CLI?

old wyvern
#

text editor + CLI

prisma wave
#

Okay I agree

#

Sublime or N++ or whatever

old wyvern
#

๐Ÿ”ฅ

onyx loom
#

notepad

old wyvern
#

BMtuts

prisma wave
#

using notepad is self harm

onyx loom
#

n++ for dark mode

old wyvern
#

use vi

onyx loom
#

actually

#

sublime then

prisma wave
old wyvern
#

xD

prisma wave
#

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?

onyx loom
#

profit ๐Ÿ˜Ž

quiet depot
#

make sure to remove plugins from sublime so you have a vanilla install (apart from theme)

onyx loom
#

maybe gradle first? idk

onyx loom
#

like gradle then plugins

quiet depot
#

same with ij when you move onto that

prisma wave
old wyvern
#

Uh maybe explain build tools for an episode and go through the options and differences between them and then start with using gradle

eager fern
#

did sublime ever add a replace text feature?

quiet depot
#

sublime has always had that

eager fern
#

wait

quiet depot
#

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

eager fern
#

I mean like notepad++

#

replace one

prisma wave
old wyvern
#

awesome

onyx loom
prisma wave
#

Possibly

#

But

#

It actually shows you why Gradle is useful

onyx loom
#

hmm i guess so

obtuse gale
#

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

prisma wave
#

Yeah exactly

onyx loom
#

.toInt ๐Ÿ™‚

prisma wave
#

I also wanna introduce basic OOP outside of spigot, and then expand on that later

quiet depot
obtuse gale
#

a calculator would also be a good example for a switch case (for the operators)

prisma wave
#

Calculators are great

#

They have everything

eager fern
#

ah not bad @quiet depot I need to look into that

old wyvern
#

Pig doesnt it also have a normal replace feature?

quiet depot
#

no

#

it's not needed

#

what I just showed you is way more versatile than a normal replace feature

#

much more effective

old wyvern
#

eh

quiet depot
#

trust me if you've used it

#

you'd understand

old wyvern
#

hmm alrighty ill give that a go next time I find myself using replace

quiet depot
#

oh

#

i lied lol

#

it does haev a replace feature

#

I've just never used it

old wyvern
#

lol

quiet depot
#

@eager fern ctrl + h

eager fern
#

thanks

#

its way better

#

honestly

quiet depot
#

nah

#

I've never needed it

eager fern
#

the new way I am saying

quiet depot
#

o

old wyvern
#

since when was this os?

half harness
#

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

#

:))))))))

prisma wave
#

Lol

half harness
#

im so happy

#

github just saved me like 10 minutes

#

10 minutes = a lot

prisma wave
half harness
#

wHat in the wOrlD is tHaT

prisma wave
#

@quiet depot @old wyvern @angone else interested

half harness
#

oh

#

ew pure section

prisma wave
ocean quartz
#

Intellij also recovers deleted files

prisma wave
#

Pure Section good

half harness
#

๐Ÿ˜

ocean quartz
#

Not talking about ctrl + z

half harness
#

o

#

but

#

the files didn't delete

#

it just

prisma wave
#

Right Click > Local History

half harness
#

cleared

prisma wave
#

Idk

half harness
#

nope its not in local history

#

unless github rollback changes it

#

nvm

#

its all the way

#

okay

#

but

#

edit: Github and matt saved me

#

๐Ÿ‘

surreal quarry
#

that looks like a solid course BM

prisma wave
#

cheers

#

Hopefully it'll be good

#

I don't think I forgot anything on the pure side

surreal quarry
#

this is like when the teacher shares a google doc and the class goes crazy

half harness
#

๐Ÿคฃ

prisma wave
#

lmao

half harness
#

good thing its suggestion

#

and not editing

prisma wave
#

oh thank god

old wyvern
#

xD

prisma wave
#

I got so scared then lmao

half harness
#

lol

surreal quarry
#

@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

prisma wave
#

Good idea

ocean quartz
#

You making a video bm?

prisma wave
#

Wait is this all in one video?
no lol, 1 video per episode, probably like 10 minutes each

#

Hopefully

surreal quarry
#

you should remove our permission to suggest lmfao

prisma wave
#

Finally getting around to making this course

half harness
#

nice

prisma wave
#

Obviously

half harness
#

lol

prisma wave
#

that's very important lol

surreal quarry
#

he can explain why eclipse is so shitty

half harness
#

true

#

okay

prisma wave
#

oh my god

#

What have you done to it

surreal quarry
#

just remove all the suggestions

#

and remove perms to suggest

prisma wave
#

I thought suggestions meant like comments

#

๐Ÿฅถ

surreal quarry
#

no it means like you can type but it wont affect the document xD

half harness
#

lol

old wyvern
#

xD

prisma wave
#

lmao

#

Idk how to remove them on mobile

half harness
#

google docs doesn't like me

surreal quarry
#

its fixed nvm

prisma wave
#

yeah I got that lol

obtuse gale
#

GODDAMMIT

half harness
#

XD

prisma wave
#

๐Ÿ™„

half harness
#

๐Ÿ˜ญ

surreal quarry
#

5. Jav gonna be a great episode i can already tell

prisma wave
#

lmfao

#

Obviously

#

A lot of thought went into that

surreal quarry
#

lol

prisma wave
#

yeah I have no idea how to remove the suggestions

#

Ig I'll finish this in the morning

surreal quarry
#

i think you did

half harness
#

its removed

surreal quarry
#

it looks fine for me at least

prisma wave
#

They're still showing up for me lol

surreal quarry
#

oh rip

half harness
#

๐Ÿ˜

#

did u do all this on mobile?

prisma wave
#

Ooh I think I found it

prisma wave
half harness
#

how?!

surreal quarry
#

google docs app prob

half harness
#

thats some powerful phone

prisma wave
#

I have to manually deny each one ๐Ÿฅฒ

half harness
#

lol

prisma wave
#

lol?

half harness
#

lol

prisma wave
#

Google docs app

half harness
#

y u keep moving Move to a proper IDE

surreal quarry
#

i feel like maybe starting with a proper ide is a good idea, no?

half harness
#

same

#

u gonna use notepad

#

in the beginning?

surreal quarry
#

sublime but

old wyvern
#

IDE is better to be used later on

half harness
#

wut

#

then what do u use

#

bc the ppl are gonna have to do it themselves too

#

not just watch

old wyvern
#

Use any text editor

half harness
#

;-;

prisma wave
#

IDEs are complex

half harness
#

Today in this java tutorial we're going to be coding in Notepad

old wyvern
#

Starting with an IDE just makes people dependent on them

prisma wave
#

You wanna keep it simple at first

surreal quarry
#

BM - dependency injection video?

prisma wave
#

Yes

#

That will probably be part of the Basic OOP thing

old wyvern
surreal quarry
#

ah ok

old wyvern
#

We are not allowed to have an IDE open during class

half harness
#

oh gosh

surreal quarry
#

this might be pog to be able to send to new people in here if they need more explanation of a topic lol

half harness
#

๐Ÿ˜ฑ

prisma wave
#

seems a bit too strict

half harness
#

the ide does everything for me

#

:>

ocean quartz
half harness
#

wUTt

prisma wave
old wyvern
half harness
#

oh

#

nano

#

nano is text editor

prisma wave
#

fair enough

#

Yes

surreal quarry
#

vim > nano

old wyvern
#

Thats the only class that I really like this sem

half harness
#

idk what vim and emacs is

prisma wave
#

๐Ÿฅถ

#

complicated

old wyvern
#

Others ar ejust professors crying their throats out

obtuse gale
old wyvern
#

It isnt

obtuse gale
#

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

old wyvern
#

The idea is to be able to code even without the help of an IDE

#

not to complete ignore IDEs

obtuse gale
#

I know

prisma wave
#

Yeah I think you should always know how to do it the hard way

obtuse gale
#

But you should also be taught how to use an IDE

old wyvern
#

Not at the start itself

obtuse gale
prisma wave
#

If you know the bare bones then an IDE Is only going to make things easier though

old wyvern
#

^

prisma wave
#

That doesn't work the other way around

old wyvern
#

mhm

obtuse gale
#

You are being introduced to a whole new environment, a whole new workspace

prisma wave
#

but at the end of the day it's still just a text editor

half harness
#

use eclipse instead of notepad

obtuse gale
#

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

half harness
#

or netbeans

ocean quartz
#

Netbeans is cursed

prisma wave
half harness
#

no i mean use eclipse instead of notepad

surreal quarry
#

notepad + terminal > eclipse

half harness
#

notepad < eclipse < intellij

surreal quarry
#

:)

ocean quartz
#

Notepad would be better

prisma wave
#

They both suck

#

Sublime >

ocean quartz
#

Vscode

old wyvern
#

ew

prisma wave
#

Too IDE-like

half harness
#

ik someone in codedred discord who switched to vscode

prisma wave
#

If you're learning the basics then start with something simple

half harness
#

iirc they used to use intellij

prisma wave
#

VSC is fine

#

But using it for Java is a strange decision

#

Any reason not to target java 11 on the course?

old wyvern
#

none

half harness
#

there are

#

just in case

#

servers use java 8

prisma wave
#

im gonna be targeting 1.16 so

#

There's no reason to still be using java 8

half harness
#

๐Ÿ˜

surreal quarry
#

1.8 is like 6 years old if they are using 1.8, they should update :)

prisma wave
#

exactly

half harness
#

no

prisma wave
#

The 1.8 API also sucks so it's harder to learn / teach

#

You have to use NMS for the most basic things

surreal quarry
#

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

prisma wave
#

that's a good idea

#

Or at least a repo

half harness
#

ppls gonna copy/paste

surreal quarry
#

yea i just dont know if it would get so big that one repo would be not enough

prisma wave
#

And then maybe just tags for each episode

surreal quarry
#

ah yea thats a good idea

#

cause some stuff will probably be carried over more than 1 episode

prisma wave
#

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

surreal quarry
#

yea

#

maybe some sort of api design episode

prisma wave
#

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

surreal quarry
#

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

obtuse gale
#

yes

prisma wave
#

wdym exactly?

obtuse gale
#

any of the two sound great

prisma wave
#

Making an economy plugin?

obtuse gale
#

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 PES_SadShrug

prisma wave
#

if you're making an economy plugin definitely hook into Vault

surreal quarry
#

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

prisma wave
#

Yeah use vault API

surreal quarry
#

alr

#

ty

quiet depot
#

@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

obtuse gale
#

what

quiet depot
#

wym what

quiet depot
#

do you know what pass by value/reference means?

obtuse gale
#

yeah

quiet depot
#

ok

#

i'll explain it with examples then

#

java's spec says it's pass by value iirc

obtuse gale
quiet depot
#

but in reality, it doesn't always work out like that

#

primitives for example, work great

obtuse gale
#

afaik objects pass by reference

quiet depot
#

you pass them, and they work as expected for a pass by value system

obtuse gale
#

and primitives by value

quiet depot
#

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

old wyvern
#

Yup

obtuse gale
#

well yes, you are passing the value of the pointer

quiet depot
#

yep

obtuse gale
#

also known as "pass by reference"

quiet depot
#

no

#

allow me to demonstrate with code

obtuse gale
#

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

quiet depot
#
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

obtuse gale
#

no it wouldn't

#

inside meth you are reassigning the local reference

#

i.e. the copy of the reference

quiet depot
#

but in a true pass by reference there are no copies

#

therefore java is not pass by reference

obtuse gale
#

it passes copies of pointers

#

and you can reassign the pointers

quiet depot
#

yes and therefore, it's pass by value

obtuse gale
quiet depot
#

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

obtuse gale
#

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

quiet depot
#

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

forest pecan
#

im about to commit a war crime

#

im catching Exception

ocean quartz
#

Disgusting

forest pecan
#
                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

ocean quartz
#

What there would throw exception?

forest pecan
#

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

steel heart
#

Pulse

#

That code

forest pecan
#

honestly

surreal quarry
#

is there any reason

plugin.server.servicesManager.getRegistration(Economy::class.java)

would return null if vault is installed

obtuse gale
#

did you add Vault to your depend list?

surreal quarry
#

its a soft dependency but yea

#

should have the same effect of making it load first

obtuse gale
#

what about loadService instead of getRegistration?

#

d;spigot ServicesManager#loadService

ruby craterBOT
#

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

obtuse gale
#

well

#

load lol

#

why is it twice thonk

surreal quarry
#

still null

#

and no clue lmao

obtuse gale
#

@quiet depot ServicesManager#load shows twice but there only exists one load method

obtuse gale
surreal quarry
#

gonna see if isprovidedfor returns true

obtuse gale
#

constructor, onLoad or onEnable?

surreal quarry
#

it ends up being called in the onEnable

obtuse gale
surreal quarry
#

also isProvidedFor returns false

obtuse gale
#

sounds a whole lot like your plugin is enabling before Vault

surreal quarry
#

agreed

obtuse gale
#

how does your plugin.yml look like?

surreal quarry
obtuse gale
#

wait so

#

wait

#

you're trying to make your plugin be Vault's economy?

#

or trying to get an existing one?

surreal quarry
#

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

obtuse gale
#

Do you... have a plugin that backends the economy?

surreal quarry
#

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.

obtuse gale
#

lol yes you have