#help-development

1 messages ยท Page 492 of 1

eternal oxide
#

no job = no money

round finch
#

competing for resources is gonna be harder

cobalt thorn
#

that's something, I know, I tried in Github Copilot, and even if he gave me stupid answers, sometimes was good, in beta

eternal oxide
round finch
#

then the Ai can basically do the same things has humans

eternal oxide
#

^ in that vid the guy made a rule he'd not write a simgle line of code

#

even had AI create the assets for him

round finch
#

better games?

#

more games

cobalt thorn
#

this should be talked in #general in theory?

round finch
#

blame me

#

i said chatgpt

eternal oxide
#

yep but we are dead in here so it doesn;t matter

cobalt thorn
#

oh ok

eternal oxide
#

general is ok in here so long as no one is asking questions

round finch
#

but isn't it still developer talk right?

eternal oxide
#

it is I guess

round finch
#

theory and computer science

eternal oxide
#

I was suprised how well gpt managed

#

even correcting mistakes when told

round finch
#

``
fail
please revert the changes of the overall size of the ellipsoid

take the size of the ellipsoid and add more space instead
``

#

and chatgpt fixed it own mistakes

eternal oxide
#

It won;t be long before it interfaces with whatever game engine and just creates what you ask

cobalt thorn
#

is incredible how we are creating our sentience being, and ai probably will go with biological machine, there are reports of neurons or idk, that can compute even more than every computer and play pong by themself without problem

eternal oxide
#

I dabbled with AI 10 ish years ago

#

it wasn;t bad, giving weighted responses

round finch
#

Simulates the Humans brain

eternal oxide
#

but teh advancements it's made in 10 years is phenominal

#

in another 10, well who knows

round finch
#

Ai there will help with Ai development

#

๐Ÿ˜

eternal oxide
#

its already happening, AI helping design AI

round finch
#

How far can computing go?

#

the matrix?

eternal oxide
#

once it starts doing shit humans can't understand...

cobalt thorn
#

That's a code made by AI

Question: write a java function that prints the nth fibonacci number. provide example usage

    public static void main(String[] args) {
        int n = 10;
        System.out.println("The " + n + "th Fibonacci number is: " + fibonacci(n));
    }

    public static int fibonacci(int n) {
        if (n <= 1) {
            return n;
        }
        return fibonacci(n - 1) + fibonacci(n - 2);
    }

i used gpt-4 and its incredible in 3 seconds he gave me the answer

orchid gazelle
#

Matrixes are fun

round finch
#

it freaking scary then the Ai becomes cunning and makes it own languge we dont speak

eternal oxide
#

I can see it happening, after all we are complex computers ourselves, just biological ones.

orchid gazelle
#

CUDA Cores are highly optimized to run matrix mults I think

#

Like they are stupidly optimized for that

cobalt thorn
eternal oxide
#

We are ok, until some fool gives it an autonomous body.

round finch
#

i bet Super AIs will just think about us as Animals and pets

orchid gazelle
#

It does not think at all

#

All it does is logical operations

eternal oxide
#

I'd be ok staying at home, fed and left to play on teh internet all day ๐Ÿ™‚

cobalt thorn
orchid gazelle
eternal oxide
#

Yep, I just hope its quick ๐Ÿ™‚

orchid gazelle
#

I mean I don't think it will happen at all

#

But yeah you get the idea

round finch
#

cleans and cooks for you

eternal oxide
#

metoo of waifu time

orchid gazelle
#

Some day, AI will be able to do my homework

eternal oxide
#

Ai can already do yoru homework ๐Ÿ™‚

orchid gazelle
#

It can't

eternal oxide
#

I bet it can, unless it's pratical

orchid gazelle
#

It cannot scan the exercise from paper, cannot write how I write, cannot actually understand the homework(uses way too different shit we have not used for that in school or just does the completely wrong thing all the time)

#

Also it cannot draw

#

Geometry really

cobalt thorn
#

One time i made an API with an ai that learned from waifus any information i could find, and the people started using it for sexual things, was really down bad or someone made her understand that the "n-word" was something for his language like Hi, and the ai was customizable totaly with phrase from request no limits, and saved info on mongodb

eternal oxide
#

Once we feed it the sum of human knowledge it can only leave us behind

#

drawing? have you not seen teh Art AI's?

#

that vid I linked he used AI to create all teh assets

#

also there is OCR

cobalt thorn
eternal oxide
#

OCR is old tech for scanning and reading documents

orchid gazelle
#

There is no AI that can do all that shit together

round finch
#

not yet

eternal oxide
#

currently no, but they recently put chatGPT on a Spot dog robot

orchid gazelle
#

Which has a high error-quote and prints the layout weirdly so that no AI understands it

eternal oxide
#

actually OCR these days is 99.9% accurate

orchid gazelle
#

Not with my writing

cobalt thorn
#

probably if someone can make a system of "emotions" and make it appear like a human and not detached from who makes the conversation, probably that's a big step to make AI talks to humans

eternal oxide
#

I used to maintain a system for a recruitment agency that used an automated OCR system for applicants CVs

orchid gazelle
#

And nah not really, I tried it was really bad

round finch
#

funny how the google api can solve it own "are you a robot test"

orchid gazelle
#

You can use it with high accuracy, but a normal user can't rn

eternal oxide
#

yep, another 10 years.

#

or less...dun dun dun!

cobalt thorn
eternal oxide
#

I like the cloudflare bot test. Click this box

#

it tracks mouse movement before you click teh box to detect automated movement

cobalt thorn
#

cloudflare bot test are made by an Ai to catch an Ai

#

like click the correct picture with "smiling dogs"

eternal oxide
#

I hate teh picture one, I can never get them

#

I end up going through pages of pictures before i'm able to pass

round finch
#

the problem is that the AI has become so advanced

#

that the tests needs to be harder

#

which makes the humans fail them more often

eternal oxide
#

yep

cobalt thorn
#

one day the test will be, calculate "x^2-2x-3" and give me x1 and x2

eternal oxide
#

One day the test will be "please insert your Government approved credit for todays Internet usage".

eternal oxide
#

Coming to a city near you

round finch
#

some of them is already do math to continue

cobalt thorn
#

but not an equations

eternal oxide
#

I remember once my credit card got locked because I couldn;t remember how old I was ๐Ÿ™‚

#

I knew my date of birth, I just couldn;t math

eternal oxide
#

I was like, do I start at 0 or 1 and does it include the current year. Total brain fog.

round finch
#

๐Ÿธ typo

#

me

eternal oxide
#

I got it unlocked easily. Phoned up and bitched at them for discriminating ๐Ÿ™‚

round finch
#

scary thing
if someone kidnapped you and ai convince ur family a whole fake story

cobalt thorn
eternal oxide
#

lol

cobalt thorn
#

