#dev-general

1 messages · Page 232 of 1

forest pecan
#

Theres github

#

on

#

Phone????

ocean quartz
#

The official github app sucks though

forest pecan
#

Wait

#

is it a new app

prisma wave
#

somewhat new

ocean quartz
#

There are a many github apps, the official has been out for a year or two i think

lunar cypress
#

not that long

forest pecan
#

oh

steel heart
prisma wave
#
    void cancelTask(
            int rawId
    );```
please no
steel heart
#

thats epic style

#

why no?

prisma wave
#

ugly

steel heart
#

awww

#

thought it was professional

old wyvern
#

How is it enhanced?

prisma wave
#

I am pretty sure any style guide would say you shouldn't have that unless you have a lot of parameters

old wyvern
#

Android view pivots are so random...

steel heart
#

Yugi the enhancements is that it can take either a consumer or a runnable and will always return a task

prisma wave
#

Consider moving some of the static classes into their own files

steel heart
#

compared to the BukkitScheduler that returns void for a consumer

#

hmm okay

#

why though

#

does it hurt performance?

prisma wave
#

no

#

not that I know of

#

but it is cleaner

steel heart
#

okay ik srp

prisma wave
#

well srp is technically fine since their are all individual classes

steel heart
#

oh lets go

prisma wave
#

but still

steel heart
#

ye

prisma wave
#

the Id class is a bit strange, it doesn't seem to be an id at all?

old wyvern
#

oh ok

steel heart
#

hmm true, maybe TaskNamespace or smtng

steel heart
prisma wave
#

tbh if that's all it does you're probably better just adding a few static helpers, rather than making an entirely new interface

old wyvern
#

Id suggest adding something like chaining or something

steel heart
#

uh sure like taskchain thing?

old wyvern
#

Yea something similar

#

some more features would possibly make it useful

steel heart
forest pecan
#

Yo

steel heart
#

yo

forest pecan
#

YouMeThemTheyUs

prisma wave
#

Yes interfaces are good, but it's more a question of compatibility here

forest pecan
#

Yugi is a handsome man

old wyvern
#

Yes it does but just because you have a hammer doesnt mean we have to hit everything with it

prisma wave
#

Introducing things that isn't compatible with the existing interfaces could be annoying to deal with

steel heart
#

then adapters perhaps

#

or just kiss

prisma wave
#

So I'd either couple stuff with the bukkit scheduler, or have adapters

steel heart
#

maybe just add accessors to spigot api

#

like getAsBukkitTask() or smtng

prisma wave
#

yeah

#

if this was Kotlin, extension functions

steel heart
#

yeah sadly no kotlin, but will be my next project :]

#

gracias @old wyvern y @prisma wave :)))))))

prisma wave
#

de rien

prisma wave
#

hot

#

java plebs could never

#

allman for sql 😳

ocean quartz
#

Not much into allman but looks very hot

prisma wave
#

why thank you

#

i don't mind either

#

allman just happens to be the default for me

#

imagine if kotlin had currying

#

that would be hot

#
val user = fetchUser(uuid) ?: User().apply(users.put(uuid))
frail glade
#

Damn, that's hot.

prisma wave
#

intellij and kotlin is amazing

#

^^ above code instead of ```kotlin
val user = fetchUser(uuid) ?: User().apply {
users[uuid] = this
}

frail glade
#

I'm thinking I'm going to do a deeper dive on databases over my break.

prisma wave
#

Sounds useful, I should probably do the same

#

I usually end up falling back on intellij syntax checking for SQL queries lol

ocean quartz
#

Same, i wanna make a lib similar to Android's Dao

old wyvern
#

Matt how familiar are you with Android?

ocean quartz
#

Not much, i've done a few apps, but only simple things

old wyvern
#

uh any idea relative to what the absolute pivot should be?

#

I tried absoltue coordinates but theres a very random offset depending on the device im running it on

ocean quartz
#

Idk, sorry
The design stuff is so complicated

old wyvern
#

😦

ocean quartz
#

I think you could use JBCefBrowser and create it with CSS and HTML

old wyvern
#

I cant really change the entire structure now, Have to submit this tmr

#

prof just told us today that he wants a fucking eiffel tower outside the compass circle denoting the same angle as the center one

#

I guess time to do it the hacky way and increase the height to the circles height

prisma wave
#
Task :CurryingKt.main()
{Hello=3}
#

hot

remote goblet
#

Tasty

prisma wave
#

ikr

lunar cypress
#

currying with side effects angry_fingerguns

prisma wave
#

sorry lol

#

this example doesn't even work for my use case since it doesn't return Unit 😭

frail glade
#

I like sql but relational stuff just gets me sometimes

#

Like storing collections and whatnot

prisma wave
#

yeah I usually just get an ORM to handle all that

#

not worth the effort most of the time

frail glade
#

Yeah but that doesn't make it relational, right?

prisma wave
#

Depends on the ORM I think

#

But Hibernate definitely does

#

it sets up joining tables, proper mappings and things all automatically

ocean quartz
#

I love working on relationships and stuff, I always make a diagram with everything i'll need

prisma wave
#

however, it adds about 10mb onto the jar

#

sooo

lavish notch
#

how can I disable mob AI, but allow for it to take knockback and like flow in water/liquids?

#

(1.8)

frail glade
#

What do you usually use elara? Got any repo examples? I was looking at hibernate the other day but didn't find anything that I liked enough

remote goblet
#

Well you start by not using 1.8

#

And no idea where else to go

lavish notch
#

D:

remote goblet
#

I don’t think you can do that honestly Mack without dumb shit

steel heart
#

@lavish notch thats different methods iirc

#

so should be fine

#

unless I have stupid

prisma wave
lavish notch
#

I know I could do like slowness, and huge jump-boost but then it won't take fall-damage

frail glade
#

No no no elara I mean do you have a repo example of hibernate? All the ones I found were outdated and never worked when I tried.

#

Or they all required spring

prisma wave
#

