#dev-general

1 messages · Page 217 of 1

obtuse gale
#

what the fuck is that

forest pecan
frail glade
#

🐷

hot hull
#

Oh hey Glare

#

How are exams theotherpig

frail glade
#

Killing me. (:

#

Tomorrow I have the following due: Paper, Chem Lab, Quiz, Exam

hot hull
#

@frail glade Damn, good luck

steel heart
#

@safe lily work with nbt

#

ItemStacks are mutable and you won’t be able to keep same instance all the time since it clones itself in most operations

#

Namely when adding it to an inventory

static zealot
#

so a superclass is a class that doesn't inherit any other class but is inherited by other classes in java?

hot hull
#

I believe that would be the definition yes

static zealot
#

bcz I saw someone saying their main class in a plugin is a superclass but if it can't inherit other classes how can it be a superclass.

hot hull
#

Where'd you see someone say that

onyx loom
#

dont trust anyone if they say something in plugins kek

static zealot
#

I think it was here or in #development . Yesterday pretty sure because today I slept the entire day xD

#

and seems like they asked in both channels

#

oh wait. I think I've red it wrong LOL

#

welp anyways I still needed to know that

#

since I'm trying to learn java xD

onyx loom
#

just create a new instance of ur main class 4Head

safe lily
#

@steel heart so CraftItemStacks?

steel heart
#

Well yeah but just use nbt

#

It will be your best friend in this project

#

@forest pecan

obtuse gale
#

@steel heart

steel heart
#

@obtuse gale

static zealot
#

@deft zinc

#

uops

#

wrong guy

obtuse gale
#

Bruh

#

XDD

steel heart
#

Lol that pfp

static zealot
#

ye. he's a funny guy

#

he's my brother 😦

steel heart
#

He has Skype as wellpufferfish_jazz

obtuse gale
#

Lol

#

@forest pecan

static zealot
#

I have skype as well.

#

not linked with discord tho

steel heart
#

Lol another peppe squidward

static zealot
#

where?

steel heart
#

Ur brother dumbo

static zealot
#

oh. he's a squidward peppe tho

steel heart
#

Yeee

#

Just like u

#

@forest pecan

static zealot
#

ye

steel heart
#

Imagine baby blitz

obtuse gale
#

Wait it's pepe

#

I never noticed it was pepe?!!!!!??

#

(╯°□°)╯︵ ┻━┻

loud gyroBOT
#

┬─┬ ノ( ゜-゜ノ)

steel heart
obtuse gale
#

What the fuck

#

I hate you

#

@forest pecan wakey

#

Why are we pinging pulsebeat?

steel heart
#

@forest pecan Idk

forest pecan
#

yo whos gay

#

xd

steel heart
#

@forest pecan

#

Yo

forest pecan
#

lol

#

@steel heart

#

@steel heart

steel heart
#

@forest pecan @forest pecan @forest pecan

#

Hhoifidhe

forest pecan
#

@steel heart @steel heart @steel heart @steel heart @steel heart @steel heart @steel heart

#

join vc

static zealot
#

yessssn't

leaden sparrow
#

Hello! I want to use the Pathfinding API, to make an entity go to a player, but i want the entity to keep a distance of X blocks, so i need to calculate the position to the player with an offset of X blocks, but I am not good at math so i need some help

Please @ me if you have an idea

frigid badge
#

come at me @hot hull

#

smh

hot hull
#

You're a weeb

#

❤️

frigid badge
#

lmao

prisma wave
#

Haskell

frigid badge
#

good language

prisma wave
#

you know it?

hot hull
#

Clojure still best lang

frigid badge
#

wouldn't say I'm good at it

#

but I kinda know it

#

i guess

prisma wave
#

Nice

frigid badge
#

it was my first real fp language

prisma wave
#

I wrote a hello world yesterday 🙂

#

It's arguably the only real FP language lol

frigid badge
#

true true

prisma wave
#

Seems cool though

frigid badge
#

it's fun to play with

onyx loom
#

frosty dont joke about that.

steel heart
#

Its not entirely functional?

#

Exceptions with io etc?

prisma wave
#

Haskell is as functional as possible

#

If it was "purely" 100% functional then most things wouldn't be possible

#

No printing, no file handling, etc

steel heart
#

They’re cool

steel heart
normal talon
#

agreed

steel heart
#

He is notoriously known for that

normal talon
steel heart
#

Ye

drowsy bay
#

Guy how do i cancel this runnable:

#
    public void startMagic() {

        taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(Main.class), new Runnable() {

            double var = 0;
            Location loc, loc1, loc2, loc3;
            final ParticleData particleData = new ParticleData(player.getUniqueId());

            @Override
            public void run() {

                if (!particleData.hasID())
                    particleData.setID(taskID);

                particleData.removeID();
                particleData.setID(taskID);

                var += Math.PI / 8;
                loc = player.getLocation();
                loc1 = loc.clone().add(Math.cos(var), 0, Math.sin(var));
                loc2 = loc.clone().add(Math.cos(var), 1, Math.sin(var));
                loc3 = loc.clone().add(Math.cos(var), 2, Math.sin(var));

                player.getWorld().spawnEntity(loc1, EntityType.ENDER_PEARL);
                player.getWorld().spawnEntity(loc2, EntityType.ENDER_PEARL);
                player.getWorld().spawnEntity(loc3, EntityType.ENDER_PEARL);
            }


        }, 0, 1);
    } ```
#

because

normal talon
#

please

drowsy bay
#

ah but thats dev general-

onyx loom
#

@steel heart we must start a crusade

#

🙂

obtuse gale
#

ah but thats dev general-
@drowsy bay see the channel topics :))

drowsy bay
#

okay thank you!!

onyx loom
#

More circlejerk relaxed area to discuss development topics

prisma wave
#

Is this that "paperspigot" discord I hear so much about

static zealot
#

nah this is the spigotpaper discord I'm afraid

steel heart
#

The paper spigot is kind of deliberately talking about controversial things about the spigot discord so probably gonna be beef soon

#

Btw paper is also going to make a hard fork I believe so they won’t be dependent on spigot :0

prisma wave
#

Sick of hearing about this "paperMC". Soon they'll want to be called PaperMojang the way this is going

static zealot
#

oh wait aren't they called like that already?

prisma wave
#

Utterly ridiculous

ocean quartz
#

Will be fun to maintain a plugin to support both

normal talon
#

the more you know.

static zealot
#

oh wait I just thought about that. Now you have to make 2 plugins to support spigot and paper pepeSad

normal talon
#

ma plugin works fine on paper tho?

static zealot
#

Btw paper is also going to make a hard fork I believe so they won’t be dependent on spigot :0

prisma wave
#

I don't think that's how it works

#

They will still use the same API, but paper won't need to wait for spigot to change things anymore if it's not using spigot as an upstream

steel heart
#

^

#

The api might also take 2 separate ways

frigid badge
#

it won't

#

they'll probably keep support for spigot plugins but make the API more attractive so people switch

#

which in turn forces server owners to switch too

#

which probably most already did anyway but still.

steel heart
#

I mean there is already minor changes in the paper api

#

And additions for that part

hot hull
#

Imagine using spigot

prisma wave
#

In an ideal world everyone would use Paper 1.16

#

But that's just not gonna happen

onyx loom
#

imagine

static zealot
#

Why do meteors always land in craters?

onyx loom
#

great question.

#

please tell me why.

static zealot
#

I'm here asking as well. I don't have an answer

onyx loom
#

☹️

#

the unanswered questions of the earth

steel heart
forest pecan
#

To add on

#

I also have some conversations

static zealot
#

I don't have conversations. I'm lonely 😦

onyx loom
#

im not even in spigot/paper discord fingerguns

static zealot
#

I think I'm on spigot

#

but I only ever joined to see the icon

forest pecan
#

Telling me I'm mini-moderating

#

This is very dissapointing

#

The staff response?

#

They just said alright you should update

steel heart
forest pecan
#

And kinda like

#

"padded" it down

#

Like

#

I don't get it

#

Why are they like this?

#

Being a new member there -- you get called a non and thrown around like shit

frail glade
#

@frail glade Damn, good luck
@hot hull

Just saw this. Thanks, haha. I ended up going on an 8 hour homework grind. I got a paper done, chem lab, 2 quizzes, and a test. Today I just have to design a 30 minute presentation on homelessness in America. Hopefully only taking 5 hours or so today. 😂

forest pecan
#

because nobody knows who you are

normal talon
#

yea that's what being a non means

#

🙂

#

a no-body

steel heart
#

Yeah I mean there software might be good but community definitely need better staffs in my opinion

forest pecan
#

yea that's what being a non means
@normal talon indeed

steel heart
#

I’m a non

forest pecan
#

In which community

normal talon
#

everyone is a non

steel heart
#

Civilization

forest pecan
#

same

steel heart
#

Pulse why 1.16.4

forest pecan
#

wait did i

steel heart
#

Build tools :/

forest pecan
#

accidently

#

push it back

#

1.16.3

#

cause fuck 1.16.4

steel heart
#

No

#

1.16.4 is the final build

#

So it’s fine

#

But annoying

forest pecan
#

Oh

#

I see

steel heart
#

Also nms changed between 3 and 4

hot hull
#

Just made myself an egg cheese sandwich, this shit is so good

steel heart
#

Lol

ocean quartz
#

Yasss egg sandwiches are amazing

onyx loom
obtuse gale
#

what

onyx loom
#

idek lol

obtuse gale
#

what am I supposed to see?

#

nothing in there

onyx loom
#

😳

obtuse gale
#

camo memes programming edition fingerguns

hot hull
#

kek

ocean quartz
#

Can someone test this for me?

maven { url = 'https://repo.mattstudios.me/artifactory/public/' }
implementation "me.mattstudios:triumph-config:1.2"

For some reason it's not importing even though it's on the repo

#

Doesn't show with errors on the gradle panel but does in the dependencies

#

Oh Library Gradle: me.mattstudios:triumph-config:1.2 has broken classes path

#

Oh i think i found the problem

obtuse gale
#

\o/

ocean quartz
#
- Required org.gradle.jvm.version '8' and found incompatible value '15'.
- Required org.gradle.usage 'java-runtime' and found incompatible value 'java-api'.

Yikes

#

Ayy fixed, was java version problem

static zealot
#

split an already small community into pieces.

he influenced TENS of thousands of young lives

#

doesn't sound like a small community to me.

hot hull
#

Berry small

ocean quartz
#

One is free software the other isn't

#

This guy..

static zealot
#

:))

obtuse gale
#

Ikr?

#

Imagine supporting free software

#

Tsk

static zealot
#

Why you hating? he just wants to make people self reliant

#

:))

hot hull
#

LOOK AT THAT CHAD

onyx loom
#

@hot hull use ur sharex profile on that image

hot hull
#

U mean this

ocean quartz
#

Beautiful

light venture
#

amazing

heady birch
#

Jokes on you because hes just paid me 100$ to put COMPULSORY server announcement ads every 5 minutes in KiteBoard 🙂 (joke)

hot hull
#

Only 100$

#

Weak

onyx loom
#

exactly that frosty 🌝

#

chad alert alert

prisma wave
#

Is there any combination of regex split + match?

for example, I want to replace text surrounded by <b> with some other text. I can use a regex to find every occurrence of <b>, but that won't tell me where it is so I can't replace it, and if I split, I can't extract the data from the <> tag

#

this is possibly an xy problem

#

I want to do simple html inspired parsing for message colours. eg ```
UnknownCommand: "Unknown Command. Type <2>/fpm help</2> for help"



