#help-development

1 messages · Page 437 of 1

quiet ice
#

That source jar only contains the *.java and a few resource files

tribal rivet
#

yes i know

tribal rivet
quiet ice
#

just copy them into the source directory of your project?

#

You really need to understand that you need to create all the gradle buildscript stuff (unless you wish to go with a more exotic build chain that is)

tribal rivet
#

thanks!!!

#

so i replace the .src with the net folder?

quiet ice
#

well the .net folder is just put inside the .src dir

hushed spindle
#

bit of a code unrelated question but does anyone know how to change/hide commit details on github once they've been pushed? as in i committed something and for some reason it did it under my personal email address

#

this isnt a huge issue but its something id rather not have

tribal rivet
quiet ice
#

git ammend and then force push

#

the old code will still stay there forever

hushed spindle
#

its not the most recent commit though unfortunately lol

quiet ice
#

Then it gets more complicated:
Check out the commit you want to edit, amend it, then merge the latest commit again and then push that

tiny atlas
#

If someone can fully help me i really ❤️

quiet ice
#

A) Wrong channel - this is #help-server territory
B) Get rid of minetrends
C) Please learn to read errors. It's not that hard
D) Don't use old plugins in versions that aren't made for them
E) Technically you could use --illegal-access=permit, but I recommend against doing so

worldly ingot
#

wtf is that plugin doing lol

#

import com.sun.org.apache.xml.internal.security.utils.Base64;

#

There's literally an API equivalent in java.util. I have no idea how their IDE suggested they use the internal JDK class instead

#

And just as an aside, their encryptString() method is "encrypting" first as an md5 hash, then as Base64

quiet ice
#

Useful encryption

#

I wonder how they decrypt it

worldly ingot
#

Asymmetric keys but they're not very well secured

cedar dagger
#
29.03 19:37:40 [Server] [WARN] [MythicMobs] AI pathfinder players is not valid for mob type MAGMA_CUBE``` Please Help
#

keep getting thjs error

icy beacon
young knoll
#

Mob AI is mean now

#

A pathfinder API is no longer enough, because some mobs use brains :/

worldly ingot
#

Yeah that sort of stuff started around axolotls I think

young knoll
#

I thought it was villagers in 1.14

worldly ingot
#

Then they just started using brains beyond that point but never refactored old ones

#

It might have been villagers

young knoll
#

Mojank

tardy delta
#

life is fun

regal scaffold
#

Dude what are these IJ freezes

#

My god

young knoll
#

Why are we assemblying

tardy delta
#

i didnt read my own comments

#

result of me getting bored in java classes

regal scaffold
#

Well, IJ support is kinda nuts

#

They solved my issue in, 45 seconds

tardy delta
#

i had ij freezing when using gradle

#

stuff was eating 5gigs

regal scaffold
#

It seems there is a known bug regarding the Java bytecode decompiler plugin

#

But they answered my ticket in less than a minute

#

I guess this is why I pay for ultimate

#

Sike... for free

tardy delta
#

Process finished with exit code -1073740940 (0xC0000374) ah shit

hushed spindle
#

im trying to change some old commit details but when i get to this part i just dont know how to get out of it

tender shard
#

how does this look like in kotlin?

compileJava {
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
}
hushed spindle
#

how do i like, "confirm" what is happening here

tardy delta
#

just :q

#

probably something vim alike

hushed spindle
#

what is :q

#

do i like type it in or what

tardy delta
#

a command or smth

#

ye

hushed spindle
#

oh i see

#

: puts you in command mode i guess lol

#

ty

tardy delta
#

i tricked my classmate into opening vim and we both didnt knew how to exit 💀

pseudo hazel
#

why is ctrl + shift + f not giving me all results?

#

like I am trying to see where I create some class

#

but it doesnt show me nearly all instances

tardy delta
#

why is deallocating a block of memory at the address from allocate giving me some weird error lol

pseudo hazel
#

intellij btw

tardy delta
#

can i atleast get a better exit code

pseudo hazel
opaque scarab
#

I made a method that makes a player NPC crouch. The method is called by a command method in a different class. The method sends a ClientboundSetEntityData packet to the player, containing the entity data and entity ID. It can be found in the code below.

public void applyPose(net.minecraft.world.entity.Pose pose) {
    npcCraftEntity.getHandle().setPose(pose);
    List<SynchedEntityData.DataValue<?>> valueList = npcCraftEntity.getHandle().getEntityData().packDirty();

    ClientboundSetEntityDataPacket entityDataPacket = new ClientboundSetEntityDataPacket(entityID, valueList);
    connection.send(entityDataPacket);
}```

On the first try, the packet is sent, and the NPC crouches. However, when I run the command to crouch the NPC again, or run any other ClientboundSetEntityData packet, I get the following error and am kicked from the server.

```[15:15:35 ERROR]: Packet encoding of packet ID 78 threw (skippable? false)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "trackedValues" is null
        ...
[15:15:35 INFO]: Cyrei lost connection: Disconnected
[15:15:35 INFO]: Cyrei left the game

If anyone can help, that would be appreciated. This may be something obvious. I'm fairly new to plugin development, especially NMS. I can send a txt file of the entire error, if anyone would like.

tardy delta
#

wait wha, why dont i need freeMemory(BASE_ADDRESS + offset)???

rotund ravine
rotund ravine
tardy delta
#

its fun

regal scaffold
#

Is there any way I can prevent my classes of accessing getConfig

#

From the main class that extends JavaPlugin

tardy delta
#

override it and throw an exception?

#

or better: let the jvm crash

regal scaffold
#

Well I can override it

regal scaffold
#

But can I straight up make it appear under red line

#

Because I'm using a separate class file

#

For config management

rotund ravine
#

So why

tardy delta
#

just ignore that method then

regal scaffold
#

Just cause I'm getting confused

#

Visually

rotund ravine
#

Override it and attach deprecated

regal scaffold
#

!!

#

There

#

That's what I wanted, thanks

opaque scarab
#

Anyone have any idea how I can fix my packet issue?

tardy delta
#

here we go, a scanner and a printer in one

tender shard
serene sigil
#

bruh does any one know why this is accruing?

#

i literally edited one line of code (not in the plugin.yml) and built the project and then it stopped working.....

#

it worked before

#

heres my plugin.yml

rotund ravine
#

How are you bulding your plugin

eternal oxide
#

plugin.yml is not in your jar

serene sigil
#

i am doing build artifact like i always did

rotund ravine
#

Show me your artifact settings

serene sigil
rotund ravine
#

Buttom part

#

Is needed

serene sigil
rotund ravine
#

Scrool to the buttom of the left side

#

And take a new one

serene sigil
rotund ravine
#

You didn’t scroll down

serene sigil
#

yes i did

#

o´h left

#

🤣

eternal oxide
#

just use the maven tab in the window to the right of your screen. m tab, lifecycles -> package

rotund ravine
#

Click at the small + icon at the top of left. Click add file and add your plugin.yml

eternal oxide
#

he's using maven he should not be using artifacts

#

she*

serene sigil
rotund ravine
opaque scarab
#

So I made a method that makes a player NPC crouch. The method is called by a command method in a different class. The method sends a ClientboundSetEntityData packet to the player, containing the entity data and entity ID. It can be found in the code below.

public void applyPose(net.minecraft.world.entity.Pose pose)  {
    npcCraftEntity.getHandle().setPose(pose);
    List<SynchedEntityData.DataValue<?>> valueList = npcCraftEntity.getHandle().getEntityData().packDirty();

    ClientboundSetEntityDataPacket entityDataPacket = new ClientboundSetEntityDataPacket(entityID, valueList);
    connection.send(entityDataPacket);
}```

