#dev-general

1 messages · Page 12 of 1

half harness
#

I gotta use my shift ability

prisma wave
#

i am, yes

half harness
#

and then I win

#

!!!!!!!!!

prisma wave
#

you have a much longer range than him

half harness
#

I have 8 hours

#

in fact

half harness
prisma wave
#

just farm railgun from far away and then burst him down

half harness
#

oh

prisma wave
#

longer effective range, i mean

half harness
#

it has long range?

#

oh

prisma wave
#

yeah

#

you can snipe with it

#

if you can aim

half harness
#

is it instant shoot

prisma wave
#

yes

half harness
#

or does it take time to travel

#

Wow

prisma wave
#

no it's hitscan

#

literally a sniper

half harness
#

wow

#

Ok I will remember that

#

thank you

prisma wave
#

well not literally

#

nice

#

gl

#

hf

half harness
#

is bastion instant hit

prisma wave
#

yes

half harness
#

oh

prisma wave
#

hitscan is the right term lol

half harness
#

oh

prisma wave
#

bastion just feels weird because his gun has no recoil

#

so it's an easy confusion ig

half harness
#

but

#

with tanks

#

its very hard

prisma wave
#

tank*

#

singular

#

and thats why you flank

#

or just walk around them

#

u cant all hide behind a tank in ow 2

half harness
#

no

#

sojourn is not instant

prisma wave
#

what

#

the railgun is

#

the primary isnt

half harness
#

oh

#

i thought you were talking about the railgun

prisma wave
#

i am

half harness
#

oh

#

what

#

no its not

prisma wave
#

left click = projectile
right click = hitscan

half harness
#

yea

#

isn't left click railgun

#

oh wait

#

no

#

im gonna try widowmaker

#

Noo

#

someone else is using your hiding spot

prisma wave
#

lol

#

sad

hard dagger
#

If you wood lick to Buy Direct Message mee

dense dew
hard dagger
rotund egret
hard dagger
rotund egret
sick belfry
#

Nah he made a mistake

#

It's webScam

hard dagger
rotund egret
#

\😆

rotund egret
#

I hope he commits to rewriting all of twitter that would be very cool I think

prisma wave
#

rewrite twitter in rust 🚀 🔥

obtuse gale
rotund egret
#

That's funny

obtuse gale
rotund egret
#

Must be Brett's alt

nocturne apex
#

I am having issues with packet order

#

basically sometimes when I close the inventory, it opens the inv back (while using the animated title)

#

I have tried adding some debug, but it didnt really help

inner umbra
#

Isn't there a packet to set the title of the inventory the player is viewing? If so use that instead of using the open inventory packet with the updated name.

inner umbra
#

ClientboundContainerSetDataPacket Try looking into this one maybe?

nocturne apex
#

it seems like this one

#

should I just update the inventory with the same inventory ID?

inner umbra
#

Try it

dense dew
distant sun
#

Is possible to disable having to click exactly on the name of the file to open it in IJ?

potent nest
#

wdym

distant sun
#

I remember being able to open a file in IJ by clicking anywhere in this rectangle, but now I have to put my mouse exactly on the name

quiet depot
#

could be a bug

potent nest
#

Is that the new UI?

distant sun
#

no

potent nest
#

But yeah most likely a bug

prisma wave
remote goblet
obtuse gale
remote goblet
prisma wave
#

no spamming

potent nest
queen saffron
rotund egret
wind patio
#

where's non-general plugins?

distant sun
#

Everywhere and nowhere 🤫

distant sun
#

I finally got the hacktoberfest badge ❤️

hot hull
#

Where

distant sun
sudden eagle
#

do Voteparty also work on Velocity ?

#

with like bukkit extentions

remote goblet
sturdy zinc
#

is there a way to get paper to use <GOLD> in broadcast and not &6

sturdy zinc
#

I was asking about if one was to usesay <GOLD>Hello

#

a player using in-game

distant sun
#

Override the command and parse the message

sturdy zinc
#

ok, so there is no way at the moment without coding

distant sun
#

no, the command doesn't parse legacy color codes either by default, if you have essentials installed, it has its own /say command and that's why it does parse color codes

sturdy zinc
#

ohh, I guess ess is parsing it for me, so making a say and broadcast command within my plugin will fix my problem

pastel imp
#

Any ideas if TAB has velocity support? couldn't find it anywhere

zinc basin
#

Hi, I wanna learn Java, does anyone know of any good YouTube courses for beginners (I don’t know anything about how to code, etc)

compact perchBOT
#
FAQ Answer:

Online Courses:
Online courses are also great for learning java. Some websites that offer them are:

  • Coursera - Free unless you want a certificate
  • PluralSight - Great courses from what I've seen. Mostly Paid
  • Udemy - Never used them myself but they seem to all or at least most be paid.
    My first ever course was one from Coursera. - I can say it was pretty good at introducing me to the programming world as a whole not just java.