oh right

#

yeah, it's a commission but I can extract the relevant bits

#

it's fairly similar to with Spring, just with a bit more initial setup

#

thankfully no XML

frail glade
#

Yeah that's what I was wanting to avoid

#

I want to just have a plugin that I can do ORM with hibernate without the stupid XML file.

#

Just build the client and pull from a yml config for db information

prisma wave
#

Yeah, that's possible

oak raft
#

lol just realized that github didn't have dark mode until now kekw

prisma wave
#

although you have to do relationship mapping yourself (making sure Collections are initialised in the right order, etc) which can take a bit of time

frail glade
#

Damn Kotlin

#

Okay I'll convert that later.

#

Ty

prisma wave
#

Java sad_fingerguns

#

np

#

I've not checked that code in a while so it's possibly outdated or broken, ping me if that's the case

ocean quartz
#

In cases of something like GSON, it's pretty negligible difference between having a new instance be created every time it's used vs having it as a top level constant right?

prisma wave
#

yeah afaik making a Gson is cheap, but the convention is to have a constant

#

since it's verbose with all the options

steel heart
#

why not just make a static singleton then

ocean quartz
#

Just asking because i have a similar situation with a different object, i have this object which is an expansion and currently i have it as a constant, but i think i'll need to change it to be new every time with different player, so was wondering how different i'd be

#

500 times creating a new instance 9.0396µs
500 times with one object declared 8.4124µs
500 times with top level 16.1078µs on first test then 8.5778µs on second

#

Not sure why the first top level run was that different

prisma wave
#

Initial initialisation properly

#

Since top level is basically static, they get initialised on class loading

#

So initial access is probably slower

#

Tbh that seems too neglible to make a difference

old wyvern
#

was this in kotlin?

ocean quartz
#

What is odd is that it was like 2 different runs, like the process completely exited between the runs .-.

ocean quartz
ocean quartz
old wyvern
#

Maybe the cost of calling the setter?

#

welp

prisma wave
#

Is this an average time?

#

If not that's probably why

ocean quartz
old wyvern
#

god

prisma wave
#

500 times but dividing by 1000?

old wyvern
#

nano to micro?

ocean quartz
#

The average is being divided by 1k to convert to micro

prisma wave
#

Oh right

old wyvern
#

also matt

#

found a way

prisma wave
#

Didn't see the average() 🤦

old wyvern
#

Placed it in center and added a y translation and it kinda works now

ocean quartz
#

Oooh nice!
I always hated working with the designer of android, could never get things to look how i wanted

old wyvern
#

yea the positioning gets really awkward sometimes

#

its like css but worse

ocean quartz
#

CSS gives more control which is nice, using JBCef is actually pretty nice

#

But slower in most cases i think

old wyvern
#

Whats JBCef?

ocean quartz
#

Basically a virtual browser

#

Instead of designing an app you design a website and it'll open like an app

old wyvern
#

Ah I see

#

FINALLY

ocean quartz
#

That looks awesome!

obtuse gale
#

I look awesome owoSquidCool

steel heart
#

Nice eifffffffaaaal tower oui oui baguette

old wyvern
#

wha xD

forest pecan
#

Boy

#

i cant wait to be pinged

#

1 billion times

steel heart
#

@forest pecan

#

@forest pecan
public boolean isCurrentlyRunning(int taskId) {
return scheduler.isCurrentlyRunning(taskId);
}

@forest pecan 
public boolean isCurrentlyRunning(ScheduledTaskId id) {
    Objects.requireNonNull(id,"id cannot be null");
    return scheduler.isCurrentlyRunning(id.getRawId());
}

@forest pecan 
public boolean isCurrentlyRunning(ScheduledTask task) {
    Objects.requireNonNull(task,"task cannot be null");
    return scheduler.isCurrentlyRunning(task.getTaskId().getRawId());
}

@forest pecan 
public boolean isQueued(int taskId) {
    return scheduler.isQueued(taskId);
}

@forest pecan 
public boolean isQueued(ScheduledTaskId id) {
    Objects.requireNonNull(id,"id cannot be null");
    return scheduler.isQueued(id.getRawId());
}

@forest pecan 
public boolean isQueued(ScheduledTask task) {
    Objects.requireNonNull(task,"task cannot be null");
    return scheduler.isQueued(task.getTaskId().getRawId());
}
#

oops

forest pecan
steel heart
#

boom

#

nice

#

@steel heart

static zealot
#

:)))))

forest pecan
#

Kek

half harness
#

btw 1 message = 1 ping

#

😛

#

10 pings in 1 message = 1 ping

#

100 pings in 1 message = 1 ping

#

1000 pings in 1 message = 1 ping

#

10000 pings in 1 message = 1 ping

#

100000 pings in 1 message = 1 ping

static zealot
#

yes we know

half harness
#

👍

lapis dawn
#

oh god

static zealot
#

yo @obtuse gale you finished day 8 as well?

lapis dawn
#

Does anyone have any good ideas for very basic starter plugins? (sorry for the interruption)

static zealot
#

starter plugins? as in plugins to start a server?

#

if you don't mind

lapis dawn
#

As in simple plugins to code

half harness
#

....

static zealot
#

oh

lapis dawn
#

xD

static zealot
#

then

#

oh wait

lapis dawn
#

like very simple

static zealot
#

you want them to learn ?

#

if you want to learn SpigotAPI and stuff

lapis dawn
#

I personally have made myself a couple plugins, but am just thinking of ideas

static zealot
#

ah I see

#

ideas

#

very rare these days

lapis dawn
#

lmao

#

yes

static zealot
#

and expensive xD

lapis dawn
half harness
#

Develop an anti-cheat. For every hack, think about how the hacker's behavior differs from a normal's user (eg. for speed hacks, a normal user moves only X blocks per seconds while a hacker may move faster). This is a very hard task and needs extensive testing.
oh noo

lapis dawn
#

oh gooddd

#

ikr

static zealot
#

already done that