sorry for posting the link and not the image

eternal oxide
#

links are better

quartz goblet
#

Im trying to call a new PlayerItemDamageEvent, the event is being called with the correct item, but it is not being damaged. Anyone have any thoughts why this is?

cobalt thorn
#

"sorry officer that's my brain"

round finch
#

Misclicks grabs the checks DanceAmongStick

eternal oxide
#

If you are raising the event yourself you have to handle all teh logic too

cobalt thorn
#

and see when its damaged

eternal oxide
quartz goblet
#

Oh interesting, makes sense

#

Im trying to dodge the item animation when changing NBT and figured I could do it by simply damaging the item

#

but damaging through NBT does not dodge that

cobalt thorn
#

or apply digging speed to the user, so the animation at one point is not displayed

wet breach
#

depends what exactly needs to be accomplished, you can damage an item without actually damaging it

#

just hold the damage it has in memory if it reaches its durability kill it

quartz goblet
cobalt thorn
quartz goblet
#

customdatamodels also plays the reload animation

eternal oxide
#

y0ou need the item one

cobalt thorn
wet breach
quartz goblet
#

when you switch items in hotbar, the item appears to float upwards. Same thing happens if you change the item NBT while holding it

cobalt thorn
wet breach
cobalt thorn
eternal oxide
#

teh item flash in hotbar is any time the item is updated

#

it's replaced.

#

so almost any change shoudl trigger it

quartz goblet
#

I thought that it didnt happen during vanilla operations but apparently it seems to, its just hard to notice when its in use

cobalt thorn
quartz goblet
#

Checked that out earlier, seemed that the guy never got it working but ill look into it more, thanks

cobalt thorn
#

if you look down on the first post its written:
"EDIT: Found a way to target inventory updating of a specific item via packets thanks to @Jamezrin
This is the original code, all I had to do was remove the loop statements and just make it search for a slot #, the code shown below will update all items in the players inventory via packets."

quartz goblet
#

oh shit I read past the initial thing and read every reply hahaha

#

thank you so much ill try this out

#

Ill have to set up nms

cobalt thorn
quartz goblet
#

actually it looks like this may just be for the gui

cobalt thorn
quartz goblet
#

thanks. Might take awhile for me to set up. Have a good night homie ๐Ÿ™‚

cobalt thorn
#

for me its 7:59 AM, but thanks have a good night

quartz goblet
#

lol have a good day

crisp mountain
#

hello how can I cancel item drops on death event?

#

I made a plugin that puts the items on a chest but the problem is it still drops the items so it gets duplicated

cobalt thorn
crisp mountain
#

so how do I remove all

#

iterate?

cobalt thorn
#

e.getDrops().removeall()

crisp mountain
#

oh THANKS

#

what about .clear

#

what is it

cobalt thorn
crisp mountain
#

I'll try

round finch
#
public static void generateCube(World world, Location center, int width, int height, int depth, Material material, double theta, double phi) {
    int a = width / 2; // half of the width
    int b = height / 2; // half of the height
    int c = depth / 2; // half of the depth

    // Adjust loop limits to add more space
    int xMin = -a - 5;
    int xMax = a + 5;
    int yMin = -b - 5;
    int yMax = b + 5;
    int zMin = -c - 5;
    int zMax = c + 5;

    for (int x = xMin; x <= xMax; x++) {
        for (int y = yMin; y <= yMax; y++) {
            for (int z = zMin; z <= zMax; z++) {
                double x1 = x * Math.cos(theta) - y * Math.sin(theta);
                double y1 = x * Math.sin(theta) + y * Math.cos(theta);
                double z1 = z * Math.cos(phi) - y1 * Math.sin(phi);
                double y2 = z * Math.sin(phi) + y1 * Math.cos(phi);
                double distance = (Math.abs(x1) / a) + (Math.abs(y2) / b) + (Math.abs(z1) / c);
                if (distance <= 1) {
                    Location loc = center.clone().add(x, y, z);
                    world.getBlockAt(loc).setType(material);
                }
            }
        }
    }
}
#

insane i made another shape

#

and i got 0 understanding with math

#

but chatgpt made it for me

crisp mountain
cobalt thorn
crisp mountain
#

is there a boolean method for getDrops to check if there will be drops or not

#

like if inventory is empty before death

round finch
#

rotation

3 sizes
pretty awesome

#

i'm gonna add more shapes very sooon

#

can't wait

sullen marlin
#

trig to generate a cube lol

round finch
#

it is a cube lol

sullen marlin
#

why does it need trig

round finch
#

but it can rotate

sullen marlin
#

ok

round finch
#

axies x y

#

here is result

round finch
cobalt thorn
round finch
round finch
obsidian plinth
#

anyone have the docc for the new paintings logic. I wanna see if theirs a way to know what paitning the player palces

cobalt thorn
round finch
#

please dont tell me there is an error
i'm testing rn

#

brb

#

not sure if anything is correct rn

#

i tried 0,0

#

axies

#

but it is messed up