On the first try, the packet is sent, and the NPC crouches. However, when I run the command to crouch the NPC again, or run any other ClientboundSetEntityData packet, I get the following error and am kicked from the server.

```[15:15:35 ERROR]: Packet encoding of packet ID 78 threw (skippable? false)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "trackedValues" is null
        ...
[15:15:35 INFO]: Cyrei lost connection: Disconnected
[15:15:35 INFO]: Cyrei left the game

If anyone can help, that would be appreciated. This may be something obvious. I'm fairly new to plugin development, especially NMS. I can send a txt file of the entire error, if anyone would like.

serene sigil
#

lmao

rotund ravine
#

Oh might be another one of the top things. Look for one where you can add a file at the top of the left thingy @serene sigil

serene sigil
#

where?

#

oh nvm

#

ii see

quaint mantle
#

can anyone tell me how i can give players permissions using luckperm?
i already got the api and everything i just have no clue on how to use it

rotund ravine
#

They got extensive documentation

quaint mantle
#

to extensive for me to understand x) i can barely understand anything with my english

serene sigil
#

now it cant find the main class

rotund ravine
#

Why are you not just using maven properly?

tender shard
#

wtf are you doing

#

stop using artifacts and shit

#

just run mvn pacakge

serene sigil
#

but that creates a bunch of other files in the plugins folder

tender shard
#

no

rotund ravine
#

Huh?

eternal oxide
#

as it should

tender shard
#

it only does that if you fucked up your pom

#

probably you declared the output location in the maven-shade-plugin, or even worse, in the maven-compiler-plugin

#

while it actually belongs into the maven-jar-plugin

eternal oxide
#

those folders are teh components of yoru plugin

serene sigil
#

no, it just adds 2 other jars

eternal oxide
#

they get combined into yoru jar in the target folder

tender shard
#

?paste your pom

undone axleBOT
eternal oxide
#

if you have more than one jar you are likely shading or using nms

tender shard
#

even if - when using the maven-jar-plugin properly, only one .jar is being put into the outputDirectory

#

(both ways decribed in the blog post are the proper way)

tardy hatch
#

Has anyone encountered getWorld() returning null?

rotund ravine
#

Yeah.

tardy hatch
#

Do you know how to fix that?

eternal oxide
#

if you call it too early

young knoll
#

On what

rotund ravine
#

Or you call it with the wrong worldname

tardy hatch
#

How early is too early?

eternal oxide
#

before onEnable

rotund ravine
#

How are you calling it.

tardy hatch
#

World world = Bukkit.getWorld("WitherBoss");

eternal oxide
#

so in a Field

rotund ravine
#

When do you load WitherBoss world

terse ore
#

one question guys

tardy hatch
#

Ah i see... I need to call it after the world loads..

terse ore
#

is ther eany post on how a minecraft server work

#

mostly networking part

rotund ravine
eternal oxide
#

theres lots, but nothing comprehensive

#

I guess the protocol is comprehensive 🙂

terse ore
#

but itonly covers protocols

rotund ravine
#

Yes?

eternal oxide
#

well protocols is ALL of MC's networking

terse ore
#

I mean like, how does a server manage connections etc

#

not necessarily minecraft related

eternal oxide
#

look in your work folder of BuildTools

terse ore
#

hmm

indigo frost
#

how would i make all the mobs between two blocks have NoAI if they dont have PDT's?

rotund ravine
terse ore
#

I want to make a server software with python

#

not because of being useful, but to learn stuff

rotund ravine
#

Then don’t look at netty

#

Look up tcp/udp game servers python.

young knoll
#

I wonder what’s the slowest Lang you could make a server in

terse ore
#

tbh

#

python is not that slow

eternal oxide
#

js is my guess

terse ore
#

people subestimate it

#

but in 3.11 they made it ~60% faster

rotund ravine
terse ore
#

yeah but it has something good

#

you get the c compiled files

#

so you can code anything in python and get the c code

#

but as I said, I want to learn networking stuff

#

rather than making something useful

rotund ravine
terse ore
#

I am on it

rotund ravine
#

You won’t find a good readable example of the design principles in the obscured minecraft server code. It’s simply too big.

terse ore
#

I am looking at mcpy source code

#

and looking how it works

young knoll
#

I guess the fastest Lang for a server would just be straight assembly

#

Anyone want to volunteer

terse ore
#

assembly get's compiled to binary right?

eternal oxide
#

no

terse ore
#

could yo ucode it in binary?

eternal oxide
#

yes

terse ore
#

I mean

#

the fastest would be just straight litography

eternal oxide
#

lithography? Not sure what printing has to do with anything

rotund ravine
terse ore
#

then I missunderstud thje term

eternal oxide
#

ok 🙂

#

asm is teh fastest, but not easy. We use high level languages like C to make life easier and coding simpler

rotund ravine
#

Well

#

Assembly can be slow if ur bad at it.

eternal oxide
#

true 🙂

#

its also SUPER complex

young knoll
#

So can every language :p

rotund ravine
#

Ye

#

But it’s much easier to be better at java etc.

eternal oxide
#

much

#

I was coding ASM years before public IDE's were a thing 😉

young knoll
#

“Yeah this code is terrible but the compiler will deal with it”

eternal oxide
#

its a lot of fun but definitely a thing for basement dwellers

young knoll
#

Back in my day we just switched the bits by hand to make a program run

rotund ravine
terse ore
eternal oxide
#

late 50's

eternal oxide
terse ore
young knoll
#

Old?

terse ore
#

with knowledge

opaque scarab
#

Anyone able to help me here? I’m getting this error

[15:15:35 ERROR]: Packet encoding of packet ID 78 threw (skippable? false)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "trackedValues" is null

I get this the second time I send a packet to update entity data

eternal oxide
#

knowledge is fine but dedication is better

rotund ravine
#

We coded in Ada back in my day.

young knoll
#

Abba

#

~Dancing queen

terse ore
eternal oxide
#

recommendations for?

opaque scarab
#

Now, sorry I keep asking this. But I’ve been here for a freaking hour and a half, yet haven’t gotten a single response.

rotund ravine
#

Cause we don’t know and are too lazy to investigate.

young knoll
#

Pretty much

eternal oxide
young knoll
#

Ur mostly on your own with packets

#

And NMS really

terse ore
rotund ravine
#

Called computer science

#

Well

terse ore
#

yeah mb

rotund ravine
#

Kinda.

rotund ravine
#

Networking is a part of computer science ya?

eternal oxide
opaque scarab
eternal oxide
#

once you understand packets and acknowledgement it will make a lot more sense than now

opaque scarab
eternal oxide
#

sorry that message was to alex 🙂

opaque scarab
terse ore
#

ty

rotund ravine
#

Pretty much try your best. read the error, read the sourcode and protocolpage. @opaque scarab

subtle folio
#

Is there an accurate chart for what slot a certain spot in your inventory is?

eternal oxide
subtle folio
opaque scarab
rotund ravine
subtle folio
#

lk

tender shard
young knoll
eternal oxide
#

depends what inventory is open and if using slot or rawSlot

pseudo hazel
tender shard
#

for PlayerInventory, what I sent is correct

pseudo hazel
#

im pretty sure hotbar is always first

#

and armor is last

tender shard
#

yep

pseudo hazel
#

yeah like you sent

tender shard
tender shard
# young knoll Wiki.vg says 44

that might be the result in InventoryClickEvent getRawSLot(), but Inventory.get(0) definitely is the first hotbar item

#

usually raw slot numbers start at the top

pseudo hazel
#

getrawslot on what inventory

tender shard
#

CraftInventory

#

or CraftingInventory

#

I think it's CraftingInventory

pseudo hazel
#

isnt that for 3x3

eternal oxide
#

no

tender shard
#

lemme check

eternal oxide
#

thats workbench

pseudo hazel
#

oh

#

but I thought player inventory was client side

#

or is that just creative inventory

#

like obviously crafting stuff in this would send to server but still

young knoll
#

It’s server side

eternal oxide
#

creative is mostly client side

young knoll
#

Creative is client side but creative is jank

eternal oxide
#

it's super trusted by the server

tender shard
#

2x2 crafing inv, clicking last hotbar slot

pseudo hazel
#

interesting

tender shard
#

same for 3x3 crafting inv

#

both are CraftInventoryPlayer

pseudo hazel
#

how

#

where do the other crafting slots go

#

are they appended on the end?

tender shard
#

however, Inventory#getType() is different

#

both are CraftInventoryPlayer, but the 2x2 is InventoryType.CRAFTING, and 3x3 is InventoryType.WORKBENCH

eternal oxide
#

you have top and bottom inventories

pseudo hazel
#

well yes but even still

#

how can hotbar slot 8 be 44 for both crafting inventories

eternal oxide
tender shard
#

2x2

Top class: org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryCrafting
Top type: CRAFTING
Bottom class: org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryPlayer
Bottom type: PLAYER

3x3

Top class: org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryCrafting
Top type: WORKBENCH
Bottom class: org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryPlayer
Bottom type: PLAYER
#

so the top inventory is always Crafting, but the type differs between 2x2 and 3x3.
the bottom inventory is always Player/PLAYER

opaque scarab
pseudo hazel
#

yeah so it would be 45 in the workbench

tender shard
#

or was that someone else lol

young knoll
#

Heh

#

Bottom Type

tender shard
#

huehue I'm vers

pseudo hazel
#

also yeah im pretty sure bottom type can only be player

tender shard
#

the last hotbar slot is always 8 in the inventory.

the raw slot however is 44 in 2x2 view and 45 in 3x3 view

halcyon mica
#

So I've been running into a weird issue ever since updating to 1.19.4

#

When spigot/bukkit fires a worldinit event, the seed given in the event does not match the seed given in the world's level dat

#

Has anything changed there

bitter token
#

Can anyone give me a good anti xray/hacks plugin what works for 1.19.3

halcyon mica
#

It happens randomly

halcyon mica
#

I have multiple files registered in the bukkit.yml, and seemingly randomly the event just gives a different seed than the world's dat file

eternal oxide
halcyon mica
#

And there seems to be no pattern to it

#

Yeah

tender shard
#

idk all I can say is that it works fine for me for all worlds

halcyon mica
eternal oxide
#

what files?

halcyon mica
#

What do you mean "what files"

#

A world directory

eternal oxide
#

do you mean world generators?

halcyon mica
eternal oxide
halcyon mica
#

What is so hard to understand about this

opaque scarab
halcyon mica
#

I have multiple worlds registered under the worlds key in the bukkit.yml

tender shard
tender shard
eternal oxide
halcyon mica
#

There is a optional key to register a world to load, is there not?

eternal oxide
#

no not in bukkit.yml

halcyon mica
#
  <name>: <generator>```