lapis dawn
#

never done that, and don't plan on making an anticheat

half harness
#

same

static zealot
#

:))

lapis dawn
#

expect them to be huge pains

static zealot
#

they are

#

big plugins usually are

#

that's why I don't like Cores. I like having everything in smaller plugins. Easier to keep track

lapis dawn
#

lol, my only plugin that I've made is a nick extension sorta plugin, that attaches your nick to your tab name and above your name, ex name (username)

static zealot
#

I made quite a few

#

but only public ones on spigot

#

are a GiveAll (pretty cool plugin tbh), RandomTeleport and WorldTeleport

lapis dawn
#

mm nice, whats the difference between world and random teleport?

static zealot
#

and I have a BountySystem that was meant for my server but to bored to work on it which is public on github

forest pecan
#

i actually want to develop an anti-dupe plugin

static zealot
#

its more like per world spawnpoints

half harness
#

Anyone have any plugin ideas that don't already exist

lapis dawn
#

ah

static zealot
#

yes dkim

#

make me hypixel

#

doesn't exist yet

lapis dawn
#

@half harness make a good nickname plugin with bunch of features

static zealot
#

:))

static zealot
#

lots of plugins for that already exist

#

I'm afraid

lapis dawn
#

I know they exist, but I haven't found one that appends your nickname to your username in tab and above your name

#

so I just made one for myself, but its super jank

static zealot
#

well I mean that's like super easy

half harness
#

um

#

idk how to do that

#

except

static zealot
#

ugh

half harness
#

setDisplayName

static zealot
#

lmao

lapis dawn
#

lmao

static zealot
#

getDisplayName

half harness
#

?

#

wdym

static zealot
#

and then you set their tab list name or whatever its called to name dispalyname

ocean quartz
#

Ugh my brain, need to think about how to make a good pinging system

lapis dawn
#

i intercepted player protocols and updated teams

static zealot
#

on join lmao

half harness
#

dispalyname

static zealot
#

wdym Matt?

half harness
#

if matt can't think of something

#

no one can

lapis dawn
#

what ye improving on?

forest pecan
#

I have a controversial question. Do you consider a plugin which has /home to "affect" vanilla behavior

half harness
lapis dawn
forest pecan
#

no not that

half harness
#

oh

#

then what?

forest pecan
#

im not trying to say interferes with vanilla features

#

like if you are trying to have the

half harness
#

oh

static zealot
forest pecan
#

full vanilla experience

#

like playing mc

#

normally

static zealot
#

ez pz :))

forest pecan
#

you know what i mean

#

would you consider /home

half harness
#

oh

#

yes

#

that

#

is

#

gamechanging

static zealot
#

the only one that I know of that can do that is CMI so far

half harness
static zealot
#

so you can have holograms

#

and they are clickable

half harness
#

wait

lapis dawn
#

discord deals with the pinging system basically being clientside right? Or atleast in converting pings to <@> standard, I think

half harness
#

what is paginated

static zealot
#

and when you click them you change the page

half harness
#

it can already do it

static zealot
#

ye but you can't change the holograms..

half harness
#

i think

#

oh

#

um

#

I gtg

ocean quartz
static zealot
#

ajh

#

ah*

ocean quartz
static zealot
#

ye then I won't be helpful at all

lapis dawn
#

hm, so like have events fired on user ping?

static zealot
#

back to my plugin then

lapis dawn
#

or have plugin messages sent that ping users?

ocean quartz
lapis dawn
#

you trying to think of nice ways to implement these events that work well without error?

#

XD

ocean quartz
#

No, just a way that doesn't feel complicated to maintain

lapis dawn
#

hm, I haven't worked with plugins in a while...

lapis dawn
#

oh god csharp is getting in my head now lmao

#

question: whats .kt

#

never heard of it

ocean quartz
#

Kotlin

lapis dawn
#

oh

#

🤦

#

never used it atleast

ocean quartz
#

It's beautiful

lapis dawn
#

can you use regex, or would it be less efficient?

ocean quartz
#

Less efficient yeah

#

Ping detection works fine already, that's not the issue, it's just setting up the actual pinging

lapis dawn
#

you could probably make it more efficient by first searching if a @ was mentioned in the whole message, then searching through

#

you looking for ideas for the actual pinging, or implementations?

ocean quartz
#

Like, let me try explaining my thought process
I need: get ping's literal from the node, check if it's a valid player, group, or everyone, if it's a player pass down the player that was pinged, if the player is already pinged do not add it to the list again, set all the pinging when the message is created, then send them all when the message is sent

lapis dawn
#

Ping Ideas:

  1. Default XP pling sound
  2. possibly change default text color from white to yellow for pinged user only (so like modifying all &r to have an additional &e ahead)
  3. you probably already have 1 and other stuff
ocean quartz
#

Oh that part is all configurable

static zealot
#

probably those will be customizable

#

yep

lapis dawn
#

yeah

static zealot
#

Matt just wanted to thank you for your time

lapis dawn
#

so where you mention if the player is already pinged do not add it to the list again, you probably still want to highlight both mentions

ocean quartz
lapis dawn
#

noicee

ocean quartz
static zealot
#

You just saved me a lot of stress and time

#

that's all

ocean quartz
#

Wdym? xD

static zealot
#

your commands and gui frameworks

ocean quartz
#

Oh, yw ;p

#

Everything saves me so much time

#

Even the gradle plugin

static zealot
#

oh

#

did you make that one public?

ocean quartz
#

Yeah

lapis dawn
#

How hard is kotlin to learn, and would you recommend it instead of learning plain java to use for plugins? (unrelated to the above topics lmao)

static zealot
#

no

#

Learn JAVA

#

first

#

please do

lapis dawn
#

ok xd

static zealot
#

I made the mistake of falling for this

lapis dawn
#

I mean thankfully I know java already

ocean quartz
static zealot
#

All kotlin tutorials like all assume you know java

lapis dawn
#

oof

ocean quartz
#

