#help-development

1 messages · Page 481 of 1

orchid trout
#

united states of america

#

usoa

tender shard
#

us of a

quaint mantle
#

um.

#

how do i compile something?

tender shard
#

by running javac

#

or the eclipse compiler

#

or by telling maven to do that for you

#

or gradle's java plugin

#

or intellij's build system

quaint mantle
#

well the maven task does not appear to work properly.

#

i just got this error.

plucky pasture
#

I am trying to get user data from the config.yml file, and I am loading it in a config class by passing the constructor a plugin object to the config class then calling getConfig(), but when I try to get the config from a commandexecutor class I get an error where the plugin has already been instantiated.

quaint mantle
#

i just used that thing to create a project and i created the project twice and it still does that.

#

for 1.19.4.

orchid trout
#
        database.fetchStats(uuid).thenAccept(stats -> {
            UserManager.addUser(uuid, stats);
        }).thenCompose(data -> database.storeUser(uuid, thisherehastobestatshelp).thenAccept(data -> {

        }));``` any way to use stats in the other lambda expression?
chrome beacon
lost matrix
tender shard
quaint mantle
#

is it my code or paper?

tender shard
#

idk, I haven't seen your code, nor do I know what shitty things paper has again invented with their new plugin loading stuff

plucky pasture
#

how can I let them edit the plugin with the config yml file then?

tender shard
undone axleBOT
quaint mantle
remote swallow
#

you use di not new MainClassName()

quaint mantle
#

the latest one for download.

orchid trout
#

this is spigotmc

quaint mantle
#

ok fine.

#

where do you download a spigot server?

remote swallow
#

you cant

#

run buildtools

plucky pasture
#

I created have tried creating the config in the main class then passing it to the other classes but when I call the main class it still has that same 2 plugin instance issue

undone axleBOT
quaint mantle
#

yeah this is why i never downloaded spigot and just used paper instead.

#

how do i use buildtools lol, ik it is kind of late to be asking this.

undone axleBOT
remote swallow
remote swallow
quaint mantle
#

wait

#

why does it say current: 1.19.3?

remote swallow
#

hasnt been updated yet

#

latest rev isnt updated in buildtools either

#

prob will be next buildtools update

tender shard
#

If paper version X exists, spigot version X exists since days

quaint mantle
#

ok.

grizzled oasis
#

meta.setMapView(view); works on older versions? like 1.12.2 or how can i make it work with it?

plucky pasture
#

or am I running getConfig in the other classes?

quaint mantle
#

hm, it appears to be taking some time.

quaint mantle
#

wait is it downloading the entire source code lol?

tender shard
#

well

round finch
#

?id

tender shard
#

it downloads mojang's jar, then decompiles it, then applies the spigot changes

#

then compiles it again

#

basically that

round finch
#

java depency injection (this is for other class) tip

#

it needs the instance of the plugin class

#

ak main

quaint mantle
#

pain.

dusky hinge
#

Yep, it was.

remote swallow
round finch
#

i know typo

dusky hinge
#

and now I need to wait for them to fix it lol

plucky pasture
#

So I can just pass my main class that extends JavaPlugin to another class? I thought I was trying that last night and anytime I was using that object it had the 2 instance error

quaint mantle
#

what are you doing?

tender shard
#

not the class itself

plucky pasture
#

is the new Class(); syntax when trying to get the instance what is messing me up? I see right here I should be using the getInstance method is it different

tender shard
#

yes

plucky pasture
#

AHHH

#

ok thanks

remote swallow
#

yeah, you create a new instance

tender shard
#

new Class() creates a new INSTANCE of the class

#

you wanna use your existing instance

#

which is called "this" in your main class

round finch
#

di or static Main instance

tender shard
#

both DI and static getter

plucky pasture
#

yeah I saw it in that

tender shard
#

choose whatever you prefer

quaint mantle
#

just create a static variable and store your instance on the onEnable(); method being called and use a static getter to get the instance.

tender shard
#

if it's a public variable, it should be final, hence be set in the constructor already. But then it cannot be static, so pointless lol

remote swallow
#

di if you can is prefered, if not then the static getter

round finch
#

public static PluginClassNameHere instance;

@Override
public  void onEnable(){

instance = this;

}

this is 1 way of doing it

tender shard
#

and even if it's not public (has a getter), I wouldn't wait until onEnable() to store the instance, but rather directly in the init block

quaint mantle
#

why is the first letter of the variable name uppercase?

tender shard
#

yeah that is confusing

remote swallow
#

smh vollx

tender shard
#

Instance looks like it's a class

round finch
#

that ain't a real class name

#

LMAo

mortal hare
#

are java bean classes just a class reflection convention

#

?

round finch
#

but i agree with you guys

tender shard
#

it should be called "instance", not "Instance"

round finch
#

shet

#

typo

quaint mantle
#

i already said that.

tender shard
mortal hare
#

for example you have a String field named employee

#

you create getter getEmployee() to retrieve that field

#

they literally look like structs in c/c++

tender shard
hazy parrot
#

Bean should basically be object that encapsulates other objects

tender shard
quaint mantle
#

speaking of c/c++, java is kind of annoying.

tender shard
hazy parrot
tender shard
#

seriziazale

#

S8e

quaint mantle
#

you have to declare and define your methods in the same file in the case of java, while for c/c++, you can just declare the method name for a class member and define it in another file, much easier to manage code structure.

mortal hare
#

I cant believe that they've made an 100 page spec about a class convention

quaint mantle
#

i find it really annoying to have my file sizes just be all over the place.

#

oh.

#

but you still have to define it all in the same file though, dont you?

hazy parrot
tender shard
#

I wouldn#t see any reason why one would want to split the code. Like, MyClass1.java, MyClass2.java and both contain half the code of that class? huh

tender shard
#

or a native method

hazy parrot
#

Yeah that too

quaint mantle
#

i find that kind of annoying.

hazy parrot
#

But you inline impl in most cases

mortal hare
#

I mean JavaBean class looks like the struct in Java or Record

#

but with the same naming conventions

#

to support reflection

#

to all sorts of data

#

headers do not split code

#

in headers you define like in interfaces

#

in cpp files you declare the implementation

#

wdym you cant define a header method

#

well yes

#

you cant include the same function declaration twice

hazy parrot
#

What is even header method lol

mortal hare
#

if that's what you meant by it

tender shard
#

yeah but having a separate header file wouldnt even make their implementation file smaller as it ofc would also have to tell again "for which method" every impl is for lol

mortal hare
#

but for that we have ifn define guards

tender shard
hazy parrot
#

Method definition

tender shard
#

that's what interfaces are for

mortal hare
#

headers are equivalent but not identical to interfaces practically in c/cpp

#

the main reason to use headers is that you can provide the client the header file, and nothing more, and he can use shared library (like .dll or .so) to switch the implementations without recompiling the code

#

so basically the compiler just compiles the header file with client code and links the implementation, but at runtime, client can swap the implementations by switching files

tender shard
#

you could easily just share your interfaces in a .jar, and the implementation in another. e.g. bukkit vs craftbukkit

mortal hare
#

yea but you need to recompile your bytecode

#

while with headers you dont need to recompile the client at all

#

if you only change the implementation you only need to recompile the .dll or .so file

tender shard
#

or in this case, only recompile the craftbukkit .jar

mortal hare
#

well you can do it in java aswell with reflections i guess, because bukkit api uses classloaders to load plugins

#

thus you can access bukkit implementation by only accessing interfaces from maven repo api

orchid trout
#

[SQLITE_ERROR] SQL error or missing database (near "DUPLICATE": syntax error)

#

going to sleep

#

guten morgen

tender shard
#

i always called it "specialsauce-maven-plugin" for a year until I realized it's called "special source" and not "special sauce"

#

very disappointing to find out the actual name is so boring

round finch
#

can java lambda sort by smaller or bigger number?

ivory sleet
tender shard
chrome beacon
#

?nocode

undone axleBOT
#

It’s hard to answer a programming question without code
Oh no! You ran into a problem. But no worries, people are willing to help, but first they need to see your code. This is because otherwise, they would be providing help based on guesses instead of concrete knowledge. Whether it be a compile error, runtime error, or an unexpected output, I'm sure that if you were to provide code, you'd receive a quick solution.

round finch
#

i havn't used it before

tender shard
#
public class MyCustomClass {
    private int value;
    public int getValue() {
        return value;
    }
}

now you can use a lambda:

    public static void main(String[] args) {
        List<MyCustomClass> myList = new ArrayList<>();
        myList.sort((o1, o2) -> Integer.compare(o1.getValue(), o2.getValue()));
    }

or even a method reference:

myList.sort(Comparator.comparing(MyCustomClass::getValue));
round finch
#

Integer.compare(o1.getValue(), o2.getValue()));
cool!

#

that is pretty neat

regal scaffold
#
        this.entity = (new EntityNoAI(v)).setSilentProperty(true).setMaxHealth(5.0, true).setKnockbackResistance(Double.MAX_VALUE).setHologramYOffset(1.75).setPassiveHealingPerLoop(1.0).enablePassiveHealing(100L).disableAIFully().setInvincible(true);
#

java.lang.NoClassDefFoundError: net/minecraft/world/entity/animal/Pig

tender shard
#

you gotta remap your .jar

#

?nms

regal scaffold
#

I'm using nms on 100 other things

#

Just this 1 is giving an error

tender shard
#

idk how remapping works in gradle, but you're definitely not doing it properly, otherwise the class "nms...Pig" wouldnt aven appear in your source code

#

it would be EntityPig instead

#

how did you run gradle? shadowJar?

#

or build?

#

rn you set the remap plugin to run on shadowJar, so you gotta use shadowJar to compile

chrome beacon
tender shard
#

lol

#

who the heck embeds the password in the build script

quiet ice
#

Hopefully it is read-only

#

(I have no idea how github maven repos work tbh)

tawny remnant
#

how can I save and load a HashMap<Integer, ServerPlayer> from a config file?

tender shard
#

wtf

#

you can't

#

nms players are not serializable

#

well at least not in the usual way

#

I doubt that reading the player data from their .dat file is what you want to do

tawny remnant
#

so how can i do it

tender shard
#

@regal scaffold you still haven't changed your github package repo password

tender shard
undone axleBOT
plucky pasture
#

Should I also create instances of other classes for these plugins? Or can I call other classes than main with a new instance of that class

quaint mantle
#

My maven profile for changing the out dir isnt working it just wont build there

tender shard
#

?paste your pom

undone axleBOT
lethal hemlock
#

Can someone dm a backslot plugin please

tender shard
#

no

quaint mantle
#

There

tender shard
#

looks good. did you even enable the profile?

tawny remnant
#

i got it now

#

Is there any way to save a HashMap of Integer and ServerPlayer to config.yml?

tender shard
#

still, no

#

you asked that 2 minutes ago, remember?

round finch
undone axleBOT
round finch
#

do you want to access the other classes from other plugins?

tawny remnant
#

sir i read that already

tender shard
#

and then you asked the same question again

#

instead of explaining what you're actually trying to do

granite owl
#

i think ill program a backpack plugin in which u can store filled backpacks in backpacks🤔

regal scaffold
#

Oh lol

#

The original dev

#

Is dumb

tawny remnant
#

Im trying to save a hashmap of Integer and ServerPlayer to config file

tender shard
#

and why

regal scaffold
#

Considering there is literally secret keys in gh

tawny remnant
#

so they dont disappear

round finch
#

@tawny remnant question what you want?
cus you could just use UUID in a list

tender shard
#

ez

regal scaffold
#

@tender shard It's not even my credentials how do I change them

tender shard
#

never used github packages

granite owl
#

either that or the server dies

quaint mantle
#

Just enabled it and still not workin

tawny remnant
tender shard
tender shard
undone axleBOT
quaint mantle
#

(Also yes i did reload maven)

granite owl
#

isnt a map serializable?

tawny remnant
#

sure meaning sarcasm or "yes"?

tender shard
#

it means yes

tawny remnant
#

okay thank you

tender shard
#

it won't be of any use though

quaint mantle
#

There is no output

#

Thats the concerning part

tawny remnant
#

cus im not loading it am i

tender shard
quaint mantle
#

I pressed the build button

tender shard
#

which one?

quaint mantle
#

Build > Build Project

#

At the top

tender shard
#

that's not maven

#

you have to use maven to compile

#

Upper right, maven tab -> Lifecycle -> package (double click)

vocal cloud
#

ctrl + ctrl -> mvn package

granite owl
#

btw is it possible to have different jetbrains ides linked to different git accounts? i use intellij for private projects but i need to use clion for a university project xD

#

and in order to not get kicked out i need to commit using my university mail

#

but it seems they use the same global settings

quaint mantle
#

Not code related from looks of it

tender shard
#

go complain at paper

vocal cloud
#

Caused by: java.lang.IllegalArgumentException: File 'plugins\SynMC-1.0-SNAPSHOT.jar' is not a valid plugin file, cannot load a plugin from it!

#

Gotta read your errors lol

tender shard
#

that's a paper bug

quaint mantle
#

I dont get how its not a valid plugin file

tender shard
#

it's a paper bug

quaint mantle
#

Ah

vocal cloud
#

Ask on le paper

tender shard
#

someone earlier had the same issue

#

then paper confirmed their shitty new plugin loader is shitty

quaint mantle
#

🥲

tender shard
quaint mantle
#

There possibly an issue with my directories?

#

It goes src > main > java > com.kunosyn.synmc > SynMC.java

granite owl
tender shard
#

it's a paper bug

#

?paperbug

vocal cloud
#

?paper

granite owl
#

its a spigot bug

#

🐒

quaint mantle
#

I just wanna know how to fix it tbh lmao

#

It was working perfectly fine before i switched to maven as a dep manager

tender shard
tender shard
granite owl
tender shard
#

yeah just run spigot

granite owl
#

i found 2 functions i wanted to use that paper has that spigot doesnt

#

and i worked around them

#

other than that idk what the advantage is supposed to be

#

the "advanced" api has like 10 functions more xD

quaint mantle
granite owl
#

?

quaint mantle
#

Like as in i have a testing server

#

Stored locally

granite owl
#

paper is a spigot fork wym u dont know how to run a spigot server

quaint mantle
#

I mean as in idk how to stop using paper

#

Like how I would setup a test server with spigot

granite owl
#

like u replace the jar?

#

im baffled

tender shard
#

Does your plugin’s .jar even contain a plugin.yml file?

granite owl
#

are u asking how to use the buildtools?

granite owl
tender shard
#

DM me your .jar file, then I can check whether its correct. However if it werent, papers error message should look different

#

Yes

granite owl
#

to be included in the jar

#

maybe its not

#

in his plugin

quaint mantle
tender shard
#

If its missing from the jar, paper should say „missing plugin.yml“

#

Instead of the error you got

#

At least thats how spigot does it and how paper used to do it

granite owl
#

i actually had problems with the plugin.yml so i manually added it to the jar to figure what went wrong. then i figured it wasnt included in the first place cause i didnt put it into the resources dir

#

🤣

eternal night
#

damn that is crazy too, but how do you set no ai on entities in 1.8 ?

vocal cloud
#

Damn that's crazy but where do I find spigot for beta 1.2

eternal night
#

but yea, the error is no plugin.yml

#

the message is a bit bleh, but since paper has paper-plugin.yml as well

#

its a bit more complex than "Missing plugin.yml"

#

I'll bring it up for fixing tho 👍

vocal cloud
#

if(both missing) error

tender shard
eternal night
granite owl
vocal cloud
#

just need to write a simple webapp that checks for it

tender shard
#

it belongs into src/main/resources/

granite owl
#

xD

tender shard
#

Didnt you say you added it manually?

#

Then why is it still not there lol

quaint mantle
#

It wasnt in the resources dir that was the issue

#

it was just in the proj dir

granite owl
#

i daid

#

i said

#

i did it once

tender shard
#

Someone earlier had the same error message and claimed the paper guys said its a paper buf

#

Bug

#

So apparently the bug just is the bad error msg

#

Idk loo

#

Lol*

granite owl
#

so i presume his plugin worked before maven cause there was no resources dir

#

🤔

quaint mantle
#

Yea

tender shard
#

Probably

quaint mantle
#

Paper did say theres an issue tho

#

They said their error should be more descriptivie

tender shard
#

Which is true, the current message is useless

quaint mantle
#

descriptive however u spell that

#

They said its an extremely common issue

#

i have a problem with multiverse core it load the flat map but not the buildings which i have built on the map whats happening ?

tender shard
granite owl
#

throw new NullPointerException("u have error");

granite owl
#

just put the plugin.yml there

quaint mantle
#

I downloaded 1.19.4 from the spigot site directly and set my own dependency using a module

#

I did

#

Its all g now

tender shard
#

You cannot download spigot from the spigot website

quaint mantle
#

Then how did i do it lol

tender shard
#

You can only download it ilegally from illegal websites

granite owl
#

u downloaded it from another site

#

and id be careful with viruses

quaint mantle
#

Oh 🤷 i just followed a yt tutorial

eternal night
quaint mantle
#

Yea i checked the jar n all that

#

And scanned the download

#

It was all good

tender shard
#

Wouldnt surprise me if „illegal bukkit download website“ would add shady stuff to the jars

granite owl
#

lol the bot deleted my msg

tender shard
tender shard
#

not the actual server software

quaint mantle
#

Thats exactly where i downloaded it from

#

The jar file

#

For the dep

tender shard
#

Yeah but you needed NMS

quaint mantle
#

Mhm

tender shard
#

So you needed the actual jar

quaint mantle
#

Which is why i switched to maven

#

Yea

tender shard
#

Yeah fair

#

I thought you said you downloaded spigot, not spigot apu

#

Api*

quaint mantle
#

Oh yeah naw just the api file

#

Then when to like modules and added it as a dependency

granite owl
#

so

#

u wouldnt even notice it

#

cause i mean its a server xD

quaint mantle
#

Is there any way i can configure my inellij so when i press run it just runs the bat file that starts the server for me?

#

So i dont gotta like go to file explorer n all that

granite owl
#

why

echo basalt
#

you'd probably be configuring gradle / maven instead

quaint mantle
#

Ah

granite owl
#

am i the only one just using /reload?

#

xD

echo basalt
#

yes, ew

granite owl
#

🤔

tender shard
quaint mantle
#

Ah alright

#

Do u happen to have an article on that as well? lmao

tender shard
#

oh wait

#

that's missing the maven-exec part

quaint mantle
#

Damn

tender shard
#

now I remember why I didnt publish it yet

quaint mantle
#

Lol

tender shard
#

gime a minute

quaint mantle
#

👍

tender shard
#
    <profiles>
        <profile>
            <id>run-test-server</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>3.0.0</version>
                        <executions>
                            <execution>
                                <id>run-test-server</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>/Users/mfnalex/mctest/start.sh</executable>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

sth like this

quaint mantle
#

Ight thanks

tender shard
#

havent tested, I got the actual working thing on my laptop but that's in the bedroom

mortal hare
#

what's better in gradle projects

#

target and source compatibility fields

#

or gradle java toolchains

tender shard
#

depends

mortal hare
#

ik they do different things

#

like toolchains download jdk builds and etc

tender shard
#

do you wanna use the same JDK as the one you set your target/source to? if so, toolchains

quaint mantle
quaint mantle
#

Same thing

#

Is it supposed to be a profile?

#

Instead of a plugin

tender shard
#

it's supposed to be a plugin declared in a profile

mortal hare
#

what's the purpose of combining compatibility fields

#

with toolchains

tender shard
mortal hare
#

i cant see any benefits when toolchains literally download builds of jdk to compile

#

unless you want to deploy it on older versions of jre

tender shard
quiet ice
#

Some JDKs don't support the release flags

tender shard
quiet ice
#

Or have other whacky behaviour

tender shard
mortal hare
#

you have java 17 class bytecode

tender shard
#

no, I have java 8 class bytecode

#

that's what the source/target thing is for

mortal hare
#

do you mean when you shade them?

tender shard
#

no, I mean when accessing other plugins

orchid gazelle
#

Hello

tender shard
#

e.g. imagine I have worldedit as optional dependency. imagine worldedit requires java 17. That's why I need java 17 to compile, otherwise it would complain "cannot access class com.worldedit.whatever"

#

I still want my stuff to work on java 8. So I set target/source to java 8

#

that works just fine

mortal hare
#

i kinda get it but kinda not

#

if depedency is a jar file

#

lets say

#

its compiled to bytecode .class files

quaint mantle
#

Set it up and it errored out

#

Error: Unable to access jarfile server.jar

mortal hare
#

with jdk 17

orchid gazelle
#

Maven ftw

tender shard
mortal hare
#

and you're compiling your plugin with the same ver of jdk

#

what happens when you access jar plugin files

#

which is compiled with older jdk

tender shard
#

jdk 17 can access java 17 .jars but still compile your own code for java 8

tender shard
mortal hare
#

lets say i compile with java 8

orchid gazelle
#

Okay hi guys so I want to know in which 45deg direction the player is looking and turn that by 90 or -90 degrees to get left/right of it, how would I do that?

mortal hare
#

and i access jdk 17 compiled plugin

#

class instances

orchid gazelle
#

Take the direction, ignore y, somehow clamp to 45deg?

quiet ice
#

Asking again since other people are on right now:
What is the best way of adding your own dependencies that are generated at compile-time? Preferably without using maven - but sources MUST be attached to the dependency (using a file collection with the sources and the "real" jar does not work as-is)

Implementing SelfResolvingDependencyInternal on my custom AbstractDependency instance doesn't seem to do the trick when running ./gradlew dependencies

tender shard
quaint mantle
orchid gazelle
#

Well I wanna know in which direction I gotta move my coordinate

#

When hitting left/right in my ui, it should move the coordinate on the actual left/right relative to the player

tender shard
#

like this

mortal hare
#

is there any way to make optional toolchains?

mortal hare
#

like if there's targetcompatibility version

#

of jdk

#

then jump to the toolchain declaration as a fallback

orchid gazelle
#

So basicly I need translation between coordinates and rotation

tender shard
#

hm maybe you need some sinus/cosinus/etc math shit for this

quaint mantle
#

Works ty

orchid gazelle
#

Im fine with that

#

I love maths

#

But well.. I don't know how that would be useful here

orchid gazelle
quaint mantle
#

How could I get a recipe's matrix? Basically Im trynna make a listener so people cant use my plugins custom ingot "Enderite" to like craft something like anything that you would craft with normal iron since its just an iron ingot with metadata

tender shard
#

that returns the string as it's defined, e.g. {{"#"},{"#"}} or

#
#

for sticks, where # is wood planks

#

however are there actually any vanilla recipes that do NOT use material choices?

#

because materialchoices also work with metadata

#

or am I confusing sth

worldly ingot
#

You're way better off comparing the recipe's key

tender shard
#

wdym with comparing the key?

worldly ingot
#

ShapedRecipe#getKey()

tender shard
#

how would that help?

worldly ingot
#

Oh they want to disallow the use of a custom item in other recipes

#

Disregard

quaint mantle
#

I could just use the recipe ingredient map

tender shard
#

i misread

quaint mantle
worldly ingot
#

Yeah I was going to suggest the ingredient map as well. The shape won't matter

tender shard
#

just cancel every craft prepare event whenever one of your custom items is inside the matrix

worldly ingot
#

Nah, recipe prepare event is your only bet there

quaint mantle
#

I just dont want them persay using enderite bars to craft an iron pickaxe

tender shard
#

then just check whether the matrix contains your custom item, and if yes, if the recipe that's being completed is NOT your custom recipe, then cancel it

mortal hare
#

hmm i didnt knew you can embed cpp code inside jvm

#

JNI allows you to write c/cpp code

#

and execute it through jvm

#

imagine the potential for large scale networks

#

for this

tender shard
#

ofc, native methods

#

and stuff

mortal hare
#

i wonder if hypixel utilizes this to balance network load

worldly ingot
tender shard
worldly ingot
#

Its primary use is to get access to some functionality at a lower level than Java

mortal hare
#

i mean there's not much potential since most of the minecraft code is in java

worldly ingot
#

e.g. some OS-exclusive API

mortal hare
#

but still

worldly ingot
#

Trust me. It's not as useful as you might think to Minecraft servers lol

quiet ice
#

The JVM devs plan to eventually lock down JNI

vocal cloud
#

Isn't it because they're adding the ability to interface directly with c/c++ libs

wet breach
#

however it has a downside though

#

the downside is that it is only handy for some heavy weight code stuff that can be done better in CPP or long running code because context switching kills the performance gains/benefits

wet breach
#

JNA and JNR exist

wet breach
quaint mantle
#

Is there any way to add multiple recipes at once?

#

Instead of individual addRecipe?

young knoll
#

No, you’ll have to call addRecipe for each

quaint mantle
#

Damn

young knoll
#

If you want to add a bunch quickly, throw them in a collection of some kind and loop over it

mortal hare
#

but JNA will exist though right?

livid dove
#
  • other way around
wary topaz
quaint mantle
#

So I wanna make custom pickaxes so as a basis for the custom stuff I make it wooden then modify its meta, i was wondering if theres a way to make a wooden pickaxe as efficient as a netherite pickaxe or like just generally change efficiency of pickaxes?

#

Like through use of nbt tags or so on

wary topaz
#

you can probably modify packets and increase the mining rate taht way

#

as I know that is how hypixel skyblock does it

quaint mantle
#

I havent been able to find anything on modifying packets but seen it mentioned on the spigot website

echo basalt
#

ehh

#

it's a pain

mortal hare
#

tbh im surprised is how easy to make JNI compatible shared libraries

#

compared to how pain in the ass is to setup php extensions

echo basalt
#

you can send mining fatigue packets and do some funky stuff for arm swings

#

and then emulate the block crack packets

#

to basically make custom block breaking

wary topaz
#

oh hi illusion youre good with apis could you help me with my bungeecoord problom?

quaint mantle
#

How do I include craftbukkit as a maven dep

#

I wanna be able to run ItemStack.asNMSCopy but I think its a craft bukkit thing

wary topaz
#

?buildtools

undone axleBOT
river oracle
river oracle
#

use this if you want to access NMS or craft bukkit classes

rigid otter
#

Can we store custom data in an item in 1.12.2? I don't see PersistentDataContainer there.

young knoll
#

Not with the api

rigid otter
#

So, how?

young knoll
#

NMS

#

Add NBT data to the items

#

Or use NBTApi

rigid otter
#

Ohh I see, the keyword is NBT, thank you!

full saddle
#

I tried to set the item in hoppers when hoppers move items by doing either removeItem or setItem, but neither of them affected the hopper despite being executed and no errors showed, what could be the issue?
Code of the listenner that has this issue:

@SuppressWarnings("depracation")
@EventHandler
public static void HopperEvent(InventoryMoveItemEvent e){
  if(e.getSource().getType() == InventoryType.HOPPER || e.getDestination().getType() == InventoryType.HOPPER){
  e.setCancelled(true);
  int empty = 0;
  int limit = 10;
  int loop = e.getSource().getSize();
  while(empty < loop && limit > 0){
    ItemStack item;
    int amount;
    if(e.getSource().getItem(empty) != null){
      item = e.getSource().getItem(empty).clone();
      if(item.getAmount() > limit){
        amount = item.getAmount();
        item.setAmount(limit);
        e.getDestination().addItem(item);
        item.setAmount((amount-limit));
        limit = 0;
        
        } else{
            limit = limit - item.getAmount();
            e.getDestination().addItem(item);
            item = new ItemStack(Material.AIR, 1);
            }
       e.getSource().setItem(empty, item);
    } else{
        empty++;
        }
   }
}
orchid gazelle
rigid otter
#

Can I remove all Mojang provided commands?

rigid otter
#

How does this work?

PluginManager#registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin);

What about Listener and EventExecutor?

abstract sorrel
#

have you registered the event in your main class?

#

ok

wet breach
#

Not sure why you have to check for player

#

This assumes that something that isnt a player could drag items in an inventory

#

Maybe gettype is only set if you hold shift?

ornate patio
#

Is it possible in any way for a user to be in survival mode but have access to the creative inventory

ornate patio
#

How so

#

I guess i could create a GUI

#

to replicate it

wet breach
# ornate patio How so

The look of the inventory is controlled by the client when it knows its in creative. And both client and server behave differently in regards to creative. So it isnt possible to use some kind of hack to have a player in survival mode but have access to the creative mode inventory. So as you said you would have to create some kind of gui to simulate it.

#

Interesting. But isnt your matrix like 2 slots away?

#

If so i dont see that being a particular issue

ornate patio
remote swallow
brave shadow
#

What means this Error? Pls Help!

pulsar flicker
brave shadow
#

this?

sullen canyon
quasi flint
pulsar flicker
# brave shadow

That is not the entire error message. But I'd assume from what you've sent so far that you are trying to do something async that you maybe shouldn't. Can't really say as we don't have any idea on what your code looks like or where in the code you are experiencing the problem.

brave shadow
#

ok but thx you!

misty ingot
#

so yk how we have persistent data containers for players and items
do we have anything like that for mobs?

remote swallow
#

if you can see it on this list it does

fluid river
#

same as ItemMeta and Chunk

misty ingot
#

i zee

green prism
#

Do you think it's better to customize the plugin language based on the specific player's locale or to create a universal language that is the same for everyone?

rotund ravine
#

I just go with english

#

Or make some locale files

green prism
remote swallow
#

i'd say it depends on how much your plugn interacts with the player

rotund ravine
#

Depends on what you ^

green prism
#

tysm

fluid river
#

but for europe and USA just english would be fine

remote swallow
#

make sure to always include lolcat

fluid river
#

you can just create locale folder with en_EN.yml, ru_RU.yml and so on, and when sending a message just use Player#getLocale to determine which file should be used

#

if there is no file for the locale use default servers language stated in config.yml for example

#

like default-language: en_EN

remote swallow
#

^^

fluid river
#

i went to smoke for a bit

#

now i want to make own library for random shit

#

like the one i already made for namespaced keys

#
public static final NamespacedKey key(String s) {
    return new NamespacedKey(instance, s);
}
flint coyote
#

Impressive lib lol

fluid river
#
import static me.carefall.lib.Key.key;
...
void method(Object... args) {
    // code    
    key("myKey");
    // code
}```
#

