#help-development

1 messages · Page 386 of 1

small hawk
#

Well, multiply blocks can be placed, so i don't know how many schedulers i will need

#

that is quite important

hazy parrot
#

How is that important

small hawk
#

well, i would like to have it, but if it's more advanced, i will limit that

hazy parrot
#

Oh, save bukkittask in set or smth

#

Or just have simple counter

#

Must scheduling methods return BukkitTask instance

quaint mantle
#

What cardinality would be used if one of the classes extend another one?

pseudo hazel
#

if it doesnt have to be exact on the milisecond you can just put them all in a set and tick the time for all of them at once

pseudo hazel
quaint mantle
#

The relationship type

pseudo hazel
#

well its not a relation

hazy parrot
#

Well, it is kinda

pseudo hazel
#

its just the same object, but with extra things

hazy parrot
#

Child is parent

#

So basically is relationship

quaint mantle
#

would it not is has?

pseudo hazel
#

no

hazy parrot
#

Definetly not has

eternal night
quaint mantle
#

has a?

hazy parrot
#

Whatever has means

pseudo hazel
#

no its not has or any variation of it

#

like why do you wanna know this?

tardy delta
#

"is a"

quaint mantle
#

I'm just working on a UML diagram

pseudo hazel
#

like a class diagram?

quaint mantle
#

Yes

pseudo hazel
#

it would be an "extends" arrow

quaint mantle
#

So that would it association type then

pseudo hazel
#

ie an open triangle pointing to the base

quaint mantle
pseudo hazel
#

its association is inheritance/extension

quaint mantle
#

yea

#

fabric modding documentation might be one of the clumsiest documentations ever.

#

they dont even list out everything in their own api on their own website.

#

how do people even write minecraft mods like create and immersive portals?

#

this is so difficult.

#

i cannot tell what goes where.

#

easily, at least.

#

Now what cardinality do you think would be used I would say 1

#

Maybe even 1 .. 1

pseudo hazel
#

no

#

it doesnt have any number

quaint mantle
#

Does it not have to have one?

pseudo hazel
#

an extension is a special type of relation

#

it cant have a number because they are the same object functionally

hazy parrot
pseudo hazel
#

you can to an extent

quaint mantle
wide coyote
#

is there a way to find out a command's output without reading the logs? (for consolesender executed commands ofc)

tardy delta
#

why are you making a class diagram?

quaint mantle
#

For an outline

pseudo hazel
#

if a class doesnt implement or extend anything, there is no extensiom relationship

tardy delta
#

probably want a code way

wide coyote
#

yeah lol

#

someone suggested this to be added one of my projects which is a remote command execute tool

tardy delta
#

where should you get the ouput?

#

you can see if an onCommand returns true or false 💀

pseudo hazel
#

first of all, please use getBlockY instead of getY and dont loop over doubles like that

wide coyote
#

💀

hazy parrot
wide coyote
hazy parrot
#

Ig it returns output

tardy delta
#

are we talking about a spigot or bungeecord context now?

wide coyote
#

both

#

but lets assume it is for spigot

tardy delta
#

uhh cuz the only command output thing in spigot i know is the returned boolean in CommandExecutor#onCommand

#

do you also mean logs?

wide coyote
#

yeah the message, text ones too

#

just the boolean doesnt mean much for server owners tbh

tardy delta
#

could hook into the loggers probably

hazy parrot
#

Rcon 😦

tardy delta
#

but the thing is to know when it was command output and when not

wide coyote
hazy parrot
#

Well, I really have no resources for that, but should be plenty online

#

It's just simple protocol

#

Send command-receive output

#

It's also integrated into vanilla Minecraft ^

minor garnet
#

but anyways the for loop is not being called tf

pseudo hazel
#

but like do you only want to loop for one position per block?

minor garnet
#

yeah i guess

pseudo hazel
#

so what are those delta positions

minor garnet
#

its because i want get all entities inside of those specify locations nvm

pseudo hazel
#

and btw you messed up teh for loop itself since you check against x <= value

minor garnet
#

i just want to know fix my problem now

pseudo hazel
#

instead of for x, y an z differently

minor garnet
#

?

pseudo hazel
#

