#dev-general

1 messages · Page 243 of 1

lunar cypress
#

?

#

how so

#

also is "unsafe" really your primary concern after you've had a breakdown about not being able to open eclipse

weary epoch
#

lol

#

im quitting eclipse

#

i cant export from IJ cause i dont have JDK 8 on IJ

#

and i cant install JDK 8 cause the oracle website is broken

#

and throws me an error

lunar cypress
#

don't use the oracle jdk

#

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

weary epoch
#

HALLEYUAH

#

i didnt know there was other JDks

#

omg

#

my life is saved

#

how do i export it as jar tho

#

cause idk how to use IJ

#

cause when i export it gives me 2 option

#

export as zip or to eclipse

lunar cypress
#

use maven or gradle

#

if you got no idea about either and you still want to export it today look up intellij artifacts

weary epoch
#

how do i use gradle

#

that doesnt help

#

how do i use gradle

onyx loom
#

well what do u wanna do with gradle?

weary epoch
#

thius fucking sucks

#

im switicvhing back to eclipse

#

IJ is terrible

#

i knew since pycharm sucks IJ probably would too

#

i cant fucking export shit

obtuse gale
#

Dude fucking chill your stupid tits

weary epoch
#

IJ is doodoo

obtuse gale
#

You were told to take a look at "artifacts"

weary epoch
#

i tried

#

and then i followed the steps

#

and it jsut gave me errors

obtuse gale
#

And you didn't try to search and fix them?

weary epoch
#

I DID

obtuse gale
#

What a programmer you are

weary epoch
#

it doesnt matter

#

ive already had tons of problems with IJ

#

while the only problem with oracle is refactoring

pliant badger
#

he will switch back at some point

#

i did the same xD

weary epoch
#

why does IJ have to be so extra

#

and why does eclipse have to be so broken

#

why are IDEs so bad

pliant badger
#

use text editors then, compile using javac and pull your hair out

weary epoch
#

im gonna go use notepad

#

brb

#

im gonna compile it without javac

#

imma compile it myself

obtuse gale
#

Compiling java without a Java compiler

weary epoch
#

gonna compile it with pure skill

#

gonna go compile it with assembly rq

obtuse gale
#

Sure bud

#

You do you

pliant badger
#

optifine compiling

weary epoch
#

LMAO

#

gonna go compile it with RTX

#

it will be faster

pliant badger
#

dude, i just compile it with discord using /compile

#

works like a charm

weary epoch
#

/compile JoinCMDS.jar

#

it doesnt work

lunar cypress
#

PainsChamp

prisma wave
#

compiling a jar

weary epoch
#

do i put the directory thing?

#

the folder?

prisma wave
#

I never understood why people expect programming to be a walk in the park

weary epoch
#

i dont

#

im just throwing a tantrum

prisma wave
#

Like, learning a new language, workflow and build tool is never easy

#

What do you expect lol

weary epoch
#

i havent eaten a thing today

pliant badger
#

Brister is a very nice guy

prisma wave
#

thank you

lunar cypress
#

It should be imo

weary epoch
#

so im getting mad easily

prisma wave
#

fair enough

pliant badger
#

i swear to god brister you're the only guy who had patience to explain some stuff back when i didn't know shit

lunar cypress
#

I think people are right to complain about build tools

prisma wave
#

lmao

#

Possibly

lunar cypress
#

It's like the type of thing devs build for themselves and they never get this right for some reason

weary epoch
prisma wave
#

well I guess there are just too many differences between languages to have a "standard" for everything

#

makefiles are very different to gradle because they need to be

#

Etc

weary epoch
#

brb gonna go make my own build tool

lunar cypress
#

well...

weary epoch
#

brb gonna go make my own IDE rq

lunar cypress
#

you can use make for a lot of stuff

#

same with gradle

prisma wave
#

true

lunar cypress
#

obv if you focus on the ecosystem of one language they need to be different

weary epoch
#

brb gonna go make my own OS rq so it works with my IDE and build tool i made myself

lunar cypress
#

I think we've had this discussion here before and I brought up lein and cargo

prisma wave
#

@weary epoch do it

lunar cypress
#

I think every language should have something like them

weary epoch
prisma wave
#

I haven't warmed to Lein yet purely because it's based on maven

weary epoch
#

im just that good

prisma wave
#

cargo seems pretty good

weary epoch
prisma wave
#

That's not an ide

lunar cypress
#

well lein wraps maven but it's very straight forward if you just want to dive in

weary epoch
prisma wave
#

yeah it isn't awful

weary epoch
#

it took me 10 seconds to make

#

thats why it sucs

lunar cypress
#

cargo is different in the regard that it is the rust build tool, but similar in that it also tries to be as simple as possible

prisma wave
#

But I now have a mild bias against anything that isn't Gradle

weary epoch
#

oracle was gonna buy tiktok good thing they didnt cause if they did tiktok would be buggy and crash every minute

prisma wave
#

lol

#

what's oracle done

weary epoch
#

nothing

#

except ruin lives

pliant badger
#

i pick randomly between maven and gradle, i like both

lunar cypress
#

I like neither

prisma wave
#

As soon as I used gradle I couldn't go back

#

Maven just sucks in comparison

weary epoch
#

im gonna use gradle

#

cause i hate artifacts so far

hot hull
#

Elara build tool when™️

prisma wave
#

I wanna make one

#

Like gradle but simpler

lunar cypress
#

Maven feels like I'm working at an office in 1998 and gradle is just a hot mess to see through

prisma wave
#

What's your favourite?

#

Lein?

lunar cypress
#

Favourite for what language?

weary epoch
lunar cypress
#

For kotlin and java I'm using gradle

#

Simply because it is the best option

weary epoch
#

is kotlin just java?

lunar cypress
#

no

weary epoch
#

oh its like an add on

#