why not

#

relatively new feature

flint coyote
#

There's nothing wrong with it. Saves you some extra characters on usage

#

Also Key.key("myKey"); would look weird

fluid river
#

yup

remote swallow
#

NamespacedKey.fromString("coolKey:KEY") be like

fluid river
#

sheeit

#

how does this method get your instance tho

remote swallow
#

it doesnt

fluid river
#

can anybody provide the code

#

oh

#

?stash

undone axleBOT
remote swallow
#

you either use that orNamespacedKey.fromString("coolKey:KEY", instance)

fluid river
#

isn't the thing deprecated without instance

#

i forgor how is the pattern called

flint coyote
#

Not according to documentation

fluid river
#

deprecated

flint coyote
#

That's not the fromString method tho

fluid river
#

oh

#

still

#

looks kinda weird

#

why arent they tagged as deprecated

#

cuz they might be for internal use too

flint coyote
#

I dunno

fluid river
#

what to code

#

i have nothin' to do atm

chrome beacon
flint coyote
#

I got way too much to do to complete my current project. Both ain't cool

fluid river
#

the ony which constructs you an instance to your exact purpose

#

like one instance for working with Items and one for Entities

#

Is that a Factory?

#

yeah ig

flint coyote
#

Yes a factory creates an instance of an interface