obviously including a full markdown/html parser wouldn't be ideal.
#

so any other suggestions?

static zealot
#

who cares?

forest pecan
#

idk

#

figure i would post it here

#

to spread awareness

static zealot
#

👍

forest pecan
#

Oh shit

#

your right

ocean quartz
static zealot
#

oh shit

forest pecan
#

Damn

hot hull
#

Wait what why is it not os anymore

static zealot
#

read the articles

#

you'll find out why

hot hull
#

Oh wow you fucking assholes

static zealot
obtuse gale
#

xDDDD

steel heart
#

Luckperms no open source?

#

Y????

static zealot
#

read articles...

steel heart
#

Ok brb

static zealot
#

we literally sourced 3 articles

#

and ya'll coming here asking

steel heart
#

Fuck u

static zealot
#

he fell for it as well

#

jesus this is so good

hot hull
#

I hope you stub your toe.

static zealot
#

just copy paste this

#

in every discord channep

#

discord server*

#

including spigot, LuckPerms and others

obtuse gale
#

he fell for it as well
broh

static zealot
#

lets create some chaos

obtuse gale
#

unbeliavable

steel heart
#

Go away

obtuse gale
#

xDD

static zealot
#

time to find out

steel heart
#

Blitz sotp overusing bad trolls

static zealot
#