Meh, it's the same thing, personally learning Kotlin first will give you a better understanding of Java later on

static zealot
#

ah ty Matt.

forest pecan
#

if you learn kotlin before java 😮

#

pls dont

static zealot
#

Matt if you don't have a lot of programming knowledge I think its better to learn java

forest pecan
#

lol

static zealot
#

before kotlin

ocean quartz
#

Why though?

forest pecan
#

Kotlin isn't used as popular

static zealot
#

because Java is so much more documented. Like I know kotlin has everything on their docs

#

but still

forest pecan
#

i cant say that is a con

lapis dawn
#

also if you're wondering why I'm asking all these questions, I intern at a company thats thinking about teaching mc modding/plugins

forest pecan
#

kek

#

what is it

lapis dawn
#

secret

ocean quartz
#

I mean if you learn Kotlin you'll understand Java basically by default

forest pecan
#

i dont see those companies

#

often

ocean quartz
#

So the lack of documentation doesn't change much

lapis dawn
#

yeah, I pushed the idea to them since I didn't see it being done anywhere else basically, and seems like something lots would be interested in

static zealot
#

well for me is not like that Matt. I'm a bad learner unfortunately and I have a very bad memory.

lapis dawn
#

one thing I found hard about java when I started was the weird documentation

ocean quartz
#

That's fair

lapis dawn
#

like javadocs in comparizon to mozilla js docs are terrible

ocean quartz
#

The big issue with Java is the boilerplate

#
@NotNull
private final String text = "";
private val text = ""
lapis dawn
#

yeah, its more higher level than, js or python

#

Matt, for your pinging system, do you have the message like change color to indicate that you were pinged from that message?

obtuse gale
static zealot
#

ye I ain't got that time

#

I got work to do these next few days

obtuse gale
#

Understanding the internals of a CPU sure did help a bunch

static zealot
#

:)))

#

Good thing I don't huh?

obtuse gale
#

Lol

ocean quartz
obtuse gale
#

Make it so that if you get pinged you can click it to ping the sender cc:

ocean quartz
#

It'll be customization ;p

lapis dawn
#

I wonder how hard it would be to make a color parser

#

when reading just a direct chat message, how are the colors stored

ocean quartz
lapis dawn
#

just through the unicode & sign?

#

oop, are those the docs for the plugin?

#

if so they look amazing

ocean quartz
#

For the lib I made which I use on the plugin

static zealot
#

yes

lapis dawn
#

so basically yes

static zealot
#

oh wait

#

I'm dumb

#

lmao

ocean quartz
#

xD

static zealot
#

k bye

ocean quartz
#

The parser extensions i just added are awesome

#

Lets you add anything you want

lapis dawn
#

is gitbook a paid thing you're using?

static zealot
#

no

#

you can pay for it

#

but there's a free plan

ocean quartz
#

It's free but there is a paid version
I have the paid version for free because of Open Source 🥺

lapis dawn
#

I'm looking at the prices, and what are the "spaces" in it

static zealot
#

The spaces are basically the wikis

lapis dawn
#

oh nice

#

oh I can't paste in images

static zealot
#

?paste

compact perchBOT
#
FAQ Answer:

Paste Services
When asking for help with a config/menu/code issue please use one of these:
(However we do prefer if you used our paste :))
HelpChat Paste - Usage
Hastebin

lapis dawn
#

thats text paste

static zealot
#

Matt's frameworks wikis are all on one space

lapis dawn
static zealot
#

you can make another space with another link

#

oh didn't even see that

#

that's pretty cool

#

of them to do

lapis dawn
#

yeah ikr

ocean quartz
#

Yeah OS can get it free ;p

lapis dawn
#

pretty pog; might use it for a pb2 project

static zealot
#

I'm just going to put my plugins there just so I get it for free :))) lmao

#

jk jk

normal talon
#

what is OS ?

#

mac OS ?

surreal quarry
#

open source

static zealot
#

Matt's frameworks

lapis dawn
#

open source

static zealot
#

Open Source

#

lmao

surreal quarry
#

lol

normal talon
#

oh yea also xd

ocean quartz
#

My libs have given me Gitbook, IntelliJ ultimate (and all the other IDE), and a few other things for free

static zealot
#

wait IIJ U for free because you have OS things?

lapis dawn
#

github student developer pack is pog

ocean quartz
static zealot
#

oh

ocean quartz
static zealot
#

ye seems like they rly like promoting OS

#

and I agree. OS is cool

ocean quartz
#

OS is awesome

lapis dawn
#

yeah, thats nice

surreal quarry
#

gh dark is so hot

static zealot
#

yes it is

#

hotter than what I used to use to give it dark theme

ocean quartz
#

Don't like the color scheme of the code too much, but it's pretty nice yeah

static zealot
#

hmm why not? I think it looks alright. I'm talking and I still use the defaults in IIJ lmao

ocean quartz
#

I guess it's because i was used to my stylus theme

static zealot
#

I already forgot how it looked lmao

ocean quartz
normal talon
#

I use ocean

static zealot
#

hmm ye Stylus ain't bad

normal talon
#

or something

ocean quartz
#

Ocean is nice but way too much green

#

I wonder if i can make a stylus to make it look like atom one dark :pog:

surreal quarry
#

whats the little IJ logo on your github?

ocean quartz
#

JetBrains toolbox extension

#

Basically i can click it and it'll clone it to IJ

#

But it's a bit buggy so hardly use it

surreal quarry
#

ah ok

#

cool

normal talon
#

Oh wait I have atom One dark

#

Deep ocean looks nice

lapis dawn
#

gh dark is pog

#

literally just turned on dark reader yesterday looking for dark ui, and they got it today

obtuse gale
ocean quartz
#

I see, you're working at jetbrains now

ocean quartz
#

Why am i still awake, what is life

obtuse gale
#

Can IJ convert from groovy gradle to kotlin gradle dsl thingo?

ocean quartz
#

Don't think so
Why do you want Kotlin gradle?