#

Obviously that interface should have implementations but in a factory you just put parameters and get any implementation

fluid river
#
public class PDCBuilderFactory {
    public static PDCBuilder newInstance(Object holder) {
        if (holder instanceof ItemStack) return new ItemStackPDCBuilder();
        if (holder instanceof PersistentDataHolder) return new HolderPDCBuilder();
        return null;
    }
}

public abstract class PDCBuilder {

}

public class ItemStackPDCBuilder extends PDCBuilder {

}

public class HolderPDCBuilder extends PDCBuilder {

}
#

like this

#

where both itemstack and holder builders are extending PDCBuilder

flint coyote
#

The factory itself could be instantiated. Although it doesn't have to be if there's only one

#

But besides that, yes

fluid river
#

should that be interface only tho

#

abstract classes are not under factory pattern?

flint coyote
#

You want a factory for a builder?

fluid river
#

i want factory for builders xD

#

i mean builders are empty

flint coyote
#

That would only make sense if you cache those builders because a builder is usually not created to be used a single time

fluid river
#

hmm

#

idk

#

arent u creating a new StringBuilder to be used just once

flint coyote
#

If you create an instance of a builder to create a single object using the builder then your factory might aswell create that single object for you instead

flint coyote
fluid river
#

but still

flint coyote
#