they are good

#

trolls

#

and I love overusing stuff

steel heart
#

God

#

Pls no

static zealot
#

should I just paste it in the LP discord server? probably going to get banned tho

steel heart
#

Lol

#

I can do it

obtuse gale
#

should I just paste it in the LP discord server? probably going to get banned tho
don't worry

static zealot
#

here I'll give you a copy paste

obtuse gale
#

I did

#

in the helpful channel xD

static zealot
#
Guys you heard about this? :
<https://www.spigotmc.org/threads/luckperms-is-no-longer-open-source.447014/>
<https://helpch.at/blog/why-luckperms-is-not-open-source-anymore>
<https://www.latlmes.com/breaking/luckperms-is-no-longer-open-source-1>
LuckPerms no longer OS :(```
#

I'm going to do it in general xD

#

did it in general-1

#

bcz @steel heart stupid and codeblocks it...

steel heart
#

DUDE

#

You ducking posted it in a cb

static zealot
#

ye for you to copy

#

so the links don't get embeded

steel heart
#

U dum

static zealot
#

they'll probably never admit it but I bet at least 10 people fell for it

steel heart
#

True

static zealot
#

welp @umbral mica fell for it and also another person

umbral mica
#

No I didn't fall for it

#

I was well aware it was a meme, I just wasn't sure of what variety

static zealot
#

oh I see.

#

anyways

#

this made my evening fucking amazing.

#

had a good laugh. time to go back to work

steel heart
#

Lol

static zealot
static zealot
#

@prisma wave you ok?

#

oh

prisma wave
#

dev-general

static zealot
#

now it makes more sense

#

I was wondering what is this [Service] dev-general

#

xD

prisma wave
#

[Service] dev-general

#

obviously

steel heart
#

Unless you’re genius no I don’t think that is possible. Idk maybe you could work around it with groups

prisma wave
#

😦

#

time to write "lexer" and "parser"... what language to use...

#

rust?

static zealot
#

pytho

#

n

ocean quartz
#

Go

prisma wave
#

tempting

#

this was supposed to be simple lol

#

shame there's no easy way to do it

steel heart
#

Use your beloved clojure

#

Or haskell

prisma wave
#

sadly i do not know enough

#

although apparently haskell is very good for lexers and parsers

steel heart
#

Is it?

#

Thought it was a meme language

prisma wave
#

no

#

it has some uses

#

same with clojure

#

clojure is great for backend because of JVM + its multithreading capability

steel heart
#

Ah yeah

prisma wave
#

😦

#

i might just use a different format for now

#

cba to make yet another useless library for a simple task

steel heart
#

Lol

obtuse gale
prisma wave
#

can you help

obtuse gale
#

mm you should probably do something like a replaceAll, from the match you extract the group/s and as a replacement you return the replacement you need ig

#

should = could

#

idk lol

prisma wave
#

hmmm

#

idk

#

the problem is it's not as static as that example

#

there will be different tags

#

and i need to extract the tag

obtuse gale
#

so it isn't like you have one regex pattern to match all

prisma wave
#

no not exactly

#

the format is <some-number>

#

and i need to extract the number

#

I'm currently using <(\/)?\d> for the regex

obtuse gale
#

and what do you need to replace with what?

prisma wave
#

so for example, hello <2>world</2> lol should replace with basically HELLO_COLOR + "hello " + COLOR_2 + "world" + HELLO_COLOR + " lol

#

it's for a dynamic colouring thing

#

so <2> refers to the configured "secondary colour" but then after closing, the default colour will be returned

#

i could always change it to just be like hello $2world $1 lol, but that seems like more effort for the end user

obtuse gale
#

if you want to extract the number couldn't you <(/)?(\d)>? the first group tells you if it's an opening tag or a closing one, and the second group is the number you are extracting

#

seems.... overly simple lol

#

unless I'm missing something

prisma wave
#

yeah, the problem is associating that with the surrounding text in the right way

#

i think i'm on to something

obtuse gale
#

how does a stack for every color used sound? push on <> and pop on </> thonking

#

so when popping, you peek and re-color it to that

prisma wave
#

lmao i've done exactly that

#

great minds think alike fingerguns

#

UnknownCommand: "Unknown Command. Type <2>/fpm help</2> for help"
&aUnknown Command. Type &c/fpm help&a for help

seems to work well

#

thanks for the assistance

obtuse gale
#

:D

#

Only thing you'd need to make sure is that the closing tag corresponds to the one on the top of the stack

#

Otherwise, throw runtime exception LAFF

prisma wave
#

yeah working on that rn

#

<2 suggest='/fpm help'>/fpm help</2> mf-msg 2??

#

it's like shittier html

steel heart
#

Lmao

obtuse gale
#

lol

#

🤡

onyx loom
#

🥲

#

ik u wanna change up the elara syntax a little bit... but what about having that for the syntax????????

prisma wave
#

😳

ocean quartz
#

That is like MiniMessage, basically more bloated syntax

prisma wave
#

aww

#

impossible to get a unique idea nowadays

ocean quartz
#

Ikr cryingblob

steel heart
#

Pretty simple

#

Do what no one else have done

prisma wave
#

🥲

steel heart
#

Stop sending these unknown emojis

prisma wave
#

what do you guys prefer?
[2 suggest='help']/help[/2] PlusOne
<2 suggest='help'>/help</2> MinusOne

#

get a better phone

static zealot
#

2

steel heart
#

Fuck u

#

You’re just being vicious now

#

2

prisma wave
#

wait really

#

lol

steel heart
#

It’s more ml like

prisma wave
#

i think the second one looks horrible lol

steel heart
#

I mean I like ml so just a preference

ocean quartz
#

I kinda prefer 1
Though tbh [/help](suggest: help) better ;p

prisma wave
#

i'd have to disagree on that one

#
{2 suggest: 'help'}/help{/2}
``` ?
steel heart
#

Dude

#

That one is hella lame

#

But it was bound to happen

prisma wave
#

☹️

#

lang for a plugin

#

nothing special

#

just overthinking everything 🙂

ocean quartz
#

I just really don't like the closing tags
It's like boilerplate having to repeat the tag to close it

prisma wave
#

yeah i guess

#

but how would you know where it ends without it?

steel heart
ocean quartz
#

^

prisma wave
#

oh

#

hmmmmmm

#

you might have a point there

ocean quartz
#

That's what my lib does which is literally markdown, much simpler than html

prisma wave
#

yeah markdown is nice

steel heart
#

So what about tomlxhtmlhtmlyaml

prisma wave
#

i was hoping to only have to use regex here but probably not 🥲

#

[/help](suggest: help, hover: Click for help) ?

ocean quartz
#

What i do is [/help](suggest: help|hover: Click for help)

prisma wave
#

hmm

#

I've just realised this isn't even what I wanted to originally do lol

#

i want colour placeholders, eg [error]You did something wrong![/error]

#

this has mutated a little bit lol

#

so with that in mind, any suggestions?

#

maybe i'll scrap the closing tags and just make people do it themselves

ocean quartz
#

Back to working on gradle plugin and back to suffering, great

#

So, let's see if i understand, I have extension A, i create it, works fine
I copy A and name it B, now I have A and B both the same code, both same creation, A works, B doesn't..

#

Thanks Gradle

obtuse gale
#

yes

#

that is how it works

obtuse gale
#

Soooo someone hit me up for a business inquiry
They wanted me to be lead dev on a (very) small network, but I'm so full of things to do and so little time to spend
So I naturally said yes
Someone send help ;-;

static zealot
#

help is on its way

#

oh no we just got a S.O.S from the help team. seems like their boat is sinking. I'm afraid you're going to have to handle your problems by yourself.

obtuse gale
#

;-;

static zealot
#

hehe

obtuse gale
#

I'm fucked lmao

static zealot
#

how much is the guy paying? I can take your job if its paying well. but they need to know I'm a very good dev

#

omg. I didn't even realise. In the club is almost at 1B views

#

time to get it 3mil views by myself.

lost edge
#

Anyone know of a modern version or a replacement for redisbungee?

hot hull
#

=stats

compact perchBOT
#
HelpChat Stats | Invalid Usage

Command Usage: =stats <object> [days]

Currently Tracking Stats for:
messages, commands, images, words, xp, levelups, wins, daily, users, ecloud, ecloud_breakdown, top_channels, top_users

hot hull
#

=stats messages

compact perchBOT
#
HelpChat Stats | Sent Messages

Messages sent over the past 7 days sent by users.

hot hull
#

If you mean users with most messages I don't think there is one

pallid gale
#

=stats top_users 30

compact perchBOT
#
HelpChat Stats | Top Users

Top users based on messages in the last 30 days:

BlitzGamer_88#0531

8,049

Brister Mitten#8756

4,631

Fefo❤#3958

4,483

efefury#6969

4,338

Conclure#0101

2,959

Frosty#3308

2,655

hot hull
#

Scam

#

Bruh it's the 14th and Blitz has 8k

pallid gale
#

its not per month

#

its just the last 30 days

hot hull
#

Okay yea don't mind me today, I'm retarded

onyx loom
#

what the fuck

#

since when am i not top 5 anymore peepoSad

obtuse gale
#

Can you see how many messages if youre not on the top 6?

#

I havent been that active recently tbh

onyx loom
#

i think mystats does

pallid gale
#

=mystats

compact perchBOT
#
Your Monthly Stats

Your Chat Stats for this month so far are:

Top Emoji:

:fingerguns: • 4 Uses

Top Command:

=daily • 15 Uses

Top Channels:

#cubes-pings 189 Messages
#staff-chat 40 Messages
#off-topic 29 Messages

hot hull
#

Only since the first

onyx loom
#

actually that shows top 3 channels, not too accurate tho

hot hull
#

I love how I have the cubes pings role but I don't have the channel ;C

quiet depot
#

=mystats

compact perchBOT
#
Your Monthly Stats

Your Chat Stats for this month so far are:

Top Emoji:

:fingerguns: • 3 Uses

Top Command:

=remindme • 2 Uses

Top Channels:

#off-topic 131 Messages
#cubes-pings 125 Messages
#dev-general 21 Messages

pallid gale
#

also probs should move channel

onyx loom
#

pain frosty.

hot hull
#

Don't you dare take away my role tho cube

#

Gotta collect em all

safe lily
#

what Item Builder lib would ya guys recommend to me?

prisma wave
#

Literally any

safe lily
#

lol

prisma wave
#

they all do pretty much the same thing

safe lily
#

is there any which supports PDTs

prisma wave
#

the one bundled into MF-blah does i think

#

no idea if there's a standalone version

safe lily
#

MF-blah?

#

MF-GUI?

prisma wave
#

yeah or chat or cmd

#

idk

#

lol

#

probably gui

safe lily
#

but it doesnt have PDTs?

hot hull
#

Pdt?

prisma wave
#

wait what's PDT

forest pecan
#

PDC?

prisma wave
#

do you mean PDC?

ocean quartz
#

ItemBuilder is only on the GUI one

safe lily
#

oups

#

I mistyped

prisma wave
#

ah

hot hull
#

Pdc?

safe lily
#

yeah I meant PDCs

prisma wave
#

it has NBT afaik, i guess that's the same thing

#

@hot hull persistent data container

hot hull
#

Ah

safe lily
#

no it aint the same thing

ocean quartz
#

Well, it kinda is lol

prisma wave
#

isn't PDC just a wrapper for NBT?

ocean quartz
#

PDC is just the API's version of an NBT editor

#

@prisma wave Do you know by any chance how to make gradle do something like:

implementation core("1.0.0")

Without needing static imports?
The idea is to do something like ManaDrop does with

compileOnly spigotApi("1.16.4")
#

Though mana drop needs static imports for it

safe lily
#

PersistentDataContainers are way better than NBTTags

#

Consistent API, will be better supported by mojang and spigot in the future

ocean quartz
#

Mate, PDC is a wrapper for NBTTags, differnt things lol

distant sun
#

any other storage > nbt

safe lily
#

yes

ocean quartz
#

NBT means Named Binary Tag, it's minecraft's "storage" system

prisma wave
#

@ocean quartz you might be able to do some groovy hacks to define a function, or you can use apply from: 'something.gradle'

ocean quartz
#

PDC is only there to access and edit them

safe lily
#

It has the ability to store more types of information easily

ocean quartz
#

@prisma wave Oooh let me try

#

It stores the same as any NBT lib

#

It's the official one

#

Nothing more

#

It literally is an NBT lib

steel heart
#

Plain files though reversed_fingerguns

obtuse gale
#

It has the ability to store more types of information easily
The fuck

#

It is literally the exact same thing

#

Because pdc is the way you access nbt

#

The underlying system for pdc is nbt

steel heart
#

Yeah pdc is just some interfaces tridance

ocean quartz
#

What version would look better? thonking
1️⃣

dependencies {
    spigot "1.16.2"
    commands "1.0.0"
    ...
}

2️⃣

somethingElse {
  spigot = "1.16.2"
  commands = "1.0.0"
  ...
}

3️⃣ (Not sure if i can make this one)

somethingElse {
  spigot("1.16.2")
  commands("1.0.0")
  ...
}
prisma wave
#

1

hot hull
#

1

forest pecan
#

4️⃣ (gay people dependency)
Shade the fucking jar into your plugin bitch. You scared of size? Well guess what I don't give a fuck on what you say and shading the spigot jar is certanly the most best and better the greatest and biggest and the fattest and litttlest and fattest jar in the entire world travis scott maybe idk

ocean quartz
#

Huh? You doing alright buddy?

forest pecan
#

Not sure

#

I think I ate a travis scott meal this morning

prisma wave
#

Travis Scott burger

ocean quartz
#

What does this have anything to do about jar size? nokek

forest pecan
#

jar size shading dependency = fat jar

#

travis scott burger -> fatt

ocean quartz
#

Yes i know, you're stating the obvious, i don't understand what that has anything to do with my question lol

forest pecan
#

it makes very much sense

distant sun
#

yesnt

hot hull
#

He's an idiot that's what cursed_fingerguns

ocean quartz
#

Aight lol

forest pecan
#

I accept

ocean quartz
#

Time to copy what PDM does for registering configuration kek

prisma wave
#

now that's a name i've not heard in a long time

#

a long time indeed

hot hull
#

Does it work yet

prisma wave
#

eh

#

mostly

#

i kinda got sick of it

#

i'll do a rewrite eventually

hot hull
#

Eventually yesnt

hot hull
#

Can someone tell me what the fuck causes this, because it happens way too often and I've no idea why

Caused by: java.lang.IllegalStateException: zip file closed

forest pecan
#

Did you close the zip reader or inputstream whatever

#

before reading

obtuse gale
#

Gonna need a lil bit more context, frosty

#

Is it a jar file that's being read?

#

If the classloader was closed after unloading the classes... yeah gl

hot hull
#

Ah okay so it is what I thought it was

obtuse gale
#

Paper closes the classloader if the plugin fails to initialize/load/enable (i.e. if it throws on any of those stages)

#

because they have that ability reversed_fingerguns

steel heart
#

Epic

mental trench
prisma wave
#

redirections are usually handled with a 302 response iirc

#

although it doesn't look like this one is

heady birch
#

is EnumSet.contains fast?

#

Assume so

steel heart
#

Yep

prisma wave
#

yes

steel heart
#

Faster than a HashSet or any other set I believe

prisma wave
#

definitely constant time at the very least

#
public boolean contains(Object e) {
        if (e == null)
            return false;
        Class<?> eClass = e.getClass();
        if (eClass != elementType && eClass.getSuperclass() != elementType)
            return false;

        return (elements & (1L << ((Enum<?>)e).ordinal())) != 0;
    }```
steel heart
#

Or has the highest probability of the lowest time complexity

prisma wave
#

yeah it's literally just a bitwise and

#

super fast

obtuse gale
#

it is at least as fast as a hashset

prisma wave
#

faster

#

no hash to compute

obtuse gale
#

but there are no guarantees that it will be faster

heady birch
#

whats the slowest reflection operations, getting the fields and stuff or invoking the methods and constructors

obtuse gale
#

that's what the javadoc states ¯_(ツ)_/¯

prisma wave
#

lookup is slower than invocation

steel heart
#

Not faster but higher probability to not lose time complexity

prisma wave
#

yeah, everything in an enumset is going to be at least as fast as a hashset, if not faster

steel heart
#

Wouldn’t be surprised

heady birch
obtuse gale
#

why not just Class#getDeclaredField(String)?

heady birch
#

Im trying to cache it

prisma wave
#

if speed is 100% important then use a Table

heady birch
#

A common class to provide caching instead of (currently) my 100 or so static fields of methods

prisma wave
#

since then you can have constant lookup for both the fields and the name

heady birch
#

Only if its not guava

prisma wave
#

it's guava

#

🙂

heady birch
#

Isnt like 1.8 not have guava or somehitng?

prisma wave
#

Map<Class<Map<String, Field>>

#

pretty sure it has it

steel heart
#

Guava Tables are great

heady birch
#

Is a table more performant than that nested map BM?

prisma wave
#

i have no idea, probably not

#

table is just a nicer wrapper of nested map

steel heart
#

Depends

#

It consist of Cells similar to Entries as well as a backed row and column map

heady birch
#

So.. which is best?

prisma wave
#

Table

#

nicer api

steel heart
#

What’s the options?

#

Like What types ?

prisma wave
#
table.put(a, b, c)

rather than ```
Map<B, C> map = table.get(a)
map.put(b, c)
table.put(a, map)

steel heart
#

It’s rather awkward doing that manually

#

And the hash based table has some optimizations for that

#

Rather good and convenient ones

heady birch
#

But considering the classes im looking at may have like 1-8 fields probably less methods <Class<?>, Field[]> could work?

prisma wave
#

why not map them by name

#

if you're trying to optimize, the tiny benefit of constant lookup might be worth it

#

maybe, maybe not

heady birch
#

Perhaps

steel heart
#

Niall try the different things

heady birch
#

TIME

steel heart
#

It will give you the best perception of which one is the best

heady birch
#

And some adapters use getField on the fly... not consistent

steel heart
#

Make them final?

heady birch
#

And what is this computeIfAbsent, slower than a simple null check from hashmap?

#

No they cannot be made final

steel heart
#

Why not

heady birch
#

Each section there can fail, in that case they remain null, and the rest would be initialized for example

steel heart
#

If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.
If the function returns null no mapping is recorded. If the function itself throws an (unchecked) exception, the exception is rethrown, and no mapping is recorded. The most common usage is to construct a new object serving as an initial mapped value or memoized result, as in:

map.computeIfAbsent(key, k -> new Value(f(k)));

Or to implement a multi-value map, Map<K,Collection<V>>, supporting multiple values per key:

map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);