quaint mantle
#

            String nick = args[0];

            Player that = Bukkit.getPlayer(nick);

            if(args[1].length() >= 1){

                if(SENDER.isOp()) {

                    // args[0] = p , payam is payam

                    that.sendMessage(ChatColor.DARK_AQUA + nick + " " + ":" + args[1]);
                } else {
                    SENDER.sendMessage(ChatColor.DARK_RED + "[ERR] : You not have permision !");
                }
            } else {
                SENDER.sendMessage(ChatColor.DARK_RED + "[ERR] : You need enter the pm !");
            }
        } else {
            SENDER.sendMessage(ChatColor.DARK_RED + "[ERR] : You need enter the player nick like [Player]");
        }``` Hi , my code is not  have problem because when i use in server is work but when args[1] is empty or null or zero is not send else message !
sullen marlin
#

which message

#

args[1] will only be one word

livid dove
#

Why I said scan k don't know lol

rotund ravine
#

Why do you want a screenshoty

livid dove
#

Also just a small thing mate.

Something that will give you 10x less headaches is calling your variables something that makes sense.

E.g: Player that is gonna suuuuck if you make this class longer .

Player messageReceiver or something would be miles better and save you headaches haha

And Jan wanted a screenshot as context is king.

#

Seeing the exact issue on screen sometimes revealed stuff describing never can

#

Also @quaint mantle your second if statement literally says "if args[1] has at least 1 character in it"

quaint mantle
rotund ravine
#

args[1].isEmpty

quaint mantle
round finch
quaint mantle
rotund ravine
#

Also you probably want to join all args together if you are making a pm system.

livid dove
#

Also it is likely the order.

Any null check should come first

#

As I'd it has a nullpointexception before ur other checks... it'll shit itself

wet breach
quaint mantle
sullen marlin
#

yes, you need length >=2 to accrss args[1]

wet breach
#

well

#

they only have a single arg

#

so they are probably confused in where to start in accessing the array

#

arrays start at 0

#

not 1

#

so if the length of the array is 1, that means index 0 is the only thing that contains anything

#

so you would need to use args[0] and not args[1]

quaint mantle
#

and args[1] is a string like message

wet breach
#

then md_5 is correct and your check is flawed

#

and needs to be corrected

#

I was only clarifying though the exception you got, literally means there is nothing at args[1]

#

length of 1 means only args[0] exists. If you try to access index args[1] that means the length needs to be 2, and if the exception is saying the array doesn't contain index 1 then its just not there

quaint mantle
#

i tested md_5 method , is not work but i think may'be my work is not true , if md_5 is says "if args[1] is equals or more than 2 " i tested this

obsidian plinth
#

what is the best way to display hp under the users name as Hearts with the number next to it like if i had 10 hears it would be 10 <3<3<3<3<3<3<3<3<3<3

#

scoreboard or

wet breach
#

if so, lets count the numbers
0 how digits is this? the answer is simple 1. Therefore length of 1 on an array refers to index 0.
0, 1 this would then be a length of 2, and as you can see we now have index 1 available.
if the index only has 0, and nothing else, you can't access 1 when its not there. Not sure how else to explain it to you.

quaint mantle
wet breach
#

alright well, hopefully now you can fix your issues and make some progress ๐Ÿ™‚

livid dove
livid dove
rotund ravine
livid dove
#

*question before

rotund ravine
#

spigot be dumb

livid dove
#

Spigot developers can be equally as dumb

quaint mantle
rotund ravine
quaint mantle
#

Of course i like jda xD

livid dove
#

Make it easier for yourself

Spell it out for yourself.

E.g Player that is awful practice.Not

because there are some bs rules. But because putting Player playerToMessage is waaay easier to understand.

Ironically, most spigot devs are dumb... because they are not dumb

#

A lot of devs try to be clever, and in the attempt make their code so hard to figure out that sherlock would struggle to read it lol

#

Imo, better to be an idiot, make.your code baby tiers.of simple. That way at least it's clear

quaint mantle
livid dove
#

Okay cool

ivory sleet
#

Really?

lost matrix
#

lua script (((( is a )) ridiculous ) language

end

#

Imagine having to close every scope with end

hazy parrot
#

Visual basic vibes

crisp mountain
#

why does BlockState.setType requires Material instead of Type?

#
Required type:
Material
Provided:
Type
glossy venture
#

lua best intepreted language

quiet ice
#

No.

tender shard
#

but yeah lua sucks

#

i only use it for my adventure games and that's already frustrating enough

#

especially that annoying naming, like "tostring" and then "isEmpty()" - why is it not "toString" then

#

or that you sometimes need :, and sometimes .

#

game.CutSceneAction:isEmpty() that is annoying

rotund ravine
lost matrix
#

If this "doesn't really matter" then idk what does

#

Absolute anarchy

nocturne gale
#

Hello, I made an animation of the text over neznamy/tab I wrote the animation in prefix.1.%animation:rank% and the text of the animation lags in the quotes, it can be seen in tabu fine, does anyone know how to do it please? Thank you

onyx fjord
#

Does spigot have a method to check if a block in tree was placed because of sapling?

tender shard
#

setDelay is declared as "setDelay(time, callback)"

#

like a lambda

#

or rather, an anonymous runnable

lost matrix
#

lol

lost matrix
tender shard
#

I don't really understand what's so bad about it

#

i hate many things in lua, but that it uses "end" to end code blocks, is not one of those issues

#

what much more bothers me, is that by default, all variables are global unless declared local, and that you gotta use the # operator for an array length, while the tostring method is a global method called "tostring(something)" and not "something:toString()" and also that it's literally called "tostring" and not "toString()", and that there's both the . operator and : operator which on first sight, do the same thing, but actually they don't

#

also My.Object:method() is sometimes the same thing as method(My.Object) and that's just weird

hazy parrot
#

well i like more

public void smth(String a) {
  if (a.length() == 5) {
    for (int i = 0; i < 5; i++() {
        sout("foo");
    }
  }
}

Then

Sub Smth(a As String)
    If a.Length = 5 Then
        For i As Integer = 1 To 5
            Console.WriteLine("foo")
        Next
    End If
End Sub
tender shard
tender shard
tribal quarry
tender shard
#

but why would I switch to something different if the game is like 50% done lol

tribal quarry
#

just wanted to let you know! ๐Ÿ”ฅ

wet breach
# tender shard what much more bothers me, is that by default, all variables are global unless d...

this probably has to due with the era it was created in. During the era it was created in, it was the standard or norm that variables were by default global unless you specified otherwise. This was due mainly to hardware limitations back then, that are really no longer issues today. But, since the language has a spec or standard, it isn't something that can just at a whim be changed and accepted especially after a few years of people already learning how to use it and being accustomed to its antics

tender shard
#

idk, I try to stay away from python

crisp mountain
#

hello why do I get this error

#

Cannot resolve method 'getBlockInventory' in 'Chest'

#
Location blockLocation = new Location(player.getWorld(), player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ());
Block block = blockLocation.getBlock();
Chest chest = (Chest) block.getState();

chest.getBlockInventory().addItem(Material.WOODEN_HOE);
lost matrix
#

Probably wrong Chest import

tender shard
#

because you used the wrong import

crisp mountain
#

oh

#

there's different imports?

#

what's the right one

tender shard
#

correct: org.bukkit.block.Chest

#

wrong: org.bukkit.material.Chest

opal juniper
crisp mountain
#

can I import both?

tender shard
#
  1. no
  2. why would you
opal juniper
#

not without using the fully qualified name for one

tender shard
#

you will never, ever need the MaterialData chest

#

it's been deprecated since at least 1.13

opal juniper
lost matrix
#

I personally hate scoping with newlines and spaces.
For me this needs verbosity. But its a good scripting language.
Writing bigger applications with it is out of question.

crisp mountain
opal juniper
#

i have written a couple of larger projects with it, and i do find nowadays that if i can tell a project might be large i start with java instead

#

for quick and dirty scripts you cannot beat it though

tender shard
opal juniper
#

even for medium sized programs honestly. itโ€™s when people try to make GUIโ€™s with it it ducks tbh

crisp mountain
#

what's FQDN

opal juniper
#

i donโ€™t think itโ€™s FQDN in java, thatโ€™s the url thing

tribal quarry
opal juniper
tender shard
#
Chest blockState = (Chest) myBlock.getState();
org.bukkit.block.data.type.Chest blockData = (org.bukkit.block.data.type.Chest) myBlock.getBlockData();
tribal quarry
#

^^

lost matrix
#

But if you dont work in a team then you can probably get away with a bit more

opal juniper
#

what do you mean by maintainability

#

i am the maintainer of a python package which is reasonably sized that this point. my biggest gripe at the moment is type hinting. circular imports are a big problem with that

#

basically DI is impossible

lost matrix
#

Without type hints i wouldnt even touch a project

#

Thats what makes foreign code a little bit more clear

livid dove
opal juniper
#

yeah i get you, i think you can use these TypeVar things but i couldnโ€™t figure them out

livid dove
#

There is a simple trick to maintaining python

#

Step 1: download Intelij

lost matrix
#

Oh yeah. Python has no overloading so you need to handle multiple possible types per parameter

livid dove
#

Step 2: convert your python code to java lol

opal juniper
#

nah iโ€™m a fan of the language for its features

opal juniper
livid dove
#

I'm a fan of chocolate pudding for its taste. I'd still get diabetes if I scoffed it every day lol

crisp mountain
lyric turtle
#

when im typing invalid command in console, its red, when im typing valid cmd, its white, im not sending these commands and these are changing colors, where can i find code for this behaviour in Bukkit source code???

crisp mountain
#

I'm getting confused with doublechests

lyric turtle
opal juniper
#

no thatโ€™s in brigader iirc

lyric turtle
lost matrix
tribal quarry
opal juniper
#

i mean the command map is synced to the client

tribal quarry
lost matrix
#

I think he is talking about how console interprets his command inputs

crisp mountain
#

okay thanks

opal juniper
#

do you mean the server console or client

crisp mountain
#

what's the event for closing chest, playerinteractevent?

opal juniper
#

close inventory

lyric turtle
#

org.fusesource.jansi

#

this is used

tribal quarry
opal juniper
#

ah ok i thought you meant the client

lyric turtle
#

i just need to find how bukkit is telling JANSI what are valid commands

tribal quarry
opal juniper
#

is this potentially a vanilla thing?

tribal quarry
#

?buildtools

undone axleBOT
tribal quarry
wet breach
# tender shard 1. no 2. why would you

while technically true, it isn't true to say you can't use both. You can specify an object with its complete path in the code so the compiler knows they are different.

public class Something {

org.bukkit.block.Chest chest;
org.bukkit.material.Chest chest2;

this is a valid way to instantiate an object that both have the same name for classes

wet breach
lyric turtle
tribal quarry
wet breach
lyric turtle
#

but it changes color

#

you cant change color in console in other way i guess???

wet breach
#

Yes, no different then you specifying a color on messages

#

still isn't JANSI doing it

#

JANSI is just a console implementation

lyric turtle
#

ugh i cant send screenshot what i mean

wet breach
#

do you know how to color messages?

tribal quarry
#

It's jline completions

lyric turtle
wet breach
#

and you are obviously not understanding

slow scroll
#

I am a fullstack and blockchain, game developer.
I can help you.
Please any problem.

wet breach
#

if you know how to color messages, then the same thing is done with commands in regards to how MC colors the commands

#

you may need to use NMS to access that part

lyric turtle
tribal quarry
wet breach
#

however it isn't JANSI itself controlling the colors only thing JANSI controls is what colors are available to be used

#

JANSI use ANSI colors as its a console that implements the ANSI standard hence its name

lyric turtle
#

this is what i meant

tribal quarry
wet breach
fluid finch
#

the @Command annotation isn't putting anything into the plugin.yml for some reason???
Am I doing something wrong?
same with the Permission annotation
Others work fine, but these 2 do nothing

Here's the yes

@Permission(
        name="emessentials.*", 
        children = {@ChildPermission(name ="emessentials.info")})

@Command(
    name="emessentials", 
    desc="Info about the plugin", 
    aliases = {"emes","essentials"}, 
    permission = "emessentials.info", 
    permissionMessage = "You do not have enough skill to execute this command",
    usage = "/<command>")

lyric turtle
tribal quarry
wet breach
#

oh you want it done as you are typing, well then Kalix is correct it seems then

fluid finch
wet breach
#

because the way you specify a color in MC isn't the same way you specify a color in ANSI standards

lyric turtle
tribal quarry
wet breach
#

lol

#

I will leave it to you in further helping them and attempting to help them understand ๐Ÿ™‚

#

since they are wanting it done as they are typing

fluid finch
wet breach
#

?paste

undone axleBOT
wet breach
#

its far better to use the paste site linked above ๐Ÿ™‚

tender shard
#
@Commands(@Command(name="firstCommand", ...))
fluid finch
#

aaaaaaaaa

#

can I have multiple @commands annotations across multiple classes?

tender shard
#

I am pretty sure all the annotations belong into the main class

fluid finch
#

aight

tender shard
#

however, I'd much rather use ACF to handle permissions and commands

fluid finch
#

I'll take that into consideration

lyric turtle
wet breach
lyric turtle
#

cant i make it think that there is some additional command, that really dont exists??

#

like while its checking if text should be red or white

lyric turtle
#

i think that i can add some dummy commands to command map and then these will be white

#

but i was looking for some listener-like solution

#

to edit this on runtime

wet breach
#

you are probably not going to find a listener like solution for this problem

#

and are going to need to tap into some internals to accomplish what you are wanting

lyric turtle
#

hmm ok so i guess that adding non-functional commands to command map will work like that

#

like overall, im trying to do my own command system, i dont like how internal command system works (command map etc), im just doing my own abstraction etc

#

this is why i dont really want to use command map

#

but it will work as white text in console

cobalt thorn
#
public static void registerCommands(@NotNull String packageName) {
        CommandRegistry commandRegistry = new CommandRegistry(INSTANCE);

        for(Class<?> clazz : new Reflections(packageName + ".commands").getSubTypesOf(Object.class)) {
            try {
                Bukkit.broadcastMessage(clazz.getName());
                commandRegistry.registerCommands(clazz.getDeclaredConstructor().newInstance());
            } catch (NoSuchMethodException | InvocationTargetException | InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
}

Im trying getting any classes inside my .commands but it doesn't find any classes after i changed some aspect of my commandRegistry now seems to not work but if i register them normally works fine, any solution on how to take any classes?

tender shard
#

the proper way however is to manually register your commands without reflection

glass inlet
#

Hello people I'm wondering how do you deal with multi version support for spigot plugins. I know how to make it work (the programming side). The thing I'm interested in is making the ide use different versions in different files, for example in older versions you have some methods which were then changed in later versions, but if you only have one specific version dependency then you can't access those other methods. I'm using eclipse mainly but have used intellij before as well.

ivory sleet
#

Maven/gradle

glass inlet
#

So in maven add all the different version dependencies and that should work?

chrome beacon
#

You use different modules for each version

#

or use reflection

white root
#

Why does player#getStatistic(Statistic.PLAY_ONE_MINUTE) return a user's playtime in ticks....

obsidian plinth
#

ticks is life

#

i have my clocks in tick format

hazy parrot
#

because that is how mc measure time ?

white root
#

Well, yeah, but one might expect Statistic.PLAY_ONE_MINUTE to return the time in minutes
I expected to find Statistic.PLAYTIME to return a value in ticks,
but then found PLAY_ONE_MINUTE and was surprised when it gave me the value in ticks
just seems very counterintuitive

obsidian plinth
#

u guys ever work on sum and need help and get scared to ask bc u know its messy code and probs a easy fix

white root
#

Yes

#

I know

#

thats how I saw it gives you the value in ticks

#

but why is it named PLAY_ONE_MINUTE if the value is given in ticks

obsidian plinth
#

?paste

undone axleBOT
obsidian plinth
#

Ok so this works but i am overlooking the spot where i added the extra number bc it shows like 10 &c10 โค๏ธ i cant find where the extra 10 is coming from ik its messy once its working ill clean it up please dont judge me.
https://paste.md-5.net/sapegedaxe.cs

young knoll
#

The name matches what Mojang calls it

obsidian plinth
#

gets banned

wet breach
wet breach
#

as long as you are not executing the code that doesn't belong for that version, the JVM doesn't care that the code is there because it will only cause a problem if its used, not if it isn't used lol

#

however most people go the route of multi-module because it is actually easier to keep it organized and more visible to see which code belongs for what version

#

and then you would shade all the modules into a single jar, or you could just make version dependent jars which ever you want

obsidian plinth
#

i still havent found where this extra 10 is coming from i feel dumb

fluid river
#

jree

#

hi morice

quaint mantle
#

guy i need help

#

i have a problem

#

not quite sure how to explain

tribal quarry
quaint mantle
#

i have a enderpearl. Every time i trow a enderpearl its supposed to replace the enderpearl with the hotbar with a different item. That works. The problem is, at the end of that event the enderpearl gets set to air because thats just what minecraft does. But becaue the item gets set before the event is finished it gets deleted.

weak meteor
#

Isnt there any method for deleting that entity?

quiet ice
#

Set it on the next tick then?

weak meteor
#

?javadocs

quiet ice
weak meteor
quiet ice
#

?jd-s you mean

undone axleBOT
quaint mantle
#

well i want the event to be casted tho. I want the enderpearl to work just be replaced with a different item afterwards

#

and if i use projectile launch event

quaint mantle
quiet ice
#

Hence replace on next tick

weak meteor
#

Yes

#

Theres .remove

#

@quaint mantle have you tried that?

quaint mantle
quiet ice
#

Unless I don't understand your problem correctly (which I might)

quaint mantle
#

yh well what Nazar said should work

#

thx for the help yall

marsh lodge
#

Can anyone help in fixing this?

quaint mantle
#

or ur ttexture pack

fluid river
#

definitely

marsh lodge
#

But when i start the server in a provided host it doesnt do it

fluid river
#

?

marsh lodge
#

Ploudos

fluid river
#

show your plugin

#

show your project encoding

#

mc version?

#

all line-modifying methods

marsh lodge
#

Paper 1.8.8

sullen marlin
#

Your config files should be utf8

fluid river
#

oh 1.8.8

sullen marlin
#

This is spigot

fluid river
#

might also be LWJGL problems

#

for older versions

marsh lodge
#

Hmm

fluid river
#

definitely was a problem for me when i used 1.5.2

#

still

#

show your code and config

weak meteor
#

How should i listen to a player equiping and unequiping armor?

marsh lodge
weak meteor
#

yes im reading

fluid river
#

the scoreboard plugin

#

or its not yours?

marsh lodge
weak meteor
#

But idk if its org.bukkit.event.Player or org.bukkit.event.Inventory

weak meteor
fluid river
#

not the development

weak meteor
#

Its not only for scoreboard is a full core

marsh lodge
#

Ohk

tribal quarry
weak meteor
#

Unless it is on the dummy stuff

#

Armor stands only

fluid river
#

you should probably use inventoryclick

#

and check for armor equipped as a result

#

or unequipped

weak meteor
#

But what if they shift clicked

#

Also if right clicked on hotbar

#

Is like 3 events or more to listen

rotund ravine
#

Yes.

weak meteor
#

And well, theres modified spigots with that event

#

But 1.8 not 1.19.2

#

๐Ÿฆ”

young knoll
#

Thereโ€™s a decent lib for it

weak meteor
#

More dependencies yee

young knoll
#

I know there was a PR for it too, but itโ€™s either dead or still under review

lyric turtle
#

and idk if latest is backwards compatible

lyric turtle
#

latest

tribal quarry
#

then it must work

#

use nms

#

?nms

lyric turtle
#

ok

quaint mantle
#

well how do i set the enderpearls velocity now

#

i do

#

but how can i set the velocity

#

ohhh

#

okay

#

thx

quaint mantle
#

Wait spawn entity had consumer param?

weak meteor
#

Damn

#

I can just every lets say 10 ticks

#

I check on every player

#

Theyre armors

#

And give the effects based on that

#

That should be enough

quaint mantle
#

what does the arrow stand for btw

#

->

#

okay no clue how to use it just tell me what i need to change pls x)

#

ill learn it later

hazy parrot
#

Why not learn it now

quaint mantle
#

because im ptobally not gonna use it any time soon

#

and im already busy learning lots of other stuff rn

#

my list just keeps getting longer

icy beacon
#

you are missing uh

#

a semicolon

#

an essential part of java code

quaint mantle
#

oh

#

yh

#

im sutrpid

icy beacon
#

lambdas are used quite often

#

in my experience at least, and i code often

#

the syntax isn't hard

quaint mantle
#

well i only had to use them in python until now and i just copied 1 line my friend send me

quaint mantle
#

just get the main hand

#

or well

#

depends on the version

#

if its below offand just get the slot hes on

sick epoch
#

?help

undone axleBOT
#
CafeBabe Help Menu
*Red V3*
**__Admin:__**

selfrole Add or remove a selfrole from yourself.

**__Cleanup:__**

cleanup Base command for deleting messages.

**__Core:__**

embedset Commands for toggling embeds on or off.
info Shows info about CafeBabe.
licenseinfo Get info about Red's licenses.
mydata Commands which interact with the data CafeBabe has about...
set Commands for changing CafeBabe's settings.
uptime Shows CafeBabe's uptime.

**__Downloader:__**

findcog Find which cog a command comes from.

**__Mod:__**

names Show previous names and nicknames of a member.
userinfo Show information about a member.

**__ModLog:__**

listcases List cases for the specified member.
reason Specify a reason for a modlog case.

**__Permissions:__**

permissions Command permission management tools.

icy beacon
sick epoch
#

no ty ^^

#

i need help programming

icy beacon
#

ah

#

?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!

sick epoch
#

ok ty

#

๐Ÿ™‚

#

?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!

icy beacon
#

brother in god

wide coyote
#

I think that is something client decides

#

it would use the item in the main hand first i guess

#

that makes more sense

#

but its minecraft so can't say something for sure lmao

sick epoch
#

Write on a file different variables

wide coyote
#

getHand?

#

it does

#

yeah which is a superclass of playerbucketevent

#

what is your spigot api version?

#

maybe this was not a thing in your version

#

are you sure?

#

thats weird

#

can you send your pom.xml or build.gradle?

#

?paste

undone axleBOT
wide coyote
#

ah yeah the method does not exists in 1.19

sick epoch
#

Hello !
I need to write some variables on my config file, but it don't work i can read but not write
Here is my program https://paste.md-5.net/evakaboyic.cpp. I will get values from other class and write it in a file

#

and sure get it later

#

when someone join

wide coyote
#

what is the problem exactly

#

what is not working

sick epoch
wide coyote
#

is there any error on your console?

#

yeah, that seems to be the only way

fluid river
#

is the file created?

sick epoch
#

i don't know just don't do what i want

#

yes the file exist i can read normally

#

no error code

fluid river
#

the values are in it?

sick epoch
#

no

fluid river
sick epoch
#

just pre-defined

fluid river
#

how are they predefined if you only use one save() method

#

and create an empty file every time

sick epoch
#

just write on the file

fluid river
#

can you join vc or smth

#

describe your problem better

#

step by step

sick epoch
#

i'm a french people and my english is so bad

fluid river
#

just stream the thing

#

and try to show all methods which work with player file

sick epoch
#

ok

#

i can't stream

fluid river
#

i don't think streaming is allowed

#

private call

weak meteor
#

it is ok

#

no?

#

nvm

#

just saw the null

#

its deprecated

wide coyote
#

it says exactly why it is deprecated

fluid river
#

guys i need french dev

#

to help me

cobalt dust
#

nms help

weak meteor
#

this what i got

#

finally

#

ig it should work

#

easily

rose trail
#

Hi, help to make items spawn asynchronously every second

shadow gazelle
#

Is there some way to access the shearing loot tables for an entity so that I can generate the loot since the shear event doesn't actually have any loot with it?

shadow gazelle
#

I'd think you'd want it to be synchronized so that only one loop is running

rose trail
#

the following code needs to be executed, and items need to be spawned every second

remote swallow
#

Doing it async would most likely break or not work, do it sync with the scheduler

#

?scheduling

undone axleBOT
shadow gazelle
#

Not sure if that was supposed to be an image or something or what

weak meteor
rose trail
#

    private Arena arena;
    private final DropResourcesRunnable runnable;
    private final int millisRespawn;

    private boolean isSpawn;

    public SpawnerThread(Arena arena, DropResourcesRunnable runnable, int millisRespawn, boolean isSpawn) {
        this.arena = arena;
        this.runnable = runnable;
        this.millisRespawn = millisRespawn;
        this.isSpawn = isSpawn;
    }

    @Override
    public void run(){
        while (isSpawn){
            DropResourcesRunnable newRunnable = runnable;
            if (arena.getGame().getGameStatus() != GameStatus.ACTIVE){
                newRunnable.cancel();
                isSpawn = false;
                return;
            }
            runnable.runTask(BedWars.getInstance());
            try {
                Thread.sleep(millisRespawn);
            } catch (InterruptedException e) {
                e.printStackTrace();
                Bukkit.getLogger().warning("Spawner thread error");
            }
        }
    }```