like django?

#

idk

hot hull
lunar cypress
#

it's a separate language

weary epoch
#

oh okay

#

well django is a bit seperate

lunar cypress
#

django is a python framework

#

kotlin is not a java framework

weary epoch
#

oh okay

pliant badger
#

imagine people sending other people to the moon with that

#

or writing AI's

weary epoch
#

yeah

prisma wave
#

I'm pretty sure you can do it in like 8 lines

weary epoch
#

thats what they did right?

prisma wave
#

On Linux systems anyway

lunar cypress
#

depends on the assembly

prisma wave
#

The moon was punch cards lol

weary epoch
#

yeah cause they had linux in 1969

pliant badger
#

didn't they have assembly in 1969?

prisma wave
#

NASA should've used lisp machines tbh

lunar cypress
#

They used punchcards but the instructions on them were still machine code for the processors

prisma wave
#

yeah

lunar cypress
#

And for basically any cpu there is an assembly language

weary epoch
hot hull
prisma wave
#

Nice crop

lunar cypress
#

because assembly is mostly just the machine code in human readable form

hot hull
#

Shut up

onyx loom
#

'readable'

prisma wave
#

As soon as we get a JVM compiler I promise you that will be the first thing I do

weary epoch
lunar cypress
#

better than reading raw bytes

prisma wave
#

it's more readable than machine code

#

me yugi and katsu

#

mostly me and yugi atm

#

"yugi and I"

#

🙄

weary epoch
#

there is a dude on fiverr that can code anything for $50 brb gonna go make him code a OS, a IDE, and a JVM compiler

pliant badger
#

did anybody here ever had to use assembly for some important task?

weary epoch
#

if its porn probably not

onyx loom
#

depends

weary epoch
hot hull
onyx loom
#

i think lemmo might be the only person thats used assembly

ocean quartz
#

@prisma wave How would add a \n every 3 indexes on a list? (Kotlin)

prisma wave
#

uh

#

good question

#

Maybe window it by 3, then flatMap with the list + \n

weary epoch
ocean quartz
#

Let me try

prisma wave
#

Or just do it imperatively, that usually works if you can't figure out a standard library way

weary epoch
lunar cypress
#

interpose :clojuremoon:

weary epoch
#

these memes sum it up

prisma wave
#

pff

#

Learning java is easy

#

Learning C on the other hand

#

or clojure

weary epoch
#

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

prisma wave
#

actually, hardest language to learn is C++ imo

#

I can make something basic in just about any language with a bunch of googling, but C++ has crushed me whenever I tried

lunar cypress
#

I have a big C++ book at home

#

it was an impulsive buy

#

for some reason I thought I wanted to do something with the language

prisma wave
#

I've had a C++ course that I bought on Udemy years ago

steel heart
#

C++ is hard?

lunar cypress
#

yes

steel heart
#

Heard it’s good for games since it has manual memory management

lunar cypress
#

well, that's kinda random

prisma wave
#

it's mostly used for games

steel heart
#

ye

lunar cypress
#

It is fast, yes

prisma wave
#

Probably because unreal exists though

#

I guess that's more of a chicken Vs egg thing though

lunar cypress
#

but manual memory management isn't something that automatically (no pun intended) makes your code go vrooom vroom

steel heart
#

Oh well. Which one is generally faster? Assembly or C++?

prisma wave
#

Rust game engine when

#

Assembly

#

Almost always

old wyvern
#

circuits

#

Writing code? sheesh

lunar cypress
#

depends on your code

#

I mean what value does "assembly is faster in theory" hold if you don't have the skill and time to write good assembly

prisma wave
#

True

ocean quartz
lunar cypress
#

though yes in ideal code scenarios assembly will be faster because it has literally no runtime

prisma wave
#

But theoretically, human optimised assembly will always be faster than any other language

old wyvern
#

ayy nice!

#

I stopped at making a game invitation system

#

xD

ocean quartz
#

Yeah i didn't add any of that, made it all in one class xD

old wyvern
#

oh xD

ocean quartz
#

Also @prisma wave the solution for that was fucking awful:

board.withIndex()
    .groupBy { it.index / 3 }
    .map { indexed -> indexed.value.map { it.value } }
    .joinToString("\n")
old wyvern
#

o.o

steel heart
#

@ocean quartz custom craft grid?

ocean quartz
#

Tic tac toe

old wyvern
#

I just had each player check if they won

prisma wave
#

Might as well just do it imperatively at that point

#

interesting that you can have purely functional languages, but as far as I know there are no pure OO languages

ocean quartz
old wyvern
#

o.o

#

🔥

old wyvern
steel heart
#

lol

prisma wave
old wyvern
#

Smalltalk is an object-oriented, dynamically typed reflective programming language. Smalltalk was created as the language underpinning the "new world" of computing exemplified by "human–computer symbiosis". It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of...

#

I think thats supposed to be purely OO

prisma wave
#

Ah yeah good point

#

Iirc that was the first OO language?

old wyvern
#

No idea

lunar cypress
#

Yeah. Though it has almost nothing to do with java style oop

prisma wave
#

yeah from what I heard the core idea behind OO got kinda misinterpreted

#

It was more about sending messages between objects or something

#

Not AbstractMailBeanFactoryFactory

onyx loom
#

🥲

#

u forgot an extra Factory

lunar cypress
#

Yeah

obtuse gale
#

FactoryProvider

little hamlet
#

?json

compact perchBOT
ocean quartz
static zealot
#

xD

ocean quartz
#

Wonder if adventure has a strip style method

ocean quartz
#

Noice got it

little hamlet
#

Hello idk if i am in the right channel to post this but i need some help in developing something or finding somehow to do this.