#

What

hot hull
#

Improper naming if they aren't final <o/

steel heart
#

That’s not a reason not to have it final?

#

You know you can use multiple static init blocks

heady birch
#
static A a;
static B b;
static C c;

try {
 a = ...
} catch (..) {

}

repeat for b, c...
#

a can be null

steel heart
#

So?

heady birch
#

more declartion required

#

try {
a = ...
b = ...
c = ...
} catch (..) {
a = null;
b = null;
c = null;
}

steel heart
#

Quiete a bad reason still

prisma wave
#

@heady birch nested map seems to be about 8 times faster for a slightly-inaccurate benchmark

steel heart
#

Than table?

heady birch
#

Could u show code?

prisma wave
#

yeah 1 sec

#

it's a mess, but should mostly accurately represent it

#
import kotlin.system.measureNanoTime

data class A(val a: String, val b: Int)

val map = mapOf<Class<*>, Array<A>>(
        String::class.java to arrayOf(A("a", 1), A("b", 2), A("c", 3), A("d", 4)),
        Int::class.java to arrayOf(A("e", 5), A("f", 6), A("g", 7), A("h", 8)),
)

val nested = mapOf<Class<*>, Map<String, A>>(
        String::class.java to mapOf("a" to A("a", 1),
                "b" to A("b", 2),
                "c" to A("c", 3),
                "d" to A("d", 4)),
        Int::class.java to mapOf(
                "e" to A("e", 5),
                "f" to A("f", 6),
                "g" to A("g", 7),
                "h" to A("h", 8)))