Well the reason for a string builder is that constructing a string from multiple strings is more expensive than using a single object builder

#

For other objects that's not the case

fluid river
#

and for example if you have an ItemStack builder

#

which would need PDC, name, lore and other stuff

#

cant u just inst a builder from material

#

and then use .method().method().toItemStack() to make it as you want it

#

and then forget about the builder

#

that's just turning this long process into like one-liner

#

and instead of working with meta yourself you just let the builder do everyting under the hood for you

flint coyote
#

I usually create a single function that takes those parameters (or null) for that but if you like the builder pattern that much you can obviously take that route, too

#

Or you swap to kotlin and never need a builder for such things ever again 😛

fluid river
#

i mean that's just the thing i once saw in somebody's code

#

they had an ItemStackBuilder

flint coyote
#

There's nothing wrong with it. But why would you want to create a Factory for all those Builders instead of just instantiating them on demand?

fluid river
#

which basically had the methods like .withName(String).withLore(StringList).withPDC(key, Type, Value).toItemStack();

#

if you have a pdc support, then you need one builder for Entity and Chunk and one builder for ItemStack

#

cuz sadly ItemStack is not PD holder

#

only the ItemMeta is

#

i mean you can just have one builder where you pass Entity, Chunk and ItemMeta

#

but then you need to get the meta and set it back after your builder finished working

