#dev-general

1 messages Β· Page 35 of 1

half harness
#

Don't commit. Idea

#

Don't feel like arguing with autocorrect on that

#

But add the entire folder to gitignore

tardy dagger
#

well at least some of those files should be commited according to jetbrains docs

agile galleon
#

I find it annoying when multiple people use different IDEs on the same project and each IDE adds its own folder

#

So you have vscode, idea, netbeans and so on

tardy dagger
#

that's true, yeah

#

I'll refrain from committing it in the future. However, any comments on the code itself?

half harness
#

Ex for code styling you should use something universal

#

Forgot the name atm

#

Ah it's called editorconfig

#

Also it's set up to your setup

#

Ex if I don't use the same jdk name and version as you, it gives me an error iirc

half harness
tardy dagger
tardy dagger
half harness
half harness
#

Couple things tho

tardy dagger
tardy dagger
half harness
#

These are all small things but first, u can do "string with $variable and ${expressions()}"

#

Although some ppl prefer this

tardy dagger
half harness
#

A lot of this is also preference

half harness
#

Also I think u can do String#first

#

But not 100%sure

#

In the extension function

tardy dagger
half harness
#

Alr

tardy dagger
#

yeah that's not a regex because I throw that into the following actual regexes

#

it's basically a placeholder that I need in other regexes

#

that's also why I called it REGEX_STRING... instead of REGEX...

half harness
#

Ohhh OK that can be a cost then

#

Const*

tardy dagger
#

oh yeah I tried to make my regex objects const but it complained that only primitives and strings can be const

half harness
#

Ohh u use the ${} thinf

#

Nice

tardy dagger
#

but you're right, that one could be const

#

I also missed using my REGEX_STRING... thingy in line 14

half harness
tardy dagger
#

I'm still looking for a regex to detect double annotations that are not inside <a> tags

half harness
tardy dagger
#

I came up with this weird shitbut it doesn't seem to work properly

(?<before><span class="annotations">((.|\s)*?)(?<annotation>@[A-Za-z0-9_.]+)\s*?)(?<between><\/span>(.|\s)*?<span class="return-type">)(.|\s)*?\k<annotation>
half harness
#

Regex is fun

#

Maybe later I can play around for a bit although I'm no regex pro and only know basic syntax lol

tardy dagger
#

basically I wanna catch @Whatever things that are both part of the <span class="annotations"> and the span with class "return-typr", then remove it from the return-type span only

half harness
#

Also this code seems a lot better than my first kotlin code lol
Did u like study the docs or smth?

tardy dagger
#

i got it working fine for <a>@Whatever</a> things but not for stuff without the link tag

half harness
#

Yeah

#

I just jumped right in

#

Like you're even using File#writeText

#

How'd u find that out

#

Took me a while to find out things like that

tardy dagger
#

I read a few things about kotlin many years ago but already forgot everything. the only things I really remember are

  1. methods are fun lol
  2. return type is after variable name varName: varType
  3. val = final, var = normal variable
  4. lambdas are weird, it's not forEach(thing -> { ... }) but just forEach { (optional name -> ) }
#

that's basically all I know about kotlin

#

oh and ofc the weird thing that you can call setters using = and stuff

#

I'm still a bit confused over AutoClosables though

#

I'm wondering if my current code leaves the file open, or not

half harness
#

In that case I don't think u need to close anything but usually you'd use closable.use {}

tardy dagger
#

yeah I tried to do file.readText().use { } but that didn't exist

half harness
#

Ye it just returns the string directly

#

I think

tardy dagger
#

so no need to close it again or use .use { }?

half harness
#

Yea

tardy dagger
#

ok great, thanks

#

Tomorrow I'll try to fix my regex to avoid duplicate non-linkted annotations that appear both in Annotations and Return-Type columns

#

I already pull-requested this plugin to papermc but ofc they complained about not wanting to use a third-party-repo πŸ˜„

#

(which is understandable)

half harness
#

although didn't you request your plugin to gradle plugin portal?

half harness
#

or ```kt
project.tasks.create(fixJavadocTaskName, FixJavadoc::class.java, javadocTask).apply {
group = "documentation"
description = "Removes duplicated annotations created by ${javadocTask.name}"
dependsOn(javadocTask)
javadocTask.finalizedBy(this)
}

#

or if create is a kotlin method, ```kt
private fun addFixJavadocTaskToJavadocTask(project: Project, javadocTask: Javadoc): FixJavadoc = project.tasks.create(
name = "${javadocTask.name}FixDuplicatedAnnotations",
type = FixJavadoc::class.java,
constructorArgs = javadocTask
).apply {
group = "documentation"
description = "Removes duplicated annotations created by ${javadocTask.name}"
dependsOn(javadocTask)
javadocTask.finalizedBy(this)
}

#

Β―_(ツ)_/Β―

#

all preference

#

im just showing some options

half harness
#

but i feel like that would be better

#

Β―_(ツ)_/Β―

half harness
#

or even better

#
// line 13
tasks.withType(Javadoc::class.java).map(::addFixJavadocTaskToJavadocTask)

private fun Project.addFixJavadocTaskToJavadocTask(javadocTask: Javadoc): FixJavadoc = tasks.create(
    name = "${javadocTask.name}FixDuplicatedAnnotations", 
    type = FixJavadoc::class.java,
    constructorArgs = javadocTask
).apply {
    group = "documentation"
    description = "Removes duplicated annotations created by ${javadocTask.name}"
    dependsOn(javadocTask)
    javadocTask.finalizedBy(this)
}
```although idk if this will work
#

might error

half harness
#

Β―_(ツ)_/Β―

ocean quartz
# half harness ```kt // line 13 tasks.withType(Javadoc::class.java).map(::addFixJavadocTaskToJa...
tasks.withType<Javadoc>().forEach(::addFixJavadocTaskToJavadocTask)

forEach makes more sense there than mapping
Also cleaner:

fun Project.addFixJavadocTaskToJavadocTask(javadocTask: Javadoc) =
    tasks.register<FixJavadoc>("${javadocTask.name}FixDuplicatedAnnotations") {
        // Make it an input property instead of injectable argument
        originalJavadocTask.set(javadocTask)
        group = "documentation"
        description = "Removes duplicated annotations created by ${javadocTask.name}"
        dependsOn(javadocTask)
        javadocTask.finalizedBy(this)
    }

Love gradle 😌

half harness
#