var totalTime = 0L
repeat(1000) {
    totalTime += measureNanoTime {
        val x = map[Int::class.java]!!
        for (e in x) {
            if (e.a == "g") {
                e.b.hashCode() //prevent optimization
            }
        }
    }
}

"Comparing strings linearly: " + (totalTime / 1000).toString() + "ns"

totalTime = 0L
val hash = "g".hashCode()
repeat(1000) {
    totalTime += measureNanoTime {
        val x = map[Int::class.java]!!
        for (e in x) {
            if (e.a.hashCode() == hash) {
                e.b.hashCode() //prevent optimization
            }
        }
    }
}
"comparing hash codes linearly: " + (totalTime / 1000).toString() + "ns"

totalTime = 0L
repeat(1000) {
    totalTime += measureNanoTime {
        val x = nested[Int::class.java]!!
        val y = x["g"]!!
        y.b.hashCode()
    }
}

"Nested hash maps: " + (totalTime / 1000).toString() + "ns"
#

sorry wall of text

steel heart
#
import kotlin.system.measureNanoTime

data class A(val a: String, val b: Int)

val map = mapOf<Class<*>, Array<A>>(
        String::class.java to arrayOf(A("a", 1), A("b", 2), A("c", 3), A("d", 4)),
        Int::class.java to arrayOf(A("e", 5), A("f", 6), A("g", 7), A("h", 8)),
)