I have a hispanic server myself i am a learning small dev just for fun, I am using a plugin that has X amount of commands, with CommandAlias plugin i am translating myself the commands to Spanish for it could look more professional, but if any of my users figures out which plugin i am using, they could just type the original command of the plugin. So my question is: Is there actually anyway to disable the use original command for the user at the same time letting the CommandAlias plugin doing its job?

distant sun
prisma wave
jovial warren
#

Okay, righty then, let's try and explain this:

So, I'm experimenting with PHP (because it seems like a kinda easy and not that bad language to learn), and I was just trying to make a simple calculator, because I couldn't really think of anything else, and I have this code: https://hastebin.com/kexinetire.php-template and calculator.php: https://hastebin.com/xoxuxadara.php

So, it does its job, the one issue is that the <p> tags with the result will show when I haven't inputted anything, meaning they'll show errors. Does anyone know if/how I can update these within PHP? I've tried updating them with JavaScript, but they update just before the page reloads (since it's a form and so it gets submitted)

#

I want to ideally have the <p> tags hidden and then show them when the result is calculated

prisma wave
#

I'm not sure this is what PHP is used for

#

Because the dynamic content is all evaluated on the server end, it gets converted to static content

jovial warren
#

ah okay

prisma wave
#

So you couldn't have anything like that without JS querying your "backend" somewhere in the mix

#

You could have:
Static site for calculator
JS sends query to PHP backend
Backend calculates, then update result on frontend

#

But that's a lot of work

#

Where PHP is """good""" is for dynamic but also static things, like blogs, online shops, etc

jovial warren
#

ah okay

#

yeah I'm just experimenting

#

just trying to learn how PHP works

prisma wave
#

Yea ik, my point is that this isn't really an appropriate use for PHP

#

it's like spring + thymeleaf, all the dynamic stuff is evaluated on the server side

jovial warren
#

any ideas for what I could make just for messing around and learning PHP?

#

I just chose this because I had no better ideas lol

prisma wave
#

Make a basic blog perhaps

jovial warren
#

if I had premade CSS files with all the designing done for me then maybe that would be a good idea

prisma wave
#

Meh

#

Styling isn't important

#

Use bootstrap if you really want it to look pretty

jovial warren
#

I guess

#

if you're making a blog though, you need to lay things out somehow

prisma wave
#

If you're wanting to learn PHP the frontend is irrelevant though

#

It could literally just be text

jovial warren
#

true

#

also want to learn Laravel at some point in this

lunar cypress
#

If you really have no particular interest or reason for learning PHP, I'd give that a second thought

prisma wave
#

lmao yeah, I shouldn't really be encouraging PHP

ocean quartz
#

Ayy nice, now it's all handled the same way, console messages, private messages, chat messages

half harness
#

How come ProtocolLib has "Lib" instead of "API" in its name? Is there a specific reason for that?

ocean quartz
#

I mean, it's a lib

half harness
#

but isn't it also an API?

#

Ive never used protocollib before

#

so idk

#

but how would u use it without an api

prisma wave
#

a lib provides an API, but an API doesn't always have a Lib

half harness
#

oh

#

can protocollib be also protocolapi?

#

iirc
lib = the code that actually does the thing
api = the code/interface that uses the lib to run the code

#

huh?

#

wait but how can u use something without an api?

#

would SomeLib lib = new SomeLib(); be considered an API?

old wyvern
#

Bm just explained it to you

prisma wave
#

an API is just an interface for interacting with something else

half harness
#

okay

prisma wave
#

not necessarily an interface

old wyvern
#

An API is (as defined by its expansion) an interface to communicate with another application or library

half harness
#

would SomeLib lib = new SomeLib(); be considered an API?
As SomeLib doesn't exactly have an "API"

prisma wave
#

libraries usually provide APIs because otherwise they wouldn't be very useful

old wyvern
#

^

prisma wave
#

the API is just the bridge between your code, and the library's code

half harness
#

what if there is no bridge

#

would SomeLib lib = new SomeLib(); be considered an API?
As SomeLib doesn't exactly have an "API"

#

like that

old wyvern
#

Then its a useles jar

prisma wave
#

if there was no bridge it would be a bad library

old wyvern
#

🙂

prisma wave
#

because there's no way of using it lol

ocean quartz
#

API is the access point of something, be an application or lib

half harness
#

would SomeLib lib = new SomeLib(); be considered an API?
As SomeLib doesn't exactly have an "API"
pls answer this 😦

prisma wave
#

bruh

#

how are we supposed to answer that

half harness
#

um

#

like

prisma wave
#

it's such a vague question

half harness
#

o

old wyvern
#

I think he means to ask about "API" being in the class name?

#

lmao

#

wha

half harness
#

no

old wyvern
#

oh

half harness
#

i dont feel like writing a whole class

old wyvern
#

What is your question then?

prisma wave
#

if you can use it to interact with a library, it's an API

half harness
#

OH

#

wait

#

how about this:

#

f i forgot

#

what i was just gonna type

#

;-;