#

Then where is that supposed to go

#

Up until 1.19.4 it worked just fine

tender shard
#

that doesn't load or create any new worlds by itself iirc

#

you always need a plugin to load/create additional worlds

eternal oxide
#

so your answer to my earlier question was yes you mean world generators

halcyon mica
#

The whole point of that entry is to load additional worlds on startup to my knowledge

eternal oxide
#

no its not

#

its only specifies the generator to use

#

you still have to load the world if it's not a default world

tender shard
#

according to this wiki, it does only change the generator of worlds, it doesn't load or create them

halcyon mica
#

Interesting, I was told some bs then

#

But that is besides the point, I am still iterating through worlds and loading them manually since this expected behaviour failed

#

And the seeds are still wrong

tender shard
#

how are you loading them? with an empty worldcreator?

next parcel
#

https://cdn.discordapp.com/attachments/1070814092178227200/1090093768524431472/image.png
https://cdn.discordapp.com/attachments/1070814092178227200/1090093737083949145/image.png

hey its me again, need help to fix this issue.

im trying to help develop a server, i used to code in a completely different language but now im switching to java, so im COMPLETELY new to intelij, java, etc, im learning & picking up the pace as i code...

problem is, im importing the server project repositry, and it's giving me bukkit not being defined, i tried everything & looking everywhere for a solution and i couldn't. please help me