Oracle Docs:
Oracle docs can help a lot at learning and understanding java:

  • Start with this,
  • Breeze through this (skipping stuff that doesn't seem relevant like bitwise operators),
  • Hit this.
    They're the first three from this larger thing which you should definitely go through overall. But those three should be enough for slightly better understanding of what is happening here without feeling like a huge time sink.
    That one is a small part of this larger site wherein "Essential Java Classes" and "Collections" also have good useful stuff

Other services:
Some other cool services that will help you learn java are:

As you can see there are plenty of good ways to learn as long as you're willing to invest the time. Have fun learning!

brittle leaf
pastel imp
#

They supported it for a while but dropped support because of velocity's api

cinder flare
#

yeah don't know what that's about

#

but it really pisses me off

#

so if you find an alternative, please do let me know

#

cause that shit buggy as hell

distant sun
#

tab or velocity?

obtuse gale
#

@mental summit VelocityTabListPlus when?

cinder flare
#

well we also need a nametag manager preferably with permission support

#

and a nickname plugin that stores nicknames in luckperms

#

man i got a lot of things to do

obtuse gale
#

oh actually it was @wispy hearth i should've pinged pepega_kekw

#

tf is jetbrains aqua

prisma wave
#

Jetbrains sex

remote goblet
#

shut up im excited

#

sex!

distant sun
#

all these cool tools and my co-worker uses fucking eclipse

obtuse gale
#

lol

distant sun
#

he said he will only switch to IJ because eclipse removed the support for <editor-section> or whatever

#

that unused import kek it would eat me from inside if I don't replace the image

pastel imp
#

lmao

cinder flare
#

actually looks kinda nice though

#

also anyone know of a good plugin for multiline nametags to replace TAB?

#

really just needs to read placeholders essentially

manic lance
#

Oh I read up, didn’t realize they officially dropped it

pastel imp
# cinder flare also anyone know of a good plugin for multiline nametags to replace TAB?

uh no idea, I recall seeing this api: https://github.com/iso2013/MultiLineAPI but it's a bit outdated, although you could see how they do it and replicate it

GitHub

A Minecraft API that allows you to add multiple lines for a player's name - GitHub - iso2013/MultiLineAPI: A Minecraft API that allows you to add multiple lines for a player's name

prisma wave
distant sun
#

Whats wrong with it?

#

I've only used selenium, so idk how other tools work

prisma wave
#

Idk it's just ugly

#

Ive never used it or any alternatives but it just looks terrible

distant sun
#

If you are talking about FindBy, those are just locators

#

element[index]/elment/element[index] is the bad way of doing them xD you would usually want something that won't break at the smallest change on the page

prisma wave
#

well yeah that seems extremely fragile

knotty halo
#

hy

jovial warren
cinder flare
#

well he better be

#

cause i'm real close to just not having nametags at this point lmao

jovial warren
#

I could probably try doing some work adding support for that stuff to TAB Velocity, though it's hard because Velocity doesn't have a scoreboard API and so we'd have to use internals somehow

cinder flare
#

Bungeecord has a scoreboard API?

#

I don't see why they have to do anything

#

they just need to pass around placeholders and store data centrally

#

Either way, I did some tweaking myself to get the latest version working, but it's pretty buggy and not worth it at this point

jovial warren
#

It used to be on Luck's repo, but it was removed iirc

#

We could probably do the same with Velocity, we just haven't yet

cinder flare
#

ah okay

#

well yeah Velocity is definitely the future

#

so it's really disheartening to see support for it dropped

jovial warren
#

Yeah

#

I think nez also had issues with the community. Quite a few members of the Velocity community in the old Discord server didn't like him and weren't very friendly to him

static zealot
#

Velocity is the present.

rotund egret
#

Well now it's in the past

#

So much for that

static zealot
#

Yeah... Time is a bitch

half harness
#

aren't there more bungee plugins though

rotund egret
#

More == Better
Every time

distant sun
brittle leaf
#

which looks better? 1 or 2?

remote goblet
#

to me, 2

rotund egret
#

I can't believe I missed the drop of cum

hot hull
#

First

distant sun
#

the names are very .. questionable

brittle leaf
#

im experimenting with method chaining

#

to see if its viable for the shops instead of doing everything through the constructor

#

i think method chaining would work better when loading from file rather then hardcoding shops

half harness
#

I'm so confused

#

this is the latest version that has an actual jar

half harness
#

Ok ignore above I just found an alternative solution

#

but

#

anyone know how to apply kotlin plugin but not shade kotlin?

obtuse gale
#

don't use shadow?

half harness
#

I'm using shadow for other dependencies though

rotund egret
#

exclude moment

half harness
#

trying to figure it out 🥲

#

or is it the same

rotund egret
#

imperceptible thoughts wiki is p good, highly recommend

half harness
#

I am using it

#

Ok it worked I had to close and reopen JD-GUI

sturdy zinc
#

I need to find out more info on Maven shading, I need to be able to remove modules I'm not using in a plugin

rotund egret
#

Google is a great resource

sturdy zinc
#

yes, I added a few lines and my file got 50% smaller <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>Autorank</shadedClassifierName>

distant sun
#

minifying the jar is not a great idea from my experience, there might be some classes that maven thinks aren't used but they are

frail glade
#

I've had so many problems from that ^

pastel imp
#

I actually never had any issues with minimizing

#

although I use gradle 😎

#

gradle > maven

distant sun
#

Gradle does the same thing

pastel imp
#

sus never had issues with it

#

also random question, Waterfall VS Velocity, which wins? (or any other fork if suggested)

sturdy zinc
#

I got my new commands to work in game, when I try to run them from my config only one works the other nothing not even an error

half harness
#

If something doesn't work, if there is an error, show the error. If there is no error, usually you should show the code, and if you can't show the code or the code doesn't help, then describe in-depth what the issue is, what you've tried, etc

sturdy zinc
half harness
#

alr

#

what do you mean by "when I try to run them from my config"?

sturdy zinc
#

if I run command in game it works, when I run command from a config nothing

#

it deserializes color codes

half harness
#

So for example, what would the commands be

sturdy zinc
#

Autorank has a paths.yml which can run commands as a result

half harness
#

Like using Player#chat?

#

or Bukkit.dispatchCommand

sturdy zinc
#
    command2:
      value: ar broadcast <GOLD>&p <GREEN>has more power level then 4!
    command3:
      value: ar say <GREEN>Congratulations, your power level is more then 4!
#

ar broadcast and ar say are my two new commands

half harness
#

Make sure that it's actually running: ```java
System.out.println("RUNNING COMMAND " + command);
// code that runs the command

sturdy zinc
#

broadcast works say does nothing from config

half harness
#

Oh

#

I see

sturdy zinc
#

code for both commands are near identical

half harness
sturdy zinc
#

yes

half harness
#

can you show the code where you get the commands from the paths.yml and make the player run the command? Since if the manual command works then the SayCommand class should be fine

#

I'm not sure what the issue could be

sturdy zinc
#

looking into code I didn't write

half harness
#

it's a pretty big project 🥲

sturdy zinc
half harness
#

So you're sending the command as the console

#

which would be running /say from console

#

not as the player

sturdy zinc
#

that would make sense so no perms are needed to run command

half harness
sturdy zinc
#

got an error

sturdy zinc
#

Thanks I know my issue, now to figure out a way to make this command work

half harness
sturdy zinc
#

or use message class so it will have a player to cast too

#

this should remove 'ar say ' from front of a string ?this.msg.replace("ar say ", "");

half harness
sturdy zinc
#

the code send this as a message not a command, everything works but it has ar say in from when sent to chat

half harness
#

Why aren't you running it as a command anymore?

sturdy zinc
#

the command still works, need the command to run from the config

half harness
#

Look

#

the issue is that you're not specifying who ar say should be sent to

sturdy zinc
#

don't need the command to run from console

half harness
#

then set the player to op and run from the player

sturdy zinc
#

so I can send that info to the console

half harness
#

what info

#
final boolean beforeState = player.isOp();
player.setOp(true);
try {
    // commands
} finally {
    player.setOp(beforeState);
}
half harness
#

The better way would probably be to do what I've mentioned above but this is a simple solution which should also work

sturdy zinc
#

I forgot to save the change in the replace, my short code add works fine if (this.msg.startsWith("ar say ") ){ this.msg = msg.replace("ar say ", ""); AutorankTools.sendDeserialize(player, this.msg); return true; }

half harness
#

There's no point in having it start with ar say then...

#

there's no purpose of the ar say command

sturdy zinc
#

there is if you want to use minimessage color codes

half harness
#

But it only sends it to themselves

#

not other players

#

Either setup the command to work to be able to run from console or don't use the command at all

sturdy zinc
#

yes, the broadcast works also

half harness
#

Making it like this, especially if it's a public plugin, will cause confusion

#

broadcast is fine

sturdy zinc
#

didn't think about that, guess I'm to tired to think clearly

half harness
#

and if the text happens to have ar say in it then it will be removed

#

If you are going to do the startsWith method, you have to use something like substring

half harness
half harness
sturdy zinc
#

yes, I was trying to under how to fix it as a command

#

if I go with my replace fix use a simple catch to not confuse the public

magic pond
#

Does anyone know how to learn js

rotund egret
#

Yes

magic pond
#

How

#

I just bought a $120 course smh

rotund egret
#

Youtube is good too

humble prism
distant sun
humble prism
#

Bukkit.createBossBar("Welcome To Hell", BarColor.PINK, BarStyle.SEGMENTED_6); this should make a bossbar ingame right?

#

my ide isnt erroring so i assume so? but it just doesnt make it ingame

#

might be bcs of me putting it in the onEnable section

rotund egret
#

smh

#

Looks like it creates an instance of a BossBar so it can be displayed

#

It doesn't display it on its own

#

Lmao

quiet depot
#

what class it from

rotund egret
#

Bukkit

quiet depot
#

it doesn’t know ur talking about a method

#

if there’s no # it thinks class

rotund egret
#

Yeah I figured

#

it's 5am though

#

so I forgots

#

fuc

#

d;spigot Bukkit#getBossbar

ruby craterBOT
rotund egret
#

Feels weird to type that

quiet depot
#

also spigot is default

rotund egret
#

😠

quiet depot
#

so u can d;bukkit#getbossbad

rotund egret
#

d;bukkit#createBossBar

ruby craterBOT
#
@NotNull
public static KeyedBossBar createBossBar(@NotNull NamespacedKey key, @Nullable String title, @NotNull BarColor color, @NotNull BarStyle style, @NotNull BarFlag... flags)```
Description:

Creates a boss bar instance to display to players. The progress defaults to 1.0.
This instance is added to the persistent storage of the server and will be editable by commands and restored after restart.

Returns:

the created boss bar

Parameters:

key - the key of the boss bar that is used to access the boss bar
title - the title of the boss bar
color - the color of the boss bar
style - the style of the boss bar
flags - an optional list of flags to set on the boss bar

humble prism
#

So how would i display it?

rotund egret
#

I don't use spigot, but I imagine Player has a method for it

humble prism
rotund egret
#

I develop on Sponge usually.

humble prism
#

ah

rotund egret
#

Oh I see

#

You add players to the bossbar apparently

humble prism
#

how would i add all?

rotund egret
#

d;Bukkit#getOnlinePlayers

ruby craterBOT
#
@NotNull
public static Collection<? extends Player> getOnlinePlayers()```
Description:

Gets a view of all currently logged in players. This view is a reused object, making some operations like Collection.size() zero-allocation.

The collection is a view backed by the internal representation, such that, changes to the internal state of the server will be reflected immediately. However, the reuse of the returned collection (identity) is not strictly guaranteed for future or all implementations. Casting the collection, or relying on interface implementations (like Serializable or [List](https://docs.oracle.com/javase/8/docs/api/java/util/List.html "class or...

This description has been shortened as it was too long.

Returns:

a view of currently online players.

humble prism
#

dont think i fully understand getOnlinePlayers -> this is what i got
Bukkit.createBossBar("Welcome To Hell", BarColor.PINK, BarStyle.SEGMENTED_6).addPlayer(Bukkit.getOnlinePlayers());

rotund egret
#

well getOnlinePlayers returns a Collection, and #addPlayer takes a Player, so there's going to be an issue

humble prism
#

i see

rotund egret
#
BossBar bossbar = Bukkit.createBossBar("Welcome To Hell", BarColor.PINK, BarStyle.SEGMENTED_6)

Bukkit.getOnlinePlayers().forEach(player -> bossbar.addPlayer(player));

Something like that would probably work

humble prism
#

doesnt error

#

thats a good sign

humble prism
#

(how getonlineplayers and for each works)

pastel imp
#

piece of advice, you just spent 120 bucks on a course (imo wasted money), then follow it. You starting to try to do stuff outside the scope of your knowledge is useless, you won't learn how it works and you will be asking questions 24/7. Besides that, learn java before spigot api.

#

@humble prism

#

not saying to not try new stuff, but learn the basics before doing it.

humble prism
#

i wasnt the one who bought the course....

#

and that course was for javascript not java

#

and im just trying to have fun while learning

pastel imp
#

oh bruh, misread, my bad.

#

although same principle still applies if you are learning

stray vault
#

Hi I have a problem with player.spigot() it works just fine but when I add craftbukkit as a lib to use nms, player.spigot() just stops working does anyone know why is this happening?

pastel imp
#

what even does #spigot() do lmao

#

never saw that method in my life

rotund egret
#

d;Player#spigot

ruby craterBOT
stray vault
pastel imp
#

so confused

remote goblet
#

the #spigot() method has stuff that just

#

isnt in the player object

#

reminder that spigot api is fucking terrible

stray vault
#

you need player.spigot() to send TextComponents you can't sent it with just player.sendMessage()

pastel imp
#

lmao spigot sucks

#

use paper api

#

it's superior

#

😎

remote goblet
#

There's positives and downsides to using paper api

rotund egret
#

SpongeAPI is very nice 😌

pastel imp
#

ik the positives so

#

what are the downsides?

remote goblet
#

if you make a public plugin for example

#

it would shock you how many people dont actually use paper

pastel imp
#

excluding public plugins (although 2/3 already use paper anyways)

remote goblet
#

that's an extra headache and in some cases i think paper can overcomplicate stuff

rotund egret
#

Most servers use paper at this point

pastel imp
#

ye about 2/3

#

either way, excluding public plugins, whats the downside lol

remote goblet
#

With certain aspects of paper, to me, it feels like it takes an extra step for some stuff shrug

pastel imp
#

example?

remote goblet
#

we already know im not a fan of adventureapi so that's the only example off the top of my head i can think of

#

but i don't jerk off everything in paper or use it much so i can't give you specifics

rotund egret
#

Might effect a minority of users and broad examples including "I don't care for adventure"

pastel imp
#

(although imo adventure is simply pog)

remote goblet
#

honestly fair im talking shit

#

i do appreciate the events that are in paper however shy

remote goblet
#

okay yeah im talkin shit

rotund egret
#

Gonna suck if they need 10k patches

#

Y2k all over again

obtuse gale
rotund egret
#

oh

#

The sad ending

obtuse gale
#

yeah

#

quite disappointing

sturdy zinc
#

I'm getting this in startup log [01:01:01] [Server thread/INFO]: [Autorank] Enabling Autorank v5.1.7 [01:01:01] [Server thread/INFO]: [Autorank] mainclass getHumanPluginName = null [01:01:01] [Server thread/INFO]: [Autorank] mainclass getInternalPluginName = null [01:01:01] [Server thread/INFO]: [Autorank] mainclass isPluginAvailable = false

prisma wave
#

alright

pastel imp
#

uh so I having this debate with some guys, they claim you ca copyright server features?? (I am like, wtf? Thats false right?)

#

an example would be server A creates this super unique gamemode and trademarks/copyrights it, so server B cant just copy that gamemode

#

like, I can see a lot of issues with this but like, idk why they keep saying they do it?

#

maybe you can, but is it even effective? lol

rotund egret
#

Uhh it kinda depends

#

can you copywrite or trademark a gamemode, maybe.
But you'd have to do it anywhere that has a patent office and then go on to enforce your patent/copywrite

#

Frankly the legal costs would be more than its worth to even bother

pastel imp
#

Ye, which leads to me believing they are just cap lol

humble prism
#

its not a software

pastel imp
humble prism
#

its under gpl or whatever

#

no?

pastel imp
#

bukkit plugins? yes

humble prism
#

also all mc creations are technicly owned by mojang no?

pastel imp
#

but we are not speaking about the pkugins we are speaking about the idea (aka in this example gamemode)

humble prism
#

or was that the exception

pastel imp
humble prism
#

u cant copyright car

rotund egret
#

That's literally what a copyright is

#

I guess that would be incorrect

humble prism
#

"How do I protect my idea? Copyright does not protect ideas, concepts, systems, or methods of doing something."

#

it very much does not

inner umbra
#

I'm pretty sure hypixel attempts to copyright all their minigames, including the ones they stole like bedwars.

pastel imp
#

lol without success I assume

inner umbra
#

IDK just heard about the attempt.

rotund egret
#

"stole"

inner umbra
#

What minigame do you think bedwars is copied from? Yes it has differences but the game idea is the same.

pastel imp
#

eggwars?

inner umbra
#

Ding ding

rotund egret
#

Probably copied from the classic game of Tag! You're it!

pastel imp
#

lol

rotund egret
#

Regardless, hardly a theft.
They even modified it lmao

pastel imp
#

eh its hard to maintain competition if your competition blantely copied you lmao

rotund egret
#

Mans never heard of 2 different ketchup companies

sturdy zinc
pastel imp
#

well kinda

rotund egret
#

Just the same mini-game, but slightly different
Much in the way one ketchup is slightly different than another ketchup

young wasp
#

how can i convert a string like that: &#D9CCA9&lTEST in colored text?

humble prism
#

oh nvm

#

didnt see what channel im in

#

hehe

young wasp
#

np

inner umbra
rotund egret
#

Which part is Java17

#

Must've meant Java7

potent nest
#

what is colored text?

inner umbra
pastel imp
#

have seen some people speaking about it

#

I only know MiniMessage though

#

¯_(ツ)_/¯

rotund egret
inner umbra
#

Try it 😉

potent nest
#

Java 9

inner umbra
rotund egret
#

Ah different version

#

J7 just has String as parameter

inner umbra
#

👍

obtuse gale
potent nest
#

ok you got me there

distant sun
#

d;jdk Matcher#replaceall(function)

ruby craterBOT
#
public String replaceAll(Function replacer)
throws ConcurrentModificationException, NullPointerException```
Description:

Replaces every subsequence of the input sequence that matches the pattern with the result of applying the given replacer function to the match result of this matcher corresponding to that subsequence. Exceptions thrown by the function are relayed to the caller.

This method first resets this matcher. It then scans the input sequence looking for matches of the pattern. Characters that are not part of any match are appended directly to the result string; each match is replaced in the result by the applying the replacer function that returns a replacement string. Each replacement string may contain references to captured subsequences as in the appendReplacement method.

Note that backslashes (\) and dollar signs ($) in a replacement string may cause the results to be different than if it were being treated as a literal replacement string. Dollar signs may be treated as...

This description has been shortened as it was too long.

Since:

9

Returns:

The string constructed by replacing each matching subsequence with the result of applying the replacer function to that matched subsequence, substituting captured subsequences as needed.

Parameters:

replacer - The function to be applied to the match result of this matcher that returns a replacement string.

Throws:

ConcurrentModificationException - if it is detected, on a best-effort basis, that the replacer function modified this matcher's state
NullPointerException - if the replacer function is null

distant sun
#

dd better

obtuse gale
#

gaby can't resist the urge to use dd

distant sun
#

Yeah I cant

rotund egret
#

unofficial docs, probably modified

distant sun
obtuse gale
#

true

distant sun
half harness
#

looking at their github they don't even do anything spigot or java related lol

sturdy zinc
distant sun
#
at me.armar.plugins.autorank.config.ConfigUpdater.update(ConfigUpdater.java:20) ~[Autorank-5.1.7-shaded.jar:?]
at me.armar.plugins.autorank.config.SettingsConfig.updateConfigWithNewOptions(SettingsConfig.java:43) ~[Autorank-5.1.7-shaded.jar:?]
at me.armar.plugins.autorank.Autorank.onEnable(Autorank.java:141) ~[Autorank-5.1.7-shaded.jar:?]

NPE

half harness
#

not in his code

#
java.lang.NullPointerException: null
    at java.io.Reader.<init>(Reader.java:168) ~[?:?]
distant sun
#

it starts on ConfigUpdate:20

half harness
#

yes, I suspect that the plugin doesn't have the file in it and I am verifying that right now

distant sun
#

that indicates that it tries to create a Reader with a null value

half harness
#

Hmm it should work

distant sun
#

null*

half harness
#

@sturdy zinc
can you print out plugin.getResource(resourceName)? like ```java
System.out.println("Resource " + resourceName + ": " + (plugin.getResource(resourceName) != null));

#

and also open up the jar and make sure that Settings.yml is present inside the jar file

sturdy zinc
#

ok

half harness
#

also @sturdy zinc license and readme are not supposed to be in resources

#

well usually they aren't

#

they're supposed to be in the project directory

sturdy zinc
#

yes missing all my config files

half harness
#

when you ope nthe jar?

sturdy zinc
#

yes

half harness
#

and only plugin.yml

#

since the plugin wouldn't even load without one

sturdy zinc
half harness
#

Oh interesting

#

odd how only plugin.yml is there...

#

oh

#

it's because you made it only include plugin.yml

#

line 57 of pom.xml

sturdy zinc
#

ok, so I either add rest of files or delete that section

half harness
#

You can try to add rest of files

#

or removes the includes (but keep the rest since idk what it does)

sturdy zinc
#

I first deleted the few lines to include the plugin.yml and the rest are there now

distant sun
#

pom.xml:57 set it to *.yml

half harness
#

oh you can do that?

#

Ironic yeah do that

sturdy zinc
#

ok, it works again I wish I figured this out last night

#

ok, back to fixing this [15:56:21] [Server thread/INFO]: [Autorank] Enabling Autorank v5.1.7 [15:56:21] [Server thread/INFO]: [Autorank] mainclass getHumanPluginName = null [15:56:21] [Server thread/INFO]: [Autorank] mainclass getInternalPluginName = null [15:56:21] [Server thread/INFO]: [Autorank] mainclass isPluginAvailable = false

half harness
#

and where is that?

sturdy zinc
#

logs

half harness
#

what class is it printing from

earnest narwhal
#

Hey, working with worldedit, how do I not have blocks fall when pasting schematics?

sturdy zinc
#

no clue, just shows up in startup logs

half harness
#

if you find it, disable physics from there

#

Or wait does pasting schematics use edit sessions?

#

since edit sessions have a setSideEffectsApplier method or smth

half harness
#

right click the project

#

and press Find

#

not exactly ctrl F but find feature

sturdy zinc
#

find in which class or all

half harness
sturdy zinc
#

so double shift

#

for setSideEffectsApplier nothing found

half harness
#

I was talking to Ivanix

distant sun
#

ctrl + shift + f getLogger().info(

half harness
#

or search for mainclass

#

there could be other logs

sturdy zinc
#

4 classes came up for mainclass

half harness
#

please elaborate

sturdy zinc
#

did search for the word mainclass

half harness
#

nvm I forgot github.dev existed

#

onEnable, line 122 - 124

sturdy zinc
#

read it wrong, one class four lines in Library.java

half harness
#

Not sure what you're looking at 🤨 but the three search results for the logs are in onEnable, line 122 - 124

#

I'm not sure what your issue is though

#

but that's where the logs are coming from

half harness
sturdy zinc
#

all files on github are up to date, pom and plugin.yml are only changes

half harness
#

alright then the info above should be accurate

sturdy zinc
#

not sure why those lines are there

half harness
#

ummm

#

I guess because someone write those lines of code?

#

getLogger().info prints out to console

sturdy zinc
#

I will see how long they have been there

distant sun
#

btw is this decompiled code?

#

ConfigUpdate has some labelN and varN

half harness
#

Yeah I think it is

#

He mentioned that he didn't write a lot of the code

#

although it is still quite clean code compared to other decompilations

#

and also has comments in some places

sturdy zinc
#

no Gaby, inherited code

distant sun
#

I guess it was decompiled at some point

sturdy zinc
#

I may of since I broke my Github a year ago and didn't get it fixed till a few weeks ago

#

just going to delete those three lines

#

they seem to do anything

#

I change a few things and now it returns [16:23:36] [Server thread/INFO]: [Autorank] Enabling Autorank v5.1.7 [16:23:36] [Server thread/INFO]: [Autorank] mainclass getHumanPluginName = Autorank v5.1.7 [16:23:36] [Server thread/INFO]: [Autorank] mainclass getInternalPluginName = Autorank v5.1.7 [16:23:36] [Server thread/INFO]: [Autorank] mainclass isPluginAvailable = true [16:23:36] [Server thread/INFO]: [Autorank] Generated new log file: log-2022-11-07.txt [16:23:36] [Server thread/INFO]: [Autorank] The settings.yml is up-to-date [16:23:36] [Server thread/INFO]: [Autorank] Generating new PluginLibrary instance

half harness
#

👍

cinder flare
#

github overrated

#

now i am best friends with gitea

sturdy zinc
#

I must of changed it to AURELIUM_SKILLS when it should of been Autorank

earnest narwhal
half harness
earnest narwhal
half harness
#

worldedit has a method for it

#

on the EditSession

earnest narwhal
#

Alr I’ll check it out

sweet cipher
#

Does anyone know if Minecraft uses -9.8 m/s^2 for gravity, and also if it uses air resistance?

#

Specifically for falling blocks

#

That's bedrock though

sweet cipher
#

Basically I want to calculate where a block will land

#

And it turns out there is air resistance, so not fun

obtuse gale
#

basically

#

check falling entity's tick method or smth

#

falling block or whatever

sweet cipher
#

Oh smart

sweet cipher
#

I cannot understand what is going on lol, it is very obfuscated

rare summit
#

Anyone here experienced with modpacks?

sturdy zinc
humble silo
#

When Intellij starts indexing... I really need a better computer lol

distant sun
rotund egret
#

Take your code print outs and fax them to our troll free number Quality website

hard dagger
remote goblet
#

I love how Elon handwrites the reviews and grades my code. Just like my college professors. From 1940s.

solar summit
#

Does any dev here know good Java mods?

#

I’m looking for someone who can

prisma wave
#

I bet someone does

sweet cipher
half harness
#

Jeeez thats a lot of complicated big brain code

#

I'm \🧠

pastel imp
#

xD

sweet cipher
#

I believe in you

half harness
#

I'm _ _

pastel imp
#

yoo, I am too good, first time having a 2 day streak 😎 (quite offtopic ik)

sweet cipher
pastel imp
#

to much sin() and cos() for my liking (don't even know if you use them, although I assume you do? or you use velocity, idk)

sweet cipher
#

Lol there is neither in that code

pastel imp
#

ok so I was right

#

uhm

#

finds new excuse to not do math

half harness
#

I see inertia

#

dkim.inertia = 100000;

#

dkim.send()

prisma wave
#

dkim.send()

half harness
#

wait no

#

inertia is opposite right

sweet cipher
#

lol

half harness
#

dkim.inertia = Integer.MIN_VALUE

sweet cipher
#

You're just going to stay there

half harness
#

😭

pastel imp
sweet cipher
#

I swear I'll actually pay whoever figures it out

sweet cipher
# half harness Jeeez thats a lot of complicated big brain code
       int ticks = 0;
        Location current = start;
        while (current.getBlock().getType() == Material.AIR) {
            ticks++;
                                               // 0.04
            initialVelocity.add(new Vector(0, -ACCELERATION_IN_TICKS, 0));
            initialVelocity.multiply(new Vector(0.98, 1.0D, 0.98));
            initialVelocity.multiply(new Vector(1, 0.98, 1));
            current.add(initialVelocity);
            Bukkit.broadcastMessage("Velocity: " + initialVelocity + " - " + ticks);
            Bukkit.broadcastMessage("Current: " + current.toVector() + " - " + ticks);
        }
        return initialVelocity;

So this works, but it's off by like 1 block, and it gets off by a tiny bit more for really long launches

I just ended up looking through the tick() method like Emily suggested, I forgot mojang mappings were a thing lol

obtuse gale
#

That's my name

sweet cipher
#

It is, thank you for your suggestion

sweet cipher
tame bane
#

Hey anyone got an idea how to make this just look better

half harness
#

I didn't think a class name like this

#

would actually be in a project

#

A builder for a factory for a factory

#

isn't that great

hard dagger
#

lmao

humble prism
distant sun
#

yo wtf is the jdk one

rotund egret
#

That's straight up an error message as a class

cinder flare
#

second one is awesome though lol

feral notch
#

Hello there

#

If I run my command it will always return the usage message

#

How do I fix?

#

nvm I fixed it

#

Can someone still help me tho?

static zealot
#

with?

feral notch
#

target.getWorld().spawnParticle(Particle.EXPLOSION_HUGE, player.getLocation(), 100);
/particle minecraft:cloud ~ ~ ~ 0 0 0 1 50

#

How do I get it like this?

#

the particle itself doesnt really care rn

#

It's the information

static zealot
feral notch
#

Yes

#

you want the code?

#

itself

#

@static zealot

static zealot
#

you're using the sender's location but the target's world

feral notch
#

target.getLocation(),

#

Fixed it

#

but how do I get the same arguments I'm using 0 0 0 1 50

#

Because there are like 20 spawnparticles

static zealot
#

I'm not quite sure what they all mean. I'll have to google that first to tell you

feral notch
#

If you have time and if you want to do that Can you please check 🙂

static zealot
#

in like 5-10 minutes.

feral notch
#

Thank you

static zealot
static zealot
#

I believe this might be exactly the same thing

feral notch
#

It already works

#

I only want to control the ticks and size of the partical

static zealot
#

the last thing is the speed

#

so 1.0

#

and the 50 is the count

#

of particles that will be spawned

feral notch
#

How do I insert that in my code then?

#

Because it gives me errors

static zealot
#

Check out all the spawnParticle methods

#

they have different parameters and they're all documented

#

use the one you want from there.

feral notch
#

This worked

#

Is there anyway I can make it so Only 1 player can see that particle

#

Maybe this should work

brittle leaf
#

using protocollib should work

obtuse gale
#

Using the spawnParticle method on Player will only show them to the player

#

The one on World will broadcast the packet to everyone nearby

static zealot
#

no need to use packets or whatever else

#

just use target.spawnParticle instead of target.getWorld().spawnParticle

warm pelican
#

some1 that can help me out? I created a function, included that function in a page but idk how to put the session of the function in a db.

remote goblet
#

that is

#

so incredibly vague its incredible

warm pelican
#

🤣

#

ikr imspacing

sturdy zinc
#

@remote gobletyou can't read minds so you can help all

brittle leaf
remote goblet
#

huh

gilded karma
#

hello

#

I have the DeluxeMenus plugin on a server and it has a huge delay when executing a menu command.

frail glade
gilded karma
#

Okay, I'll do it and share a media snippet.

sweet cipher
humble silo
sweet cipher
#

Kotlin user?

sweet cipher
#

Anyone know why JitPack build is failing? It says

Execution failed for task ':compileJava'.

invalid flag: --release
And it appears to be using Java 1.8, but I specified Java 17 in my build.gradle
https://github.com/Fisher2911/FisherLib/blob/master/build.gradle.kts
I haven't used JitPack to host a repository before so I'm don't have any clue what I'm doing lol

obtuse gale
#

toolchains moment

#

tl;dr:

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

also you don't need the source/targetCompatibility when using the release flag

sweet cipher
#

Awesome thank you!

#

It worked, thank you very much

half harness
#

and which one should I have? or should I use both?

obtuse gale
# half harness I thought source/target compatibility did something similar What's the differenc...

toolchain versions sets the.. version of the toolchains to use (that is, the distribution/version for javac, javadoc etc (basically what jdk it will use)), you can explicitly specify which one it shall use, otherwise it will do all that stuff mentioned in the page above
sourceCompatibility/targetCompatibility set the -source/-target flags in javac but they're just bad for other reasons, if --release is present they are ignored entirely

pastel imp
#

what's the easiest way to track time played?

#

Doesn't minecraft have a statistic that tracks that?

obtuse gale
#

yes, have you tried looking for it?

pastel imp
#

they don't elaborate on "what doesn't work" though

obtuse gale
#

you can disable some/all statistic tracking on Spigot so that might be why

#

but, if you don't, it will work fine

pastel imp
#

so it's the Statistic.PLAY_ONE_MINUTE right?

#

Which returns the play time in seconds in that server

pastel imp
distant sun
#

🙂

pastel imp
#

ty though

severe pewter
#

@obtuse gale DM me abt your placeholders request.

half harness
obtuse gale
#

toolchain does not change that

#

source/target are the "old" way of telling the compiler what classfile version you wanted to produce

#

but it's ass

#

that's why release exists

#

why did I tell Fish to specify the toolchain is because shitpack provides jdk8, and he wants to use jdk17, hence it needs to be specified, toolchain has got nothing to do with source/target/release flags

half harness
half harness
obtuse gale
#

that's how

half harness
obtuse gale
#

--release with plain old javac

obtuse gale
#

you can use gradle without a jdk yes and it will download one, but obviously you need at least a a jre to run it

half harness
#

oh right yeah

sweet cipher
#

Ok I was an idiot there was nothing here before

obtuse gale
#

okay

wind patio
#

quick question, is there a way to display the vanilla sidebar
/scoreboard objectives ... setdisplay sidebar

  1. Per player - so the whole server doesnt see it (so I can see it for testing purposes)
  2. Per world - the reason above, if first not achievable.
distant sun
#

Probably not

obtuse gale
#

This is an English-only server

#

damn

remote goblet
#

no

#

shut up

obtuse gale
#

yeah it is possibly with the API too

#

basically, Player#setScoreboard, and you can create them with the ScoreboardManager, then listen to the relevant change world events and such

wind patio
#

I tried looking into it but its very confusing

#

I managed to show display for everyone else but me lol

compact perchBOT
wind patio
#

hey, uh

#

I have a json object

Object { Email: (1) [] )
  Email: Array [ "The email address is not valid." ]
  0: "The email address is not valid."

I need to access the 0th element of it, how would I go around doing it?
And the object can be anything

prisma wave
wind patio
#

js, ts

#

well, the initial path of it is
err.response.data.errors
and it gives an object of X, that has an array of errors

prisma wave
#

object[0]

wind patio
#

if you mean err.response.data.errors[0], it doesnt work

#

if I use err.response.data.errors['Email'] I get the object with array, but thing is, 'Email' cant be anything.

#

well, Object.getOwnPropertyNames(obj) does the trick

obtuse gale
#

Oh I know that one

#

Object.values(obj)[0]

#

@wind patio

wind patio
#

💀

#

already replaced every occurrence with my solution

#
                const keys = Object.getOwnPropertyNames(err.response.data.errors);
                
                const errors = keys.map(k => err.response.data.errors[k][0]);

                notifyFailure("Creation of a new user has failed: " + errors?.join(";"));
obtuse gale
#

thank god modern text editors have a replace all feature

wind patio
#

pen and paper best

#

just use a printer

#

and glue your new solution on

boreal needle
#

alternatively, it looks like you're discarding the keys entirely and only using them to get values, when you'd want Object.values instead

warped spoke
#

[request]

prisma wave
#

True

static zealot
lament bridge
#

Which intelliJ version support gradle 2.7

#

nvm

half harness
#

1.8 forge? 💀

#

if so (since that's probably why) I'd just clone an existing 1.8 mod lol

#

that's what worked for me

hard dagger
frail glade
#

Release Date: September 14th, 2015. Holy crud.

lament bridge
#

Its bad i know, but im litteraly writing a 10 line program and updating stuff seemed like a bigger task

#

IntelliJ 2019 to the rescue

obtuse gale
#

that seems like a lot of effort for a 10 line program and a weird choice of version

hard dagger
#

Just rewrite the whole thing lmao

long dagger
#

@leaden crag is your Minimap a legit plugin? How is all the client side stuff done? Is it a resource pack with a LOT of images?

leaden crag
long dagger
#

I am guessing that the resource pack is dynamically updated when new chunks get made or chunks get updated, right?

leaden crag
#

Not quite

long dagger
#

How do the images get updated with the chunks?

#

(Not sure if this is too much to ask, might ruin the secret behind the plugin, I am just curious 🙂 )

leaden crag
#

I'll surely tell you more around the 26th of November.

urban sleet
#

I assume it works similarly to avatar plugins where it uses colored pixels

#

Pretty neat though, would like to see a video of it working 😅

leaden crag
#

Water 🚰
I'll be able to showcase it soon

grizzled tiger
#

do any of u know how to disable the entity clear from essentialsx

#

its killing all our mobs

half harness
#

plugins like ClearLagg have those

#

or it's just natural mob despawn

brittle leaf
half harness
grizzled tiger
#

with essentials

#

but it keeps running

#

and killing mobs i dont want to die

#

we r using mohoist 1.16.5 tho

half harness
#

Not auto

#

Iirc

#

You can show plugin and mod list though note that mohist is not recommended and I think essentials has like a whole page on iy

pallid geyser
#

uhm

#

why my ajleader boards doesnt connect or smth

#

i put the plugin in my plugins

#

but it doesnt exist

#

btw i use 1.16.5

obtuse gale
distant sun
#

Kicked

obtuse gale
#

in the face?

distant sun
#

👢

uneven vapor
#

Is it someone encounter this issue https://paste.helpch.at/jewusilaxa.less ? is when you shift-click items to inventory on custom inventory were the plugin then remove the item added (one tick later). Has no problems on 1.16+ with same code.

#

only fix i find for this is to cancel the event and remove items directly from player inventory (is same issue if you run 1.9.4 also).

brittle leaf
#

its an infinite loop

#

i wonder what a is

brittle leaf
brittle leaf
#

if heaven

uneven vapor
brittle leaf
#

lots of if statements

uneven vapor
#

yeah but that are not the issue here, ether way how i use the inventory it demands lots of checks.

brittle leaf
#

ik i was just making an obversation

uneven vapor
#

yeah is cleaned up a bit, was worse before 🙂

#

ether way confused way the server get upset of my code and it not even stacktrace to any of my code.

but seams to be problems when you try remove item from inventory on really old minecraft versions in some cases at least.

brittle leaf
#

probably a bug with the server jar

#

it was probably fixed in 1.10

uneven vapor
#

yeah but is not only 1.8.8 but also 1.9.4 both paper and spigot

brittle leaf
#

does it occur in 1.10?

uneven vapor
#

can see if i can get hold on 1.10

uneven vapor
brittle leaf
#

keep going up the versions till you find one that doesnt do that

#

well the earliest one that doesnt

brittle leaf
#

the error lines dont match and i wanna know what to look for

uneven vapor
brittle leaf
#

hmm

#

its more helpful and makes less sense at the same time

half harness
#

try ItemStack#setAmount(0)

#

@uneven vapor

#

instead of setting the slot

uneven vapor
half harness
#

set type to air?

uneven vapor
# half harness set type to air?

My fix i do like this clickedPlayer.getInventory().setItem(event.getSlot(),null); , it instead set item inside playerinventory and never add items to custom inventory (I plan to use that on old minecraft versions).

brittle leaf
#

i just wonder why it stackoverflow errors

uneven vapor
#

I guess they use while loop and if the item get removed it never can stop the loop.

brittle leaf
#

oh recursion

#

i see why its looping now

#

well kinda

#

a() is just a another method for the same clickItem() method

#

so click item runs a() which then runs clickitem

#

on loop for whatever reason

#

its a bug with the server jar and was probably not fixed till 1.12.2

uneven vapor
#

yeah, spigot are slow to fix stuff 🙂

brittle leaf
#

the problem couldve been fixed by paper

#

the bug couldve existed for years which it seems like it did and just wasnt found till 1.12 existed

#

cant fix something if you dont know its occuring

#

the mojang auth servers were vunerable because of legacy auth and it was vunerable for years till it was found and quickly fixed

uneven vapor
brittle leaf
#

uhh mojang mappings didnt exist for the server jar till 1.14.4

uneven vapor
#

yes I mean they really more on spigot an try import mojang classes self.

#

Other bug you can look on, is the InventoryMoveitemEvent , that are still broken 😄

#

if you try get inventory contents it will not return right amount on first slot, if you not do it one tick later.

brittle leaf
#

thats to be expected cus afaik the event is called just before it actually makes changes to the inventory

uneven vapor
brittle leaf
#

i was sure it was before

uneven vapor
#

They should then do that after cancel not before.

brittle leaf
#

now i see why people on here dislike older versions cus trying to support so many versions is hard work

vagrant gazelle
#

Does anyone know about Velocity?

obtuse gale
#

Yes

#

Someone does

distant sun
#

Does JDA have support for apps?

obtuse gale
distant sun
#

Great, ty em

static zealot
# vagrant gazelle Does anyone know about Velocity?

Velocity is the directional speed of an object in motion as an indication of its rate of change in position as observed from a particular frame of reference and as measured by a particular standard of time.

pure trench
#

how could i effect the mob spawn rates

vagrant gazelle
static zealot
vagrant gazelle
forest pecan
#

is there a plugin or skript that i can use to give my player rewards for standing afk in a world ?

static zealot
brittle leaf
uneven vapor
blissful belfry
#

I have a doubt is there anyway to let a modded client in a normal paper server

#

Just so u know the modded client not only client side mods

static zealot
#

no.

blissful belfry
#

Hmm

long dagger
#

I was wondering if there is a more efficient way to go about repeating tasks than a BukkitRunnable. I need something that can occur every n ticks but I need it efficient. Is there a better solution than a BukkitRunnable?

potent nest
#

your code won't be more efficient magically. If you have performance issues with your current implementation, it's not caused by how BukkitRunnable works but by your code

obtuse gale
#

yeah like sirywell said, your code won't run any faster or slower simply by running in any particular thread, the slowness of your code comes from.. your code

long dagger
obtuse gale
#

what does that even mean, "run fast"?

long dagger
#

I meant faster

#

I made it more clear, sorry

obtuse gale
#

well what does that mean

#

again, the "fastness" of your code comes from your code, not from the thread it runs on

potent nest
#

yeah basically 99.99% of the performance of that depends on your code

obtuse gale
#

in other words, the BukkitScheduler/BukkitRunnable is not the cause for performance hits

potent nest
#

if you want to have something continuation-styled, you'll need to build that yourself, because your code needs to be cooperative then

cinder flare
#

uhhh

potent nest
#

if you block the main thread, you block the main thread

cinder flare
#

i don't think you're using bukkit runnables correctly then lmao

long dagger
#

I give up

cinder flare
#

why

#

you're like, 90% of the way there

#

just like, make sure you're doing runTaskAsynchronously

inner umbra
#

@long dagger show your code.

cinder flare
#

cause i'm guessing you're running it synchronously, which executes on the main server thread, which lags your server hardcore

long dagger
#

so, I was concerned about other systems interacting with the class while it was updating, resulting in invalid operations, since the data wasn't current (on an async bukkit runnable)

cinder flare
#

so then you should focus on creating new state and doing callbacks, rather than accessing old state

#

though I guess it really depends on what you're doing specifically

long dagger
#

honestly, I forgot what my issue was

#

nevermind

cinder flare
#

oh okay

#

but yeah, i'd recommend either just doing a mongo call on every action if it really needs to be up to date or it doesn't happen often, or implement a solid caching strategy that makes sure that your in-memory java cache is always the same as the mongo db

bleak scaffold
static zealot
bleak scaffold
#
package mauliy.plugins.commands

import org.bukkit.event.Listener
import org.bukkit.plugin.java.JavaPlugin

abstract class Commands : JavaPlugin(), Listener {
    override fun onEnable() {
        // Plugin startup logic
        logger.info("Custom Commands has been enabled")
        registerCommands()
    }
    private fun registerCommands() {
        getCommand("jump")?.setExecutor(JumpCommand())
        logger.info("Registered command /jump!")
    }
    override fun onDisable() {
        // Plugin shutdown logic
    }
}```
```yml
name: Commands
version: '${project.version}'
main: mauliy.plugins.commands.Commands
api-version: 1.19
commands:
  jump:
    description: Jump command
half harness
#

abstract class

#

it has to be a regular class

alpine inlet
#

Why would you do that xD

bleak scaffold
#
java.lang.IllegalArgumentException: Plugin already initialized!```
Now i get another error
static zealot
#

Are you trying to instantiate the class somewhere?

bleak scaffold
#
package mauliy.plugins.commands

import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.TextColor
import org.bukkit.command.Command
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import org.bukkit.util.Vector
import org.bukkit.plugin.java.JavaPlugin

class JumpCommand : JavaPlugin() {
    override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>?): Boolean {
        if(sender is Player) {
            if(sender.isOp) {
                sender.sendMessage(Component.text("You have successfully used command!").color(TextColor.color(0, 255, 0)))
                sender.velocity = sender.velocity.add(Vector(0.0, 10.0, 0.0))
            }
            else {
                sender.sendMessage(Component.text("You don't have perm to use this command!").color(TextColor.color(255, 0 , 0)))
            }
        }
        return false
    }
}
static zealot
#

You can't have 2 plugin classes

bleak scaffold
#

i was following tutorial when coding and he have 2 classes

obtuse gale
#

he has two classes, yes, not two classes that extend JavaPlugin

bleak scaffold
#

but now

org.bukkit.command.CommandException: Unhandled exception executing command 'jump' in plugin Commands v1.0-SNAPSHOT```
pastel imp
#

that's not the full error I bet

#

oh wait that's kotlin

#

ye I am out

#

xD

bleak scaffold
half harness
#

show the whole error

half harness
#
  • are you shading kotlin?
  • you have to relocate kotlin
#

or use spigot libraries feature

bleak scaffold
#

omg i started today and dont rly know what to do

half harness
#

interesting decision to start with kotlin first, there's less resources for spigot related stuff for it

but anyways the easiest way is probably to just add the library to the plugin.yml
@bleak scaffold what program do you use to code?

bleak scaffold
#

IntelliJ IDEA Community Edition 2022.2.3

half harness
bleak scaffold
#

maven

half harness
#

🤢 show pom.xml

bleak scaffold
half harness
# bleak scaffold https://paste.helpch.at/kodukulebi.xml

turnxml <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jdk8</artifactId> <version>${kotlin.version}</version> </dependency> into xml <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jdk8</artifactId> <version>${kotlin.version}</version> <scope>provided</scope> </dependency> and then in plugin.yml put: ```yml
libraries:

  • org.jetbrains.kotlin:kotlin-stdlib:1.7.21
#

this is probably the easiest way