val nested = mapOf<Class<*>, Map<String, A>>(
        String::class.java to mapOf("a" to A("a", 1),
                "b" to A("b", 2),
                "c" to A("c", 3),
                "d" to A("d", 4)),
        Int::class.java to mapOf(
                "e" to A("e", 5),
                "f" to A("f", 6),
                "g" to A("g", 7),
                "h" to A("h", 8)))

var totalTime = 0L
repeat(1000) {
    totalTime += measureNanoTime {
        val x = map[Int::class.java]!!
        for (e in x) {
            if (e.a == "g") {
                e.b.hashCode() //prevent optimization
            }
        }
    }
}

"Comparing strings linearly: " + (totalTime / 1000).toString() + "ns"

totalTime = 0L
val hash = "g".hashCode()
repeat(1000) {
    totalTime += measureNanoTime {
        val x = map[Int::class.java]!!
        for (e in x) {
            if (e.a.hashCode() == hash) {
                e.b.hashCode() //prevent optimization
            }
        }
    }
}
"comparing hash codes linearly: " + (totalTime / 1000).toString() + "ns"

totalTime = 0L
repeat(1000) {
    totalTime += measureNanoTime {
        val x = nested[Int::class.java]!!
        val y = x["g"]!!
        y.b.hashCode()
    }
}

"Nested hash maps: " + (totalTime / 1000).toString() + "ns"

Xp

prisma wave
#

so basically make a kotlin scratch file (scripting), and paste that

#

the A() class is supposed to mostly replicate what you'd have - String key (field name) and some arbitrary value

#
Comparing strings linearly: 5057ns
comparing hash codes linearly: 1777ns
Nested hash maps: 188ns
#

this is what i got

#

obviously not gonna be 100% accurate, but it seems like the hashing is worth it

#

although JIT seems to get involved when you repeat more than 10000 times

ocean quartz
#

@prisma wave @hot hull 1 is not possible cryingblob
spigot "1.16.2" is invalid syntax, needs to have group:id:ver

steel heart
#

you can make some funky stuff to bypass the version iirc

#

Or like lazy declare that

prisma wave
#

Isn't it a function?

#

That would translate to compileOnly blah

ocean quartz
#

It's a configuration

prisma wave
#

Oh

#

Pretty sure you could do it as a function

ocean quartz
#

Can you have functions in the dependencies?

prisma wave
#

I believe so

ocean quartz
#

But to do it with a plugin seems like it'd required to have a static import

heady birch
#

@prisma wave Cool results but how many things did you have in the maps?

#

Cos I'm looking at 8 max I think

prisma wave
#

Each map had 4 values

#

I took the average of 1-8 like you said

heady birch
#

Wow and the hashmap was really ~8 times faster?

prisma wave
#

for 100 invocations, yes about that much

#