#
public class SomeLib {
    public static doSomething() {
        System.out.println("hi");
    }
}
```how about this
prisma wave
#

not an API

#

nor it is a library

ocean quartz
#

Just an util class

prisma wave
#

and it won't compile

#

xd

old wyvern
#

xD

half harness
#

oh

#

y

old wyvern
#

Type

prisma wave
#

no return type

half harness
#

oh

#

I just typed it in discord

#

-_-

half harness
#

hm

prisma wave
#

util is usually a single class

ocean quartz
#

Util is just a class that provides easy to access things

half harness
#

ok

prisma wave
#

libraries are usually bigger projects that do something that wouldn't be easy to write yourself

half harness
#

wdym

ocean quartz
#

A lib adds functionality to your code usually through an API

prisma wave
#

frameworks are just libraries that wrap around your code, rather than the other way around

half harness
#

how come protocollib doesn't have api in its name

prisma wave
#

because it doesn't have to lol

half harness
#

and discontinued protocolapi

ocean quartz
#

Why would it?

prisma wave
#

^

half harness
#

well other plugins have api

prisma wave
#

the fact that it's a library implies that it has an API

half harness
#

instead of lib

prisma wave
#

bruh it's just a name

half harness
#

ok

#

ik

#

but

ocean quartz
#

ProtocolLib is not a plugin

half harness
#

project*

#

idk

prisma wave
# half harness wdym

for example an image processing library, it would be very time consuming to do that yourself, whereas a util to make gradients in the chat could be written fairly easily

ocean quartz
#

We already explained what an API is, if you want to put it in the name literally every public project would need to add it lol

half harness
#
ProtocolManager manager = ProtocolLibrary.getProtocolManager();
manager.addPacketListener(new PacketAdapter(plugin, ListenerPriority.NORMAL, PacketType.Play.Client.CHAT) {
    @Override
    public void onPacketReceiving(PacketEvent event) {
        Player player = event.getPlayer();
        PacketContainer packet = event.getPacket();
        if (isMuted(player)) {
            System.out.println("[MUTED] " + player.getName() + ": " + packet.getStrings().read(0));
            event.setCancelled(true);
        }
    }
});
```what is a manager
prisma wave
#

a... thing that manages

#

lol

ocean quartz
#

Something that manages things lol

half harness
#

o

ocean quartz
#

That's just english

half harness
#

ok

prisma wave
#

ProtocolManager is presumably a class that manages the protocol

#

lol

half harness
#
ProtocolManager manager = ProtocolLibrary.getProtocolManager();
manager.addPacketListener(new PacketAdapter(plugin, ListenerPriority.NORMAL, PacketType.Play.Client.CHAT) {
    @Override
    public void onPacketReceiving(PacketEvent event) {
        Player player = event.getPlayer();
        PacketContainer packet = event.getPacket();
        if (isMuted(player)) {
            System.out.println("[MUTED] " + player.getName() + ": " + packet.getStrings().read(0));
            event.setCancelled(true);
        }
    }
});
```is ProtocolManager an API?
ocean quartz
#

Bruh

prisma wave
#

the whole thing is an API

half harness
#

just

#

okay

prisma wave
#

because it's how you interact with the library

ocean quartz
#

Have you been reading what were saying?

half harness
#

i wanted to make sure

#

😅

prisma wave
#

"API" is not a formal thing, it's just a thing that you naturally write

#

you don't usually say "this is my api class"

#

it just exists

half harness
#

so if you can interact with something its an api

#

right?

prisma wave
#

no

half harness
#

oh

prisma wave
#

well

#

yes

#

but no

half harness
#

;-;

prisma wave
#

APIs are the way you interact with libraries

ocean quartz
#

Can you access it through your code? Then it's done through an API, API is not a single thing it's the entire thing

half harness
#

but sometimes APIs have the library intergrated in it

ocean quartz
#

No

prisma wave
#

no

ocean quartz
#

Libs have the API to use it

prisma wave
#

the library has an API, not the other way around

half harness
#

like java SomeLib lib = new SomeLib(); lib.doSomething(); wouldn't SomeLib be an API?

ocean quartz
#

No

half harness
#

huhHhh?

#

😕

ocean quartz
#

My brain hurts

half harness
#

😐

ocean quartz
#

Bm shoot me

prisma wave
#

shoot me first

half harness
#

😭

prisma wave
#

in that (kind of unrealistic) example, that class is part of the API

#

although it depends

#

because as I said it's not a formal definition

half harness
#

how about ```java
SomeAPI api = new SomeLib();

ocean quartz
#

What about it?

#

Why are you naming it API

prisma wave
#

you are confusing yourself with hypotheticals

half harness
#

:C

ocean quartz
#

Dude

prisma wave
#

that's not usually how it works

half harness
#

oh

#

😦

ocean quartz
#

API is not a physical thing, it just describes the connection between one application and another or application and a lib

prisma wave
#

^

half harness
#

oh

prisma wave
#

"API" is not a formal thing, it's just a thing that you naturally write
you don't usually say "this is my api class"
it just exists

half harness
#

so theres no such thing as an api class?

ocean quartz
#

No

half harness
#

wut

ocean quartz
#

There are classes that are part of an API

half harness
#

mhm

prisma wave
#

your API could be a single class, it just usually isn't

half harness
#

example pls

#

i

#

idk how

prisma wave
#

of what

half harness
#

to

#

um

#

hmmm

ocean quartz
#

How can you give an example of something that is just a concept that describes an interaction

#

API is literally just the interaction

#

Nothing more nothing less

half harness
#

Viaversion has an api class

obtuse gale
#

Instead of api class wouldn't it be better to say an api that contains a class?

ocean quartz
#

A library is a collection of functions / objects that serves one particular purpose. you could use a library in a variety of projects.

A framework is a collection of patterns and libraries to help with building an application.

An API is an interface for other programs to interact with your program without having direct access.

To put it another way, think of a library as an add-on / piece of an application , a framework as the skeleton of the application, and an API as an outward-facing part of said app.

prisma wave
#

thanks

ocean quartz
#

Please

obtuse gale
#

Lucky

half harness
#

im already ded

prisma wave
#

cheers

#

the api is the public bit, the library is the messy bit that does all of the work

half harness
#

but

#

what if a project has only one class

#

everything is jumbled in one thing

prisma wave
#

well first off that will most likely never happen

obtuse gale
#

Why r u making such a specific caae

prisma wave
#

^^

half harness
#

because im curious

prisma wave
#

you're bringing in hypothetical situations that are pretty much impossible

half harness
#

what would happen

prisma wave
#

if you have a project big enough to constitute a library, and it's all in one class then you have bigger problems than "what is the api"

obtuse gale
#