flint coyote
#

But if you create those Builders as seperate classes anyway then instead of Factory.newInstance(ITEMSTACK);. You could just go with new ItemStackPDCBuilder(); aswell

fluid river
#

yeah the enum was cringe for that purpose

#

i have another idea

fluid river
#

like this

#

you can pass like anything

#

but if you passed an item you get itemstack builder

#

and if entity or chunk you get just pdc holder builder

#

and for everything else you get null hehe

#

this looks super cringe i know

flint coyote
#

It would make sense but only if you don't know what you are working with - because otherwise you can still just call new WhateverBuilder() anyway.

fluid river
#

lol the "Builder Factory" pattern is actually a real thing

flint coyote
#

If you do know what you are working with it's just getting the same builder with extra steps

fluid river
#

i guess i just had to google it

#

thanks anyways lol

flint coyote
#

I mean you can do it and I wouldn't consider it bad practice. I just don't think it's reasonable^^

fluid river
#

yeah probably

#

i want to find like any case when Builder Factory might be useful in bukkit

quaint mantle
#

Hello

flint coyote
fluid river
flint coyote
#

oh bukkit, then no xD

fluid river
#

when you just return the correct instance of something depending on the mc version target plugin has

flint coyote
#

The version of the plugin won't help you unless the factory ain't part of the plugin. But it would make sense for the server version when things significantly changed