remote swallow
#

Extend bukkit runnable and runTaskTimer an instance

rose trail
#

but after that the code below will be executed?

remote swallow
#

Yes

rose trail
#

oh, thanks, i will check it

echo basalt
#

why thread woeisme

shadow gazelle
#

There's no point in making that a thread

rose trail
#

wow it works ๐Ÿ˜„

hexed falcon
#

I'm trying to make this only work if the vehicle is a boat, but i can't figure out how i would detect the vehicle type, can anyone help?

tender shard
#

if(vehicle instanceof Boat)

#

or check vehicle.getType() == EntityType.BOAT

thin frost
#

Hello lads, I've developed a plugin which spawns falling "meteors". When it hits ground, I calculate player pushback and distance depending on how near the player is to the meteor. Now, I am trying to add a VISUAL fire effects (like Material.Fire), that does not spread or destroy other block, and will eventually go away. Clearly, setting the block to material.fire with metdata "noSpread" and "noDamage" does not work. https://i.imgur.com/9Qv2m77.jpeg any ideas? ๐Ÿ™‚

#

My current code:

tender shard
hexed falcon
#

thank you, it works

tender shard
#

alternatively you could just listen to BlockSpreadEvent, check if the spread block is a fire, and if yes, is it the source block the one you spawned, and if yes, cancel it