#

it works for other people, not for me

remote swallow
#

have you ran buildtools

next parcel
#

i would have done that, BUT its a repositry

next parcel
#

so im confused on what to do

tender shard
remote swallow
#

repo

#

?bt

undone axleBOT
tender shard
#

you have to run BuildTools (preferrably with --remapped option) to use NMS

next parcel
#

i cloned a repositry, which is where im supposed to start coding

young knoll
#

Yeah you still need to run buildtools for NMS

next parcel
#

so im not sure if im doing the right thing around here

young knoll
#

It installs it into your local repo

remote swallow
#

download buildtools, create a new dir in downloads and follow the guide to run it for 1.18.2

tender shard
#

do you just wanna get started on writing spigot plugins?

next parcel
#

yup, server project has a core for everything already & event listeners for everything, so everything is pretty chill except bukkit not being defined

remote swallow
#

yes

tender shard
#

do you even need NMS?

remote swallow
#

its not their projet, their just helping with it

next parcel
#

well, im a dev of a server

#

im working on other stuff, just not java

tender shard
#

if that plugin does not need NMS, you can just change "spigot" to "spigot-api"

next parcel
#

im starting with java, started a few weeks ago

#

i would do whatever you tell me, bnut somethign is odd

#

it works for other fellow devs

#

it doesnt work for me

remote swallow
#

they would have ran buildtools

next parcel
#

alright ill give it a try

#

do i run it using intelij's terminal?

remote swallow
#

outside of intellij

next parcel
#

do i have to have a specific window open?

#

alright

remote swallow
#

?bt on here download the lastest version, create a new folder in downloads and drag that jar in

undone axleBOT
tender shard
#

you can easily run it using intellij

remote swallow
#

open command prompt in that folder and run java -jar BuildTools.jar --rev 1.18.2

next parcel
#

do i have to follow this step?

#

im already doign the git bash thingy

tender shard
#

no

#

you really only need to do exactly this:

  1. Download BUildTools.jar, put it anywhere
  2. Open git bash in that folder
  3. Enter java -jar BuildTools.jar --rev 1.18.2 --remapped
  4. Wait until it says Successfully built spigot-1.18.2 or sth
#

nothing else is needed

next parcel
#

alright, sorry for the bother & for the annoying specifics that im giving

#

been trying to fix this for like a long time

#

ill wait until its done and let u know what happens

tender shard
#

np, thats what this channel is for lol

young knoll
#

You don’t even need git bash technically

tardy hatch
#

I am having trouble implementing a countdown in my plugin. Can anyone help?

next parcel
young knoll
#

Fair

tender shard
tardy hatch
#

I probably can't just paste code here right?

next parcel
#

i used to just explain what im trying to do & whats the issue then post the code in another dev server

tardy hatch
young knoll
#

?paste if it’s really long

undone axleBOT
next parcel
#

does this mean its done?

tender shard
#

yes

remote swallow
#

yep

next parcel
#

should i do anything else now?

#

import it to intelij or somethingn or does it just read it auto?

remote swallow
#

it should read it auto

tender shard
#

and I wouldnt do it in the constructor, the constructor shouldn't handle logic, it should only construct the object.

  1. remove the run() from the constructor
  2. start your countdown like this:
Countdown myCountdown = new MyCountdown(...);
myCountdown.start();
tardy hatch
#

Thanks for help

tender shard
#

Btw your countdown will be off when tps are not 20, if you care about that, rather save the end date instead counting down by 1 every 20 ticks

young knoll
#

Time stamps are great

#

Wonder what’ll be done when we overflow

tender shard
#

I remember when everyone was afraid of y2k

#

And then nothing happened

#

Big disappointment

regal scaffold
#

What's the alternative to spigot/paper which is... like a modular system?

#

I forgot the name

#

It's like a project

eternal oxide
#

a lot of work went into fixing y2k

kind hatch
#

^

#

That's part of why it wasn't a big deal.

eternal oxide
#

so many computer clocks had to be replaced

tender shard
#

yeah, very disappointing

#

people got paid just to disappoint me

eternal oxide
#

alex wanted to see the world burn 🙂

kind hatch
#

It's ok though alex. You might get to see a y2038k

tender shard
eternal oxide
#

I'm with you if an asteroid hits, but stay away from my games

young knoll
#

I think I spelt that right

regal scaffold
#

YES!

#

That's the one

#

Thanks

#

Has anyone used it before? Any opinions?

tender shard
#

well it's not even remotely like spigot

regal scaffold
#

It's an alternative

tender shard
#

it has no vanilla logic builtin

young knoll
#

It implements the paper api

#

But you’ll need to either make or find all the stuff you need

#

Even for just a basic mini games server you obviously need some vanilla logic

regal scaffold
#

Oh...

#

That's what you mean

tender shard
#

it has no vanilla features (i.e. you gotta write everything yourself, if I understood that correctly), and it also doesnt have bukkit/paper/whatever api

regal scaffold
#

I wonder if anyone actually uses this in productions

young knoll
#

Idk thinking of something else I guess

#

What’s that other one

regal scaffold
#

But I think the idea of Minestom is that

#

You can like create instances really easily

tender shard
regal scaffold
#

It's made for like, generating a minigame, playing and then deleting it

#

So like a multi-game setup I suppose

young knoll
#

Glowstone

regal scaffold
#

It's dead

#

I'm confused tho

#

Minestom doesn't even have like a plugin structure

#

It's straight up, everything together

remote swallow
#

yeah

#

your meant to make all of it

quaint mantle
#

that's the point

regal scaffold
#

Yeah that's fair, I guess for some people it's useful otherwise it would be discontinued

young knoll
#

At some point you’ll probably be able to assemble a full survival server just using public libraries

#

Maybe that’ll be useful? Idk

regal scaffold
#

I think every big big network doesn't use spigot or paper and theyh use a custom fork of either

#

I wonder if there are any servers I can join to see this mindstom stuff

#

play.minestom.net

#

I mean, mindstom seems like the ultimate premade setup builder lol

#

You can just give someone the repo and everything is already there

young knoll
#

Can’t have shit in Detroit

winged anvil
#

ong

flint coyote
#

Why does player.damage(50.0) not damage the player at all but player.damage(20.0) does?

#

Looks like you can't damage a player for more than his current health lol

sullen marlin
#

That doesn't seem right

flint coyote
#

Well I was running this code

@Override
    public void runFor(Player player) {
        if (damage > 0) {
            System.out.println(damage);
            player.damage(damage);
        }
    }