fluid river
#

and setup a static util class with one inst() method lol

flint coyote
#

Yeah that sounds reasonable. Just keep in mind that for completely new features you'd still run into an issue.

fluid river
#

yup

flint coyote
#

Like a version where itemmetas don't have a pdc, your builder would still have a pdc method that would result in an error

fluid river
#

you just set up the corners of your library

#

like the lowest supported and highest supported versions

#

and you loop through all javadocs of all versions

#

finding what can be wrong if you run X on version Y

#

what a mess

flint coyote
#

Sounds like a lot of effort but yeah, that way you could even fix the builder implementation

fluid river
#

💩

#

i mean someday i might try

#

but meh

#

too much work

#

gonna smoke brb

tender shard
#

smoking is healthy

fluid river
#

cool

tender shard
#

i'll join

fluid river
#

send a picture

#

if your husband wouldn't kill me for that

flint coyote
#

It would have a usecase atleast.
But your builders would still have to check whether the current version supports whatever thing you wanna add (like a pdc). And the in the function just skip the "add pdc" part

fluid river
#

how is he doing tho, you said he had a medical operation

#

i guess that's not for help-dev tho

tender shard
#

nothing special

fluid river
#

lol

tender shard
#

he had like 12 gallbladder stones lol

fluid river
#

oof

#

guess he had much Cholesterol

#

fuck i was going to smoke

#

gonna pick my phone

remote swallow
#

brower

fluid river
#

bowser

#

um back

tender shard
#

apropos bowser, the super mario movie sucks

eternal oxide
#

Does it? customer reviews seems to love it

tender shard
#

maybe one has to be 7 years old to enjoy it

#

idk

eternal oxide
#

are you old enough to have played the original games?

#

I hear it's a lot of fan service so if you haven't played the games you are not going to have the member-berries

tender shard
eternal oxide
#

1985

tender shard
#

tbh it's not really very good rated

eternal oxide
#