obtuse gale
#

its just what ive used for this project lol

#

Ever since I switched from gradle groovy to gradle kotlin I get no false warnings and errors due to stupid IntelliJ not liking groovy mmlul

ocean quartz
#

The dumb warnings got fixed in 2020.3, they were annoying me too

static zealot
#

just update 4head

obtuse gale
#

Yeah tell that to Buster

#

anyone know how to make my thnig work :)(:

ocean quartz
#

He 100% has the Kotlin plugin wrong

#

That isn't a warning it's a straight up error xD

obtuse gale
#

And I once had literally the entire build.gradle underlined red with half the words red too and it built just fine :^)

#

No restarts fixed it

#

And it was that single project

#

Always

ocean quartz
#

It used to be awful, haven't had any issue with latest update though

obtuse gale
#

I can't tell because I moved away from groovy kek

ocean quartz
#

Aj what is the error?

obtuse gale
#

Unresolved reference: web01

#

lol am i just dumb

torn rose
#

did you define role and what it should do in terms of web01?

obtuse gale
#

er no....

#

I thought the plugin did that

jovial warren
#

anyone here remember how to configure Atom OneDark to not look trash? lol

#

been way too long since I've used IJ

#

looks way too dark for me, I remember it looking different when I used to use it

#

and yes, that is Windows, cba to have to switch back and forth lol

prisma wave
#

That's how it's supposed to look

#

Idk how you had it soo

obtuse gale
#

how make js download imag from url if not alreay downloadedpls thx

old wyvern
jovial warren
#

if you want a good Minecraft server, you'll have to pay for it unfortunately

#

unless you run it from home

#

@prisma wave looks pretty bad ngl

livid charm
#

I’m planning to get a Rapberry Pi 4b 8Gb RAM to host one

#

Good?

jovial warren
#

it'll work yeah

#

8GB is fine, until you start using poorly optimised plugins and have more players

livid charm
#

Do you think paper would be ok for it or just stay vanilla?

jovial warren
#

Paper is what 99% of the big servers use so I would highly recommend Paper

livid charm
jovial warren
#

then you'll be absolutely fine

livid charm
#

Ok thx

jovial warren
#

you're welcome

normal talon
#

Oh he is back

#

🙃

jovial warren
#

what?

lavish notch
#

I’m planning to get a Rapberry Pi 4b 8Gb RAM to host one
@livid charm if you're gonna run a public MC server, don't use a PI.

livid charm
#

@lavish notch private with people I know

#

I’m getting a domain with ddos protection to connect to it for protection too

lavish notch
#

Ehh... I mean the CPU will throttle it

#

I've ran a MC server on one, for testing purposes - and you can't explore very far before it starts lagging.

#

Especially with 1.16

lunar cypress
#

Yeah, pis are not meant for game servers

smoky crypt
#

i once did a bukkit server on my pi

#

only i have the cheapo 512mb ram edition so you can figure how that went

#

in short: it could barely handle one player, but thats about it

lunar cypress
#

@prisma wave /r/programmingcirclejerk is alive it seems

#

dunno if you've noticed

prisma wave
#

ooh

#

I've not checked it in a while

#

This is good news

#

Nah, Electron has effectively killed Qt. Qt is quite legacy nowadays to be honest.

thonking

lunar cypress
#

lol

prisma wave
#

Oh boy

#

The title is bad enough

lunar cypress
#

I just love the ratings and verdicts

#

No mention of Kotlin or Clojure unfortunately

#

But the rest is funny enough

prisma wave
#

This is already a shitshow

#

languages with null are bad because they break compile time type checking

Uses JavaScript as an example

#

It almost mentions Clojure, there's a rich hickey quote

lunar cypress
#

C++ Speed: Slow compile time but runs fast 👎
Rust Speed: Slow compile time but runs fast 👍

#

probably some quote where he's bashing oop?

#

hahaha

prisma wave
#

pretty much lmao

#

There's some very obvious FP bias here

#

Not that that's necessarily a problem, but java gets downvoted just for being object oriented lmao

old wyvern
#

Alan Kay seems to be a pretty depressed dude

#

or rather depressing

prisma wave
#

Indeed

#

I'm curious what he considers a good object oriented language

#

Because Java and C++ apparently aren't, so maybe Smalltalk?

old wyvern
#

welp

prisma wave
#

In comparison, NPM in JavaScript is the only tool you’ll ever need.

Is this a joke

#

This can't be serious

half harness
#

oop

prisma wave
#

Babel, some web packager, probably typescript, angular / react CLI, sass, etc

#

The only tool?

jovial warren
#

npm is probably one of the worst tools

#

not npm itself, but the way things are designed with it

#

these single-line dependencies

old wyvern
prisma wave
#

Elara had it first

static zealot
#

that's TypeScript

#

it says like 3 times

#

in the photo

#

lmao

prisma wave
#

Writing even a simple “hello world” program in Haskell requires understanding of Monads (IO Monads in particular).

Eh, not really. Sure you need them later but a simple hello world doesn't even have any types

static zealot
#

Ic

prisma wave
#

Well that article was a wild ride

#

Elixir is apparently the best language

static zealot
#

then I'm not cool because I've never heard of that language 😦

prisma wave
#

It's what discord uses for its backend

#

It does look good tbf, incredibly efficient at using multiple threads

static zealot
#

ye that's why I'm saying I'm not cool... because I didn't hear about it but if you say its good then good it is lmao

prisma wave
#

idk, I've never used it either ¯\_(ツ)_/¯

#

But I know a bit about it

old wyvern
#

Doesnt discord use rust?

prisma wave
#

I believe the backend is a mixture of Elixir and Rust

#

They used to use Go but GC spikes were killing them

old wyvern
#

ah

lunar cypress
#

the bad thing about this article is that the author clearly hasn't used half of the languages he's writing about

obtuse gale
#

Interesting stuff, gson loads maps and numbers as linkedtreemaps and doubles, whereas snakeyaml loads them as linkedhashmaps and doubles or integers where applicable