Spigot is an api that lets you interact with the minecraft server. The entire thing is the api not just the JavaPlugin class

half harness
#

o

#

🤔

prisma wave
#

although more specifically, spigot is an application that provides an API

half harness
#

interact with something else = api

prisma wave
#

it's not an API itself

#

yes...

#

i thought we'd made that clear

ocean quartz
#

Here let me try giving you a dumb example

the lib's api:
interface Message
interface Player

lib implementation:
MessageImplementation
PlayerImplementation
half harness
prisma wave
#

i literally clarified what i meant a few messages later

#

APIs are the way you interact with libraries

half harness
#

interact with something else = api
so if you can interact with something its an api
Are these different?

prisma wave
#

slightly

half harness
#

I guess

prisma wave
#

you can interact with the spigot internals, that doesn't mean they are an API

half harness
#

huh?

prisma wave
#

nms

half harness
#

im back to being confused

#

but ur interacting with nms

prisma wave
#

if you are using NMS you are not using an API because you're interacting with the library / application directly

half harness
#

huh????

ocean quartz
#

When you eat an apple, the eating part is the API

half harness
#

mhm

#

then whats th elib

ocean quartz
#

The apple

half harness
#

but ur interacting with NMS even if you're not supposed to

prisma wave
#

let's oversimplify it:
Is it public? probably part of the API
Is it private / hidden? Probably part of the library / application

ocean quartz
#

This is so dumb

half harness
#

ur running its methods

prisma wave
#

yes

#

but you're bypassing the API part

#

to interact directly

#

it's about abstraction

half harness
#

oh

ocean quartz
prisma wave
#

^

half harness
#

so spigot api uses the nms lib

#

and the devs use the spigot api

ocean quartz
#

No CraftBukkit does

half harness
#

i meant cb

prisma wave
#

CraftBukkit is nms

half harness
#

im confused again

ocean quartz
#

CraftBukkit is not the API is the software

prisma wave
#

^

#

Bukkit is the API, CraftBukkit is the application / lib

half harness
#

oh

#

i thought

#

they were the same-

#

just different names-

prisma wave
#

lol no

half harness
#

oh

#

i thought bukkit was short for cb

prisma wave
#

maybe it is

#

the entire thing is called Bukkit

#

but the actual server is called Craftbukkit

half harness
#

so

#

bukkit is the api for cb

prisma wave
#

yes

old wyvern
#

weird thought:
If a human is an application, its senses are the API

prisma wave
old wyvern
#

👀

prisma wave
#

human is more of an application than a library

half harness
#

oOf

old wyvern
#

fair enough

ocean quartz
#

Basically, and it uses the API to interact with the other libs in the universe software

old wyvern
#

There we go

prisma wave
#

or is the universe the application?

#

and we are all tiny modules

ocean quartz
#

Makes sense since we live in a simulation

half harness
#

okay, another question -

#

Is it possible to eliminate dependencies and somehow just implement it in my own plugin?

prisma wave
#

that's called shading

half harness
#

can u do it with gradle?

prisma wave
#

you probably already do

half harness
#

o

prisma wave
#

if you've ever used shadowjar

half harness
#

nope

prisma wave
#

never used mf-gui or anything?

half harness
#

nope

prisma wave
#

huh

#

well

#

it's a common thing

#

to include dependencies in your jar

half harness
#

how do I do it?

onyx loom
#

shadowjar gradle plugin

half harness
onyx loom
#

relocate, build with shadowjar

half harness
#

it just says shadow

prisma wave
#

what library are you intending to shade

half harness
#

idk

#

lemme look for one for an example

prisma wave
#

possibly

#

although it's a plugin so probably not

old wyvern
#

🥲

prisma wave
#

😟

onyx loom
#

cant wait to be garbage collected myself

old wyvern
#

Well they already improved the GC a lot in the 2020 covid update

#

so I guess time to wait

prisma wave
#

lmao

onyx loom
#

just a little longer 🥲

prisma wave
#

what

onyx loom
#

e_block

prisma wave
#

whAT

onyx loom
#

e_block

prisma wave
#

WHY

onyx loom
#

E_BLOCK

obtuse gale
#

I guess it removed the first 7 chars bc from LEGACY_???

#

¯_(ツ)_/¯

prisma wave
#

it seems to be something to do with that

#

but why

#

how

#

it's also breaking my GUIs for some reason

obtuse gale
#

but wait, Material overrides Enum#name??

prisma wave
#

idk

#

it doesn't look like it when i checked

obtuse gale
#

d;spigot material#name

ruby craterBOT
#

There was no direct match for that query, did you mean any of the following?: org.bukkit.Material#values org.bukkit.Material#valueOf org.bukkit.Material#isBurnable org.bukkit.Material#getId org.bukkit.Material#isAir

obtuse gale
#

non

prisma wave
#

Spigot does some hacky fuckery to keep legacy support afaik

#

but it's also causing MANY issues

obtuse gale
#

d;spigot material#tostring

ruby craterBOT
#

There was no direct match for that query, did you mean any of the following?: org.bukkit.material.MaterialData#toString org.bukkit.material.MaterialData#toString org.bukkit.material.MaterialData#toString org.bukkit.material.MaterialData#toString org.bukkit.material.MaterialData#toString

obtuse gale
#

lol

prisma wave
#

Ock

obtuse gale
#

lmao

hot hull
#

Ock!

obtuse gale
#

henlo frrosti

hot hull
#

Henlo

obtuse gale
#

yes

hot hull
#

Anyone wanna judge something I had to cook up in like two hours for an event cause the spigot plugin that was supposed to be used didn't work at all

prisma wave
#

Ock

hot hull
#

Don't judge too hard, it was rushed

ocean quartz
prisma wave
#

double quotes in gradle scripts 😐

#

couldnt be me

ocean quartz
prisma wave
#

no