it evens out a bit more with 5x faster at 1000 invocations, and only 2x faster at 10000

#

roughly

#

they're microbenchmarks

#

don't trust them too much

heady birch
prisma wave
#

i don't think spring has speed in mind

#

idk, you can do your own tests, but mine gave fairly consistent results

heady birch
prisma wave
#

white theme

#

;-;

heady birch
#

this gets tricky if you start having multiple methods with different args

prisma wave
#

yeah you might want to have a Map<Class, Map<String, Method[]>> or something

#

or make some hashing function for the method's signature

heady birch
#

Now whats a nicer name ColourConverter or ColourTransformer

prisma wave
#

what does it do

heady birch
#

set color

prisma wave
#

transformer probably

heady birch
#

Yeah I like that better too

prisma wave
#

is this some sort of trick

#

kotlin + coroutines + adventure + minimessage = 2.5 MB...?

forest pecan
#

helpo

#

im using intellij for the first time

obtuse gale
#

👍

forest pecan
#

and i dont know how to import

#

git

#

projects

obtuse gale
forest pecan
#

fuck

#

i accidently created a project

#

xD

prisma wave
#

yep

#

was a trick 😦

#

all modules get minimized

forest pecan
#

So i

#

imported my first project

#

from github by linking

#

the problem is now

#

when i import second project

#

first one dissapears?

#

nani

obtuse gale
#

from where

prisma wave
#

File > open recent

#

intellij is 1 window per project

#

unlike eclipse

forest pecan
#

o

obtuse gale
#

I hate eclipse's project/file management

#

fuck

forest pecan
#

apfhsiiaoshg

#

i want them all together

#

😭

obtuse gale
#

it was literally the very single thing that every time I tried it made me stay away

forest pecan
#

lol

prisma wave
#

@quiet depot sorry for ping but you may know this
how can i exclude a module from shadowjar minimization, but not the module's dependencies?

nvm i think i got it

forest pecan
#

is there any way to group them so i can switch between projects easier

obtuse gale
#

is there any way to group them so i can switch between projects easier
run two instances?

#

lol

forest pecan
#

gayyyyyyy

obtuse gale
#

😊

forest pecan
#

theres gotta be a way

#

lmao

#

Oh wow

#

compiling though however

#

is easier because you can compile them based from a list

#

instead of manually click on a project in eclipse and run as

#

and the options are already there

#

pog

#

i think imma become hybrid

#

intellij for plugins

#

eclipse for competition 😊

prisma wave
#

fuck

obtuse gale
#

who 😉

prisma wave
#

just remembered PaperLib exists

#

wasted like half an hour making abstractions

#

😔

obtuse gale
#

lmfao

#

fuck you barry

prisma wave
#

thank you mr dalek

forest pecan
#

Wow intellij is quite nice

#

i think i have a new crush

obtuse gale
#

b-but

#

i was your crush..

#

😦

forest pecan
#

o shit

#

uhh

#

one can have multiple wives

#

😊

obtuse gale
forest pecan
#

wait

#

how to

#

push

#

onto github

#

then

obtuse gale
#

that is if you wanna gui

#

I personally just cmd it

forest pecan
#

oh

#

uwu

#

oh god though

#

the colors

#

xD

#

why does it say

#

i have 69 errors

#

in one file

#

lmfao

#

oh

#

bukkit dependencies

#

and spigot api

#

why it no work tho

#

i have my pom.xml good

#

but it cant recognize dependency

obtuse gale
#

shw

#

show

forest pecan
#

i cant upload images

#

directly

#

😭

obtuse gale
#

F

#

thanks a lot imgur, UHD

forest pecan
#

lol

#

so red = bad

#

right

#

error

obtuse gale
forest pecan
#

it says errors in dependencies

#

cant find spigot repo

#

jetbrains annotaionts repo

#

matt repo

#

and security cams repo

#

oh wiat

#

i realized

#

i need to set it up very differently

obtuse gale
#

not sure what you mean by that lol

forest pecan
#

awit

#

nvm

#

wait

#

i clicked rebuild module

#

and everying magically

#

fixed

steel heart
toxic crow
#

Hey can someone help me figure out how to make custom head as item stack (like the ones with value) ?

#

Like this :

JhZnQubmV0L3RleHR1cmUvNGVhOTZjNDkzMDIxMzIxNjdjODFjODdiNzllMDZkZDM0MzAyMGZmMjA5MjNmY2U4N2QzODhjNDYyNDA5MjYxYyJ9fX0="}]}}}```
steel heart
#

Yeah

toxic crow
#

'cause all i can find is people using skullowner :/

steel heart
#

With code?

toxic crow
#

what with code ?

steel heart
#

You realize this isn’t a command thingy stuff it’s for general development talk

#

People who code java etc

#

But ofc I can help

toxic crow
#

yup

#

I mean in Java

#

Like put this as an ItemStack

steel heart
#

Okay then we’re good

ocean quartz
#

If you wanna take a look

#

The texture string is the "Value" you have there

steel heart
#

You have to do base 64 with reflection or does it exist in api?

toxic crow
#

I hear everyone talking about base 64 and reflection

#

so i guess it's that

steel heart
#

Yeah reflection pretty sure

forest pecan
#

conclure

#

get in vc with me

#

now

#

joking lol

steel heart
#

U muted u gay

forest pecan
#

i wanted to stream

#

gay

#

lol

steel heart
#

Do some Indian coding tutorial

#

Aka talk as well

forest pecan
#

im so shit at it

toxic crow
#

today we learn code guys

forest pecan
#

i just tried it and i failed

#

lmfao

leaden sparrow
#

Hello, I am searching for a way to easily store class objects to files, eg json or yaml

prisma wave
#

Gson

obtuse gale
#

Jason

#

Ghee, son

leaden sparrow
#

okay basically i want to store a list of Objects in a file with a section, just like in spigot, but without spigot

#

its a list of the Object class named PendingGiveaway

surreal quarry
#

memory usage on my server is getting dangerously close to the max :)

lost edge
#

Anyone use ${project.version} for version in their plugin.yml with maven? I've notices that its not always replacing the version when I compile my plugin anyone know why?

obtuse gale
#

"not always"?

#

is it random?

#

did you enable resource filtering or w/e it's called?

obtuse gale
#

anyone used android studio before?

static zealot
#

frosty I think