thin frost
#

Is there any way for me to have persistent data for a "ordinary" block? I need to make sure that if the server goes down, while the fire is burning, that it doesn't spread next startup. I bypassed this with a falling black by setting it's name to a identifiable explosion type.

#

Something similar but for Block would be sweet.

#

(Just to clarify - what I'm really after would be something like location.createVisualFire(lifetime in seconds))

undone axleBOT
tender shard
#

however if you just wanna use metadata (which resets on server restart), you could do it e.g. easily like this

    private final MetadataValue isUnspreadableMetaDataValue = new FixedMetadataValue(yourPluginInstance, true);
    private final String isUnspreadableMetaDataKey = "isUnspreadable";

    /**
     * Sets a block to fire and adds the "unspreadable" attribute
     */
    public void createUnspreadableFire(Block block) {
        block.setType(Material.FIRE);
        block.setMetadata(isUnspreadableMetaDataKey, isUnspreadableMetaDataValue);
    }

    /**
     * Returns true if a block is a fire block with the "unspreadable" attribute
     */
    public boolean isUnspreadableFire(Block block) {
        if(block.getType() != Material.FIRE) return false;
        return block.hasMetadata(isUnspreadableMetaDataKey);
    }
    
    @EventHandler
    public void onFireSpread(BlockSpreadEvent event) {
        if(isUnspreadableFire(event.getSource())) {
            event.setCancelled(true);
        }
    }
#

if you'd use CustomBlockData (which is persistent across restarts, chunk unloads, etc), it will be basically the same:

    private final NamespacedKey isUnspreadableKey = new NamespacedKey(this, "isUnspreadable");

    /**
     * Sets a block to fire and adds the "unspreadable" attribute
     */
    public void createUnspreadableFire(Block block) {
        block.setType(Material.FIRE);
        new CustomBlockData(block, this).set(isUnspreadableKey, PersistentDataType.BYTE, (byte) 1);
    }

    /**
     * Returns true if a block is a fire block with the "unspreadable" attribute
     */
    public boolean isUnspreadableFire(Block block) {
        if(block.getType() != Material.FIRE) return false;
        return new CustomBlockData(block, this).has(isUnspreadableKey, PersistentDataType.BYTE);
    }

    @EventHandler
    public void onFireSpread(BlockSpreadEvent event) {
        if(isUnspreadableFire(event.getSource())) {
            event.setCancelled(true);
        }
    }

    @Override
    public void onEnable() {
        // Register listener for CustomBlockData, so that any block data gets removed when a player changes the block
        CustomBlockData.registerListener(this);
    }

}
#