And it printed 50.0. I also got a damage animation but the health did not change

#

Let me try in the onEnable just to make sure I'm not messing something else up

opaque scarab
#

Ah, second question of the day. Anyone know the packet to set entity position with the Mojang remappings? I’m trying to tp a player NPC

eternal oxide
#

um

#

how are you override annotating a method runFor

flint coyote
#

It's my own class^^

eternal oxide
#

and there are no players online in onEnable unless it's a restart

flint coyote
#

I can do a reload

#

But I can also use a scheduler

#

Hmm that seems to work. Well - time to investigate

#

Well you can survive 20 if you ate a godapple

#

And I wanted it to be deadly

#

Poison doesn't kill you. But it's easy to workaround. I just can't get my head around on why it is not working

remote swallow
#

damage them their health if 50 doesnt work

flint coyote
#

Nah 50 does work. I found out why it happens.

#

Technically yes. But why do you want to save chunks?

#

I mean they are already saved in the world files + you can use chunk snapshots. That's why I'm wondering why you would want to save them again

solar mauve
#

hey there

#

i want to know how can i get signature and value of a minecraft skin?

#

dude, minecraft skin needs a signature and value

#

it is like a property in gameprofile of player

#

where property is like:

new Property("textures", value, signature);
#

value and signature are different strings

#

i got the base64 of that image

#

but what should i do with it? game profile texture property requires signature and value

#

is there any other ways to achieve them in code?

#

because i want to make a command to let players temporarily change their skin to an image link (with a specific size limit)

eternal oxide
#

ALL skins come from Mojang servers. The base64 is just a URL to their servers

solar mauve
#

there are two strings, signature and value

eternal oxide
#

decode a base64 skin and it will give you a url

solar mauve
#

wait

eternal oxide
#

teh skin is on a mojang server, the signature calculated and provided by Mojang

#

you set those values on the server, it send the url to the client which (if the signature is correct) downloads the skin

opaque scarab
solar mauve
#

i tried both signature and value base64 strings

eternal oxide
#

a skin base64 is always a url (json)

flint coyote
opaque scarab
#

Glad it was sorted out then

solar mauve
#

wait, sorry

#

the value one is a url

#

but signature isn't

#

so whats the signature?

eternal oxide
#

its a checksum calculated by mojang

solar mauve
#

so

#

how can i set the player's skin by an image url?

eternal oxide
#

you can't

solar mauve
#

well, how other plugins does it?

eternal oxide
#

ALL skins that can be applied to a client are hosted by and come from mojang

solar mauve
#

can i make a json of that link and encode it to base64?

eternal oxide
#

no, they ALL come from mojang, it's hard coded

#

only client mods can do custom skins

solar mauve
eternal oxide
#

then you'd be wrong

solar mauve
#

there are plugins that let you to give them custom skin url and set them for u server side

eternal oxide
#

yes and every url is to a mojang hosted skin

#

teh client doesn;t get any texture/skin data from the server, it only sends a mojang url

#

the client then downloads it from mojang

solar mauve
#

are websites like mineskin.org uploading your custom skin to mojang?

eternal oxide
#

yes

solar mauve
#

thanks

#

oh yes u're right, they're using mineskin api:

    public IProperty genSkinUrl(String url, @Nullable SkinVariant skinVariant) throws SkinRequestException {
        return mineSkinAPI.genSkin(url, skinVariant);
    }
#

mineskin uploads skin to mojang, gets the signature and value, and plugin saves that as a skin

ebon topaz
#

how could i add a custom item to a chest loottable of the ancient city

opaque scarab
#

Use the event ChunkPopulateEvent, then iterate through the tile-entities. Check if the tile-entity is a chest, is lootable, and is in a deep dark biome. Get the chest inventory, then add the item @ebon topaz

#

There might be a better way, but that’s one way to do it. You’ll want check the biome before iterating through tile-entities

delicate lynx
#

you could use LootGenerateEvent

opaque scarab
#

That’s much better. Didn’t know that existed

#

LOL

#

Apparently there is PacketPlayOutPosition, but what would be the mojang remappings equivalent?

ebon topaz
#

so no matter what i do i need to manually handle anvil with my custom enchantments?

#

is there a certain way to register enchatments to make it easier to make it work with anvils?

grizzled oasis
#

Hi, im creating a daily shop and when i refresh it the server crash on the line for the random numbers

ThreadLocalRandom.current()
                            .ints(0, Math.max(4-1, 0))
                            .distinct()
                            .limit(6)
                            .forEach(num -> Shop.items.add(num));
//Code in the Shop (GUI class)
    public static final List<Integer> items = new ArrayList<>();

StackTrace: https://sourceb.in/vJZEZGmxog

torn shuttle
drowsy helm
#

why not just use the Random class?

torn shuttle
#

randomize 6 numbers?

grizzled oasis
drowsy helm
#

for loop and Random

grizzled oasis
drowsy helm
#

what does the log say

grizzled oasis
torn shuttle
#

I don't even know half the methods on there but I doubt you're actually getting 6 numbers

#

just do a normal nextint in a for loop

remote swallow
#
torn shuttle
#

anyone know how pathfinding goals are meant to work in nms code?

#

somehow I got the brain to work but I'm having a harder time with regular goals

drowsy helm
#

in most cases you just have to mess with the priority for it to work properly

#

what goal you trying to do

torn shuttle
#

custom movement goal

#

I am pretty sure the priority is tight

#

I can see it ticking too

#

I just can't get it to execute the movement

drowsy helm
#

is it finishing before the execution?

torn shuttle
#

it never finishes because it never meets the movement goal

drowsy helm
#

oh tf

#

but still ticks

torn shuttle
#

I am dead sure I did the movement part wrong

#

I tried creating a path and then even tried manually ticking the path

#

I don't know because there is a pathing stop but no start so I don't know how to tick the logic to get it to progress

#

or even if I need to do that at all

drowsy helm
#

may i see your implementation

torn shuttle
#

uh yeah it's a bit of a mess but

#

?paste

undone axleBOT
torn shuttle
#

you can see I've been throwing shit at the wall trying to get something to stick

#

I know it starts, I know it ticks, I've never seen it stop but I'm sure that's just because it never actually influences the entity's movement

drowsy helm
#

your moveTo should be in the start

torn shuttle
#

I think I already tried that but I am right now in the middle of rebooting to try just that

torn shuttle
#

having a hard time remember all the different iterations I went thru

tardy delta
#

Me who tried to make sheep ai from scratch and figured out the pathfunding lib sucks

torn shuttle
#