hot hull
#

It's so much nicer than single quotes

ocean quartz
#

Yes

onyx loom
#

NO

prisma wave
#

single quote gang

onyx loom
#

😎

ocean quartz
onyx loom
#

"javac"

#

NO

prisma wave
#

horrible

onyx loom
#

disgusting

prisma wave
#

absolutely horrible

hot hull
#

Matt, I'm using your msg lib and I forgot to disable the ____ formatting so some names were italic :p

ocean quartz
#

__ __ or _ _? Because __ should be underline

hot hull
#

Discord formatted it

prisma wave
#

way to reinforce the "matt framework" monopoly... 🙄

ocean quartz
prisma wave
#

good question

onyx loom
#

thats what happens when u use ""

prisma wave
#

^^

obtuse gale
#

fake news

prisma wave
#

obviously a "" user doesn't know how to properly format things!

onyx loom
#

!!!

hot hull
#

Matt, I was rushing and didn't format lol

half harness
#

credit to codedred discord fingerguns

onyx loom
#

it is bad

#

because 1.16 good reversed_fingerguns

hot hull
#

Can't wait to have even shittier performance on 1.17

obtuse gale
#

can't wait?

#

check out the snapshots then

steel heart
#

not that worse

onyx loom
#

its ok tho, we have a bigger sky limit in 1.17!

#

now we can have our farms at y 1000 !

steel heart
#

we will have enhanced caves also :]

hot hull
#

Only thing I'm hiped about Kali

ocean quartz
#

Also @hot hull you might wanna change your wildcard import settings

hot hull
#

Oof thanks for noticing, it used to only fuck up when using kotlin

ocean quartz
#

I have mine at 1000 and static at 20

#

For both Kotlin and Java

#

I hate it that it's separate

hot hull
#

I think those settings messed up not so long ago, cause I had a project which had a lot more and it didn't fuck with wildcards

kindred hatch
#

lol

ocean quartz
#

That moment when you make something and don't remember how it works

static zealot
#

That moment when you make something and you don't remember what you made fingerguns

ocean quartz
#

Like, i don't remember how i made it so a injected node would skip the color check and let the following node be colored like the previous one xD

#

But hey it works so not gonna complain

half harness
#

For packages, what are some packages that I should use? (such as making a util package)

somber tulip
#

entirely depends on your project, for example if you're using some form of database a database package would be a good implementation

half harness
#

where should I put the classes that actually do the stuff

#

idk what to name it

old wyvern
#

do what stuff?

somber tulip
#

Inside the package so the package may be me.dkim19375.<plugin>.database and then inside that you'd put the classes that do the database handling

old wyvern
#

um use singular instead of plural forms

ocean quartz
#

Not exactly a good example, but here is my current project packages

half harness
#

whats func?

ocean quartz
#

Functions

somber tulip
#

Is that kotlin matt?

ocean quartz
#

Yeah

half harness
#

wait what would go in functions package

ocean quartz
#

Top level functions

half harness
#

?

ocean quartz
#

Basically utils yeah

somber tulip
#

Kotlin has extension functions? So for example, I could add another function to a String? such as "Hello World".myCustomFunction()

half harness
#

then what goes in permissions package

#

and component

#

and chat

distant sun
#

Yes harolds

somber tulip
#

Oh what a feature to have

#

thanks java

ocean quartz
half harness
#

wdym permissions

onyx loom
#

permissions?

#

lol?

half harness
#

you can just check for permissions using Player#hasPermission im confused

distant sun
onyx loom
#

1970 :sus:

somber tulip
#

Fair

#

Wish I was learning kotlin at uni but they're old school-ish and I'm on scala :/

distant sun
#

F

ocean quartz
#