prisma wave
#

Also day 8 part 2 is so difficult wtf

lunar cypress
#

What lang are you doing day 8 in?

prisma wave
#

Java

#

I tried C but gave up pretty quickly

obtuse gale
#

eeh it was a bit hard to think of an algo for part 2 but it wasn't that difficult to implement

lunar cypress
#

oh, that's a shame

#

C is a pretty decent language for that day

prisma wave
#

Yeah that's what I was thinking

#

I just gave up after I realised I didn't know how "strings" worked

#

Ima try C with Day 9

obtuse gale
#

lol c strings

prisma wave
#

Exactly

lunar cypress
#

can't help you with very specific things as I'm a beginner myself but if you're curious about how to do certain basic things in C feel free to ask

prisma wave
#

okay thanks

#

I most likely will have many questions

lunar cypress
#

my solution for that day was a kind of a mess but not necessarily bad for C's standards

prisma wave
#

For part 2 of 8, can't you just check that if an instruction has already been executed, then it's reached the end of the pass therefore it's looping?

#

Okay I'll have a look

lunar cypress
prisma wave
#

It's what I'm doing for part 1, yeah

prisma wave
#

But I feel like it wouldn't work for part 2, because there could be a point that causes a loop further down

obtuse gale
#

literally the only site I refer to when needing help with C/C++

prisma wave
#

I can't think of a way of reliably determining it that doesn't involve brute forcing

lunar cypress
lunar cypress
#

I didn't brute force it completely, you can narrow it down

#

but it doesn't take too long either way

obtuse gale
#

I ended up literally running the program until an "address" is hit again, changing one instruction per loop

#

i.e. brute forcing

prisma wave
#

That's pretty much what I have at the moment

lunar cypress
#

what I did for that part was ||tracking the jmp and nop instructions I encountered while running it normally and only changing these to check||

prisma wave
#

I read the question wrong and thought you just had to swap the second to last instruction

autumn tapir
#

something I'm thinking of is arg validation

#

I want to make it easy to handle arg validation with my plugin Velt

#

(Velt allows you to use JS to make Spigot scripts)

#

these are the two options i'm considering, both have upsides and downsides

#
//Option One
manager.command({
  name: 'cmd',
  args: [
    'string',
    { type: 'number', optional: true }
  ],
  run(sender, text, num) {

  }
});
//Option Two
manager.command('cmd <string> [<number>]', (sender, text, num) => {

});
prisma wave
#

Alright yeah that was easy, brute forcing always works

lunar cypress
#

Originally I thought you needed to replace any number of instructions that's why I didn't even pay it one thought

jovial warren
#

@prisma wave C strings are easy lol

#

once you just google and find out that they're literally just arrays of characters, like in every other language

#

except for in C, you don't have an actual string type to wrap the array of characters

prisma wave
#

I know how they work, but working with them sucks

jovial warren
#

yeah it's a bit of a pain

prisma wave
#

I was dealing with a 2d char array and I just couldn't be bothered

jovial warren
#

I gave up on C once I found out that static meant local variable lol

prisma wave
#

Doesn't static mean global?

light venture
#

never

jovial warren
#

not from what I read

lunar cypress
#

static means it's bound to the file

jovial warren
#

ah yes, my bad lol

#

still bull shit

lunar cypress
#

and yeah p much "global" to the file I think

prisma wave
#

Oh yeah it's like python globals

#

Seems kinda out of place tbh

jovial warren
#

the word static really throws you off

prisma wave
#

I mean it's not that different to Java's static

lunar cypress
#

like such abominations are possible ```c
void foo() {
static int x = 42;
}

void bar() {
printf("Wtf %d\n", x);
}```

jovial warren
#

true I guess

prisma wave
#

Just a more procedural implementation

jovial warren
#

looks like C to me lol

prisma wave
#

But yeah, just getting a dynamically sized char array for the parse stage was pretty much where I gave up

lunar cypress
#

Well that's not the worst

#

Just count the lines of the file

#

and malloc an array of the line count

jovial warren
#

Oh also, this server I work for has this idea of splitting one larger server up in to a server per-world system. Just to confirm, this is complete bogus isn't it

prisma wave
#

Uh what

jovial warren
#

what I mean by per-world is having each world be a separate server to help with load balancing

prisma wave
#

Isn't that what the Aether engine or whatever does?

jovial warren
#

I think it's complete bogus but I want to make sure that's a shared opinion lol

#

now, time to see if I've still got it

#

I haven't made a Spigot plugin in a few months lol

#

though I think programming is one of those skills that's a bit like riding a bike, you never really forget how to do it

prisma wave
#

Tell that to everyone in development that says "yeah I learned Java but I've forgotten how to make a variable"

#

/s

jovial warren
#

lol

#

you know what I mean though

prisma wave
#

Mhm

#

Google.com
"C hashset"
realisation kicks in
😐 🥲

lunar cypress
#

hahaha

#

yep...

#

no dynamic lists, sets or maps for you

prisma wave
#

Scary

obtuse gale
#

unordered set

prisma wave
#

And they say rust is hard to learn

#

C programmers have to write their own hash tables 🥶

obtuse gale
#

"c Is eASiEr tO LeARn tHAn C++"

lunar cypress
#

yes.

prisma wave
#

It is

obtuse gale
#

tsk

prisma wave
#

C just presumably requires a different approach to most problems

lunar cypress
#

as a language, it still isn't harder than others

#

but yes, the standard library for instance is... limited

prisma wave
#

"library" is something of an exaggeration

lunar cypress
#

tried writing a hash table for day 7 but no success so far

prisma wave
#

no idea how Linux is written in C

lunar cypress
#

or rather, I was very fed up with that challenge and when I started my program and immediately got a segfault I kinda just gave up

prisma wave
#

I feel like you'd hit a roadblock after trying to anything too complex

lunar cypress
#

bro, now imagine that before C took over you'd write OSs in assembly