tbf half of the point of what I'm trying to do is create some wrapper over it to make interfacing with it suck less

#

I am still missing something here

tardy delta
#

I got ai today so maybe ill create a better pathfunding algorithm lol

torn shuttle
#

I don't even necessarily want to use mojang's pathfinding solution as much as I want to figure out how they are making entities move in the first place

torn shuttle
#

oh I think I got it

#

seems like I might've been feeding it bad data

indigo rampart
#

Anyone have any experience with the Component class

#

This specifically

tardy delta
#

?ask

undone axleBOT
#

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

torn shuttle
#

Has Anyone Really Been Far Even as Decided to Use Even Go Want to do Look More Like?

#

by which of course I mean I wonder if there is an easy way to do goal cooldowns that is incorporated in the goals and doesn't require me scheduling it manually

#

don't think so though

eternal oxide
#

entities have a tick method. you could call a timer check in there

torn shuttle
#

oh it's real easy to do it's just such a banal thing to do that I was half wondering if it was already in there in some format

#

at least behaviors have end timestamps by default

wet breach
torn shuttle
#

that doesn't sound like something I should touch in this context

wet breach
#

If its not going to go through a portal it doesnt hurt anything. But my point is you dont need sceduler if its auto ticked already and only need to check for 0

torn shuttle
#

I didn't mean a literal scheduler

#

I'm just storing a timestamp

wet breach
#

But it is a cooldown already implemented. And fits what you asked

torn shuttle
#

I meant it strictly in the context of goals and brain, otherwise I'll just do it manually

wet breach
#

Not sure what the issue is. All entities have it. If the entities you have are not going through portals you have no problems

torn shuttle
#

it's a library for pathfinding, I don't know if they're going through portals and I don't need to rely on such an unreliable method in the first place

wet breach
#

Its not unreliable.

#

It is mainly used for portals. But anytime its not 0 the server auto ticks it back to 0

torn shuttle
#

you can make all the libraries you want that rely on timers that randomly stop working if you want, i'm not taking that away from you

#

I won't

wet breach
#

Ok, be a dick. It wont stop working as its part of the vanilla code.

#

But have fun seems you dont need help afterall

torn shuttle
#

you're the one insisting on me using a timer that can randomly reset after I said I just wanted to know if there was a solution baked into goals and brains

wet breach
#

It doesnt randomly reset

#

It is the amount of ticks before entity can use portal again. It is ticked to 0 every tick

torn shuttle
#

so it wouldn't be functional as a timer ?

wet breach
#

That is a timer

torn shuttle
#

which resets to 0 every tick

#

you mean ticked down?

wet breach
#

It doesnt reset to 0 every tick

#

If its at 200 that means 200 ticks

#

Every tick it goes down 1

#

Until it is 0

torn shuttle
#

still not something I have any wish to rely on for a pathfinding lib

wet breach
#

Well you didnt stipulate any requirements or that its being used ina lib where it is used outside your control

#

But its a timer easily accessible with very little nms for it since it is just nbt on the entity

torn shuttle
#

oh endtimestamp has a pretty specific use

reef forge
#
            ItemStack holydiamond = new ItemStack(Material.DIAMOND);
            ItemMeta meta = holydiamond.getItemMeta();
            meta.setDisplayName("&b&lHoly Diamond");
            List<String> holylore = new ArrayList<>();
            holylore.add("&bThis Is The Holy Diamond And Can Do Mysterious Things.");
            meta.setLore(holylore);
            Player p = (Player) sender;
            p.getInventory().addItem(holydiamond);
            p.sendMessage(ChatColor.RED+"[NayaPlugin] "+ChatColor.AQUA+"You've Been Granted The Holy Diamond.");```
#

tryin to code something

#

this doesnt pass any errors but doesnt add name or lore to the item

wet breach
reef forge
#

um

eternal oxide
#

you didn't put meta back on item

hybrid spoke
wet breach
hybrid spoke
#

it always has one if its not air

reef forge
hybrid spoke
#

and if you can null it its stupid

wet breach
#

Just set the meta instead

hybrid spoke
reef forge
#

ok

ebon topaz
#

ok so how should i handle the anvil merging with my custom enchant

reef forge
#

lets try dat

ebon topaz
#

i got the inventoryclickevent and i check if its a anvil then how should i then check if its my custom enchant book and combine it will a tool?

wet breach
wet breach
reef forge
#

it worked

#

thanks

wet breach
#

Add a custom pdc thing to the item so you cab distinguish it from other items

#

Knew about it before it was created

#

Its called folia

remote swallow
#

they announced that like a month ago

#

i joined the test server

#

it only crashed twice

wet breach
#

I rather stick to my own stuff

remote swallow
#

hypixel boutta back port it

hybrid spoke
#

construct your own itemmeta or what LUL

wet breach
remote swallow
#

crash

#

@eternal night what happens if desync on folia

eternal night
#

There is no desync

wet breach
#

Well the better question is does it need to be synced

eternal night
#

No

wet breach
#

Because i dont see why it would need to be except every so often to main thread

eternal night
#

The regions are merged before it could ever come to a desync

ebon topaz
eternal night
#

No

wet breach
#

?pdc

wet breach
#

They just want to detect if its their book or not

#

When it comes to events

copper scaffold
#

Hey i have a development question, my question is how can i make my own api for my plugins and are there some good tutorials?

ebon topaz
#

what would a good namespace key be?

remote swallow
#

anything you can think of

ebon topaz
#

should i make it the enchantments name?

wet breach
#

If you want

ebon topaz
#

PersistentDataType? what should that be if im doing enchatments

quasi flint
#

isnt here an error

#

Where to send the player when they die? playerRespawnLocation ==: org.bukkit.Location world: world x: 103 y: 69 z: 131 pitch: 0.1 yaw: 0.1

#

missing the first :

#

or am i dumb

remote swallow
#

it does look like a missing colon

quasi flint
#

ye

tender shard
ebon topaz
tender shard
#

well I thought it's your own enchantments, you can make anything up for that

ebon topaz
#

oh ok

tender shard
#

e.g. if you'd add a soulbound enchantment, I'd call the id for that "soulbound"

ebon topaz
#

well its a excavate enchantment so do i just put excavate?

tender shard
ebon topaz
#

ok

#

thanks

#

so how does pdc then help me with anvil usage?

reef forge
#
        Player p = e.getPlayer();
        ItemStack holydiamond = new ItemStack(Material.DIAMOND);
        ItemMeta meta = holydiamond.getItemMeta();
        meta.setDisplayName("§b§lHoly Diamond");
        List<String> holylore = new ArrayList<>();
        holylore.add("§bThis Is The Holy Diamond And Can Do Mysterious Things.");
        meta.setLore(holylore);
        holydiamond.setItemMeta(meta);
        if (p.getItemInHand() == holydiamond) {
            p.sendMessage("Got Holy Diamond Bruh");```