for(double x = minX; x <= maxX; x++) {
for(double y = minY; x <= maxY; y++) {
for(double z = minZ; x <= maxZ; z++) {

#

; x <= maxY

minor garnet
#

let kill me self

wide coyote
wide coyote
grand magnet
#

Can someone help me with this. When I shift and click on Freebuild the item is dragged into my hotbar. However, it is only a glitch item because it disappears again when I right click it.

hazy parrot
#

Also it may be unreliable as Fourteenbrush said

wide coyote
grand magnet
#

Thank you very much

wide coyote
#

thanks Fourteenbrush and goksi

worldly ice
pseudo hazel
#

is anyone familiar with font based inventory ui textures in chat rn? I have been testing and it seems like 256x256 is the max size for a gui, is that true?

#

anything above just breaks the texture and displays a box character

#

okay

chrome beacon
#

Could probably have multiple characters though

pseudo hazel
#

thanks for the confirmation

#

oh yeah that makes sense

#

like combine them

#

I was planning on combining characters but the spacing might be kinda tricky

#

or is there a way to reduce the character space it takes up to 0?

echo granite
#

Hello, is there a reliable API for 1.19 that allows me to change a player's skin?

pseudo hazel
#

or is that already the case when I usea custom font

chrome beacon
pseudo hazel
#

well yeah thats the weird T character iirc

#

okay

#

I just answered my own question

#

thanks for your help lol

#

I guess one more question

#

is it also possible to offset that space in the font provider entry itself?

#

like height and ascent

#

is there like an option for horizontal offset?

tardy delta
frank kettle
#

Is there any reason for sometimes an error occurring "Class not found" but class exists?

#

It's not constant but rarely happens

echo granite
#

How can I change the player's name above head?

twilit roost
#

how can I get Velocity as single Number?

echo granite
#

is there an API way?

eternal oxide
#

velocity.length

restive mango
#

@drowsy helm lombok powerful

#
@SuperBuilder
public class GenCone extends LocationGeneratorSegment implements LocationGenerator {

    @Override
    public List<Location> run() {
        int sanity = 0;

        List<Location> runlocationList = new ArrayList<>();

        while ((runlocationList.size() < this.getLocationNumber()) && (sanity < 100000)) {
            sanity = sanity + 1;
            double thisLocRadius = this.getOuterRadius() * (Math.pow((1 - ((1 - (this.getInnerRadius()  / this.getOuterRadius())) * random())), 1.0 / 3.0));
            double theta = (1 - (2 * Math.random())) * Math.PI * (this.getArcAngle() / 360) + Math.PI + Math.atan(this.getOrientation().getY()/this.getOrientation().getX());
            double phi = Math.acos((2.0 * Math.random() - 1.0) * (this.getArcAngle() / 360)) + Math.atan(Math.pow(Math.pow(this.getOrientation().getX(), 2) + Math.pow(this.getOrientation().getY(),2), 0.5)/this.getOrientation().getZ());;

            double x = thisLocRadius * Math.sin(phi) * Math.cos(theta);
            double y = thisLocRadius * Math.sin(phi) * Math.sin(theta);
            double z = thisLocRadius * Math.cos(phi);

            Location sampleLocation = this.getOrigin().clone().add(x, y, z);

            if (this.isSeekGround()) {
                runlocationList.add(LocationGeneration.SeekGround(sampleLocation));
            } else if (!((this.isNoSolids()) && (sampleLocation.getBlock().getType().isSolid()))) {
                runlocationList.add(sampleLocation);
            }

        }

        this.setLocationList(runlocationList);
        return this.getLocationList();
    }


}
umbral torrent
#

is there event that triggers when player places item in inventory (after dragging it)?

#

exactly moment when he releases the item

#

default InventoryClickEvent doesnt register it

#

Or at least when new item appears in inventory

echo basalt
#

InventoryDrag

hasty hamlet
#

I 'm making a plugin for stairs , if you put one ladder , three will be put at once . the algorithm is easy, but for some reason it is not possible to write a plugin

#

helicopters , help with the plugin .

#

the plugin is very light, but for some reason it doesn't work for me

#

can someone write a plugin for me? please

#

my head is boiling

umbral torrent
# echo basalt InventoryDrag

How is it used?
i use it like this and nothing happens:

@EventHandler
    public void onDrag(InventoryDragEvent e) {
        if (e.getInventory().getHolder() instanceof GuiSell) {
            //do my stuff
        }
    }
umbral torrent
echo basalt
#

getNewItems returns a Map<Integer, ItemStack>, where the Integer is the raw slot and the itemstack is the new item that is at that slot

#

getInventorySlots returns... "local" slots which I'd argue is a poor design choice but whatev

hasty hamlet
#

can you write a plugin , is it light ? please

remote swallow
#

?services

undone axleBOT
remote swallow
#

or ask onthe forums

hasty hamlet
#

plis

hazy parrot
#

Stop begging for free stuff, it's cringe tbh

umbral torrent
echo basalt
#

events usually fire before the result occurs

echo granite
#

How to change the name above the player's head? couldn't find any updated solution

dry yacht
dry yacht
# umbral torrent nope

Then it's the InventoryClickEvent for sure. How do you know that it's not firing? What does your current event handler look like?

umbral torrent
# dry yacht Then it's the `InventoryClickEvent` for sure. How do you know that it's not firi...

its quite long so i will cut few parts

@EventHandler
    public void onClick(InventoryClickEvent e) {
        if(e.getClickedInventory() == null) return;
        if (e.getClickedInventory().getHolder() instanceof GuiSell) {

            ((GuiSell) e.getClickedInventory().getHolder()).UpdatePrice();

            ItemStack currItem = e.getCurrentItem();
            Player player = (Player) e.getWhoClicked();

            if(currItem == null) return;
            if (//needed item) {
                // do stuff
            }
            if (//needed item 2) {
                // do stuff
            }
            if (//needed item 3) {
                // do stuff
            }
            ((GuiSell) e.getClickedInventory().getHolder()).UpdatePrice();
        }
    }
tardy delta
#

why abusing the inv holder instead of creating a wrapper?

dry yacht
umbral torrent
umbral torrent
#

Thanks a lot!

tardy delta
#

oh ye you're doing more stuff than me

echo basalt
#

always

#

small project I'm working on has officially hit 800kb without any shading

dry yacht
quiet ice
echo basalt
#

not really

echo granite
#

How to change the name above the player's head? couldn't find any updated solution

quiet ice
#

Unless you copy & pasted a shitton of stuff

echo basalt
#

like

#

so far I've got maybe 1 complex menu thing

#

maybe two

#

it just happens to have a ton of classes

quiet ice
#

that is quite a lot more classes than I usually have in my projects

tardy delta
#

my parser is like this 😳

dry yacht
quiet ice
#

that is the opposite

#

So welcome to the world of enterprise java

#

I'm the monolith guy

mortal hare
#

is it bad to leave reflected constructor open

quiet ice
#

Hence projects rarely exceed 100-ish classes

mortal hare
#

im thinking of caching the protected constructor reflection object

#

inside a field

#

and setting it as accessible

#

is there any drawback leaving .setAcessible() to true always until object's lifetime?

#

constructor.setAccessible(true);

#

or is it just for the instance

quiet ice
#

well not truely other than incompatibility with other plugins

hasty hamlet
#

who can make a plugin? very light

dry yacht
tardy delta
#

well your stuff is far more complicated and is like a scripting lang

mortal hare
hasty hamlet
#

who can make a plugin? very light???

#

who can make a plugin? very light

mortal hare
#

im busy

dry yacht
# quiet ice that is the opposite

I was getting at the fact that it seems to be a quiz, npc, chat, skin and ray-tracer, all at once, xD. I usually try to create separate reusable projects, a file-tree like this would make me go insane.

dry yacht
tardy delta
#

and you believe that

hasty hamlet
#

who can make a plugin? very light

dry yacht
tardy delta
hasty hamlet
#

if the player puts one ladder , three will be put

mortal hare
#

Fine ill do it myself:
As other posters have indicated, setAccessible is only applicable to that instance of your java.lang.reflect.Field, so setting the accessibility back to its original state is not needed.

quiet ice
hasty hamlet
mortal hare
#

with what

quiet ice
#

Anyone that does setAccessible(false)

hasty hamlet
mortal hare
#

but setAccessible is only applicable for the the instance of the Field object

#

?

quiet ice
#

No

quiet ice
#

Or well yes

hasty hamlet
#

geol

quiet ice
#

But not really

#

Getting the field twice should get you the same object

hasty hamlet
#

who can make a plugin? very light

quiet ice
dry yacht
dry yacht
mortal hare
#

but The getDeclaredField method has to return a new object each time, exactly because this object has the mutable accessible flag. So there is no need to reset the flag.

hasty hamlet
#

if the player puts one ladder , three will be put

alpine urchin
#

do you want

tardy delta
alpine urchin
#

a free plugin

alpine urchin
#

from me

mortal hare
#

that's from stackoverflow

#

and no i dont

alpine urchin
#

who here needed a free plugin

sterile token
hasty hamlet
#

me

alpine urchin
#

im an experienced dev with an amazing portfolio

hasty hamlet
#

to me

sterile token
#

🤦‍♂️

#

I never have dm to fast to choco

#

ahahaha

hasty hamlet
#

can you write please?

alpine urchin
#

what

sterile token
#

🤑

quiet ice
#

SLAPI, Micromixin, Starplane and my Maven resolver are projects that are in progress.
SLL 5.0, SLBC, an eclipse IRC plugin and multiple theotown & galimulator mod projects are projects that I want to start in the next year.
And then there are other Eclipse plugins that I am wishing to start within the next few years.

So, do you think I have time for other projects, @hasty hamlet? Also, be aware that other developers have a similar backlog

alpine urchin
#

i only do it for you under one condition @hasty hamlet

hasty hamlet
alpine urchin
#

you pay me

sterile token
#

hahahahah

#

🤣 🤣🤣

mortal hare
#

i actually found a whole post dedicated to mutability of Reflection objects that states the opposite @quiet ice

hasty hamlet
#

there is no money

alpine urchin
#

how dare you disrespect our ability

#

do you go work at a shop for free

dry yacht
alpine urchin
#

cause the owner

#

cant afford it rn

sterile token
alpine urchin
#

no

hazy parrot
#

He is begging for 3 hours now

#

Incredible

alpine urchin
#

i don’t know context but if you cannot afford what you need to get your server running

#

you’ve got a bigger problem

mortal hare
sterile token
hasty hamlet
#

why don't you make me? And I will leave this channel and not go in

sterile token
#

He has break a lot the balls

alpine urchin
#

why are you talking french

quiet ice
alpine urchin
#

i am capable of creating a plugin you want if you pay

mortal hare
#

but wait

alpine urchin
#

the appropriate price

sterile token
hasty hamlet
#

I'm talking about plugin

mortal hare
#

in the blog post it states it depends on implementation

alpine urchin
#

anyone that does it for free likely isn’t competent enough

mortal hare
#

The specification doesn't explicitly say that calling Class.getMethod twice with the same parameters will return the same Method object, but it doesn't rule it out either.

alpine urchin
#

thats how the world works

hasty hamlet
#

if the player puts one ladder , three will be put

alpine urchin
#

oh

#

if its that

#

you convinced me

sterile token
#

I know how that type of people are

hazy parrot
#

I'm sure that answer is sarcastic 😂

sterile token
#

I supouse haha

dry yacht
sterile token
#

But i will wait Imajin to see how he make the plugin in 5 seconds

alpine urchin
#

i find people like him entertaining

#

he does have a lesson to learn though

quiet ice
#

Let's see how SSVM implements that method...

alpine urchin
#

we not gonna believe in your server blowin up and becoming rich cause we made a free plugin

#

we want fair pay, and if you want to pay go to services

#

?services

undone axleBOT
alpine urchin
#

go work

#

a job

#

in real life

quaint mantle
#

hes not in the server

alpine urchin
#

ok

mortal hare
#

eh im not trusting it

alpine urchin
#

anyone else

#

watching

mortal hare
#

ill just reset it

#

each time im using it

alpine urchin
#

go do work irl

#

before you believe in your server

#

thats gonna fail

#

anyway

sterile token
alpine urchin
#

dang

#

i miss him already

#

loved trolling

#

getting his hopes up

#

if its that, then its simple

sterile token
#

hahahaha

alpine urchin
#

ill just reverse the md5 hash

#

starting my own server partly gave me motivation to learn coding

#

i had no money but i wasn’t begging people

#

i think its a good approach to certain things in life

#

can’t get it? do it yourself

sterile token
#

Agree with you retrooper, thats how i started coding

mortal hare
#

too bad java doesn't have destructors

#

like in cpp

alpine urchin
#

doesn’t have*

#

nowadays i wanna correct incorrect english

quiet ice
quiet ice
tardy delta
#

then crying when it doesnt get called

quiet ice
#

Just disregard that it is deprecated

tardy delta
#

cleaners

#

i havent really looked into that api

sterile token
hazy parrot
#

Isn't there like newer alternative for finalize?

#

Or I dreamt about that

quiet ice
tardy delta
#

i believe so

quaint mantle
#

Having an error using the remapped-mojang spigot dependency, trying some stuff with tags n stuff but im having this error when trying to load the plugin

remote swallow
#

you arent remapping

quaint mantle
#

what do u mean im not remapping?

remote swallow
#

you dont have the special source plugin

orchid gazelle
#

What build system are you using?

quaint mantle
#

im using maven

remote swallow
#

?nms get the info off here and change the version, specifically the special source

mortal hare
#

is this a bug?

#

the behaviour of tab completion is weird

#

tbh

remote swallow
#

up to that plugin to handle it

mortal hare
#

yea, but it handles it properly when text is inputted by hand

#

its behaviour changes then you press up arrow

shut mauve
#

Hello everyone,
I'm talking to very crazy people who are still coding in 1.8, do you know how to create a BossBar (API, packets, ...) ?

mortal hare
#

or a wither

#

and make it trace player's X and Z coordinates

dry yacht
mortal hare
#

there are plenty of API's that does this

mortal hare
#

im just testing my impl of cmd api

shut mauve
#

but is this really nice to do that ? bc people may see it ? or hear it ?

dry yacht
shut mauve
mortal hare
#

Its a literally uncompressed Trie data structure

#

currently

river oracle
echo basalt
#

on 1.8

#

you gotta spawn a wither (client-sided or not)

#

usually people make it invisible

mortal hare
#

that's what i already said

echo basalt
#

it'll draw particles regardless as those are client-sided

shut mauve
#

Okay, that's unfortunate... but thx

echo basalt
shut mauve
#

I tried it, and doesn't work because the Color enum is "Unfoundable"

dry yacht
mortal hare
#

thisi s what trie is

#

its a tree of nodes with character values

#

except mine is primtive and does not compress multiple characters in one leaf

#

?paste

undone axleBOT
mortal hare
dry yacht
mortal hare
#

the only color that exists is purple

#

in 1.9 colored bossbars were introduced

#

with proper decoupling from the entities

dry yacht
# mortal hare thisi s what trie is

Oh, right, I was more about the overridden List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args), as it just seems like you don't handle that as it's intended.

shut mauve
echo basalt
#

nah you actually just gotta upload the plugin to the server

#

or shade it

quaint mantle
mortal hare
#

it wont work

echo basalt
#

too

#

that too

mortal hare
#

in this version anyways

echo basalt
#

butt

#

buut

#

the error is unrelated

dry yacht
mortal hare
#

1.8 makes me so nostalgic ngl

dry yacht
#

Let's not even get me started about 1.7.10, xDD

mortal hare
#

back when animated Motd's was a crazy feature

#

with moving server icons

#

good times

dry yacht
#

Back when they actually were supported, you mean? xDD

shut mauve
#

good times but hard to work on

mortal hare
#

its not possible to do it anymore?

dry yacht
#

Has been a long time, but I don't think so. You get one response per ServerListPing, the channel is not being kept open anymore, IIRC.

#

"SeCuriTy ReaSonS"

mortal hare
#

because i've seen people still overriding brand names

#

with incorrect pings

quaint mantle
dry yacht
shut mauve
#

So does anyone know how to dodge this "Caused by: java.lang.NoClassDefFoundError: org/inventivetalent/bossbar/BossBarAPI$Color" ?

dry yacht
shut mauve
mortal hare
#

that only allows you to compile

dry yacht
mortal hare
#

you need to manually add the API classes to your project

#

or use maven shading plugin

#

to do that for you

shut mauve
mortal hare
#

or use gradle shadowJar (but im 100% sure youre not using that)

quaint mantle
#

?paste

undone axleBOT
shut mauve
echo basalt
#

I remember seeing an active 1.5 server back when 1.12 came out

dry yacht
# shut mauve No, I'm on eclipse '-'

The library is not that big, in your case I'd just literally copy the files into the src directory, remove the dependency and migrate import statements.

kind hatch
# shut mauve No, I'm on eclipse '-'

I'm pretty sure eclipse supports maven, as eclipse is an IDE and maven is just another development tool.
However, if you aren't using it, then somewhere in eclipse you'll have to add the dependencies manually.

echo basalt
#

wait github now lets you navigate liek this?

#

pog

remote swallow
#

maven

#

unpog

kind hatch
shut mauve
kind hatch
shut mauve
#

I already put my jar of the API here, but I've got the issue sent before

dry yacht
quiet ice
#

Eclipse does not support shading.

#

Use maven, which does support shading

#

If you REALLY want to stick with Eclipse JDT compilation you either need to whack the classes in the resources folder (how dare you?) or copy the library sources in the source folder

shut mauve
quiet ice
#

remove the dependency

kind hatch
quiet ice
#

Just take the easy route and whack the compiled classes in the resource folder

dry yacht
quiet ice
#

It's absurdly stupid but sometimes one needs stupidity

shut mauve
kind hatch
#

I meant your external jar dependencies.

shut mauve
#

oh sorry lmfao

kind hatch
#

Well, looking at that, you don't have the API as a dependency.

pseudo hazel
#

is there a way to get the title of an Inventory?

shut mauve
#

BlvckBytes told me to remove it

dry yacht
# shut mauve this is one of them

Just delete BossBarPlugin.java if you're inlining everything... otherwise, load the jar as a Plugin to add the classes to your classpath.

dry yacht
kind hatch
#

Oh

#

Fuck that. lmao

#

That's such a pain in the ass.

dry yacht
#

Tbh, I'd just load the plugin, xD

pseudo hazel
#

how do I get the inventoryview of an inventory?

shut mauve
kind hatch
pseudo hazel
#

like I created an inventory using Bukkit.createInventory

quiet ice
#

Myeah, shading manually isn't all too hard if you just unzip the jar and add all the .class files into the source folder

pseudo hazel
kind hatch
pseudo hazel
#

thats kinda stupid

hasty hamlet
#

I've returned

pseudo hazel
#

since I have to provide a title when creating the inventory itself

dry yacht
hasty hamlet
#

who will write the plugin)? please

remote swallow
#

@quaint mantle he did it again

pseudo hazel
#

?

#

noone wil write a plugin in this channel for you xD

remote swallow
#

he spent 3 hours here earlier begging for a plugin '

pseudo hazel
#

I dont read russian

remote swallow
#

english only server

hasty hamlet
#

sorry

#

the plugin is lightweight . the player puts one ladder , instead of one , three are put

shut mauve
dry yacht
kind hatch
hasty hamlet
#

who will write the plugin&

#

?

#

easy plugin

#

plis

#

the plugin is lightweight . the player puts one ladder , instead of one , three are put

hazy parrot
#

LMAO

remote swallow
#

pay someone to do it

#

ask on the forums

#

not here

kind hatch
#

?services

undone axleBOT
shut mauve
#

I'm sorry if I bother you, but I really don't understand how this API is working, I try my best, but I can't get it...

hazy parrot
hasty hamlet
#

I have Russian currency

kind hatch
hazy parrot
#

Nah, I'm just saying he is here since 5 pm begging for free stuff

#

Being sent in that direction multiple times

shut mauve
kind hatch
#

lmao

hasty hamlet
#

which?

shut mauve
river oracle
#

10 dollars an hour is my rate

remote swallow
#

oh yeah

#

i was meant to convert a thing to gradle for you

river oracle
dry yacht
# shut mauve this one

Just revert to what you had with the ClassNotFoundException and add the BossBarAPI plugin to your server's plugins folder. Then add a depends: [BossBarAPI] to your plugin.yml and you're good to go. I think this will be the quickest route out of this.

river oracle
#

all my new projects are gradle

remote swallow
#

WOOOOO

ancient jackal
#

Is there a recommended free embedded nosql database for small plugins to store data with?

quaint mantle
river oracle
#

what

#

that doesn't make any sense

hazy parrot
#

Using gradle = mistake

river oracle
hazy parrot
#

😂

river oracle
#

or friend me

#

just say here

remote swallow
hasty hamlet
#

No plugin assigned.

hazy parrot
#

Me2 fr

river oracle
kind hatch
# shut mauve I'm sorry if I bother you, but I really don't understand how this API is working...

Here's the breakdown.

Your IDE is what you use to write code. By default it only knows of the features that the language provides. In this case it's Java.
If you want to write code using an API, you need to import it into the IDE. Otherwise, you will write code that the IDE cannot make sense of.

How you import it depends on your project setup. The old fashioned way is like you are currently doing now. Manually importing dependencies via the external jar window. As long as you have a jar available to you, then you'll be able to use those APIs.

The newer approach is to use a dependency management tool like maven to download the source files for you and automatically import them into your project.

In your case, you need to add the API as a project dependency so that you can use the code and then also make an entry in your plugin.yml letting the server know that you need that dependency to also be on the server.

If you switch to maven, you'll have the ability to shade that API into the plugin itself so that you don't need to put that dependency on the server.

remote swallow
#

im slowly converting everyone

river oracle
#

I have no like elitist allegiance to any specific build tool

quaint mantle
#

(new EventListener(this));

river oracle
#

I just think its good to know everything

river oracle
remote swallow
#

y2k do you think its easier to write

river oracle
#

it makes sense to me

remote swallow
#

smh

#

bad

river oracle
#

plus I had IDE tools for tags and such with xml to be easy

remote swallow
#

you arent lazy enough

river oracle
#

but that's just a VSCode thing

ancient jackal
#

You say that like VSCode is the only thing that can do that

river oracle
#

I'm aware, but I'm not sure if IntelliJ has those extensions

#

I don't use it

#

I'm not sure of the extent it makes writing and editing XML easy

river oracle
#

you probably didn't shade it

kind hatch
#

Or it's not present on the server.

shut mauve
hasty hamlet
#

you don't have a plugin assigned

hasty hamlet
ancient jackal
#

Is there a free embedded nosql database that people commonly use in small plugins

kind hatch
#

SQLite

river oracle
kind hatch
#

Oh wait

shut mauve
kind hatch
#

nosql?

river oracle
#

Idk if No SQL has many serverless options

shut mauve
shut mauve
river oracle
#

Mongo has files

#

I don't know if they are really meant for prod though

kind hatch
#

Mongo isn't embedded though.

remote swallow
#

you can ignore stevet, hes just begging for a plugin

river oracle
#

oh I'll just block then

hasty hamlet
#

who will write me a plugin please

ancient jackal
#

I just need something that doesn't run separately and can handle data for me

kind hatch
river oracle
remote swallow
kind hatch
river oracle
shut mauve
#

name: EEM
api: 1.8.9
version: 0.0.1
author: Plheyer
api-version: 1.8.9
main: fr.plheyer.eem.Main
depends: [BossBarAPI]

remote swallow
#

api version is wrong

river oracle
#

you also don't need the api field at all

shut mauve
#

okay thx

remote swallow
#

only needs 1.8 and that field doesnt exist until 1.13

kind hatch
#

Eh, it's harmless either way.

shut mauve
ancient jackal
hasty hamlet
#

who will write me a plugin please

tardy delta
#

bruh

remote swallow
#

@quaint mantle wake up

tardy delta
#

?services

undone axleBOT
remote swallow
tardy delta
#

what

remote swallow
#

we have all told them to go there

#

or the forums to ask for it for free

#

he does not listen

kind hatch
hasty hamlet
#

who will write me a plugin please

river oracle
#

so if they had the braincells too look

#

they'd find what they want

#

xD

shut mauve
kind hatch
dry yacht
shut mauve
kind hatch
#

Fair enough.

kind hatch
#

lmao

dry yacht
hasty hamlet
#

I 'm not a programmer . in Russia, no one can

kind hatch
hazy parrot
#

I'm pretty sure someone in Russia can code

limpid nexus
#

Da

kind hatch
#

^

shut mauve
remote swallow
dry yacht
tardy delta
#

he doesnt have a computer

hazy parrot
#

No one in Russia have

dry yacht
hasty hamlet
remote swallow
#

smh block bytes

kind hatch
hasty hamlet
hazy parrot
#

XD

shut mauve
kind hatch
#

Does the BossBarAPI have any dependencies itself?

shut mauve
limpid nexus
#

lul my pc thinks its malware

kind hatch
remote swallow
#

plugin.yml can get auto gen'd?

#

since when

hazy parrot
tardy delta
pseudo hazel
#

or your browser

limpid nexus
#

poor java

pseudo hazel
#

well its more like you can put anything you wnat in a .jar basically

#

same thing for exe

kind hatch
# tardy delta

He's not using maven. We going old school dependency management.

river oracle
#

wtf

#

💀

dry yacht
#

Omg, you need to go through adfly to download this API?

shut mauve
#

Yep

#

That's funny

remote swallow
#

money 100

#

not like they dont make enough from hypixel

dry yacht
#

If that's actually loaded on the server, you shouldn't have any other issues tho

#

What did the stacktrace look like?

shut mauve
dry yacht
#

Yeah

shut mauve
dry yacht
#

You gotta be shitting me

hasty hamlet
kind hatch
#

Is it just me or does clicking on a really old reply not take you to the right place anymore?

echo basalt
#

been a thing for a while

tardy delta
#

not just you

remote swallow
#

never worked in the first place

tardy delta
#

takes me like halfways

kind hatch
#

Damn, I remember it working well at one point. That sucks.

dry yacht
dry yacht
shut mauve
hasty hamlet
dry yacht
#

You don't work

hasty hamlet
#

what

river oracle
#

I can't wait for his PC to explode can't believe he ran that jar 😂

dry yacht
# shut mauve

Funny, the class it's complaining about is actually in there.

quiet ice
#

I decompiled the jar - I am afraid that the jar is rather mundane

shut mauve
hasty hamlet
#

who will write me a plugin please?

dry yacht
#

Loads just fine for me

shut mauve
lost matrix
#

Cringe version detected

dry yacht
#

Show plugin.yml

lost matrix
kind hatch
#

Nah, this is manual dependency management.

lost matrix
tardy delta
#

uh oh manual stuff

lost matrix
#

Wait but the class is loaded on the classpath way earlier...

onyx fjord
#

does java have a null safe equals ignore case or i need to make one myself

tardy delta
dry yacht
#

That ternary is gonna haunt me in my dreams

shut mauve
tardy delta
#

i would've guessed so but i didnt want to provide wrong info

bleak galleon
dry yacht
tardy delta
#

assuming he did not mean null.equalsIgnoreCase 🤔

quiet ice
tardy delta
#

what else lol

lost matrix
quiet ice
bleak galleon
dry yacht
#

null.*() Doesn't work in java, so... well, I didn't think that this question was even an option

quiet ice
#

x.equals(null) | x != null should never throw

tardy delta
#

im thinking of the one billion dollar mistake now

onyx fjord
#

Cannot invoke "String.equalsIgnoreCase(String)" because the return value of blah blah is null

tardy delta
#

and its actually right

#

is the thing where you call it on null? ofc wont work then

bleak galleon
#

Probably the string is null yeah

onyx fjord
bleak galleon
#

You could also use string != null && string.equalsIgnoreCase(smth)

shut mauve
dry yacht
onyx fjord
#

no kotlin

#

never in my life

bleak galleon
#

^^

dry yacht
#

Of course that wasn't meant seriously, xD. But you just cannot call a member of null in java, that's not gonna change.

quaint mantle
#

#general

onyx fjord
#

no

quaint mantle
#

I’m helicopters 🚁

bleak galleon
#

ok

quiet ice
#

:cring:

quaint mantle
#

Helicopter - helicopter 🚁

onyx fjord
#

are you over the age of 13

quaint mantle
#

No

bleak galleon
#

ban();

kind hatch
#

Lmao gotem. @quaint mantle

quaint mantle
#

16 ago

tardy delta
#

clearly no english

onyx fjord
#

discord doesnt like being below 13

quaint mantle
#

I am 16 years old

bleak galleon
#

Cool, i speak German, Croatian, english and a little bit of russian. What does that have to do with my age?

onyx fjord
quiet ice
quaint mantle
onyx fjord
#

english only

quaint mantle
#

Sorry

bleak galleon
#

I cant type it bro i dont have a keyboard for thath

#

lol

lost matrix
quaint mantle
bleak galleon
#

A little bit, started learning it half a year ago

quiet ice
tardy delta
#

discord north korean edition ™️

bleak galleon
#

Mostly understand it, not speak it xD

onyx fjord
#

elon musk should give them some starlinks

quaint mantle
#

Well, of course, you’re all coders here

#

And I’m an ordinary person

lost matrix
bleak galleon
#

The North Koreans

quiet ice
onyx fjord
#

north koreans

#

privately

#

nobody will notice

bleak galleon
#

for sure

lost matrix
#

Ah XD i thought you meant the russian guy and was about to raise a brow...

quaint mantle
tardy delta
#

uh oh

quiet ice
onyx fjord
#

?

quaint mantle
#

Yes

bleak galleon
#

Several people are typing

onyx fjord
#

you can love different things than politics, nature, cities, people

lost matrix
#

Pretty much everyone in the civilised world roots for Ukraine at the moment...

quaint mantle
#

I’m not speak politics

onyx fjord
#

culture

#

i only love my country tho

quaint mantle
#

I love this world

#

Country

bleak galleon
#

If i say I love my country I'd 1. lie and 2. probably be called a nazi, so yeah

onyx fjord
#

nothing bad about loving your country

#

even if its seen badly

mortal hare
#

wtf is wrong with bukkits arguments: i get trailing spaces with arguments

quiet ice
mortal hare
#

Args!! [, , , , , version, , , ]

quaint mantle
#

Are you all coders here? From the age of 12, everyone has been taught

lost matrix
#

I dont love any country. I even think the concept of countries is trash and holds us back as a human race.

quaint mantle
#

?

tardy delta
#

what have we started

quiet ice
bleak galleon
quiet ice
#

I attempted to stop it

dry yacht
tardy delta
#

you tried to avoid it but miserably failed

mortal hare
#

its not my handler at fault

onyx fjord
#

I dont love any country I even think the

mortal hare
#

its bukkit that handles arguments weirdly

#

why tf trailing spaces are not removed

#

when arguments array is passed into command executor lmao

#

[, , , , , version, , , ]

quaint mantle
#

Who can help with the plugin?

mortal hare
#

this is literally the output of the retrieved arguments from the bukkit api

quaint mantle
#

How to make a plugin to the region, only the region will be a cabinet?

hazy parrot
tardy delta
#

it evolved into regions now

quaint mantle
#

What?

tardy delta
#

evolution

quaint mantle
#

I’m taking the plugin to the region and changing the config

dry yacht
shut mauve
#

OMG I did it it works 😭 (for some curious, I had to copy all of the APIHelper files to make the BossBarAPI works)

tardy delta
quaint mantle
#

I want to sleep

mortal hare
#

i thought bukkit api was smarter than that

tardy delta
#

sleep is for the weak

mortal hare
#

at least i thought it would sanitize the args

dry yacht
mortal hare
#

1.19.3

#

lmao

dry yacht
#

Doesn't do that for me on 1.17

quaint mantle
#

Has anyone had an issue where gson 2.10.1 is overlapping classes?

#

Time to 6:08

mortal hare
#

maybe its paper

dry yacht
#

...

quaint mantle
#

I didn’t sleep at all

onyx fjord
#

productive day 🫡

mortal hare
#

i saw some patch from paper regarding the args

dry yacht
onyx fjord
#

paper recently broke a ton of plugins

dry yacht
#

Test on spigot, run of paper, if you want to

#

But never call bukkit stupid for their fuckups

mortal hare
#

bukkit is an api

#

not an implementation

dry yacht
#

You still called bukkit stupid, not craftbukkit, xD

quaint mantle
#

F

onyx fjord
#

bukkit has no bugs

#

remember that

mortal hare
#

well bukkit can independently sanitize the inputs

#

i knew something was up with paper

#

i should actually rename my submodule to paper

#

since its not bukkit impl but paper one

tardy delta
#

💀

quaint mantle
#

S

#

My server

#

rust in minecraft

mortal hare
#

not bad 🙂

quaint mantle
hazy warren
#

for some reason spigot does not wanna compile java 17 for me, only java 19... any help? (maven)

hazy warren
#

I described that wrong

#

I build my project but it keeps making the class files version 63

quaint mantle
hazy warren
#

I need 61

tardy delta
#

change version in pom and in ij project settings

hazy warren
#

I have done it

#

in my pom

    <properties>
        <java.version>17</java.version>
        <compilerVersion>17</compilerVersion>
        <source>17</source>
        <target>17</target>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
lost matrix
#

Ah. Ok you need to change your compiler at 2 places.

  1. Your pom.xml
  2. File -> Project Structure -> Project -> SDK
hazy warren
#

well i can't send pictures here but in my intellij I have sdk set to a 17 version

lost matrix
#

Alright, how do you compile?

hazy warren
#

maven > package

lost matrix
#

try clean before that

hazy warren
#

is there an easy way to check the version of a file

lost matrix
#

Not that im aware of... Probably while compiling with some logger flag

hazy warren
#

i can't test if it works until my friend comes back cuz my java is 19 it works fine

#

i didn't try cleaning beforehand

tardy delta
#

javap?

quaint mantle
#

How do you fix Overlapping resources

lost matrix
quaint mantle
#

I'm not sure

#

It just randomly happened

hazy warren
#

what's an easy way to remember the command to turn a jar into a maven repo

tardy delta
#

put it in a txt file

quiet ice
quaint mantle
#

yea

#

I can't even run my project because of it

quiet ice
#

that is rather odd

lost matrix
#

Probably shading another resource which has the same resources? Like a plugin.yml

quaint mantle
#

There is no plugin.yml

lost matrix
#

Well then just add a replacement strategy and replace duplicates

quaint mantle
#

How do you do that?

lost matrix
#

Dont remember

#

DuckDuckGo it

tardy delta
#

chatgpt moment

quaint mantle
#
java.lang.LinkageError: loader constraint violation in interface itable initialization for class com.google.gson.internal.Excluder: when selecting method 'com.google.gson.TypeAdapter com.google.gson.TypeAdapterFactory.create(com.google.gson.Gson, com.google.gson.reflect.TypeToken)' the class loader 'app' for super interface com.google.gson.TypeAdapterFactory, and the class loader me.rian.run.ClassLoader @68267da0 of the selected method's class, com.google.gson.internal.Excluder have different Class objects for the type com.google.gson.Gson used in the signature (com.google.gson.TypeAdapterFactory is in unnamed module of loader 'app'; com.google.gson.internal.Excluder is in unnamed module of loader me.rian.run.proxy.ClassLoader @68267da0, parent loader 'app')
        at com.google.gson.GsonBuilder.<init>(GsonBuilder.java:69)
        at net.minecraft.server.v1_8_R3.UserCache.<init>(UserCache.java:66)
        at net.minecraft.server.v1_8_R3.MinecraftServer.<init>(MinecraftServer.java:132)
        at net.minecraft.server.v1_8_R3.DedicatedServer.<init>(DedicatedServer.java:43)
        at net.minecraft.server.v1_8_R3.MinecraftServer.main(MinecraftServer.java:923)
        at org.bukkit.craftbukkit.Main.main(Main.java:193)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
``` This is what I get when I run it
quiet ice
#

what the fricking hell did you do

lost matrix
eternal oxide
#

looks like he included Gson

quaint mantle
#

relocate it where?

quiet ice
#

Yeah - looks like version incompatibilities

quiet ice
lost matrix
#

Inside your jar. Maven shade plugin -> relocation

hazy warren
#

how do you put spaces in file path maven commands

eternal oxide
#

"path to file"

hazy warren
#

I thought it was just wrapping it in quotations but it seems to think that the quotes are part of the directory as well

quaint mantle
#

I see resources

river oracle
#

isn't that avaliable inside of spigot itself

quaint mantle
#

This isn't a minecraft plugin

river oracle
#

oh

eternal oxide
#

looks like a CraftBukkit plugin to me

quaint mantle
#

Nope

eternal oxide
#

it already has Gson, so unless you NEED somethign in a newer Gson just set your Gson dependency to provided

quaint mantle
#

so instead to relocate i just do that?

hazy warren
#

when i do quotes it thinks it's relative to my current project path for some reason

#

without quotes it's absolute but I cannot put a space

eternal oxide
#

you are putting the " in the wrong place

#

you need to wrap the whole argument

lost matrix
#

@eternal oxide Trivial setups work fine with the approach we came up with hypers

eternal oxide
#

nice

hazy warren
#

i'm doing -Dfile="..." should I be doing -"Dfile=..." or something

eternal oxide
#

yes

#

include the - inside

quaint mantle
#

Who know api 1.12.2?

hazy warren
#

me

quaint mantle
hazy warren
#

with what

quaint mantle
#

Dm’s go?

hazy warren
#

lol

quaint mantle
#

'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration of plugin org.apache.maven.plugins:maven-shade-plugin @ line 121, column 21
It is highly recommended to fix these problems because they threaten the stability of your build.
For this reason, future Maven versions might no longer support building such malformed projects.
what?

hazy warren
#

u can just ask it here

eternal oxide
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

quaint mantle
#

it is unique

hazy warren
#

i'm a 1.8.9 expert and 1.12.2 pro...

eternal oxide
#

you should only have one

quaint mantle
hazy warren
#

okay

quaint mantle
#

Because of the updates, the api has changed, right?

hazy warren
#

from what

#

1.8

quaint mantle
#

relocating thing made it so now it says no main manifest attributes

hazy warren
#

1.8 api is pretty close to 1.12

#

1.13 is when u start having to actually rework stuff

quaint mantle
#

Plugin on the cabinet:

A cabinet with tools is a key part of the house. Without it, the building will rot, it rots differently, the foundation (hay) rots in 30 minutes (if without a cabinet)

Wood, (boards) in 2 hours (without a cabinet)

Stone (bullery) in 4 hours

Metal (iron blocks)

8 hours

Mvk (obsidian) 15 hours

Installation and authorization in the cabinet will make sure that only you can be built within a radius of 50 meters. If you want to give access to your friends, they should log in too. You have to protect this cabinet. You need to put resources in the closet if the house is made of stone per day

If the hut is stone + iron, then also, iron + stone

If they don’t put resources for food at home, the house will rot in 48 hours

kind hatch
#

So rust tool cupboard?

quaint mantle
#

You can put in the closet:

Wood, Stone, Metal fragments, iron (not melt) sulfur (melt) sulfur (non-melt) mvk (melt) mvk (not melt) scrapp, oil, animal fat, bones, fabric, tnc, coal

#

Yes

#

It’s like a region

#

The customer was hoping for me. And I didn’t work with 1.12.2 and found out about it later ..

#

How to write such a thing at all, I have no idea

#

I think you’ll help, Russians are not as smart as you

#

Help plis

#

Please

quaint mantle
quaint mantle
hazy warren
#

do u have a specific question or are u just asking how to make this

quaint mantle
#

I’m asking how to do

eternal oxide
#

have you ever written a plugin before?

quaint mantle
#

Yes

hazy warren
#

Well what you're asking is more just java coding logic and not api

quaint mantle
#

Can you make it for me? Just a question, if not, then no

eternal oxide
#

?services

undone axleBOT
hazy warren
#

100 buck i make

hallow prawn
#

hi, how can i import worldedit 6.1.9 api in maven?

quaint mantle
#

This error is mad confusing

quaint mantle
vagrant stratus
#

Nope

undone axleBOT
lost matrix
#

Ouch... thats a first

eternal oxide
#

ooh

thorn crypt
#

Hey, does anyone know how with ProtocolLib I can make a block have a glowing effect for a specific player ?

lost matrix
thorn crypt
eternal oxide
quaint mantle
#

I'm running a server jar along side the program

#

Thats why there is a minecraft and craft bukkit trace

eternal oxide
#

yes but for your Gson to conflict you must be using the same classLoader. So you are loading Bukkti or Bukkit is loading your program

quaint mantle
#

Yea

eternal oxide
#

if you are loading Bukkit yours should not conflict

#

ie your program starts Bukkit

lost matrix
quaint mantle
thorn crypt
eternal oxide
#

With the small amount of information we have I don't see a reason for yoru Gson conflict

quaint mantle
#

Want me to show you my classloader?

eternal oxide
#

you are class loading Bukkit?

warm mesa
#

@eternal oxide Hello, I'm trying again with BuildTools, but I'm looking for the error

#

I think that is something in git

#

But idk

#

Can I show you my error?

quaint mantle