@somber tulip For example:
internal fun String.parseMarkdown(options: MessageOptions) = MarkdownParser(options).parse(this
So i can "**Hello!**".parseMarkdown() instead of MarkdownParser(options).parse("**Hello!**")

somber tulip
#

😦 so useful.

distant sun
#

whats up with internal thingo

ocean quartz
#

I don't want them to be public

old wyvern
#

Module level hiding

ocean quartz
#

^

distant sun
#

So is only available to your project or to that package?

old wyvern
#

btw, for some reason even with just the changed name, I couldnt access internal variables from Java

old wyvern
half harness
#

If I had a minigames plugin what package would I put most of the code in?

ocean quartz
#

The module, so like

api
plugin

Since it's only on plugin it'll only be accessible inside the plugin module

distant sun
#

Aight

old wyvern
half harness
#

no

ocean quartz
#

In Java it'll look like Method$plugin though

onyx loom
#

well it depends what this minigame will be doing

half harness
#

uh

#

lets say bedwars

#

like me.dkim19375.bedwars.whatpackagename

onyx loom
#

all packages will depend entirely on what ur making, we cant name the packages for u

#

as long as theyre descriptive and corresponding it shouldnt really matter

distant sun
onyx loom
#

i dont think java has an "internal"

#

closest is probably protected, idk

old wyvern
half harness
ocean quartz
distant sun
#

Ok

old wyvern
#

Wait why protected?

ocean quartz
#

Idk, it's the closest thing to public without being public in java xD

old wyvern
#

hmm fair enough

obtuse gale
#

package private?

ocean quartz
#

Not exactly

obtuse gale
#

ok

lunar cypress
#

Package private would be closer because internal doesn't allow access from foreign sub classes either I believe

prisma wave
#

And Kotlin borrows a lot from scala

onyx loom
#

better than learning visual basic like i did for college

old wyvern
#

Yes

onyx loom
#

yes?

prisma wave
#

In theory

#

No plugins

old wyvern
#

No need of plugins

somber tulip
#

Oh no, definitely. I'm by no means upset to be learning scala however, since scala skews further from java kotlin would be easier for me to learn and understand in comparison

old wyvern
#

Use terminal

onyx loom
#

good luck

prisma wave
#

I would say scala is probably more valuable to learn

#

Because it gives you knowledge of FP alongside OOP from java

lunar cypress
#

Learning things you don't know yet is a good thing (hot take ik)

prisma wave
#

And once you know them both Kotlin is trivial

onyx loom
#

very hot take

lunar cypress
#

The new Scala revision has just come out hasn't it

prisma wave
#

No idea

lunar cypress
#

Really cool stuff I remember reading about

prisma wave
#

Scala is definitely cool

#

I've hardly used it but it seems cool

#

No algebraic data types though so +1 to elara

onyx loom
#

that one time u used scala for a plugin 👀

prisma wave
#

That's the only time I've used it lol

lunar cypress
#

Ah yes Dotty/Scala 3

somber tulip
#

How did you even get the plugin to launch with scala wtf lmao

prisma wave
#

Scala was one of the easiest

#

Because it compiles to plain Bytecode

#

Clojure was the hardest because it does classloader stuff which spigot doesn't like

lunar cypress
#

Btw, I was just scrolling through #showcase, came across @Andre_601#0601 s blog post and... holy shit, this other dude's article is hilarious in every way

prisma wave
#

kangarko's?

lunar cypress
#

Yes

prisma wave
#

yeah it was hillarious

#

I lost it at the Margaret Thatcher quote

lunar cypress
#

Me too lmfao

#

Though he somehow managed to make it even more ridiculous with the Gandhi quote at the end

prisma wave
#

That was the icing on the cake

#

He takes himself so seriously

#

In the last 8 years, SpigotMC has failed to provide a tutorial on using their own software that’s complete, simple, up-to-date, structured and with personal customer support. Instead, they’d call people idiots and wonder why little donations have been raised. We built our classes out of the need to help people understand their software.

... what?

#

im rereading this and it's even worse

#

like

#

in what sense is spigot obligated to do that

lunar cypress
#

You know it's good when it's just a bunch of random screenshots taken out of context and crying about free speech because the mean internet people didn't let you scam enough people

prisma wave
#

Governments want to ruin hobbyists and small entrepreneurs, forcing them to go out of business by imposing restrictions and lockdowns.
He also added a subtle anti-lockdown point 🤔

lunar cypress
#

Yeah, good start

onyx loom
#

lol

prisma wave
#

It's so dumb, he was obnoxiously advertising for months and doesn't even acknowledge that

lunar cypress
#

You immediately recognise the type

#

I've actually looked at his course about 1.5 years ago and it was very fishy to say the least

prisma wave
#

I've seen some of the code they use

#

it's hillariously bad

#

let me try and find it

#

This was it

#

they encourage all of the users to use it as far as I know

onyx loom
prisma wave
#

obviously

lunar cypress
#

Oh lord

prisma wave
#

Yep

lunar cypress
#

LMFAO I just discovered the burner email I used to get the free trial of the course again

#

Jfc

#

So many ads

prisma wave
#

🥶

#

I think this is one of my favourites

onyx loom
#

🥶

prisma wave
#

I have no idea what's going on

obtuse gale
#

what the fuck is that

onyx loom
prisma wave
#

wat

obtuse gale
prisma wave
#

are you surprised?

#

really?

obtuse gale
#

no lol

prisma wave
#

won't this... not work?

obtuse gale
#

A dirty way...
yeah fuck off lmao

obtuse gale
#

private static final long serialVersionUID = 1L;
ACOSP_what

prisma wave
#

lmfao

#

it just gets better and better

lunar cypress
obtuse gale
#

I know what serialization is

#

but man

#

1?

#

fr

lunar cypress
#

Fair enough LOL

prisma wave
#

arbitrary values are arbitrary

obtuse gale
#

for that matter I'll just use 0L in all my serializable classes

#

that's stupid

#

lazy

lunar cypress
#

"Running garbage collection... increasing delay between operations... hacking the mainframe..."

prisma wave
lunar cypress
#

Oh I really wanna see if the course material has gotten any better

prisma wave
#

highly unlikely

distant sun
#

Cant you use Class#forName to check if smth was shaded or not?

#

Also, ew

obtuse gale
#

that will be relocated too

#

wouldn't it?

prisma wave
#

yeah it should be

distant sun
#

Makes sense

prisma wave
#

i think

#

maybe

distant sun
#

What is a proper way to check though?

#

I know bstats uses a byte[] with their package in it

prisma wave
#

there isn't really a way that doesn't involve minor hacks

distant sun
#

@deprecated do not use 👌

midnight cape
#

What is the symbol of the lines that appear in the categories?

prisma wave
#

oh no

#

and so it begins

obtuse gale
#

Td is volatile

#

Since when Is that a keyword

prisma wave
#

relates to where variables are stored - volatile things are always stored in memory rather than a cpu cache so every core sees the same value

#

it's a multithreading thing

onyx loom
#

very useful in mc

prisma wave
#

INCREDIBLY useful

onyx loom
#

🌝

lunar cypress
#

That's not how volatile is specified but I think we discussed this here once already

prisma wave
#

Ah my mistake

#

Isn't that effectively what it does though?

onyx loom
#

it's a multithreading thing
well this part is true yeah

prisma wave
onyx loom
#

yet another loss

prisma wave
#

never saw it coming

onyx loom
#

lol

prisma wave
#

🤔

crisp trout
#

@prisma wave @onyx loom what?

prisma wave
#

what?

crisp trout
prisma wave
#

oh I see

#

have you ever heard of clojure

crisp trout
#

nope

prisma wave
#

okay

crisp trout
#

what is it?

prisma wave
#

Clojure is a dynamically typed programming language that runs on the JVM and JavaScript. It is a Lisp, and adopts the functional paradigm with strong support for metaprogramming, multithreading, and statefulness

crisp trout
#

yes but i don't know how to program in java

#

I am not a developer

prisma wave
#

okay my mistake sorry for the confusion

onyx loom
#

😂

crisp trout
#

no problem

prisma wave
#

have you heard of elara though

#

/s

#

/s

pearl kiln
#

@prisma wave thinks everyone is a developer 😛

lavish wigeon
#

hello , my premium role haven't update as i have brought the DeluxeChat

#

want to get a support

obtuse gale
#

Tried kotlin?

ocean quartz
lavish wigeon
compact perchBOT
#
FAQ Answer:

You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/ to upload images/screenshots.

lavish wigeon
#

thx

obtuse gale
#

lol

pearl kiln
ocean quartz
#

@pearl kiln Any specific reason for the friend request?

obtuse gale
#

Yes

#

You are cool

ocean quartz
#

I see

obtuse gale
hot hull
#

Y u change pfp @obtuse gale

quiet depot
#

@old wyvern that scanner is so bad lol

#

first page is hella blurry

#

nvm last page is even worse

old wyvern
#

xD

#

Online exams

#

My phone's camera isnt too good, welp.

hot hull
#

How does one set a block from an itemstack, this used to be a thing iirc but it doesn't seem to be anymore in 1.16.4

old wyvern
#

set a block from an itemstack?

#

You mean the type?

hot hull
#

yup

#

It only takes a material now

old wyvern
#

uh Block#setType

hot hull
#

yugi...

old wyvern
#

What were you looking for then?

hot hull
#

before you could apply an itemstack meaning the block would have a let's say texture if it was a head

#

I looked at BlockData but doesn't seem to have any options for that

#

might just switch to armor stands with heads since that might allow for more customisability

old wyvern
hot hull
#

I'm like 70% sure, unless I'm being an idiot rn

old wyvern
#

I dont think it was, Ive only seen people make workarounds for their specific cases

quiet depot
#

don't think it's a thing frosty

#

but you can still set the texture

hot hull
#

my brain no work anymore

quiet depot
#

you used to be able to use materialdata

#

but that's deprecated

#

so what ur trying to do isn't possible anymore afaik

hot hull
#

Lemme test

quiet depot
#

d;spigot itemstack#getdata

ruby craterBOT
#
@Nullable
public MaterialData getData()```
Description:

Gets the MaterialData for this stack of items

Returns:

MaterialData for this item

quiet depot
#

d;spigot block#setdata

ruby craterBOT
#

There was no direct match for that query, did you mean any of the following?: org.bukkit.block.Block#getData org.bukkit.metadata.Metadatable#hasMetadata org.bukkit.metadata.Metadatable#setMetadata org.bukkit.block.BlockState#setData org.bukkit.block.Block#setBlockData

quiet depot
#

d;spigot blockstate#setdata

ruby craterBOT
#
void setData(@NotNull MaterialData data)```
Description:

Sets the metadata for this block state.

Parameters:

data - New block specific metadata

hot hull
#

It's BlockState now piggy

#

well BlockData

quiet depot
#

yeah but you can't get blockdata from an item stack afaik

hot hull
#

Anyhow yea it's possible

#

(itemstack was in the context of I thought it being a thing before, I can just set it normally)

little hamlet
#

?json

compact perchBOT
lunar cypress
#

The JVM is too virtualised to make that statement

hot hull
#

rate on ew scale from 1 - 10

MessageHandler.TREASURE_FOUND.executeForPlayer(
  player,
  "{player-name}", player.getName(),
  "{treasure-rarity}", treasure.getFormattedType(),
  "{treasure-points}", String.valueOf(treasure.getTreasureType().getPoints()),
  "{user-points}", String.valueOf(userController.getPointsForUser(player))
);
#

wow a 10

#

u dumb

#

ew @distant sun What is this naming!!11!

final Action Action =

distant sun
#

:)