yeah thats critics

#

they are paid to hate on it because its not woke

tender shard
#

yeah idk just watch it yourself, I found it extremely boring and childish and counted down the minutes until it would hopefully end again

#

and I even had a few beers before, it was still boring

eternal oxide
#

yeah I can imagine that happening if you've not played the games

tender shard
#

lol

eternal oxide
tribal quarry
eternal oxide
#

I doubt it deserved such a high audience score.

tribal quarry
#

well its not bad, & not too good

tender shard
#

it's not the worst movie ever but I would not want to watch it again

eternal oxide
tribal quarry
#

yea sure thing

#

xd

tender shard
#

help-dev is just another general

tribal quarry
#

lmao

eternal oxide
#

yep, however politics is expressly banned.

#

Those discussions never end well

tender shard
eternal oxide
#

Not sure if it is written down but it's been stated by all mods and md5

#

I'd not know where to even find the rules 😛

#

?rules

undone axleBOT
tender shard
#

weird, I've seen MANY political discussions here, and nobody ever cared

tender shard
#

the discord rules also dont mention it

#

which are in the channel description in #general

#

and the general spigotmc rules also don't mention it

eternal oxide
#

No clue, I've definitely seen md5 ban politics and giving legal advise

tender shard
#

and I've also seen many discussions about politics where staff members discussed, too lol

eternal oxide
#

it does happen but I think it's just a general ban so they can shut down any that go bad.

tender shard
#

hm all I've seen is mods saying to drop "this specific" discussion, but never said it's generally not allowed

remote swallow
eternal oxide
#

he has to as it's a can of liability worms

tender shard
#

i like worms

#

slimy, yet nutricious

eternal oxide
#

Gahg - Klingon worms

tender shard
#

how those worms called again that live in mudflats? i remember we went to the sea in netherlands with our school once and people at those worms

#

alive

eternal oxide
#

live? heck no. We used them as fishing bait was all. Lug worms

#

Lug worms and rag worms

lost matrix
#

No idea whats it called in english

tender shard
#

that's what I meant

eternal oxide
#

Thats a Lug worm

lost matrix
#

You are a lug worm

eternal oxide
#

or it looks to be

#

yep it's a lug worm (Arenicola marina)

orchid trout
#

🐈

tender shard
#

lug worm sounds like slughorn, the new fancy term for "nms"

lost matrix
#

Did we already agree on that?

jagged quail
#

need to send my daily task manager image with "mmm"

lost matrix
#

I though we where going to call it 'm'

jagged quail
tender shard
vocal cloud
#

6mb l3

lost matrix
#

4k series was lit. It was barely worth upgrading my 4770k to a 10700k a few years ago

eternal oxide
#

I still run a 3770k on a GTX 1070. Does everything I need

jagged quail
#

i have no gpu

#

still using this

eternal oxide
#

I don't really want to upgrade as new CPUs come with media drm

sullen canyon
#

seems to be crazy

eternal oxide
#

yeah, not in Ivy bridge

jagged quail
#

mine is haswell

eternal oxide
#

They do all sorts of things with it. Like prevent you recording any drm media. In some instances even prevents you outputting to things line a Elgatto

#

I think elgatto is fixed now though

eternal oxide
#

no recording Netflix though

eternal oxide
#

Nope too old.

jagged quail
#

time to check netflix

eternal oxide
#

it came in close to that though, so you'll have to check

jagged quail
#

it goes black when i pressed screenshot

eternal oxide
#

yep drm'd

jagged quail
eternal oxide
#

I think the 3700 series was the last before they added drm

lost matrix
#

Just need the right tools i guess

sullen marlin
jagged quail
#

we have 1080p plan

eternal oxide
#

I own everything I watch on DVD. Ripped to my NAS

jagged quail
eternal oxide
#

other than Amazon prime and Crunchyroll subs

jagged quail
#

i have some family guy dvds though

#

why do i always forget which channel im in

remote swallow
tender shard
#

?notworking

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

lost matrix
#

Does spigot have an API for that in 1.12?

#

I know in 1.8 its absent

#

Shouldnt be too bad then

tender shard
#

?paste it pls

undone axleBOT
eternal oxide
#

what is the difference between your "works fine" and doesn't work"?

#

?paste your stacktrace

undone axleBOT
eternal oxide
#

my bet is you get null when your hand is empty

#

?paste the full error

undone axleBOT
eternal oxide
#

We can do nothing without seeing the FULL error

remote swallow
#

im guessing your trying to use a newer api version than the server

eternal oxide
#

just post the error

#

yep method does not exist, use one of the others

#

you are using 1.12

remote swallow
#

still 1.12

#

the website docs are 1.19

eternal oxide
#

1.12 will not have the same methods as other vesions

remote swallow
idle iron
#