jovial warren
#

things could be worse yeah

#

even though C is kinda annoying to work with sometimes, and is very low-level, it's definitely better than assembly

prisma wave
#

Lisp

distant sun
#

C :(

prisma wave
#

Kinda crazy how they were able to make dynamically typed lisp machines before C was a thing

#

Like lisp existed before the moon landing

lunar cypress
#

yep

#

now that you mention the moon landing though, that shit was crazy too

distant sun
#

^

#

Was there any after that? Even with the new technology

lunar cypress
#

I don't think so, at least not on such a scale

#

But I mean also in terms of computing

distant sun
#

Weird tbh

onyx loom
#

moon landing was fake 🙂

lunar cypress
#

moon landing was real but we're not being told the truth about what's on the moon 🙂

onyx loom
#

🥶

lunar cypress
#

The earth is a sphere but it's hollow and there's a second world on the inside

onyx loom
#

:bruh:

#

do u actually think it was fake lol?

lunar cypress
#

oh god what have I done

onyx loom
#

🥶

ocean quartz
onyx loom
#

o

lunar cypress
#

that's p poggers

forest pecan
#

that would be a gigantic ass mirror

#

kekw

#

well

#

assuming you have the materials

#

i guess you could make it reflect it down

#

then to an angle up

#

kekw

#

but anyways

#

you could reflect it down then to an angle up and then straight down

lunar cypress
#

bruh

ocean quartz
#

To support Kurzgesagt and learn more about Brilliant, go to https://www.brilliant.org/nutshell and sign up for free. The first 688 people that go to that link will get 20% off the annual Premium subscription.

Get your Dyson Sphere Poster here: https://standard.tv/collections/in-a-nutshell/products/in-a-nutshell-dyson-sphere-poster

If humans wa...

▶ Play video
forest pecan
#

thats to focus it all

lunar cypress
#

wouldnt it be possbile to make a mirror and reflect the sun energy and save it? (like for the 100 years future)
what is that even supposed to mean

forest pecan
#

at one point

prisma wave
#

Wouldn't that just destroy the mirrors after a while

#

You'd get so much energy that they melt or something

#

Or the energy would just be slowly lost to the surroundings

karmic fjord
#

?mf

compact perchBOT
prisma wave
#

Anyone know what the point of the void is in C function parameters? Is int main(void) just equivalent to int main()?

CC: @lunar cypress :)

lunar cypress
#

I do believe so

#

you can also just omit it

prisma wave
#

Okay cool

#

I've been omitting it so far but seeing it in examples

lunar cypress
#

Ok so after looking it up, it seems like (void) means no arguments while () means any number of arguments of any type, confusingly

prisma wave
#

that is very confusing

#

so it's like varargs except you can't access them?

#

what's the point of that

lunar cypress
#

it's not varargs, it's basically just not telling the compiler

prisma wave
#

wut

#

Oh wait isn't void used for really unsafe casting or something?

#

You can cast void to any type

#

Something like that

lunar cypress
#

void*, yeah

#

pointers are all just memory addresses and void* is simply the generic one

prisma wave
#

I see

prisma wave
#

The first step of attacking the weakness in the XMAS data is to find the first number in the list (after the preamble) which is not the sum of two of the 25 numbers before it. What is the first number that does not have this property?

does this mean the first number that isn't a sum of the 25 before?

#

because i did that and it's incorrect

#

the question is weirdly worded

lunar cypress
#

not all 25

prisma wave
#

yeah that's what I meant

lavish notch
prisma wave
lavish notch
#

Aight - time to copy/paste

prisma wave
#

🙂

#

@lunar cypress yeah, i'm pretty sure my is_valid function is correct, and the returned value seems to be correct, it just isn't

#
  for (int i = 25; i < 1000; i++)
    {
        int num = numbers[i];
        if (!is_valid(num))
        {
            printf("%d\n", num);
            break;
        }
    }
lunar cypress
#

what is the implementation of is_valid

prisma wave
#

oh

#

oh

#

i am stupid

#

nvm

#

i was summing i + j not their actual elements in the preamble array 🤦‍♂️

#

or not