"this" obviously is your plugin instance, in these examples

thin frost
#

Thanks! Nice resource but I'm trying to work on a self-contained plugin (writing all my code from "scratch"), you'll have to pardon my beginner questions but is there any spigot/bukkit entity that allows me to save "metadata" through a interface directly - but not necessarily attached to a block?

#

Or am I better off implementing my own infrastructure for this with e.g. a SQLite db?

tender shard
#

CustomBlockData uses the chunk's PersistentDataContainer to save data

#

you could do that too, ofc

thin frost
#

Oh cool, didn't know that was possible -- thanks a bunch!

tender shard
#

np. The easiest way would probably be, if you don't use wanna CBD (customblockdata) to just store a List<Vector> or List<int[]> with the locations of your custom fires in each chunk's pdc

#

however that'd require you to write your own PersistentDataType. You could also use the builtin String datatype, and then e.g. just store the locations as comma and semicolon separated, e.g.
"1,2,3;2,3,4;3,4,5" for "custom fire at 1,2,3 and 2,3,4 and 3,4,5"

shadow gazelle
#

Is there some way to register a single listener method?

mossy marlin
#

hello i have question and i don't find example on internet to create this graphical type of menu

shadow gazelle
#

I have three that the features of will be disabled/enabled and the best I can think of right now is multiple subclasses