although does the forEach work with that not returning Unit?

ocean quartz
#

Yeah, works the same way

crude cloud
#

i still strongly suggest using all instead of forEach there

#

if a javadoc task is created after your plugin is applied then your fix task won't be registered for it, forEach takes the existing task set, all runs the callback for existing tasks and tasks that are created in the future as well

#

Alex this is like the 4th time I say that πŸ₯²

#

other than that + the other things mentioned (and the opinionated things, but being opinionated, those are debatable), looks good

half harness
#

It doesn't return a boolean tho

sweet cipher
#
class PlayerManager(
    private val players: MutableMap<UUID, Player> = HashMap(),
    private val users: MutableMap<UUID, User> = HashMap()
)

Why does using PlayerManager() cause java.lang.NoSuchMethodError?

ocean quartz
#

More context?

sweet cipher
#

This is how I'm trying to use it val PLAYER_MANAGER: PlayerManager = PlayerManager()

#

Idk there isn't much context

#

PlayerManager.<init>(java.util.Map, int, kotlin.jvm.internal.DefaultConstructorMarker)'

oblique heath
#

wait does kotlin not use the new keyword?

sweet cipher
#

It doesn't

oblique heath
#

wack

ocean quartz
#

Also you can do mutableMapOf() for the map instead
That's pretty odd, something about how you have it setup/shaded? What is the full error?

#

What Kotlin version?

sweet cipher
#

Doesn't mutableMapOf() use a LinkedHashMap?

ocean quartz
#

Yeah, there is also hashMapOf if you really need it to be a hashmap

sweet cipher
sweet cipher
half harness
#

i think it is ordered

#

?

#

idk

ocean quartz
#

None, just more idiomatic for kotlin

half harness
#

ohhh

sweet cipher
#

Okay I see

half harness
#

u mean hashMapOf()

sweet cipher
#

Thanks

#

Yeah

crude cloud
#

what does that have to do with what I said

half harness
# crude cloud what

i still strongly suggest using all instead of forEach there