hot hull
#

Using your lib cause I can't be bothered to convert mine to java yet

obtuse gale
#

hello

hot hull
#

cause running java 15 and it don't work :sad:

obtuse gale
#

omg i need help so gosh dang bad

hot hull
#

Don't we all Hazy

obtuse gale
#

hey frosty do you know how to work esssentials?

hot hull
#

Ask away

distant sun
#

I have to change some stuff but =/

obtuse gale
#

okay so im literally having anxiety and shit because i cant really

#

its so hard

#

im stressing so much

hot hull
#

Gaby, I could potentially PR 😏

obtuse gale
#

i need help with essentials with making ranks, setting perms and setting perms for kits

distant sun
#

By change I mean rewrite most of it xd

obtuse gale
#

if anyone can help please dm me im literally losing my mind, its with the essentials plugin

hot hull
#

yeye Gaby

distant sun
hot hull
#

I mean could potentially contribute to mine if you want Gaby

obtuse gale
#

there

#

dome

hot hull
#

I got the base done just need to add the different actions

obtuse gale
#

i just need instant help but i can wait

distant sun
#

Will see, I dont have much time rn =/

obtuse gale
#

all i need

#

is how to set it up

#

can we please dm and i can voice chat explain what i need help with

somber widget
#

Is it posible to make an item entchanted when you click on it in your GUI and when you click agian it un antchants

old wyvern
#

Yes

somber widget
#

Oke is it also possible to do it with placeholderapi?

old wyvern
#

huh?

#

What does the enchants have to do with placeholders?

somber widget
#

Yea nvm

hot hull
#

:bruh:

[13:03:00 WARN]: java.lang.NoSuchMethodException: net.minecraft.server.v1_16_R3.PacketPlayOutChat.<init>(net.minecraft.server.v1_16_R3.IChatBaseComponent,net.minecraft.server.v1_16_R3.ChatMessageType)

prisma wave
prisma wave
steel heart
#

ThrowingConsumer

#

Lol nice name