When I broadcast playerPlacedBlocks in the onBlockPlace function it sends the right list but if I broadcast it on the Mapclear function it sends an empty list. I think it is a problem with the scoop I will really appreciate any help.



    private List<Location> playerPlacedBlocks = new ArrayList<>();

    public MapClear(Plugin PluginMain) {
        plugin = PluginMain;
    }

    public void onDisable_MapClear() {
        playerPlacedBlocks.clear();
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("mapclear")) {
            if (!(sender instanceof Player) || sender.hasPermission("server.mapclear")) {
                Mapclear();
                Bukkit.broadcastMessage("§3Map clear!");
                Bukkit.getOnlinePlayers().forEach(player -> {
                    player.sendTitle(ChatColor.BLUE + "MapClear!!!", " ", 5, 40, 5);
                });
                return true;
            } else {
                sender.sendMessage("§cYou don't have permission to use this command.");
                return true;
            }
        }
        return false;
    }

    @EventHandler
    public void onBlockPlace(BlockPlaceEvent event) {
        Player player = event.getPlayer();
        if (player.getGameMode().name().equalsIgnoreCase("SURVIVAL")) {
            playerPlacedBlocks.add(event.getBlock().getLocation());
            Bukkit.broadcastMessage("Place block "+ playerPlacedBlocks);
        }
    }

    private void Mapclear() {
        for (Location loc : playerPlacedBlocks) {
            if (loc.getBlock().getType() != Material.AIR) {
                loc.getBlock().setType(Material.AIR);
            }
        }
        playerPlacedBlocks.clear();
    }
}```
eternal oxide
#

there is no equipment slot in 1.12

remote swallow
tender shard
#

one for the command, and one for the event stuff

#

why do you mix command handling and event handling in the first place?

idle iron
#

I am pretty new to programming should I create different classes?

eternal oxide
#

different

crude cobalt
#

Hello there, somebody know how to make it so that arrows can pass through certain blocks that the player cannot pass through?

mortal hare
#

task failed successfully

lost matrix
eternal oxide
#

I don;t see any method in 1.12 for applying attributes to ItemMeta. It was probasbly not implemented in 1.12

#

Yep looks like attribute in 1.12 is only for entities not Items

#

probably not in 1.12

tender shard
#

why does IJ suck so hard? VCS -> Share on GitHub does commit all files, BUT ONLY EMPTY VERSIONS!!! like, wtf?

heavy mural
#

Hey is there a way to remove the half gray seethrough background of a TextDisplayEntity? Previously this was done with setBackgroundColor(), but that seemed to be a bug that has been fixed now.

chrome beacon
#

?paste

undone axleBOT
crude cobalt
#

Maybe there's some guide

tender shard
#

Player#hideEntity

crude cobalt
#

Thanks

crude cobalt
young knoll
#

Player#sendBlockChange

tender shard
#

as coll said there's only sendBlockChange, but then you manually have to send that periodically, in case they unload the chunk, then come back, etc

chrome beacon
#

It can also cause issues if the blocks hitbox doesn't match what's actually there

tender shard
#

yo spigot finally stopped using @ Deprecated for draft API

orchid gazelle
#

draft api?

young knoll
#

Api that may not be finished

tender shard
#

e.g. Player#hideEntity(Plugin, Entity)

young knoll
#

We changed to ApiStatus.Experimental right?

remote swallow
#

yeah

tender shard
#

yowza

crude cobalt
spare radish
#

I created a class in Spigot-api that extends BlockPopulator. Then I added the class I created with getDefaultPopulators in CustomChunkGenerator.

I created this code to get an idea of how it works. I had assumed that all chunks would generate a diamond block.
But only some chunks were generated.
Can someone please help me?

public class OriginalPopulator extends BlockPopulator {

    World w;
    OriginalPopulator(World world){
        w=world;
    }

    @Override
    public void populate(@NotNull WorldInfo worldInfo, @NotNull Random random, int chunkX, int chunkZ, @NotNull LimitedRegion limitedRegion) {

        Location loc = new Location(w, chunkX * 16, 150, chunkX * 16);

        if(limitedRegion.isInRegion(loc)) {// limitedRegion.generateTree(loc, random, TreeType.MANGROVE);
            Bukkit.broadcastMessage(chunkX+","+chunkZ+","+limitedRegion.isInRegion(loc));
            limitedRegion.setBlockData(loc, Material.DIAMOND_BLOCK.createBlockData());
        }
    }
}

https://gyazo.com/9749b95021d431b26cfda0cec6fd3794

tender shard
#

does "isInRegion" ever return false?

eternal oxide
#

? Location loc = new Location(w, chunkX * 16, 150, chunkX * 16);

#

chunkX twice?

orchid gazelle
tender shard
#

tbh I haven't fully understand what exactly you're trying to do. can you make a quick&dirty drawing or sth maybe?

orchid gazelle
#

On my smartphone rn

tender shard
#

to me, making an ugly drawing always gives me ideas on what the possible solution would be, if it's about geometry and stuff

orchid gazelle
#

Imma send you once im on my pc and ping you ok?

spare radish
orchid gazelle
#

Keep in mind that my drawings are REALLY ugly

remote swallow
#

so im gonna have a player data class and a user data, 1st for mc, 2nd for discord but they both need to end up in 1 list, would it better to make an empty interface that both impl with some generic getter in it or do i do 2 lists or just 1 class for both data

tender shard
remote swallow
#

not always

tender shard
#

then I'd keep it as two separate lists I guess. hard to say without more detail

orchid gazelle
remote swallow
#

im just thinking and i somehow have to have them link together so if something changes on the discord side its reflected for the player, but idk how i can have stand alone discord, standalone mc and mc + linked discord

tender shard
#

that's at least the easiest thing I can think of rn

orchid gazelle
#

well thats 22,5deg, but yeah thanks ill look at it

tender shard
#

yeah just adjust it for 45 and remove the inbetween things like NORTH_NORTH_EAST

#

but you need the inbetween things to make it accurate IIRC

#

I'D just do sth like this
switch(direction)
case NORTH, NORTH_NORTH_WEST, NORTH_NORTH_EAST: // it's north, so do -x (or whatever)
case SOUTH, SOUTH_SOUTH_WEST, SOUTH_SOUTH_EAST: // it's south, so do +x (or wahtever)
etc

remote swallow
tender shard
#

I'd just do UserData, then it has getSpigotUserData() and getDiscordUserData() or sth

#

idk

remote swallow
#

what could i use for discord data class

#

currently ive got the PlayerData class for mc

young knoll
#

DiscorderData

dark arrow
#

hey , did minecraft development plugin stopped working ?does it work for anyone?

young knoll
#

Discorder is a word, trust me

remote swallow
#

ill just use DiscordUserData

dark arrow
# tender shard wdym with "not working"?

i used to use a plugin called minecraft development which automatically installs all the files and classes (around 7-8 year ago) , now when i try it gives error and i cant create a project until i have disabled the plugin , i can't even open my old projects

weak meteor
#

Is working perfectly fine

remote swallow
#

check intellij is updated and the plugin is updated

dark arrow
#

i updated my intelliji also

#

let me send a ss

flint coyote
#

Also it works better with IJ-ultimate from what I heard. I never used the plugin so I cannot confirm or deny that

tender shard
#

to me it causes IJ to crash like every other week

#

it also is pretty useless, it doesn't really add anything when doing spigot plugins

remote swallow
#

but gradle

dark arrow
#

all wierd things happen to me 😦

tender shard
remote swallow
tender shard
#

you are using some 2022 version, I got 2023.1

dark arrow
#

i downloaded the plugin along with intelligi in my new pc

tender shard
#

show a screenshot of Help -> About

#

in IJ

weak meteor
#

odk

dark arrow
tender shard
#

that version is a year old

#

latest is 2023.1

dark arrow
#

oh

tender shard
#

use Jetbrains Toolbox to update IJ

#

then update to latest mc-dev plugin