#
bool is_valid(int x)
{
    if (x < 2)
    {
        return false;
    }
    for (int i = 0; i < sizeof preamble; i++)
    {
        for (int j = 0; j < sizeof preamble; j++)
        {
            if (preamble[i] + preamble[j] == x)
            {
                return true;
            }
        }
    }
    return false;
}```
anything obviously wrong with this?
#

the sizeof possibly

lunar cypress
#

you misunderstood the task

#

your offset increments with each number

#

you always look at the 25 previous numbers

prisma wave
#

ohhhhh

#

right

lunar cypress
#

also that sizeof may or may not work

#

depending on what preamble is

prisma wave
#

an int[25]

#

but yeah i don't think it does work

#

fixed it though

#

pog works

#

my first functioning c program :))

#

and im pretty sure it doesn't even have any memory leaks

#

maybe

distant sun
#

int main() {
printf("Hello, World!");
return 1;
}

prisma wave
#

missing a \n there :))

#

and should be using allman for C fingerguns

distant sun
#

YES

prisma wave
#

isn't that the convention?

#

VSC auto formatted it to allman for me

heady birch
#

fn main() {
println!("Hello World!");
}
Nice. I love the variety on language and different colours, what is the project?

distant sun
#

not using clion, ew

prisma wave
#

github codespaces

#

shitty laptop so

prisma wave
#

trying to use a different language every day

#

and yes that will include rust

old wyvern
#

Will it include Elara tho?

prisma wave
#

potentially

#

if we get our act together

#

day 25 could be elara

old wyvern
#

xD

prisma wave
#

👀

old wyvern
#

Tempting

prisma wave
#

or even just the interpreted version i guess

old wyvern
#

yup

frail glade
#

Lol, it's funny how day 15 says finish PDM.

ocean quartz
#

😢

#

October 27th

tawdry ore
ocean quartz
#

And if you want to be a g be patient fingerguns

prisma wave
old wyvern
#

PDM Remake time?

prisma wave
#

I'd love to

#

But I don't have the time nor willpower

distant sun
#

Any idea how worth would be to get an Oracle Certified Professional, Java SE Programmer (1Z0-851) atm?

prisma wave
#

what

distant sun
#

Someone come to our university with an offer for different courses, and one of them is for java

#

and at the end you get this thingo

obtuse gale
#

Gaby wants a frame that reads "I officially know Java"

distant sun
#

lmao xD

static zealot
#

:)))

distant sun
#

Not sure if I would need that but why not, is pretty cheap

steel heart
#

Professional lol

#

I bet you're at that level alr

distant sun
#

yea sure 🤣

steel heart
#

actually join that course

#

and advertise kotlin kappa

distant sun
#

is around 100 usd

steel heart
#

oo

distant sun
#

for 10h/week, 12 weeks

steel heart
#

120h

distant sun
#

I paid more for private lessons for math and romanian in a month lol

steel heart
#

go

#

away

#

rich developer

distant sun
#

=))

static zealot
#

xD

static zealot
steel heart
#

idk

#

rare stuff

distant sun
#

haha I wish 🤣

heady birch
#

Course Prerequisites:

  • The candidate must have already signed the Oracle Database Commitment agreement that prevents them from interacting with any DBMS (Database Management System) other than the official Oracle Database Management System.
prisma wave
#

apache "libraries"

heady birch
#

What are you implying? that apache do not make quality libaries? You know, I was looking at Apache Bloudhound, new software, great software, state of the art, issue tracking.

#

Oh - last release was 2014

distant sun
#

Actually, you should be able to write and understand basic stuff

#

easy peasy xD

prisma wave
#

very relevant in the software industry

heady birch
#

The test isnt confusing, the test:

  1. Adapt the following java code to include a getter and setter

trait Dog {
pub fn meow();
}

obtuse gale
distant sun
#

u8 what

obtuse gale
#

unsigned 8 bits?

heady birch
#

Yes

obtuse gale
distant sun
#

idk what that is lol

heady birch
#

u8, u16. There is also a special library for u2, u3, u4, u5, u6, u7, u8 -> u128

prisma wave
#

pub fn lol() -> u8

#

u3?

distant sun
#

if anybody used github packages, any idea why when I try to access a class from my jar - to see its code - it is a .class file instead of .java ?

prisma wave
#

Because it's a jar?

#

That's the point?

distant sun
#

well is a dependency added through gradle and it should show the code thonking

prisma wave
#

jars contain classes, not .java files?

#

Idk GitHub packages, but unless you're explicitly publishing the source then it won't be there

ocean quartz
#

IntelliJ normally decompiles it for you, so you can see the code

distant sun
#

I would expect it to work like any other dependency, bm

brisk burrow
#

I need to learn the ways of Spigot plugin devopment

#

Ello

prisma wave
brisk burrow
prisma wave
half harness
brisk burrow
#

I need someone to teach me the ways xD

#

Dkim teach me the ways

half harness
#

._.

#

I-

#

sololearn fingerguns

#

codedred?

#

¯_(ツ)_/¯

#

how do you guys

#

like codedred

brisk burrow
#

I know 0 about dev stuff

#

and I want to learn

half harness
#

wut

#

okay

#

then either sololearn or a yt

#

probably

#

or

#

an online

#

class

#

😛

#

so

brisk burrow
#

Send YT vid links

#

ty

#

and pl

#

s

half harness
#

The only downside is that it uses eclipse

brisk burrow
#

ew

half harness
#

;-;

#

have you even heard of it before

#

I know 0 about dev stuff

brisk burrow
#

I know itelliji yummy

#

intelliji

half harness
#

oh

distant sun
#
public fun kotlin.collections.List<kotlin.String>.color(rgb: kotlin.Boolean /* = compiled code */): kotlin.collections.List<kotlin.String> { /* compiled code */ }```
It looks like this @prisma wave
half harness
#

btw gimlet that's not java above so dont worry aout that

distant sun
brisk burrow
#

GabyTM what is this

half harness
#

its kotlin iirc

#

😄

brisk burrow
#

What is this mysterious language

#

What is that mysterious word

half harness
#

silence

brisk burrow
#

So.... Should I use eclipse or intelliji?

#

@half harness

#

@half harness

#

@compact perch sorry

half harness
#

why-

#

okay

#

I don

#

well

#

try intellij

#

it's preference

brisk burrow
#

Link for download/

half harness
#

what-

#

wait

#

so you're telling me that you just came just wanting to code

compact perchBOT
#
FAQ Answer:

Start with this -
https://docs.oracle.com/javase/tutorial/java/concepts/index.html
Breeze through this skipping stuff that doesn't seem relevant like bitwise operators-
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html
and then hit this
https://docs.oracle.com/javase/tutorial/java/javaOO/index.html

They're the first three from this larger thing - https://docs.oracle.com/javase/tutorial/java/index.html
Which you should definitely go through overall. But those three should be enough for slightly better understanding of wtf is happening here without feeling like a huge time sink
That one is a small part of this larger site - https://docs.oracle.com/javase/tutorial/index.html
wherein "Essential Java Classes" and "Collections" also have good useful stuff

brisk burrow
#

Wdym

half harness
#

am I allowed

#

to post links here

#

also yt videos are more fun

brisk burrow
#

Ok, Downloading

half harness
#

jetbrains is a trusted website

brisk burrow
#

No virus's guarnteed

half harness
#

yep

#

OH

#

THE EMBEDS

brisk burrow
#

So, I should be using jetbrains-toolbox-1.1?

half harness
#

um

#

download Intellij Community

#

from there

brisk burrow
#

From jetbrains tool box?

#

@half harness

half harness
#

ye

brisk burrow
#

Gimlet gonna become god dev

half harness
#

yess

brisk burrow
#

I am gonna 120k a year bc of helpchat