hot hull
#

"used"

#

Watched a frozen screen of it every 15 seconds yes

obtuse gale
#

yes need help frosty please how make text input that only accepts x amount of characters

#

I made text input but if you type too much it goes offscreen

#

and the text is like centred and doesnt go down

#
[                                              ]
[     This is how it types and if you type too ]much it goes offscreen
[                                              ]```

[ This is how it should ]
[ and if it goes over it ]
[ should go to a new line ]

static zealot
#

make a limit for the number of characters that are imputed xD

obtuse gale
#

thats not gonna stop it going offscreen

prisma wave
#

Attach an edit listener or whatever it's called to the text box, and cancel the event if the characters are more than X

hot hull
#

No clue Aj, wouldn't it be smarter to check the pixel width? Since character amount won't really be all that accurate

obtuse gale
#

I mean thats not really user friendly is it

#

"oh yeah you can use the character I here, but not B b ecause B takes too many pixels`

#

anyway thats not the main problem rn

#

the main problem is thnis

old wyvern
#

That being?

obtuse gale
#

one sec

#

see how it all just goes on the one line

#

this wasnt the best video tbh

#

This is the layout, but it stays at the top line

#

got it a bit better, still not 100% fixed

hot hull
#

Well I mean yea check for the entire words pixel length, if it's too long than the available space, next line that bitch

old wyvern
#

Are you not using a multiline text?

#

Seems to work just fine for me

#

Make sure to set layout height to wrap

quiet depot
#

lel this is a funny

If Java had true garbage collection, most programs would delete themselves upon execution.

old wyvern
#

o.o

obtuse gale
#
    <EditText
        android:id="@+id/bottomText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="24dp"
        android:background="@drawable/border"
        android:ems="10"
        android:gravity="top"
        android:hint="Enter bottom text"
        android:inputType="textMultiLine"
        android:minHeight="150dp"
        android:padding="10dp"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />```
#

thats all right isnt it?

obtuse gale
#

imma just come back to itlol

obtuse gale
#

it was the ems="10"

static zealot
#

👍

hot hull
#

Daily food update, made homemade tortillas, this is was delicious AF

heady birch
#

So you see I had some nice MyClass.of(String) methods but now I need a singleton in them

#

so its gonna be

#

MyClass.of(String, DependentComponent) 😦

prisma wave
#

😦

onyx loom
#

this is so sad.

prisma wave
#

List.fold is actually amazing

#

i love it

quiet depot
#

what does it do

#

fuck i really need to make that javadoc bot

prisma wave
#

it's the fp equivalent of looping over a list and reassigning a variable

#

lemme get an example

safe lily
#

are you using Matts Command Framework elara?

prisma wave
#

nah

#
for (placeholder in placeholders) {                              
    message = message.replace(placeholder.key, placeholder.value)
}                                                                
return msg

this would be the code imperatively, and with fold it's just kotlin return placeholders.entries.fold(message) { acc, entry -> acc.replace(entry.key, entry.value) }

#

it's like reduce but with an initial value

quiet depot
#

right

#

and how is this a concept unique to fp?

prisma wave
#

wdym lol

#

it's the declarative equivalent of that first code

#

i just like the convenience of it

quiet depot
#

aight

safe lily
quiet depot
#

it's the fp equivalent of looping over a list and reassigning a variable
I said that because you said it's the "fp equivalent", so I assumed it'd be something only implementable in functional programming

prisma wave
#

oh no i just worded that weirdly

#

@safe lily what command

safe lily
#

/item

#

I've send the code

potent vale
#

@safe lily if you cant find help you can dm me

prisma wave
#
final CommandSender sender {
  Player player = (Player) sender;
```this seems risky
#

also have you registered the command?

safe lily
#

no there is a check

#

there is a console check

prisma wave
#

where lol

safe lily
#

in the framework

#

also have you registered the command?
yes

#

commandManager.register(new ItemCommand(this, itemRegistry));

#

commands:
item:
aliases: [items, itemsystem]
description: Manage the item system.
usage: /item <create, get> [ID]

prisma wave
#

you don't need to include it in plugin.yml i don't think

#

that's the point of a command framework

safe lily
#

oh

prisma wave
#

ive never actually used mf-cmd lol

safe lily
#

Ima check

prisma wave
#

so maybe now's a good time to @ocean quartz

quiet depot
#

yeah rpf is where it's at

#

real pretty framework

prisma wave
hot hull
#

real pretty framework
@quiet depot That is copyrighted sir, you shall be sued.

quiet depot
#

o

whole mica
#

Does anyone know a way to crunch disk space without wiping player data and claims from griefprevention and player data overall?

old wyvern
whole mica
#

Appreciate it :D

distant sun
#

fuck i really need to make that javadoc bot
@quiet depot do you think?

#

I made one for spigot, just need to clean the code a little bit

prisma wave
#

is a block snapshot thread safe?

frigid badge
#

logically I'd say yes but since it's bukkit idk

prisma wave
#

yeah idk

#

just trying to think of a way to concurrently iterate over blocks in a region without needing nms

#

oh blockstate*

#

so probably not

#

huh

#

it seems like World#getBlockAt doesnt actually trigger the async catcher

#

not on 1.8.8 at least

#

so theoretically i can just parallel stream it

hot hull
#

Why you on 1.8.8 is the real question

prisma wave
#

compatiblity

hot hull
#

screw that, latest or nada

prisma wave
#

most people want 1.8, so i've got to give it

#

bruh who's running a 1.16 prison server

hot hull
#

I mean I don't know what plugin we're even talking about so fingerguns

prisma wave
#

private mines plugin

#

afaik most prison servers are 1.8 or 1.12

hot hull
#

Yea you kinda can't effectivelly run it on any other version

#

Anyhow if you're just checking the block's type, there's a getBlockType method which is supposed to be faster

prisma wave
#

on world?

hot hull
#

No clue, I can't remember

prisma wave
#

there's getBlockTypeIdAt in world

#

but that's magic values

#

anyway no need to prematurely optimise

hot hull
#

Who doesn't love some magic values amirite

obtuse gale
#

is a block snapshot thread safe?
You mean chunk snapshot?

#

Are there single block snapshots? thonking

hot hull
#

yes

prisma wave
#

no i got confused

#

i meant blockstate

hot hull
#

Same shit