mossy marlin
#

no is java

#

can explain more please i need to understand exactly how is created

shadow gazelle
#

If you can't look at that and figure out how it works then you probably wouldn't know enough to get it working even with an explanation of how it works

shadow gazelle
#

pain

tender shard
# shadow gazelle Is there some way to register a single listener method?
        getServer().getPluginManager().registerEvent(PlayerJoinEvent.class, new Listener() { }, EventPriority.NORMAL, (listener, event) -> {
            // Code to execute
        }, this);

Note, this is actually not recommended. Actually the logic should be in the empty listener, not in the executor (the (listener, event) lambda), but that'd defeat the point of using it like this.

The proper way would be to just declare/instantiate a new listener that simply only listens to one event

echo basalt
#

Only use that method if you want to listen to any general event

#

while also on startup

#

You can pass Event.class and do checks yourself

#

Like if you have a config based event system

#

idk

shadow gazelle
#

So I guess my subclass version is pretty much the best I'll get

tender shard
#

it'd be much easier to just register the listener anyway imho, then just check if the feature is enabled, e.g. like this

    @EventHandler
    public void changeJoinMessage(PlayerJoinEvent event) {
        if(changeJoinMessage()) {
            // Do stuff
        }
    }
    
    @EventHandler
    public void changeLeaveMessage(PlayerQuitEvent event) {
        if(changeLeaveMessage()) {
            // Do stuff
        }
    }

unless you're using it on stuff like PlayerMoveEvent or InventoryMoveEvent, which gets called all the time

shadow gazelle
#

Player drop item event for like three different specific instances

#

It checks if it's enabled and if the person who dropped the item is even allowed to use the feature then schedules a task

#

My thought process is why check it at all if it's not even on ยฏ\_(ใƒ„)_/ยฏ

tender shard
# shadow gazelle Player drop item event for like three different specific instances

i'd just use one listener, then would then distribute it

    @EventHandler
    public void onDropItem(PlayerDropItemEvent event) {
        if(feature1Enabled) {
            feature1(event);
        }
        if(feature2Enabled) {
            feature2(event);
        }
        if(feature3Enabled) {
            feature3(event);
        }
    }
  
    // This does NOT have @EventHandler  
    public void feature1(PlayerDropItemEvent event) {
        // Code for feature 1
    }
    
    // etc
tender shard
#

so you gotta check if it's enabled, anyway

shadow gazelle
#

Oh right

cinder abyss
#

Hello, how can I change the tool needed to break a block ?

shadow gazelle
#

Use a mod loader

#

And mixins

cinder abyss
tender shard
cinder abyss
worn tundra
shadow gazelle
#

And iron and so on

shadow gazelle
#

What are you trying to do?

cinder abyss
shadow gazelle
#

A mixin really might be easier based on what you're asking

shadow gazelle
cinder abyss
shadow gazelle
#

So why not just see what kind of pickaxe it is?

#

There are only six that exist

cinder abyss
shadow gazelle
#

You can't get the mining level

cinder abyss
shadow gazelle
#

Well, maybe with NMS, but that would be extremely impractical to have just for mining level

mossy marlin
fluid river
#

hey guys

#

what server actually can do when it crashes

shadow gazelle
#

what

fluid river
#

like for example if i save something to file in onDisable

#

will it work for crash disable

shadow gazelle
#

No

#

You can't turn your car off right before you crash it, can you?

#

That's pretty much what a server crash is

fluid river
#

i mean does crash just fuck up the main thread

shadow gazelle
#

It kills the main thread

fluid river
#

that's what i wanted to hear

#

thanks

shadow gazelle
#

Along with every other thread

fluid river
#

so generally you should avoid saving stuff onDisable()

#

and probably onQuit(PlayerQuitEvent event)

shadow gazelle
#

onDisable gets called when the server stops

fluid river
wet breach
#

not sure what makes you think that is impossible o.O

shadow gazelle
#

If you can somehow react quickly enough

fluid river
#

you can turn it off any moment:)

wet breach
#

so....

shadow gazelle
#

You

fluid river
#

me

fluid river
#

alr alr

wet breach
#

its not accurate, o.O

fluid river
#

so to my question

tender shard
#

It is. When the server or car crashed (hard enough), you are dead and cant turn off the car anymore

shadow gazelle
wet breach
shadow gazelle
#

Then it is accurate

wet breach
#

no it isn't

tender shard
shadow gazelle
#

That's the car turning itself off, not you turning it off

shadow gazelle
tender shard
#

They dont shutdown befoee the crash. And its also not you turning off the car, but the car doing it itself

wet breach
fluid river
#

help me guys

shadow gazelle
tender shard
remote swallow
#

technically, when the server crashes everyone gets kicked

fluid river
#

stop arguing over elephants answer

shadow gazelle
#

Just have another way to save because onDisable won't get called it it crashes

wet breach
#

lmao

remote swallow
#

couldnt you just listen to the event and check if they all got kicked