#

whats wrong in this code

#

that it isnt working

desert loom
#

you are comparing ItemStack instances with == which is unlikely to work. I don't think that will work since an ItemStack added to an inventory is cloned so the instances will never be the same.

hybrid spoke
#

#isSimilar

#

also you dont really want to create the same itemstack and metadata over and over again

lost matrix
reef forge
desert loom
#

?pdc

torn shuttle
#

oh sure mojang go ahead and protect the core pathfinding creation method...

#

who would ever need that one huh

#

this is so lame, the only way I can set the distance the pathfinding will work for is by setting the follow range which will also mess with other stuff

rough drift
#

?paste When unloading a world, and deleting the files after, it seems as if it always tries to save raids.dat

undone axleBOT
rough drift
terse ore
#

How much work wouold you need to update the Holograms plugin to the latest versiuon?

wise mesa
#

Try it out

terse ore
wise mesa
#

Change the mc version in maven or whatever and see how many errors you get

terse ore
#

idk if making a python script to migrate the holograms config to an already updated plugin

#

or update holograms plugin

wise mesa
hybrid spoke
#

if its your own you may wanna try out the display entities

wise mesa
#

Ooooh yea definitely

ebon topaz
#

when i set the result slot of an anvil i cant get the item out of the result slot?

wise mesa
#

Those are so cool

terse ore
wise mesa
#

Can’t wait to do custom blocks but easily

terse ore
young knoll
#

DecentHolograms is already updated

terse ore
#

I would like colored portals

terse ore
young knoll
#

Display entities are still not practical for large scale custom blocks

young knoll
#

Sadly

rough drift
#
Bukkit.unloadWorld(world, false);

deleteRecursively(worldFolder); // Standard loop over files to delete them recursively
```This seems to try and save `raids.dat`, but crashes because it can't find the file?
grizzled oasis
#

How can i generate 6 numbers different between them, without crashing the server

wise mesa
young knoll
#

Yeah

#

Great for machines

#

Or furniture

wise mesa
grizzled oasis
# hazy parrot What

if i use for and while, the server just crash for a loop, i need to get 6 number unique between them

young knoll
#

What

wise mesa
#

What

hybrid spoke
#

What

wise mesa
young knoll
#

They just display a block

hazy parrot
torn shuttle
#

out of curiosity are custom events heavy when done at a scale?

young knoll
#

Like

#

With the event handler system?

torn shuttle
#

yeah

hazy parrot
#

They are not heavy

young knoll
#

No different than built in events

torn shuttle
#

I should be good to do, say

hybrid spoke
#

but if you spam them enough your pluginmanager will die

torn shuttle
#

100 events in a 2 minute period

#

right

young knoll
#

Sure

eternal oxide
#

just do getConfig().getList(path) then use List shuffle and take the first 6 items

torn shuttle
#

hm

young knoll
#

The server does that every tick probably

hybrid spoke
torn shuttle
#

it's tricky because technically i'm putting an event based on mob movement but I think I can keep the calls low

hazy parrot
#

Sending event is more or less iterating over observers list and triggering their onEvent

young knoll
#

With reflection

torn shuttle
#

alright well fingers crossed I guess

#

I really took this and ran with it

young knoll
#

I mean if you have a single redstone clock running the server is going to be firing off redstone events constantly

torn shuttle
#

yeah I think it should be fine, hopefully I don't mess it up and get it to fire 3000 times per tick

#

the pathfinding stuff is sort of fun when you start getting into it, shame I have to do it for both goals and brains x 8 right now

grizzled oasis
# hazy parrot That literally doesn't make sense, please explain better and show code

the code im currently using for generating and the server just crash

final Set<String> itemsKeys = plugin.getConfig().getConfigurationSection("items").getKeys(false);
                    List<Integer> itemsList = itemsKeys
                            .stream()
                            .filter(item -> plugin.getConfig().getString("items."+item+".rarity").equals("Common"))
                            .mapToInt(item->Integer.parseInt(item))
                            .boxed()
                            .collect(Collectors.toList());

                    for(int i = 0; i < 7;) {
                        int n = TimeUtils.generate(0, itemsList.size()-1);
                        if(Shop.items.contains(n)) continue;
                        Shop.items.add(n);
                        i++;
                    }
young knoll
#

Just

#

Make it into a list

#

Shuffle it

#

And then pull the first X items

grizzled oasis
#

what you mean? and its the same way for generating a number, then will be a duplicated between them

young knoll
#

No they won’t

grizzled oasis
# young knoll And then pull the first X items
final Set<String> itemsKeys = plugin.getConfig().getConfigurationSection("items").getKeys(false);
            List<Integer> itemsList = itemsKeys
                    .stream()
                    .filter(item -> plugin.getConfig().getString("items."+item+".rarity").equals("Common"))
                    .mapToInt(item->Integer.parseInt(item))
                    .boxed()
                    .collect(Collectors.toList());

            List<Integer> number = new ArrayList<>();

            Collections.shuffle(itemsList);

            for(int i = 0; i < 7; i++) {
                number.add(itemsList.get(i));
            }

so in this way?

wise mesa
young knoll
#

Not at the time

#

Today you could probably do something with consumers

torn shuttle
#

what a beaut

#

somehow that is about as long as the actual goals that it adds

tardy delta
#

💀

torn shuttle
#

that's not even fair, the length of the goals is smth like 15 lines outside of registering values

tardy delta
#

me with the minestom sheep

young knoll
#

Woo

wise mesa
# young knoll Not at the time

Could you maybe use reflection to create an instance of an interface that just calls your function inside of your listener

#

Idk if that makes sense

eternal night
#

I mean, spigot can make it faster

#

paper already does

worldly ingot
#

No one's PR'd an improvement PES2_BlushShrug

young knoll
#

Yeah choco

#

Get in that

worldly ingot
#

I've got my hands full lol

young knoll
#

:p

#

I feel if the event api was made today consumers would be the way

worldly ingot
#

Probably not. Consumers force you to only listen for one event

eternal night
#

choco do you wannaa comment on my PDC escape pr 😏

worldly ingot
#

ngl, way over my head

#

Bukkit's serialization stuff is well too complicated for me

eternal night
#

idk, its just a design decision rn

young knoll
#

I mean you can only listen to one event per method anyway

eternal night
#

I mean paper just constructs classes at runtime with ASM magic

#

could also use method handles

#

those are pretty damn speedy

worldly ingot
#

I thought about trying my hand at method handles at one point, yeah

#

Event listeners were the first thing that came to mind when I learned of their introduction

young knoll
#

Now choco can have 11 open PRs

round finch
#

?paste

undone axleBOT
hushed pawn
#

How to create a list where all elements have their own serial number (which is assigned at the time of their creation and never changes)
To be able to add an object either to the first of the empty fields or to its end (empty fields have to stay after i deleting some objects from it)

round finch
#

i can't grab the item

#

what the problem :-:

#

no error in console

fluid river
#

try it

round finch
#

alright i will give it ago

tepid oar
#

I've run java -jar BuildTools.jar --rev 1.19.4 --remapped, but how do I add this to my development environment?

young knoll
#

?nms

round finch
#

nothing happen

#

i'm really considering just saying skrew it and just make a normal gui

wise mesa
#

I’m a c# guy so I don’t really know what it’s like I. Java to do that kinda stuff

#

No reflection.emit

eternal night
#

Well yea, its possible and already done /shrug

round finch
#

😞 dam anvil issue

hybrid spoke
tepid oar
# young knoll ?nms

I've followed this guide, but i'm getting Could not find artifact org.spigotmc:spigot:pom:1.19.4-R0.1-SNAPSHOT in spigotmc-repo

quaint mantle
#

take out pom:

round finch
#

sadge

wise mesa
night verge
#

I'm making a 3D model with blockbench, and I found out if the rotation angles are not multiples of 22.5, the textures cannot display correctly.
Is there any way to remove this restriction?

pure dagger
#

use item.getType() == or item.getType().equals() ?

tender shard
#

==

fluid river
#

enum

elder quail
#

whats problem with this plugin.yml

main: org.bedwars.plugin.MotherClass
name: BedWars
version: '1.0'
description: Bedwars plugin by melon_
load: STARTUP
author: melon_
prefix: bedwars
commands:
  bedwars:
    aliases:
    - bw
    usage: /bedwars {args}```