and if you're talking about kt tasks.withType<Javadoc>().forEach(::addFixJavadocTaskToJavadocTask) turning into kt tasks.withType<Javadoc>().all(::addFixJavadocTaskToJavadocTask) that wouldn't work because all requires a Boolean: ```kt
inline fun <T> Iterable<T>.all(
predicate: (T) -> Boolean
): Boolean

#

but addFixJavadocTaskToJavadocTask returns a TaskProvider<FixJavadoc>

#

that's why I suggested map, because it also doesn't return a Unit (which is in forEach) so I'm not sure if it'd work and kotlin allows that

half harness
#

ah that's a gradle method

crude cloud
#

yes'

#

Executes the given action against all objects in this collection, and any objects subsequently added to this collection.

half harness
#

whats the diff between that and forEach?

crude cloud
#

dkim

#

for god's sake

#

read

#

i said that before and now i link to the method

#

the reason why i suggest all over forEach is so even if a javadoc task is registered after the plugin is applied, a fix task will be registered for that newly added task too

#

6th time

sweet cipher
#

Is there any way to make this work?

destroy as? BlockHandler.PlayerDestroy /* THIS HERE, I want to call.user()*/ .user() ?: DUMMY_USER
crude cloud
#

yeah just make it work

half harness
sweet cipher
#

Yes thank you lol

oblique heath
#

@half harness why did you need it for making people plugins tho

#

was it to host a demo on your own server?

half harness
#

yeah

oblique heath
#

gotcha

half harness
#

previously i used tk

#

since it was free

#

but then i just decided to do .me

#

dont remember the reason tho

oblique heath
#

maybe just cuz it's hip 😎

solemn laurel
#

ivan are you in high school or college

#

(if i can ask)

quaint isle
#

🫑

oblique heath
#

i just graduated college

#

this past spring

wind patio
#

personally I started to work in my 3rd/4 year of my bach degree

#

prob one of the best things I could've done lol

quaint isle
#

Yeah, companies are really scared of hiring complete newbies.

oblique heath
#

yeah if i could rewind time i would def try to get an internship really every year of being in college

solemn laurel
#

my college required an internship / research before graduating, so it forced me to get one, and i'm glad for it

oblique heath
#

i'm jealous

#

anyways spilled milk and all that

wind patio
#

but that was in the second semester

#

and I started working in first lol

quaint isle
#

Don't worry though, it's just the first job that is hard to get. After that is's smooth sailing no matter how many internships you did during uni.

solemn laurel
#

but honestly, you've done projects and you understand version control software. Those two things weed out a lot of clowns

wind patio
#

so the intership was basically was another day in the office

oblique heath
#

in my mind my strat so far is to try to boost myself up as much as i can for the best starting salary

#

since if i can get even an extra 5k now that'll probably carry over into negotiations for my next job, etc

#

not sure if that's the best path to take since it's at the expense of potentially landing a job later

distant sun
#

+5k on top of your current salary?

oblique heath
#

+5k to a potential salary had i not put in the extra effort to bolster my portfolio projects, resume, etc

#

figure came out of my butt, but i do expect some difference

#

maybe for naught idk

solemn laurel
#

oh, i see, yeah it will likely help

quaint isle
#

I would definitely prioritize getting a decent job soon over waiting months for a potentially better higher salary.
How is your next job even care about it? You can just state your demands, you dont have to tell them your old salary.

distant sun
#

Yeah they dont need to know

oblique heath
#

that's a very good point

distant sun
#

Though what salary do you have that you want 5k extra? Assuming that is the amout per month in eur/usd

oblique heath
#

0 dollar πŸ™‚

wind patio
#

rule no. 1, never talk about your previous salary and don't tell them the exact salary that you want

#

lol

distant sun
#

Lol ok

oblique heath
#

again the 5k is just what i expect to be offered more after the months of extra polishing, assuming i apply to the same job in both cases

distant sun
#

What domain btw?

quaint isle
#

While you polish your review for that extra 5k/year you are missing out on real world working experience and on 20k monthly salary.

oblique heath
oblique heath
ocean quartz
#

Make the image a bit bigger, I don't think it's big enough

distant sun
#

Though idk what experience you have or where you live, but since you said your current salary is 0, I would say you are a jr, 5k sounds like double the amount a jr would get xD

ocean quartz
#

I can still see the glasses when I first open it

quaint isle
distant sun
#

Oh... gotcha

quaint isle
distant sun
#

Now it makes more sense haha, you live in Eu ivan?

wind patio
#

check da manz linkedin

oblique heath
#

again for total clarification gabby, my thoughts were that if I apply to job A with my current resume/portfolio, they would offer say 70k a year. If i work on it for a few months, they might offer 75k a year

#

yeah im in the USA 😌

quaint isle
#

it's just a junior role. Interview for as many companies as you can and dont overthink it πŸ™‚

distant sun
#

Ok now it makes even more sense

#

Go get that money bud!

oblique heath
#

yeeee

#

just feels bad because i've applied a fair bit with crickets

#

but from what i understand it's not just me so it makes me feel a bit better

distant sun
#

Ive recently appied to like 14 jobs and got a reply from 3 of them, two were negatives and I'm signing the contract for the third this Wednesday xD

wind patio
#

yeah well personally I got through like 3 or 4 applications

#

before I landed my current job

oblique heath
#

"you guys are getting replies?" meme

wind patio
#

well, job applications are like tinder/bumble

#

you swipe right hoping for a match

oblique heath
#

so true

distant sun
#

3 out of 14 is meh, esp after 1mo

wind patio
#

but if it doesnt work then there's a lot more to go lol

oblique heath
#

how liberal do you guys think i can be when applying for positions that don't match my exact skills

#

is it just like fake it till you make it and just apply everywhere

wind patio
#

well I applied to php dev role without having too much knowledge of it at that moment

#

would of learned it on the fly lol

ocean quartz
distant sun
#

Fake it till you make it 🀣
Jokes aside, if you feel like you can do it but you will have to learn/exercise some of the stuff they require, I'd say go for it. After all you are a jr

oblique heath
#

alright 😌 thanks guys

distant sun
#

They dont have to know you suck

oblique heath
#

time to carry this energy into applying to stuff for the next while

distant sun
#

Make it seem you are very confident alex_cool

wind patio
#

it was pretty difficult for me when I first started, but now after working a year and a half I feel way more confident if/when Im going to apply to a new job

distant sun
#

Oh tell me about it haha, it is kinda hard for me too to be confident when I don't know a lot about something D:

#

Im not good at bullshitting 🀣

wind patio
#

well Im good at it until I have to prove it lmao

old wyvern
#

Good day

ocean quartz
#

Oh shit he's alive

distant sun
#

Wow

old wyvern
half harness
#

whys IJ taking so much memory 😩

#

the memory thingy is just lying to me πŸ₯²

sly sonnet
#

Blame dkim

half harness
#

lol
apparently it seems like its the plugins
might take a while to figure out which tho ☹️

#

i just restarted it tho and its only using 3gb

ocean quartz
#

Yeah I don't use nearly that much

half harness
#

yeah idk why mine went up so much
tried running a server & mc but that didn't work since apparently my 32gb of memory (recently upgraded from 16 :D) isn't enough πŸ₯² (screenshot is without the server tho)

works now tho, yay

half harness
ocean quartz
#

Which plugins do you use? ;o

half harness
#

more than I thought πŸ’€

#

I probably dont need half of those

ocean quartz
#

Most seem to be added by ij

half harness
old wyvern
#

dkim, have you increased ij's max memory usage?

half harness
#

I think a bit but I assume the memory issue was coming from some plugin since it was going waaay over the limit

old wyvern
#

After a point, increasing memory limit can give negative returns

half harness
#

i capped it at 3gb

old wyvern
#

Oh, that should be fine

#

Plugin it is then

half harness
#

alr
yeah I'll prob just do the restart-intellij workaround for now πŸ™ƒ

old wyvern
#

lol rip

half harness
#

aaaaaaa im getting OOMs with vscode and java -jar even tho I have 5.6 gb free

#

whats happening

#

first time I saw this πŸ₯²

solemn laurel
#

got the negative error code

#

53948309485039485039485039485

half harness
#

I don't get it
I had more than 536870912 bytes available

#

unless task manager is lying to me πŸ€”

#

oh

#

its going to the paging file

#

dont know why but I adjusted page file size to "System managed" so lets see

sweet cipher
#

Does anyone know how to fix running a Kotlin project after making changes to a file not actually applying the changes?
I checked the task and it does have Build set to Before Launch

#

It specifically seems to be happening with editing an inline function maybe?

ocean quartz
#

How are you running it?

sweet cipher
half harness
#

what's in the green arrow? Also what IntelliJ shortcut? Are you using maven 🀨

sweet cipher
#

I'm using Gradle

half harness
#

run gradle task

sweet cipher
#

I also tried switching the Build for gradle build and that didn't work either

half harness
#

what is above the Before launch?

#

like what is the actual thing being launched

sweet cipher
#

The main package

half harness
#

use gradle run

sweet cipher
#

Task 'run' not found in root project

half harness
#

add the application plugin

sweet cipher
#

the run task worked, but it didn't seem to fix the issue

half harness
#

if that prints, then ig try seeing what part of your code is the issue or upload it to github

#

if it doesn't print, still I'd need to see the github πŸ₯²

sweet cipher
#

It only seems to be happening when editing this function

inline fun <reified E> shiftArrayToTopLeft
#

I just added a println as the first line

half harness
#

can you upload it to github?

#

or create a minimally reproducible project

sweet cipher
#

I might be able to later

half harness
#

alr

sweet cipher
#

It's not too big of a deal, I just don't understand why it's doing that

crude cloud
half harness
#

do you actually have only 1 plugin

crude cloud
#

downloaded from the marketplace yes

half harness
#

o

crude cloud
#

then there are all the ones that ship with intellij

#

i have most of those disabled

ocean quartz
#

I just realized a bunch of the plugins I have are because of spring ugh

wind patio
#

this do be kinda nice

drifting aspen
#

Insomnia ftw

#

Tho the collection does look nice

distant sun
#

Oh damn

crude halo
#

hello

compact perchBOT
#
πŸ“‹ Your paste: b3t7
https://paste.helpch.at/uvopiyaruz

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

crude halo
#

this is my class for my give commands

#

doesnt work

#

i did register commands

#

i dont get any errors in console

wind patio
#

what am I looking at

#

for the love of god, please learn OOP first

crude halo
#

i just want to know why isnt it working im trying to learn oop but it should work??

ocean quartz
wind patio
#

🫑

crude halo
#

i dont know oop

#

but it shi=ould work right??

#

im not trying to lr=earn oop rn

ocean quartz
#

Things to check:

  • Make sure the command is actually registered on the plugin.yml
  • Make sure that onEnable you are setting this command as the executor of the command registered before
  • Add debug messages (commandSender.sendMessage("hi") is enough) at the start of the method, to see if the command is actually running or not
crude halo
#

commands:
b3givegrenade:
description: Give a grenade
usage: /b3givegrenade
b3givelgrod:
description: Give a lightning rod
usage: /b3givelgrod

#

plugin.yml looks like this

#

how do i set executor

#

onEnable

oblique heath
crude halo
#

i have 2 commands in the same class how do i need to set executor for each one if i do how

#

this.getCommand("b3givelgrod").setExecutor(new b3give());
this.getCommand("b3givegrenade").setExecutor(new b3give());

#

like this

#

or

#

??

wind patio
#

yes

crude halo
#

thank you it finnaly works

#

i should have checkd spigot docs first

drifting aspen
#

@ocean quartz Sorry to bother you, but I noticed that on MCC you have some Junior NPCs (smaller NPCs). (https://imgur.com/a/58L5TSX) May I ask how do you achieve shrinking the NPC size? (If you can comment on this matter) I've thought that it was an armor stand with an NPC model, but F3 suggests that it's a real NPC.

crude cloud
#

trade secrets

drifting aspen
#

😫

ocean quartz
#

They just haven't grown too much yet, they'll be a normal sized NPC one day

drifting aspen
#

:/

#

Oh, I see

#

Their legs are a bit underground

sly sonnet
#

Why were you looking at that NPCs feet?

ocean quartz
#

Yeah, it breaks the effect if they move

drifting aspen
#

Still nice trick tho

distant sun
remote goblet
#

how realistic is it to create something in php that converts csv -> xlsx without external libraries

wintry plinth
#

why without external?

#

college assignment?

#

you said php I got notified thinksmart

remote goblet
#

work placement, they said they'd prefer not using external libraries for it

#

but i feel like that'd take a really long time to do, especially with my little knowledge and mental capacity for this dogshit language WAH

potent nest
#

Why PHP

wintry plinth
#

php is the goat thats why

#

I totally wrote this code Ori, but it seems possible

<?php
// Create an XML-based XLSX file for Excel 2007+
function createXLSX($csvFilePath, $xlsxFilePath) {
    $rows = array_map('str_getcsv', file($csvFilePath));
    $numRows = count($rows);
    $numCols = count($rows[0]);

    $dom = new DOMDocument('1.0', 'UTF-8');
    $dom->formatOutput = true;

    // Create the root element
    $root = $dom->createElement('Workbook');
    $root->setAttribute('xmlns', 'urn:schemas-microsoft-com:office:spreadsheet');
    $root->setAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
    $root->setAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
    $dom->appendChild($root);

    // Create a Worksheet element
    $worksheet = $dom->createElement('Worksheet');
    $worksheet->setAttribute('ss:Name', 'Sheet1');
    $root->appendChild($worksheet);

    // Create a Table element
    $table = $dom->createElement('Table');
    $worksheet->appendChild($table);

    for ($i = 0; $i < $numRows; $i++) {
        $rowElement = $dom->createElement('Row');
        $table->appendChild($rowElement);

        for ($j = 0; $j < $numCols; $j++) {
            $data = $rows[$i][$j];
            $cell = $dom->createElement('Cell');
            $rowElement->appendChild($cell);

            $dataElement = $dom->createElement('Data', htmlspecialchars($data));
            $dataElement->setAttribute('ss:Type', 'String');
            $cell->appendChild($dataElement);
        }
    }

    // Save the generated XML content
    $dom->save($xlsxFilePath);
}

// Example usage
createXLSX('input.csv', 'output.xlsx');
?>
remote goblet
#

nice

#

god what an ugly language

#

how can i live without excessively being able to call final

potent nest
wintry plinth
remote goblet
#

absolutely there will be

wintry plinth
#

LOL

#
Excel::load('file.csv', function($file) {

    // modify stuff

})->convert('xls');
remote goblet
#

cock and balls really

wintry plinth
#

oi oi]

remote goblet
#

reminder, i have to do all of this using sublime text with no plugins on a crusty hp keyboard

wintry plinth
#

wtf

#

are they torturing you??

remote goblet
#

my tuesdays are PEAK

wintry plinth
#

tell them you want phpstorm, you'll 10x your productivity

#

and a mechanical keyboard for extra pikoh

remote goblet
#

i still need to try and get the macbook from my parents that they're planning to sell

wintry plinth
#

ooo yes

wind patio
#

well, technically composer is not specific to laravel ☝ πŸ€“

wintry plinth
#

Good point actually

remote goblet
#

all miserable

#

except laravel looks significantly less miserable

wind patio
#

well you can use composer to install packages everywhere, even without any framework

#

but if you're not using an ide then it will be a little bit more difficult to import and use them lol

orchid axle
#

What’s the Item name for an Netherite Chefplaner with prot 4 and mending in shopguiplus

distant sun
#

Wrong channel.

prisma wave
#

thats an interesting name

brittle leaf
#

shopguiplus legit has documentation, its like people dont even try to find out themselves properly

slate elk
#

how is that thing called?

#

like not the context

#

the tool used to create such a images

cerulean ibex
#

stupid

tardy dagger
potent nest
distant sun
#

That's an UML diagram if I'm not wrong

slate elk
slate elk
#

so i want to give it a try maybe if i create a diagram and going raw from brain

tardy dagger
distant sun
#

Yeah ig

tardy dagger
#

when I was in school (like thousands of years ago) these things we had to draw for sql normalization were just called "entity relationship model". but my teacher knew very little so maybe it's wrong lol

slate elk
#

just wondering guys before u work on an project

#

u write like a concept blueprint

#

or u figure out during the coding how u want things to look a like

tardy dagger
#

no, I just get started without thinking about anything ahead. Sometimes it works out and sometimes it doesn't work out at all

cerulean ibex
#

u can create uml diagrams in ij

tardy dagger
cerulean ibex
#

if u have ultimate

slate elk
tardy dagger
#

all you need is an email address from a known university

cerulean ibex
slate elk
#

and also i wont steal identity

#

its different

tardy dagger
slate elk
#

so they just send me a verify + -

#

and check whats the ___@HERE

#

if its in their priority list?

cerulean ibex
#

theres no need to spend time creating a fancy uml diagram and then have to write out interfaces later anyway

slate elk
#

i can use the fancy uml diagram to write other things beside stracture

tardy dagger
#

GitHub actually asks for proper proof

slate elk
#

no one actually has accses to those uni's db

#

maybe no one really checks the docs even

tardy dagger
#

I had to send them an enrollment letter which was checked automatically

#

Iβ€˜m in my 20th semester of law lol

#

They donβ€˜t even care what you study

slate elk
#

haha well as long as ur an student

tardy dagger
#

Yeah thats the only thing they wanna know

slate elk
#

imma try to use just custom domain @...

#

not regular one like gmail or something it might work

tardy dagger
#

that won't work

#

you need one of these

#

oh my university was renamed

#

I didn't notice

odd laurel
#

Ok So I am trying to learn how to make a paper plugin. Now how do I do something when the player sends a message?

prisma wave
#

listen to AsyncPlayerChatEvent

crude cloud
#

not configuration help ............

brittle leaf
#

ive just been so drained, like i wannaa make something but the motivation to keep up with the project just fizzles out so quick

distant sun
#

+1

brittle leaf
#

i wonder how to get out of this burned out rut im in

old wyvern
#

@ocean quartz does ktor's gradle plugin provide a way to specify dev environment variables on run?

ocean quartz
#

IJ might have a thing for that on the run configuration

old wyvern
#

I tried the ij one, but it doesnt seem to be available durig the actual runtime

#

I remember it did use to work

ocean quartz
#

I have used it before too and remember it working

old wyvern
#

Hmm

old wyvern
#

Nvm, got it, apparently it not the actual environment variables but rather from a config file we need to define and point to

tardy dagger
#

can I ask M$ Excel questions here too lol?

#

I currently have a table that uses a ton of XLOOKUPS and somehow they fail if I enter just a regular number into a cell that later gets used as "input" for the XLOOKUP. It complains about me entering a "number as text" - but that's on purpose, as the input may sometimes be only numeric (12345) but might also sometimes have letters in it (12345AB).

#

unfortunately my excel is set to german but the "quick fix" it suggests is to say "convert to number" which doesn't seem to do anything besides fixing it

#

TL;DR: Issue is, XLOOKUP seems to does a === check (compare datatypes too, not just values) instead of == and that my target and/or source matrix has both numbers and varchars instead of only varchars

#

but I somehow also have no clue on how to tell excel that "this column is always text", I can only change the "conditioned formats" but that only affects displaying values, IIRC?

onyx loom
#

not sure I really understand what ur trying to do, but =value function exists

tardy dagger
#

I'm just trying to make excel ignore whether "123" is stored as string or number

#

because if I XLOOKUP("123";SomewhereLookup;SomewhereResult), then it does not detect 123 in SomewhereLookup if that one only contains strings but "123" is a number, and vice versa

#

I somehow have to manually tell excel that "123" is a string for the lookup cell, although clicking on that doesn't even change the actual cell's value

#

sooooo I got no clue how it even memorizes which cells I marked as being strings or not

tardy dagger
#

and yeah my excel is in german, very annoying. the option I clicked that fixed it was "convert to number" (ignore the red cell formatting, that's only because of a duplicate key in that column)

forest pecan
#

Hi guys

#

can somebody help me with Deluxemnu.

crude cloud
crude cloud
#

what about it

#

?paste

compact perchBOT
#
FAQ Answer:

Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
β€’ HelpChat Paste - How To Use

crude cloud
half harness
#

don't crosspost

half harness
#

kinda random question but are there any languages except for scripting languages and jvm that can have a "plugin" system?

crude cloud
#

any language that allows for dynamic library loading and linking

#

so, C/C++/Rust

#

for example

half harness
#

hm
bc I saw a discussion on rust where someone was trying to recreate the minecraft server, and when asked about the plugin system, they weren't sure about it

1 sec

#

edit: nvm

#

:))))

lost river
crude cloud
#

i mean, it's certainly not impossible

#

dlopen/LoadLibrary for plugins as dynamically loaded native libraries

#

for languages that have a runtime like the jvm, then it might be worth seeing what options the runtime offers for dynamic code loading

cinder lantern
#

The interface OfflinePlayer does not have the hasPermission method. So how can i check if offline player have permission?

distant sun
#

Vault

#

Or well, the permission plugin you are using

tardy dagger
cinder lantern
#

Thanks ❀️ πŸ‘‰ πŸ‘ˆ

half harness
distant sun
#

german

lost river
distant sun
#

I'm pretty sure that's not the case, because school PCs are set to Romanian and I can use the normal functions just fine

young trail
#

is there any website that will let me play all minecraft sound libary

slate elk
#

Does anyone here know a driver dev ??? Or someone with some experience

#

(C++ windows )

pastel imp
#

When deprecating something (respectively a method), should I fully remove all it's javadocs (description, @param, @return, etc) and only have the @deprecated javadoc there or should I still maintain everything until removal?

slate elk
#

When u deprecating something it’s more like no longer supported it’s like a warning before removal at least this is how bukkit used it

pastel imp
#

Hmm okay, it's just cause it looks a bit cluttered since everything is basically doubled lol

half harness
#

Sometimes it's simply just saying "don't use this... But it's here in case you really need to"

pastel imp
# half harness Wait wdym

basically changing the format of methods, got recommend to use the deprecated annotation for now, until I remove it instead of just straight out removing it, so basically, all methods are almost duplicated lol (I do call the new methods inside the old methods though)

half harness
#

Also u should prob have deprecated annotation

pastel imp
#

already added them

sweet cipher
crude cloud
#

that's very ew naming imo

sweet cipher
#

I feel like having it just be version() implies it's an attribute of the class, instead of having to make an HTTP request

#

Naming it fetchVersion would be the best in my opinion

#

Or something along those lines

crude cloud
#

i'd go with fetchResourceVersion but yeah

half harness
#

Oh shoot

#

Clicked the ping button twice lol

pastel imp
#

Hmm thanks for all the feedback

pastel imp
wind patio
#

or if you want to be more correct it's objective C style getters/setters

sweet cipher
agile galleon
#

probably .something() and .something(set value)

crude cloud
#

"fluent accessors"

#

but it makes sense where it makes sense, not for everything, inb4 naming cheat sheet

frail glade
#

I'm fine with whatever Afonso wants to use. I'm ready to test it. πŸ˜›

agile galleon
half harness
#

tbh I'd just keep it getVersion for the sake of not making a breaking change

#

for a super minor issue

pastel imp
pastel imp
#

lol

pastel imp
half harness
#

i mean like in this case

pastel imp
#

uh tbf I will see, since it's not an api solely for me, gotta think about what most people are used to.

half harness
#

I think fetch is better in this case bc its a web request, but I'm not sure if it's worth removing get

frail glade
wind patio
pastel imp
#

I can always make a commit so you can use it though if you want

wind patio
#

love it or hate it, its often more convenient to have get/set prefixes. you just type something.get and you can see all the getters all at once (that is if youre using an ide)

pastel imp
wind patio
#

though it often depends on the codebase

#

if its small then it wont really be an issue

pastel imp
#

I mean, the library is open sourced if you wish lol

#

yeah all methods are in the HangarClient class, everything is handled in there

pastel imp
#

hell I am just going to stay with the usual style lol

#

aka #getProject() etc

frail glade
pastel imp
#

Yeah will probably publish in a few minutes? Although it will have a tiny breaking change since the author is mostly useless rn, so that parameter will be removed

cerulean ibex
#

this is why i hate semver

#

i aint doing a new breaking version because of a tiny breaking change

frail glade
#

Are authors being removed entirely? Or just from the slug for the project?

pastel imp
frail glade
#

Yeah for sure. I know I do author banners too so as long as I can still pull a HangarAuthor object or whatever then I should be good to go.

pastel imp
#

yeah you still can, it's just not required for anything projects related

frail glade
#

Perfect! Then I'll happily be your tester for the new version πŸ™‚

pastel imp
#

Uhm so, somehow, accidentally switch my tab from 4 to 8 spaces in intellij, any ideas where to change it back? Can't find it anywhere

#

lol

cinder flare
half harness
#

wow
jetbrains academy/hyperskill now has all courses for free, with a 10 problem limit daily!

#

πŸŽ‰

#

(used to only have kotlin basics as the free course i think)

distant sun
#

O

half harness
#

#showcase message
@ionic gust
btw the reason those versions don't have javadocs is because they don't exist server-side
I haven't had minecraft that long ago but I assume it was really small client side update

#

so if you add them I'd add some kind of indication

#

like a red border or smth idk

ionic gust
#

and what do u think of it in general?

#

but with embed injection i can include the path that ppl provided

half harness
#

I don't know how the version checks work

ionic gust
half harness
#

nope

#

1.8.8 only :)

#

i think

#

wait

#

im not sure

#

lemme check

ionic gust
#

ok yea so no point in making button for it!!

#

yep, no 1.8.9

half harness
#

oh ok

cloud lintel
#

1.8.9 was just a client side bug fix iirc

#

so it simply doesnt have a server side version

ionic gust
#

couldnt get last part of url (after #) to show in embed as only the client knows about it, server has no idea it exists

half harness
#

How is the URL generated?

ionic gust
half harness
#

Like how can I convert spigot docs to ur site?

ionic gust
#

altho u cant use any of these versions when converting:

half harness
#

Btw what did u use to make the site

#

Just curious

ionic gust
#

pushing new changes rn hold on

#

done

ionic gust
half harness
half harness
#

Β―_(ツ)_/Β―

ionic gust
half harness
#

oh πŸ₯²

ionic gust
half harness
#

yea

ionic gust
#

i just dont think its possible to set embed client-side

half harness
#

or is that not editable

ionic gust
#

also ignore link on embed title, i did some magic to remove it if a member is specified (cause it doesnt include the text after #), discord cache just silly

ionic gust
half harness
#

ohhh right

#

yeah

#

ignroe me

#

πŸ™‚

ionic gust
ionic gust
#

o wait discord has an embed checker now

#

ok wth it still has url????

lavish notch
prisma wave
#

skill issue

tepid rock
#

i need a suggestion matrix/Vulcan which 1 is better

cloud lintel
#

vulcan

#

but this is a dev chat

#

for coding

tepid rock
#

hm

tepid rock
potent nest
#

well matrix multiplication is slow

#

while volcanos are hot

crude cloud
#

just get like 4000 cuda cores chatting

gleaming basin
#

how do i make a item show as being "enchanted" whilst not actually having any enchants

drifting aspen
#

don't crosspost

distant sun
#

has anyone used kotlin multiplatform to make ios and android apps?

sweet cipher
#

Probably

sly sonnet
#

try expo

south sparrow
#

why dont they update deluxechat for 1.20?

wind patio
# sly sonnet try expo

you can only preview the app via webserver or sum, no? I mean yeah it looks like a mobile app, you just cant build the actual (insert apple apk equivalent here) file

distant sun
#

Yeah hmm, I would like to use kotlin, and have a good user experience
I know there's Flutter but I don't feel like learning a new language D:

sly sonnet
#

u make code on pc and then you can connect with android or ios

#

and it will build that code to that platform and run on that phone

distant sun
#

You connect to what?

sly sonnet
#

to expo

#

its really good

cinder flare
#

Yeah React Native plus Expo is like unironically really good

#

Way easier to use and easier to do cross platform

sour juniper
#

whats the place holder for xp?

#

to show on scorebord?

sly sonnet
#

But you probably need the player expansion for papi

distant sun
wind patio
# sly sonnet no wdym

I didn't mean thatr you go to 123.256.789.321:8000 to preview your app or sum, but expo basically creates a webserver and renders in on your mobile phone

cinder flare
#

yeah it lets you see your app on an actual iphone without doing a whole signing/emulating it

#

so you can do it without a mac, super nice

#

hot module reloading and all that

distant sun
cinder flare
#

surely those laptops have more than one port/have a dedicated charging port

distant sun
#

Yeah I've realized that now, duh facepalm

half harness
#

You bring a monitor to work? πŸ‘€

distant sun
#

No, it is for home, at work we only have a monitor on the desk kek

wind patio
#

imagine your job not providing dual monitors

#

cant relate (get flexed on)

distant sun
#

kek I think they are like 34'' curved monitors, probably enough for most of us xD

#

Annoying! But at least I can give lenovo credits for placing most of the ports on the back - there is also a lightning thunderbolt port on a side and an usb on the other

cinder flare
#

lightning port πŸ’€

#

or do you mean thunderbolt lol

wintry plinth
agile galleon
#

lmao lightning would be so scuffed

distant sun
distant sun
obtuse gale
#

looking for dev expert on mcmmo factions dm me

slate elk
#

a

sly sonnet
#

B

half harness
#

or actually I could just use cloudflare firewall, but they only allow 5

wind patio
#

what exactly are you trying to achieve

#

are you trying to allow only specific IPs of cloudflare to access your nginx server
or
you are trying to allow only specific IPs to access your nginx server that is behind cloudflare

half harness
humble prism
#

oh

#

i misread

#

well i dont think its possible due to it being proxied through cloudflare so it would only show their ips

#

would be noice if you find a way tho

#

kinda want it aswell

half harness
humble prism
brittle ledge
#

Anyone knows how to add private skyblock island with a portal

wintry plinth
#

This is what I have setup anyway

long dagger
#

Is there any good documentation of how to send get requests with body json and stuff with Java? I cant find any good tutorials

agile galleon
#

gson + java 11 http client

inner umbra
#

Body json?

half harness
wind patio
#

body in json

inner umbra
#

Still no clue what that is.

half harness
#

i think?

#

I mean sometimes apis require that but I think okhttp for example doesn't let you

half harness
#

note that pastes.dev doesn't use json in the body

#

that's why Content-Type is text/... (for json it'd be application/json I think)

inner umbra
#

Ah ok. I thought he was meaning like header -> body etc... lol

long dagger
#

I figured out how to do it

long dagger
#

This is a prototype landing page for my project, It is still in the works so it isnt perfect, but I am looking for suggestions. What could I do to improve this? I dont know what to do to fill the empty space.

half harness
#

or if you want to keep it dark then maybe a lighter tone?

#

Β―_(ツ)_/Β―

long dagger
#

Oh so the contrast of the quote is a little much?

#

I could make it transparent and then add some like TailwindCSS like blurred orbs in the background

half harness
#

its like 60% main color, 30% secondary, 10% accent

#

shouldn't be followed strictly but its a base idea

long dagger
#

Yeah, the actual website follows that

#

The landing page doesn't yet

half harness
#

oh ok

cinder monolith
#

why does another SpawnerSpawnEvent fire when I cancel the event and manually spawn a mob into the world? Does not make sense

karmic fjord
#

@cinder monolith maybe you pass spawn reason as spawner?

humble prism
#

And check if spawn reason was spawner

wind patio
agile galleon
#

@long dagger what font did you use for the logo?

agile galleon
#

Don't know about yall but I like this much better

long dagger
agile galleon
#

I believe there is also too much white space

#

Maybe add some swirrls and dots with 30% opacity idk

karmic fjord
#

i also think there isn't enough whitespace

#

text look cramped

#

and also maybe a soft gradient in the blue title would look awesome

#

maybe play with sizes a little bit

long dagger
#

very faint

long dagger
#

This is it with dark mode and the blur thing in the bg

#

light mode

cinder monolith
#

are any of you aware of a guide on how to go about structuring your plugin so that you can expose a developer api without providing all of the implementation?

agile galleon
#

You will be adding more content below, correct?

pastel imp
#

someone is telling me to just check for the name in an item instead of using the #isSimilar method, what are the arguments on that?

sweet cipher
pastel imp
crude cloud
#

pdc moment

pastel imp
#

coins arent from the plugin itself.

sweet cipher
#

Can you explain more what you’re trying to do?

pastel imp
#

simply check if the item in the hand is a coin

#

not much else to say lol

sweet cipher
#

Yeah but what is a coin

pastel imp
#

an item

sweet cipher
#

It can be any item at all?

pastel imp
#

its a specific item set by the player using a cmd

#

but can be enchanted or not

#

named or not

#

whatever

sweet cipher
#

Then use isSimilar like you said

half harness
#

you can always check manually if you think isSimilar does extra checks

#

Β―_(ツ)_/Β―

#

gtg rn so I can't check source myself

wind patio
pastel imp
#

yeah but isn't isSimilar overall a more secure choice?

wind patio
#

You use isSimilar if you dont care about the amount

#

Also pretty sure the internal equals does 'return isSimilar(obj) && getAmount(obj) == this.amount'

#

You can always check the implementation by looking at source code of the method

#

Or just implement your own comparison

#

Β―_(ツ)_/Β―

half harness
#

just checked

#

also just realized the docs say that as well lol

half harness
astral junco
#

Mb

#

Thanks for the info

half harness
#

Is it possible to edit a font to set its Bold weight to SemiBold instead? (Using the SemiBold ttf file doesn't work, same with all the other ttfs)
This is because I'm trying to use https://github.com/LibrePDF/OpenPDF/, but it seems like the normal weight is using the thin weight instead, and the only other option is to make it fully bold :/

This image is using https://fonts.google.com/specimen/Inter+Tight but the other fonts I've tried do this as well

half harness
#

or is there a way to remove font weights?

half harness
#

Hmmmmmmmm

#

it spaces it as if it was semi bold but doesn't actually semi bold it lol

#

this is what it should look like btw (this is when double clicking the ttf file)

half harness
#

why D:

half harness
#

oh well I'll probably just use bold instead

#

Β―_(ツ)_/Β―

half harness
#

hmm... tried importing a font into Glyphr Studio, exporting it while making a random change, but that change only shows in Windows when I double click it, but in the pdf, it shows the old version?

#

why am I getting these issues

#

anyone else know another pdf library besides pdfbox and openpdf/itext :((

#

maybe I'll try pdfbox again

wind patio
#

anyone aware of an app/software, that works like a home-cloud?
I just want to serve a folder on my drive for quick file upload/download.

cinder flare
long dagger
agile galleon
#

the harlenko filebrowser docker image is awesome

slate elk
#

wondering guys

#

u do all events under 1 event

#

or many small classes

#

sperate

#

i have many different items that listen to interact

#

not sure if i just better should make single huge code block

#

or many small listeners

wind patio
#

currently trying out OwnCloud

dawn hinge
steep cargo
#

Hi, im trying to create a plugin api/base for all my player related data. This plugin main purpose is to serve as a service plugin that gets and sets player data.

Im having trouble importing the jar file into my new Plugin, through intelliJ. Can someone please provide some documentation or help?

acoustic wigeon
quiet sierra
#

This is weird

#

Ideally you make classes depending on context

slate elk
#

its what i do at moment

quiet sierra
#

So for example, if you're handling player data, you have a listener for join/quit

slate elk
#

yes

quiet sierra
#

For custom items, I'd make a class for each custom item

slate elk
#

lets say i have interact class to listen if player nteracts with custom items

#

like a weapon so it does x ,y ,z

#

but also i have different tools

#

like wands and other stuff

#

and i have like 4 classes that listen to that event

#

i could use switch case

#

and make all of the listeners in 1 class no?

quiet sierra
#

Not a good idea

#

Ideally you make a class for each item

#

Something like this

#

So you can split your logic

slate elk
#

yeah at moment everry class returns

half harness
#

I don't think it's bad to have multiple listeners for the same event btw

slate elk
#

if item doesnt have the nbt tags

#

my items have an ID attached to them

quiet sierra
#

If you want to remove an item you just don't register that item in the first place

slate elk
#

so i can recognize them

quiet sierra
#

Different items have different actions, some can just give a boost when held / worn

#

Others have click actions so you need to make a system to handle that

#

In my case I just have methods to subscribe to events and handle it myself

slate elk
quiet sierra
#

No clue what that means

slate elk
#

In my case I just have methods to subscribe to events and handle it myself

quiet sierra
#

this is what I mean with that sentence

slate elk
#

oh

#

yml 😭

#

here i work simillarr way

quiet sierra
#

and some other funky stuff

slate elk
quiet sierra
#

icky

acoustic wigeon
slate elk
#

i check.

slate elk
prisma wave
#

not the uppercase class names

slate elk
#

haha dont judge lol i know it goes likeThis

lavish notch
#

@quiet sierra haphug

quiet sierra
slate elk
#

so classes contain for example what happens onInteract

lavish notch
slate elk
#

but i think i cloud mix it within the medkit

#

and other items

#

have same logic

quiet sierra
#

bro has 0 grasp of oop

slate elk
#

so Illusion u think i should keep do it that way

quiet sierra
#

I already gave my take

slate elk
#

like sperate listeners?

lavish notch
slate elk
#

i just want to verify πŸ˜‰

lavish notch
quiet sierra
#

your current structure is uhh

#

a little shitty

#

And I'd probably nuke all of it

slate elk
#

ah as long as it works

#

i did a lot of math for the weapons ;/

quiet sierra
#

then my opinion doesn't matter at all

slate elk
#

about nuking t

quiet sierra
#

because it works both ways except one ends up nicely and the other is a tentacular monster

slate elk
#

this not but how u sort ur listeners

quiet sierra
#

let me make you a drawing

slate elk
#

πŸ˜„ that would be fantastic

quiet sierra
#

Each gun class is its own listener

#

Alright

#

Now you make a registry for AbstractItem so that you can do stuff like

#

/giveitem ak47

#

and as long as getName() returns "ak47" it'll work

solemn laurel
#

polymorphism OP

long dagger
#

What do you guys think of this website design? It feels incomplete to me, like it is missing something. What do you think?

sweet cipher
#

That's what it's missing

long dagger
#

lol

#

actually

#

maybe

#

gotta make back the money invested somehow

sweet cipher
#

And make it slowly expand left to cover the whole screen

#

So they have to read quickly

long dagger
#

and if they reload, it keeps it there with a paywall

sweet cipher
#

Smart

#

Also I really like those colors

#

The blue is very nice

long dagger
#

But in complete honesty, I might have ads, but it would either be free to remove them (just a button on the ad itself) or like a $10 one time purchase

#

I feel like so many people would jump at a one time purchase rather than a subscription

long dagger
#

I have been working on the colors for like 6 months now

#

(and more, not just colors)

sweet cipher
#

They have to pay for each ad they want gone

half harness
sweet cipher
#

YES

half harness
#

i know you love skript fisher

long dagger
half harness
#

πŸ’€

long dagger
#

isnt that like a GTA mod thing

sweet cipher
#

Skript is the most amazing programming language ever created

half harness
#

don't worry you're not missing out on much

long dagger
#

ohhh

#

the minecraft skript

#

yeah

sweet cipher
#

Someone should make a Minecraft server implementation in Skript

long dagger
#

a programming language inside a yml file

half harness
#

yml is pretty powerful

#

and complex

long dagger
long dagger
cerulean ibex
half harness
#

true

cerulean ibex
#
ab: 
  ? - !!map
    a: 1
    b: 2
  : 12
---
a: &b
  c: 1
d: 
  <<: *b
  c: a

valid yaml i think

vivid sleet
#

I like the framer document template

slate elk
wintry plinth
long dagger
#

There is a switcher

agile galleon
#

the font wavy, old, fancy, and then the content is so modern and new

wind patio
#

how does it make it old

agile galleon
#

no idea

#

like the wavy cursive style in comparison to the modern, very straight style

#

just my opinion though

livid shore
#

does anyone know a keyall plugin or skript?

pastel imp
#

does it make any sense to make a single document in a mongodb with it's own collections which simply contains a list of X thing? lol

oblique heath
#

im no mongodb'er but i think that's fine to do with it depending on how large the collections will get

#

not sure if the analogy is
documents -> tables and collections -> relational dbs
,or
(documents in collections) -> tables (like in rdbs)

long dagger
agile galleon
#

yea

#

just my opinion tho :)

long dagger
#

It is mostly just a placeholder, I made it in like 5 minutes

#

I dont know what to do instead tho

pastel imp
#

Any recommendations on a skin/nick api? (preferably that doesn't require an external plugin like disguiseslib and nickapi....?

#

Also, what would be the best way to do a random disguise/nick of a random player that hasn't played in the server before but also has a skin and exists?

little sandal
#

i think you can use namemc

gloomy anchor
#

Does anyone know how to make item (HOE) with booster etx. multiplier(drops,exp etc.)?

wind patio
#

yes I do

humble prism
#

probably yeah

#

doesnt seem that hard

obtuse gale
#

Looking for dev can help me setup my server while im learning

pastel imp
#

unclear

distant sun
#

"NameMC Java wrapper"

half harness
fleet mauve
#

would anybody know how to fix my luckperms prefix not working on my scoreboard plugin?

#

its just showing as &7Citizen

slate elk
#

wrong chat

normal talon
#

anyone know what processing-java is

potent nest
#

What’s the context?

pastel imp
half harness
#

Namemc shows skins and stuff

#

But it doesn't integrate into the minecraft server or anything

pastel imp
#

I meant what I asked before that

half harness
#

Oh ok

#

Then idk πŸ’€

pastel imp
#

aka a skin/nick api (without external jars)

pastel imp
pastel imp
#

god can't find a single good api

half harness
#

Make your own lib πŸ‘