tender shard
#

You dont magically shutdown your car thinking โ€žmight crash in 5 secondsโ€œ. And a plugin wont get notified โ€žserverโ€˜s about to crash - wanna save anything to db?โ€œ

fluid river
shadow gazelle
#

A server is not still usable when it crashes, at least that instance of it

fluid river
#

with no onDisable save

shadow gazelle
fluid river
#

also does client crash cause PlayerQuitEvent

shadow gazelle
#

Yes, it counts as a disconnect

kind hatch
#

I think it does.

wet breach
fluid river
#

and entire player object would work fine

wet breach
#

if you can't see a crash from 5 seconds out

fluid river
#

on quit

tender shard
#

The only proper solution is to tell people to fix their server. If it constantly crashes, their world will be corrupted anyway, who cares whether it had time to save your 3 new pvp kills to the db if your inventory is gone anyway

shadow gazelle
#

I think it does in the event

fluid river
#

alr

#

thanks guys

wet breach
flint coyote
tender shard
# wet breach if you can't see a crash from 5 seconds out

If i could see a crash is about to happen in 5 seconds, the crash wouldnt happen. I think i am a quite that i am quite a good driver that im not regularly in the situation to think โ€žoh, a crash is imminent. Better shut down the engine nowโ€œ lol

wet breach
#

memory mapped files are handled by the OS and not the JVM

wet breach
#

obviously you don't know traffic

shadow gazelle
#

Yes

tender shard
shadow gazelle
#

๐Ÿฟ

wet breach
#

if you have a vehicle on the left and right and in front, and someone hits you from behind you are telling me even though you saw it with enough time, you could move your car out of the way?

tender shard
wet breach
#

you did say that

tender shard
#

For example, yk, just braking

wet breach
#

you said if you could see it happen in 5 second, it wouldn't happen

tender shard
# wet breach see

How would you know that some drives into you from behind 5 seconds in advance lol

wet breach
#

so I gave you a scenario where you could see it happen from 5 seconds or more out

flint coyote
#

I don't get the whole discussion lol. You can't predict every crash on a server - period. And there's no way to avoid all problems besides saving everything instantly. A memory mapped file is the best you can do. Still won't help in a power outage scenario.

wet breach
#

see further proving you actually are not a very good driver and don't pay attention

tender shard
#

Yes forstalf, once again you are ofc totally right, everyone knows how perfect sense your argumentation makes

pure drum
wet breach
tender shard
wet breach
#

indeed

#

you don't have a requirement to really drive in the EU is my point

shadow gazelle
wet breach
#

I know so

#

๐Ÿ™‚

pure drum
tender shard
#

It only takes about 30 hours of lessons in germany

pure drum
#

like im lua dev butt want to switch to java

shadow gazelle
pure drum
#

so visual studio is more common for me

shadow gazelle
#

IntelliJ IDEA is actually made for Java development

wet breach
tender shard
pure drum
#

instead engine ?

wet breach
glossy venture
#

in ides

pure drum
pure drum
#

oke got it

wet breach
#

with IntelliJ it is common to have to clear caches, this is an issue that simply doesn't exist in netbeans

shadow gazelle
#

Not to mention that VSCode is more of an editor and less of an IDE

quiet ice
#

Also, ignore the others' advise about eclipse being an inferior solution

wet breach
#

VSCode and Visual studio are two different things

kind hatch
glossy venture
shadow gazelle
tender shard
#

Every IDE is fine. People just joke about eclipse because of its habit to auto-suggest random casts

river oracle
shadow gazelle
#

But I see it was VS though

pure drum
#

let me see

wet breach
glossy venture
#

eclipse and shit might have advantages in some fields but im pretty sure a company dedicated to making ide's would have better quality
i might be wrong

#

logically makes sense

wet breach
#

but its one I never experienced because clearing caches is just not a thing on netbeans lol

quiet ice
#

OH FUCK

kind hatch
shadow gazelle
#

Eclipse also has lackluster Gradle (and probably Maven) integration

quiet ice
#

Come on spigot, why the hell do you not know how to shade properly

tender shard
pure drum
shadow gazelle
kind hatch
#

At least out of the box.

quiet ice
shadow gazelle
#

There are runs and that's about it

quiet ice
#

And the maven integration is A-tier

tender shard
quiet ice
#

Or rather said task "tree"

wet breach
tender shard
#

Yes

shadow gazelle
#

Yes yes

#

Compiler = Gradle

quiet ice
#

The only place where eclipse's gradle plugin is awful is kotlin gradle

shadow gazelle
#

Their JDKs are better than Oracle's

wet breach
#

whose?

shadow gazelle
#

Well, that's Adoptium, owned by Eclipse, but

quiet ice
#

And honestly I must scratch my head at how they are still incapable of supporting kotlin gradle

shadow gazelle
tender shard
#

Normal gradle files are already enough pain

shadow gazelle
#

Gradle is pain

quiet ice
tender shard
#

Its already sad enough i have to deal with groovy in maven

shadow gazelle
#

But Kotlin Gradle is nice

sterile token
quiet ice
#

Groovy in maven? What the hell are you doing?

shadow gazelle
tender shard
shadow gazelle
#

Adoptium is just OpenJDK so that's probably part of why it's better than Oracle's shit in most cases

quiet ice
#

They really don't support java?

#

Because with gradle plugins you can use java easily

quiet ice
wet breach
tender shard
quiet ice
#

At that point I'd just abandon archetypes alltogether and start writing IJ plugins

lyric turtle
dim sandal
quiet ice
#

*.java classes don't belong in the resources folder people

shadow gazelle
#

:suffering:

river oracle
wet breach
quiet ice
shadow gazelle
#

@quiet ice does Eclipse constantly use 2GB+ of RAM?

tender shard
#

No

shadow gazelle
#

IDEA moment

river oracle
wet breach
#

it can if you allow it

quiet ice
#

of which at the most 784 MB is heap

river oracle
#

I should set my pfp to vscodium logo to wear my pride

#

Like Mr geol

shadow gazelle
#

Well, it could be Gradle being amazing

#

Never really paid attention to the difference between refresh, normal use, and building

quiet ice
#

And if I want to I can run the garbage collector whenever I want

river oracle
#

Garbage collect your family

#

With ease

shadow gazelle
river oracle
#

No

#

I love my baby

wet breach
tribal quarry
wet breach
#

otherwise, maven and gradle perform the same

shadow gazelle
dim sandal
quiet ice
shadow gazelle
#

Usually it's downloading dependencies and eating eight times the RAM it needs

river oracle
dim sandal
lyric turtle
wet breach
#

I thought Kalix gave you the solution or the place to look at ๐Ÿค”

echo basalt
#

damn wtf

lyric turtle
kind hatch
echo basalt
#

eh

#

mcpaste

tribal quarry