#

always havin errors with plugin.yml

#
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:154) ~[spigot.jar:git-Spigot-21fe707-741a1bd]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:133) [spigot.jar:git-Spigot-21fe707-741a1bd]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [spigot.jar:git-Spigot-21fe707-741a1bd]
    at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198) [spigot.jar:git-Spigot-21fe707-741a1bd]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-21fe707-741a1bd]
    at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
    ... 6 more```
#

and note i have some apis

undone axleBOT
elder quail
#

librarys*

#

ok

next plume
#

Jar does not contain plugin.yml

elder quail
#

i created it on src

next plume
#

Open the .jar file with WinRAR and check.

chrome beacon
#

It should be in the resources folder if you're using maven

elder quail
#

k

#

its on src

#

so i have to create resources

tender shard
#

do you even use maven?

#

how are you building your .jar?

elder quail
tender shard
#

then it belongs into src/main/resources/

elder quail
tender shard
#

but 20 seconds ago you said that you use maven

elder quail
#

is 17

#

but not resources folder exists

tender shard
#
  1. put your plugin.yml into src/main/resources. create that directory if it doesnt exist (which means you deleted it yourself earlier)
  2. run mvn pacakage to compile
elder quail
#

k

#

fixed

tender shard
#

cancel EntityTeleportEvent

#

oh wait, it doesnt have a TeleportCause

#

that's weird

#

anyway you could check whether the EntityTeleportEvent's entity is not a player, and if the world is a different world

icy beacon
#

i love getting these errors especially when my compile time is 90 fucking seconds

#

because i totally have nothing better to do than recompile

echo basalt
#

lovely

#

I used to have 2 minute compile times

#

then I just got good and bought a proper pc

#

now it's around 800ms

icy beacon
#

my pc does this in like 25 seconds

#

but i'm traveling with my laptop

#

at least my hosting is somewhat competent and launches in about 20 seconds

#

the previous one took over a minute

#

jeez i need money for a better hosting

#

fuck

#

looks good to me

echo basalt
#

EntityPortalEvent

icy beacon
#

you could also shrink the code by putting the final condition in the canceller but that will decrease readability

echo basalt
#

it's small enough

icy beacon
#

yeah

echo basalt
#

I wonder if there's a way to make event handles even more reactive

#

I kinda hate seeing these code blocks

icy beacon
#

like what?

echo basalt
#

I really like functional programming but we get to a point where we actually need to use our abstractions and don't know where to put it

#

maybe like a

#

subscribe(PlayerJoinEvent.class, (event) -> {
...
});

serene sigil
#

hi, whevever i use maven package, i always get other jars in my plugins folder, how do i make it so its the same as build artifact and only makes one jar?

echo basalt
#

but honestly I'm writing my own scripting language to easily make new features

icy beacon
serene sigil
icy beacon
#

i mean that could be implemented

#

also put priority there somehow

echo basalt
#

priority could be an extra arg

#

registerEvent has like 23 params

#

more like 7

icy beacon
#

same thing

echo basalt
#

also you can skip that stuff

icy beacon
#

wait why does it take a listener class and then something else to listen

#

what

#

what the fuck

echo basalt
#

registerEvent(EntityPortalEvent.class, new Listener(){}, NORMAL, (listener, event) -> {
...
}, plugin)

icy beacon
#

could be more concise i reckon

echo basalt
#

but issa pain

icy beacon
#

yes

#

raw gui bukkit api

#

if you like having 9 long things in your rectum

icy beacon
#

i can't help you unfortunately but i think it'd make it easier for others if you sent your pom

serene sigil
tender shard
eternal needle
#

?paste

undone axleBOT
serene sigil
#

.jars

tender shard
# serene sigil

is that your full pom, or did you omit any plugins from that?

serene sigil
tender shard
#

I don't believe that that's your full pom. There isn't even a maven-shade-plugin declared, yet you use dependencies like JDA etc

serene sigil
#

no, i replaced that with what u sent me

tender shard
#

i dont get it, what did you replace? o0

#

why is there no maven-shade-plugin in the pom you sent?

serene sigil
#

again, i replaced it with what u sent me yesterday

icy beacon
#

better yet, why do you only want one jar and not 3, why does it bother you

icy beacon
#

you should've added

tender shard
# serene sigil .

it doesnt tell you to "replace" anything, all it says is to add the <outputDirectory> to the maven-jar-plugin

serene sigil
#

oh

tender shard
#

I never told you to remove all the other plugins

serene sigil
#

alright...

#

where cna i find the shade plugin?

tender shard
#

on maven central