#help-development

1 messages · Page 1541 of 1

eternal oxide
#

split will always return an array so even if there is no extension the name will be in [0]

wraith rapids
#

except when it won't

#

filenames can have several full stops, lest you forget

eternal oxide
#

example?

wraith rapids
#

my.file.ext

eternal oxide
#

true

digital plinth
#

hmm is there a way to like give a player ghost potion effects

#

like the potion effect icon shows up but the effect isnt there

south onyx
#

I want to make it so that when i click on hoverable text, i can make a new instance of a class

wraith rapids
#

no, potion effect icons are clientside

#

and are bound to the effects a player has

proud basin
#

I could also use replaceAll

wraith rapids
#

i can't think of a simple and easy regex off the top of my head that'd handle all situations

#

you'd need negative lookaheads and shit

quartz goblet
#

how do I use the paste bot to share an error

wraith rapids
#

(.*)(\\.[^.]*)?^ might work

proud basin
#

?paste

undone axleBOT
quartz goblet
#

thanks

wraith rapids
#

although that matches both the filename and the extension

#

the extension, if present, will be in group 2

#

the filename will be in group 1

quartz goblet
#

im getting this I think when I set velocity. Also subsequently I get "cannot send chat message" when I execute a command or chat. And also the player that causes this error is invisible to others on the serevr https://paste.md-5.net/zafihuveve.apache

wraith rapids
#

so str.replaceAll("(.*)(\\.[^.]*)?^", "$1") should maybe do the trick

quartz goblet
wraith rapids
#

cannot send chat message usually means you have chat turned off in multiplayer settings

quartz goblet
#

i can send from other players

wraith rapids
#

yeah i haven't actually looked at anything you've said or sent but that's the usual cause of the message

quartz goblet
#

and prior to running snowball() I can chat

wraith rapids
#

mildly disconcerting

quartz goblet
#

????????????????

wraith rapids
#

that will still match the entire filename

#

including the extension

proud basin
#

mhm

#

that's fine

quartz goblet
#

yeah does anyone know about this??? where to start lookinghttps://paste.md-5.net/zafihuveve.apache

eternal oxide
#

needs full error

earnest sonnet
# eternal oxide needs full error

isn't that helpful 28.06 15:00:50 [Server] INFO at net.minecraft.server.v1_16_R3.ChunkMapDistance.b(ChunkMapDistance.java:244) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
?

eternal oxide
#

no

#

there should be a section after that stack that has a caused by and more stack trace

#

if not, your server is screwed

proud basin
#

How come this isn't returning true even though it does equal the same ```java
if (uuid.equals(playerKiller.getName().replaceAll("\.[^.]*$", ""))) {

earnest sonnet
quartz goblet
eternal oxide
proud basin
#

How so?

earnest sonnet
eternal oxide
#

a UUID is a UUID a name is a string

earnest sonnet
#

or a name at all, it's an ID

proud basin
#

playerKiller.getName returns their uuid

eternal oxide
#

no

wraith rapids
#

why would the killer's name have a file extension

earnest sonnet
proud basin
#

are you guys slow

wraith rapids
#

your methods are named like shit

eternal oxide
#

Yep were slow

proud basin
#

File playerKiller = new File("plugins/Core/PlayerDatabase", File.separator + uuid + ".yml");

#

it's the god damn file name

eternal oxide
#

getName obviously returns a planetary orbit formula. How silly of me.

wraith rapids
#

why are you even comparing that

earnest sonnet
#

naming convention my dude

quaint mantle
#

hello, how could i get the location from inside an ender portal? i can't get the clickedblock than add numbers to the x, y, z

wraith rapids
#

you are comparing the name of the file you just created based on the uuid to the uuid you based it on after removing the text you appended to the uuid from the filename

#

literally fucking what

proud basin
#

Yea makes sense

wraith rapids
#

just store the uuid?

proud basin
#

no

#

well I guess "yes"

wraith rapids
#

what are you even trying to do

proud basin
#

but idk if counts as storing if its the file name

wraith rapids
#

also don't hardcode the plugins directory

proud basin
#

Im trying to check if one of the file names equal to the player uuid

wraith rapids
#

the plugins directory isn't necessarily at /plugins

#

and don't hardcode / as file separator

proud basin
#

works though

wraith rapids
#

on this particular system, in this particular case

#

even a broken clock is right twice a day

eternal oxide
#

unless its a digital 🙂

earnest sonnet
wraith rapids
#

i'm a pretty correct guy

proud basin
#

k

#

but anyways

quaint mantle
#

cool

proud basin
#

It should be true still

cyan bluff
#

yep thanks i realized that one version was depricated while another wasnt

quaint mantle
#

Can you apply a filter to the console logger on 1.8?

wraith rapids
#

@proud basin can you

#

come now, nose and chin man

#

stand up for your fellow plebians

#

it's your time to shine

proud basin
#

uh

#

yes?

eternal oxide
#

1.8 dude

earnest sonnet
eternal oxide
proud basin
#

haha I was right

#

screw you Elgar

earnest sonnet
#

❓ ❓

wraith rapids
#

more at 6

quaint mantle
#

Filtering out certain stuff from the logger, not sure how else to explain it

eternal oxide
#

things of your own plugin or all?

quaint mantle
#

Apperantly you can do getLogger().addFilter on newer versions but apparently it's not a thing in 1.8

wraith rapids
#

see what your server uses for the logging backend and see if it supports filters

quaint mantle
eternal oxide
#

probbaly not, l4j is the current logger

proud basin
#

isn't there a console message event?

wraith rapids
#

or slf4j on paper iirc

eternal oxide
#

You could try getting the main logger and attach your own handler. You may be able to filter then

wraith rapids
#

you may need to cast to the underlying implementation

proud basin
#

so Skull head is there another reason why it returns false?

digital plinth
#

so annoying

wraith rapids
#

imagine recognizing historical figures

#

i don't know, print out the replaceall'd string and the uuid you're comparing it to

proud basin
#

I did it's the same

wraith rapids
#

also if uuid is not a String, call toString on it

#

as an UUID will never be equal to a String

proud basin
#

oh is it not?

wraith rapids
#

i don't know if it is

#

you haven't shown your declaration of the uuid variable i don't think

eternal oxide
#

👀

proud basin
#

ah yes

#

you are correct

wraith rapids
#

i am the most correct man

proud basin
#

needed to call toString

wraith rapids
#

especially in expressing my political beliefs

proud basin
wraith rapids
#

specifically about minorities

quaint mantle
#

Think I got it.

#

Yeah I was trying to apply the wrong kind of filter

proud basin
#

You're welcome

wraith rapids
#

good job

#

you 1.8 plebians need to take good care of one another

quaint mantle
#

haha lmao

#

yeah

river spear
#

How can I give a command to a player without sending

earnest sonnet
proud basin
earnest sonnet
proud basin
#

no like full send

#

actually idk

#

prob

river spear
#

I don't know what that means, but I've seen many times on servers that the player will automatically give the player an order

wraith rapids
#

based on a complete lack of communication skills, he's probably a 1.8 user

#

probably from middle or south america

earnest sonnet
#

duuuuuude xD

earnest sonnet
river spear
#

E.g. you press a button and your chat opens and it is entered automatically /warp but how?

dusk flicker
#

what

#

Like tab completion?

wraith rapids
#

like

#

even if you somehow managed to get across whatever it is that you want

#

it will probably be physically impossible for anyone here to help you achieve it

river spear
#

No, not something I mean like you would click on a text in the chat and a command will be written

wraith rapids
#

use the suggest_command action for clickEvent

river spear
#

But I don't want a ClickEvent. I just liked PlayerPerfomCommand without it being sent

wraith rapids
#

you can't make things clickable without ClickEvent

river spear
#

So what I mean is that if you press a custom gui that something is entered in the chat, e.g. UUid of a player and then could copy it

granite stirrup
#

i think you use a ClickEvent still even then

#

or is it something else

#

InventoryClickEvent

#

for guis

#

but tbh i dont get what ur saying

earnest sonnet
#

Not copying in the clipboard, but clicking in the chat and doing manipulating it

granite stirrup
reef wind
#

Help would be appreciated, i cant run my plugin because of this error.

wraith rapids
#

can't see replies

reef wind
opal juniper
#

NNYa

eternal oxide
proud basin
#

Why do I get a null here when I do iPlayer.setKills((int) playerData.get("kills.amount"));

reef wind
opal juniper
eternal oxide
granite stirrup
#

are you building with ant

proud basin
#

It's not because when I print it out its fine

eternal oxide
#

I guess it could be

granite stirrup
#

if so change it to src.main.java.me.prouddesk.proudmix.main.ProudMix

#

if ur using ant

proud basin
opal juniper
#

why dont you just get the int instead of casting

proud basin
#

I don't think it matters

granite stirrup
#

and show the file structure

opal juniper
#

A "best practice" if you get me

proud basin
#

is that better iPlayer.setKills(playerData.getInt("kills.amount"));

opal juniper
#

Yeah - im not sure what isn't working about it

reef wind
granite stirrup
#

lol

eternal oxide
# reef wind

um Caused by: java.lang.ClassNotFoundException: me.prouddesk.proudmix.ProudMix

granite stirrup
#

we dont need the source code lool

#

i just want to look whats inside the jar

proud basin
granite stirrup
#

@opal juniper dont help jtx

#

he uses 1.8

opal juniper
#

lmao

proud basin
#

that has nothing to do with 1.8

granite stirrup
#

yes it does

opal juniper
#

that is not 1.8 so idrm

proud basin
#

How so?

granite stirrup
#

if your using 1.8 it probs is 1.8

#

1.8 is like old

proud basin
#

Im literally working with yml

granite stirrup
#

but ur using YamlConfiguration?

#

thats a spigot/bukkit class

proud basin
#

yes

#

but that's also in all the other versions

granite stirrup
#

well yeah but its probs different in newer versions

proud basin
#

Nope its the same

granite stirrup
#

i dont know just dont use 1.8

granite stirrup
proud basin
#

omg 🙄

granite stirrup
#

anyway

#

just dont use 1.8

#

there :)

granite stirrup
reef wind
#

wont let me send the damn screenshot

granite stirrup
#

yeah but he uses 1.8 and im sure he is on 1.8 rn

opal juniper
proud basin
#

I believe I did this is correct ```java
public void setKills(int kills) {
this.kills = kills;
}

granite stirrup
reef wind
#

finally

dusk flicker
#

What is that decompiler or what

#

No logos :p

granite stirrup
proud basin
#

Just because you are jealous of people using 1.8 doesn't mean you have to hate on it

reef wind
granite stirrup
#

its just outdated

dusk flicker
#

Ah gotcha

granite stirrup
#

why would i be jealous lol

proud basin
#

You tell me

granite stirrup
granite stirrup
eternal oxide
# reef wind

it looks like you may be including things you shouldn't.

#

?paste your pom

undone axleBOT
reef wind
proud basin
#

just keep saying your not 🙂. But we know you are

granite stirrup
wraith rapids
#

was afk, didn't read anything

#

can i get a summary

reef wind
#

it is IntelliJ tho?

granite stirrup
eternal oxide
#

paste your pom

reef wind
#

?paste

undone axleBOT
reef wind
proud basin
wraith rapids
#

what is this

#

and it is not a skull

#

you blind fuck

proud basin
#

lmao

dusk flicker
#

I'm so confused what's happening now

granite stirrup
#

yeah its clearly a really white person with a Santa hat and sunglasses and a moustache

proud basin
#

It's a setter

dusk flicker
#

Oh I see

granite stirrup
proud basin
#

no... I put the save under it

#

woopsy

granite stirrup
#

i think you have to save it to access it lol

eternal oxide
unreal quartz
#

does anybody know the name for the fancy sound which plays when you complete one of those fancy advancements

eternal oxide
#

@reef wind rename it to core or something

proud basin
reef wind
#

aight

granite stirrup
#

im not helping a 1.8 user :)

eternal oxide
#

You could also add a provided tag to the annotations depoendency as its not needed in the jar

#

or compile tag

proud basin
#

bruh

#

I literally printed it out in the if statement and its fine

#

it has to be something with iPlayer.setKills()

unreal quartz
opal juniper
#

Yeah sorry i forgot that

wraith rapids
#

TOAST

dusk flicker
#

Ah yes, TOAST.

proud basin
#
    private int kills;
    private int deaths;

    public IPlayer() {
        this.kills = 0;
        this.deaths = 0;
    }

    public int getKills() {
        return kills;
    }

    public void setKills(int kills) {
        this.kills = kills;
    }``` I don't see anything wrong with this
reef wind
#

mow when i renamed it to core and built it main shows up?

dusk flicker
#

The best creation to ever exist

#

Why do people always name stuff like IPlayer

proud basin
#

I don't get what could be the issue

cinder timber
#

whats happening with it @proud basin

proud basin
#

its giving me an nullpointer when I do setKills

wraith rapids
#

I is generally prepended to interfaces when you can't think of better names

#

Player extends APlayer implements IPlayer

#

you're not "supposed" to do it and it's supposedly a shit naming convention

proud basin
#

Player extends ASkullHead implements ISkullHead

wraith rapids
#

but it's pretty common and not without its advantages

earnest sonnet
granite stirrup
wraith rapids
#

well yes but the thing is that having multiple classes with the same name is annoying

reef wind
#

renamed the file and renamed it back and now it works..

wraith rapids
#

so you don't want to have Player implements some.package.Player

wraith rapids
#

you need a different name for each

#

and then you run into the issue of what the fuck to call them

proud basin
wraith rapids
#

SimplePlayer extends AbstractPlayer implements Player

granite stirrup
#

lol

wraith rapids
#

but what if the player impl isn't actually simple

proud basin
#

that's not even the issue

wraith rapids
#

at some point you run out of effort and just go fuck it and and call the interface IPlayer and the class Player

proud basin
#

nny are you brain dead?

wraith rapids
#

i haven't been reading anything you've been saying

#

do you have a question

wraith rapids
#

i still can't see replies

proud basin
#

Why do I get a null here when I do iPlayer.setKills(playerData.getInt("kills.amount"));

wraith rapids
#

well, I would assume that something is null

quiet ice
#

why isn't java 15+ an option here?

wraith rapids
#

because he's on 1.8

quiet ice
#

There are spigot forks that support java 15+

wraith rapids
#

probably doesn't even fucking run on anything past java 1.9

proud basin
#

well playerData.getInt(blaballa) isn't null

#

yea

quiet ice
#

then iPlayer is null

wraith rapids
#

then pretty much the only option is that iPlayer is null

proud basin
#

that's what I was thinking

#

but I don't get how it could be

wraith rapids
#

protip: put each deference on its own line

#

iplayer
.setkills(playerdata
.getInt("kills.amount"))

#

with better formatting, obviously

young knoll
#

pro-er tip: update

quiet ice
#

There are three variables that can be null:

  • iPlayer
  • playerdata
  • (int) playerData.getInt("kills.amount")
#

Beware the implicit int cast

proud basin
#

This is my IPlayer class ```java

    private int kills;
    private int deaths;

    public IPlayer() {
        this.kills = 0;
        this.deaths = 0;
    }

    public int getKills() {
        return kills;
    }

    public void setKills(int kills) {
        this.kills = kills;
    }
frosty tinsel
young knoll
#

Where do you instantiate it

quiet ice
#

use Java 15 ffs or use yourself as a human debugger; NPEs are the easiest things to trace

young knoll
proud basin
#

wrong class

eternal oxide
#

As Coll said, where do your instantiate it

#

as the only thing that can be null is iPlayer

quiet ice
proud basin
#
@EventHandler
    public void onPlayerStatisticsUpdate(PlayerDeathEvent e) {
        try {
            String killed = e.getEntity().getName();
            String killer = e.getEntity().getKiller().getName();
            Player gainkills = Bukkit.getPlayer(killer);
            Player gaindeaths = Bukkit.getPlayer(killed);
            UUID uuid = gainkills.getUniqueId();
            UUID uuid0 = gaindeaths.getUniqueId();


            File playerKiller = new File("plugins/Core/PlayerDatabase", File.separator + uuid + ".yml");
            if (!playerKiller.exists()) {
                playerKiller.createNewFile();
            }

            FileConfiguration playerData = YamlConfiguration.loadConfiguration(playerKiller);
            if (playerData.get("kills.amount") == null) {
                playerData.set("kills.amount", 1);
            } else {
                int kill = playerData.getInt("kills.amount") + 1;
                playerData.set("kills.amount", kill);
            }


            playerData.save(playerKiller);
            if (uuid.toString().equals(playerKiller.getName().replaceAll("\\.[^.]*$", ""))) {
                System.out.println(playerData.getInt("kills.amount"));
                iPlayer.setKills(playerData.getInt("kills.amount"));
            }
            System.out.println(iPlayer.getKills());
    }
}
wraith rapids
#

where is iPlayer declared

proud basin
#

above that

young knoll
#

That's what we asked to see

wraith rapids
#

show

young knoll
#

Also oh no loading files in an event

proud basin
#

private IPlayer iPlayer;

young knoll
#

That is null

wraith rapids
#

player death event is mildly tolerable as it doesn't fire that super often but yeah don't do file IO in events

#

you declare a field but never assign anything in it

#

it has no value

#

it is null

proud basin
#

woopsy

wraith rapids
#

learn 2 java scrub

gaunt hatch
#

You should load the file on player login via a async thread. So the IO does not freeze the main thread. Then store it in memory. Then save it on player quit via a async thread.

#

That way above you are loading and saving on the death event that is going to destory your TPS, and maybe even crash the server.

proud basin
#

The only way I could do it is if I did private IPlayer iPlayer = new IPlayer();

young knoll
#

Correct

#

Or declare it somewhere else, before you try and access it

vital ridge
#

is there any tutorials out the to create mysql database without localhost?

#

So basically no xampp or smthing like that needed

#

like other plugins do

quiet ice
#

what does the "without localhost" part mean?

vital ridge
#

Okay basically my current database wont run without xampp

#

I mean the plugin wont enable

#

And I've only followed tutorials where they create a database with localhost

#

so im kinda lost

young knoll
#

I mean you have to host the database somewhere

proud basin
#

It's still null

quiet ice
#

ono

proud basin
#

IPlayer iPlayer = Core.getInstance().getPlayerManager().getPlayer(e.getEntity().getUniqueId()); still null

quiet ice
#

What do you mean with create? Like, setup the database server or just creating the database itself (not the database server)

vital ridge
#

Like every other plugin does

#

My database requires xampp currently

quiet ice
#

well, most of the time at least

vital ridge
#

database eserver

#

i think what is mostly done

#

Id just need a database

#

what runs fine

#

without no xampp

#

or some other bs

quiet ice
#

yeah, that confuses me a bit.
Many plugins use sqlite if that is what you want

earnest sonnet
#

MySQL, SQLlite, mongodb, file systems all of them works

quiet ice
#

Honestly, use flatfile, it has absolutely no setup pain

vital ridge
#

Ill just use SQLite

#

The thing is Ill need to change my code

#

With the connection part

#

Or I don't idk lol, i found some random tutorial what seems to create a database without xampp so ill see wassup

#

ty

mortal hare
#

is there any way to get contents of inventory just like its show on inventory itself

#

now i get hotbar in the first slots

#

and content inventory in the back of array

frosty tinsel
# vital ridge database eserver

Database = file, which stores some data.
Database server = software, which handles the saving to that file.
XAMPP = Program to easily setup and run a database server.

vital ridge
#

But XAMPP is only used locally mostly right?

mortal hare
#

ofc i can switch it away

mortal hare
#

its for dev purposes only

vital ridge
#

Mkay

earnest sonnet
#

Yeeep

mortal hare
#

its a suite of servers

#

which you can use to test your code

#

its like Java Runtime environment

#

you cant run the code

vital ridge
#

But like do I have to change my code alot if i switch to mysql ?

earnest sonnet
#

But it's still going to work in the production server like it works in xampp

mortal hare
#

until you have either the server or the LAMP or XAMPP suite of servers

young knoll
#

MySQL and SQLite are fairly similar

earnest sonnet
#

With*

frosty tinsel
young knoll
#

But there are some differences

mortal hare
#

MySQL to MariaDB almost no difference in SQL syntax, i prefer mariadb

#

its faster

#

Microsoft SQL server is a different case here

ivory sleet
#

I mean MariaDB is basically MySQL

mortal hare
#

also json based SQL servers

#

i don't remember the name

frosty tinsel
#

You shouldn't need to change anything, when going from mysql to mariadb

mortal hare
ivory sleet
#

mongo

mortal hare
#

^^

ivory sleet
#

yeah dovidas

mortal hare
#

but 99% you're fine

#

for simple queries

frosty tinsel
#

Only difference I noticed with mariadb and mysql, is that they hadle users differently

mortal hare
#

i mean you can make one universal transpiler which supports most of the SQL syntax, but that's way too much work

#

and its inefficient

frosty tinsel
#

Some kind of wrapper

frosty tinsel
#

If you want to publish your plugin

crude axle
#

Also, did something change with 1.17 regarding plugins written in Kotlin?

frosty tinsel
#

And want it to be great

#

Than I would support both server and flat file

digital plinth
#

can i see a weapon's attack dmg from item metas

frosty tinsel
#

Kotlin has nothing to do with spigot

mortal hare
#

about couple months ago i made YAML, SQLITE, JSON, MYSQL, MARIADB wrapper which used node system, just like snakeyaml to save values

#

but that was not that efficient

#

compared to hardcoded systems of data storage

frosty tinsel
#

Btw, what is mongodb for?

#

Is it good?

crude axle
#

Cause now I got this issue where a class loader is my plugin is unable to find a Kotlin class when trying to initialize a BukkitRunnable object, even though Kotlin classes are present in the JAR

ivory sleet
#

Unstructured data like logs

mortal hare
#

its SQL but stored in json

ivory sleet
#

It’s fast

frosty tinsel
ivory sleet
#

I don’t know what ghost potion effect is

crude axle
#

And that stuff happens on 1.17

frosty tinsel
#

Only ?

crude axle
#

Yes

frosty tinsel
#

When you set the repository to 1.16 is it ok then?

crude axle
#

Tried it on earlier versions of MC, and it was nonexistent

ivory sleet
#

Do u compile to jvm 16 bytecode ?

crude axle
#

Yes I do

#

Both 1.16.5 and 1.17 servers run java 16

ivory sleet
#

Also can you send the error

crude axle
#

but I only have issues on 1.17

frosty tinsel
#

Try on change it on this project specifically

crude axle
ivory sleet
#

?paste

undone axleBOT
mortal hare
#

is there any way to get contents of inventory just like its show on inventory itself
[12:17 AM]
now i get hotbar in the first slots
[12:17 AM]
and content inventory in the back of array

ivory sleet
#

On phone heh

mortal hare
#

anyone?

ivory sleet
#

isn’t that just a normal Inventory?

mortal hare
#

i mean

#

hotbar

#

is at the top of array

#

i want to be in the back

#

now i need to copy the array

#

:/

ivory sleet
#

Oh

frosty tinsel
mortal hare
#

everything is fine but the hotbar isnt

ivory sleet
#

Might have to manually sort

mortal hare
#

So basically .getContents() returns this:
[HOTBAR],
[INVENTORY],

instead of
[INVENTORY],
[HOTBAR]
and i was thinking is there a way to get it like this without sorting anything, like inventory view or smth idk

ivory sleet
#

Nope I don’t think there is

mortal hare
#

that's annoying af

#

now i need to make two for loops instead of one 😠

ivory sleet
#

Maybe you could flatten them out

mortal hare
#

wdym

ivory sleet
#

Try only using 1 loop

mortal hare
#

wdym by "flatting them out"

digital plinth
#

is it possible to check and see if a player is holding a weapon?

frosty tinsel
#

What about arrays.copyOfRange

digital plinth
#

other then putting it in a switch loop

mortal hare
digital plinth
frosty tinsel
frosty tinsel
granite stirrup
#

lol

digital plinth
mortal hare
#

it seems it is

digital plinth
#

it returns the item

mortal hare
#

🤔

digital plinth
#

doesnt tell me wether its a weapon or not

tall ridge
#

what is player.getEquipment?

frosty tinsel
ivory sleet
frosty tinsel
digital plinth
#

.getEquipMent dont return weapons only

ivory sleet
#

Yeah you can copy it but that wont help

frosty tinsel
digital plinth
#

tag?

frosty tinsel
digital plinth
#

okay thx

#

btw its not possible to get the attack dmg of an item server-side correct?

#

since no packet is sent and stuff

tall ridge
#

listen for a damage event

digital plinth
#

uhh that is not an option for me unfortunatly

frosty tinsel
digital plinth
#

so when player is under the affect of weakness, they cant dmagae anything with their fist, is there a way to make their fist deal half a heart even under weakness?

frosty tinsel
#

I thought it will have at least SWORDS or something

odd sentinel
#

so I'm working on logic to calculate prices for items based on their recipes but I've stumbled on a bizarre issue where the results of ShapedRecipe's ingredients map can't be passed to Bukkit.getRecipesFor - 1.16.5. I am on paper so maybe it's not spigot but has anyone seen that before https://paste.gg/p/anonymous/dfde59b08a254e0a9781318acf815468

mortal hare
#

Lol

#

So trueeeee

wraith rapids
#

what item is this happening for in particular

#

it would also probably be better to clone the itemstack rather than just the material, as custom recipes can specify exact ingredients with lore and whatever

digital plinth
#

hmm is there any other weapon other than swords, axes, shovels, hoes, pickaxes and tridents

wraith rapids
#

also, you probably don't want to sum up all of the ingredient values from all of the recipes

#

but rather take an average

#

consider an item that has 5 different recipes

odd sentinel
#

I'm not it's just quick pseudo code

wraith rapids
#

at any rate, the method call works just fine for me; the expected list of items is returned

odd sentinel
#

so for example STICK, when it looks up OAK_PLANKS the recipes list size is 0

wraith rapids
#

is this an issue with a specific item or all items

granite stirrup
wraith rapids
#

does this only happen on the second call of recursion?

#

what are the exact specifics of the issue

young knoll
#

Most items do the same damage as a fist

granite stirrup
#

yeah

quartz goblet
#

?paste

undone axleBOT
odd sentinel
#

yes the second call but some items work just fine

granite stirrup
#

but isnt that mean its still kinda a weapon

digital plinth
#

but they only do half a heart

odd sentinel
#

I just happened to notice STICK never made it through to the output

digital plinth
#

is there any item that do more than half a heart

quartz goblet
hybrid spoke
digital plinth
#

except for swords, axes, shovels, hoes, pickaxes and tridents

wraith rapids
#

it works fine individually for each item i've tested for me

digital plinth
#

and not ranged

quartz goblet
#

thats the entire thing

wraith rapids
#

including stick and oak planks

odd sentinel
#

ok, I guess it could be a paper issue then

wraith rapids
#

i'm on paper

odd sentinel
#

oh

#

hm

wraith rapids
#

i wouldn't use splögget, I'm not gay

#

it could perhaps be something pertaining to the recursive nature of your code

wraith rapids
#

try iterating over each material and getting their ingredients, without recursion

digital plinth
#

ChunkMapDistance.java:244

wraith rapids
#

see if sticks or oak planks or whatever still return no ingredients

quartz goblet
#

sorry im new, how do I do that?

odd sentinel
digital plinth
wraith rapids
#

yes

hybrid spoke
quartz goblet
#

thats not code I wrote

digital plinth
granite stirrup
#
lol
wraith rapids
#

i use it for an automatic workbench machine I implemented in slimefun

quartz goblet
#

none of that is code that I wrote

hybrid spoke
#

net.minecraft.server.v1_16_R3.ChunkMapDistance.

digital plinth
#

what are you working on?

hybrid spoke
#

@quartz goblet is this the full error?

wraith rapids
#

works fine, aside from slimefun being trash

quartz goblet
digital plinth
hybrid spoke
#

there have to be more

granite stirrup
#

there has to be more yeah

digital plinth
#

true

quartz goblet
#

yes. And im not using nms, ill show the code im executing when this happns

#

ill send my console log

quartz goblet
#

?paste

undone axleBOT
granite stirrup
#

why spigot 1.16.4

#

why not 1.16.5

quartz goblet
#

I believe its either of these. Had a similar error with damage event in another case. Its not in the other custom function I call because theres other ways I call that function and it works perfectly. Also in running the createPrison(), it runs in its entirety and I can see it in game

quartz goblet
digital plinth
#

did you make a plugin yourself

quartz goblet
#

yes

granite stirrup
#

it might be VoidGenerator

digital plinth
#

i dont see the log from the plugin :/

digital plinth
granite stirrup
#

no

#

i think its VoidGenerator tho

#

since it messes with world stuff

hybrid spoke
#

you might wanna delete that now since there is your ip inside

quartz goblet
#

lol thanks

hybrid spoke
#

bot net is starting for the ddos

#

what code are you running which could cause that npe?

granite stirrup
#

i think its VoidGenerator

#

lol

digital plinth
quartz goblet
odd sentinel
hybrid spoke
quartz goblet
#

ill try removing void gen

odd sentinel
#

I can reproduce it with just that code

#
[15:04:22 INFO]: Seeking recipes for STICK 2
[15:04:22 INFO]: Seeking recipes for OAK_PLANKS 0
[15:04:22 INFO]: Seeking recipes for OAK_PLANKS 0
[15:04:22 INFO]: Seeking recipes for BAMBOO 0
[15:04:22 INFO]: Seeking recipes for BAMBOO 0
digital plinth
# quartz goblet this only happens when my code has https://paste.md-5.net/ayixacelac.java
    @EventHandler
    private void killPickup (EntityPickupItemEvent e)
    {
        Item i = e.getItem();
        if ( (prisonItem.containsKey(i) || (i.getItemStack().getItemMeta().getDisplayName() == itemName) ))
        {
            e.setCancelled(true);
            createPrison(e.getEntity());
        }
    }
    
    @EventHandler
    private void hitByIcePrison(EntityDamageByEntityEvent e)
    {
        if (e.getCause() == DamageCause.PROJECTILE)
        {
            if (prisonItem.containsKey(e.getDamager()))
            {
                e.setCancelled(true);
                createPrison(e.getEntity());
            }
        }
    }
    ```
wraith rapids
#

getItemMeta is nullable

digital plinth
wraith rapids
#

i don't know what we're talking about but check yourself before you shrek yourself

quartz goblet
#

okay

digital plinth
#

me?

young knoll
#

I mean I don’t think you can pick up air

wraith rapids
#

whoever calls methods on a nullable return value

hybrid spoke
#

itemmeta can be null and display name could be null too iirc

digital plinth
young knoll
#

Yes

wraith rapids
#

it shouldn't really ever happen to be null for a pickup event but I've seen weirder things happen

hybrid spoke
#

what is your createPrison method doing?

wraith rapids
#

best to check always

quartz goblet
#

same thing happens even after I removed voidGenerator

young knoll
#

But this has nothing to do with that the player is holding

quartz goblet
#

ill send the prison thing

wraith rapids
#

do we have a stack trace

hybrid spoke
#
[21:55:48] [Server thread/FATAL]: Error executing task on Server
java.lang.NullPointerException: null
    at net.minecraft.server.v1_16_R3.ChunkMapDistance.b(ChunkMapDistance.java:244) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.PlayerChunkMap.movePlayer(PlayerChunkMap.java:956) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.ChunkProviderServer.movePlayer(ChunkProviderServer.java:482) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1112) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.PacketPlayInFlying.a(SourceFile:122) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.PacketPlayInFlying$PacketPlayInPositionLook.a(SourceFile:18) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:942) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:935) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:919) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:851) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot_1.16.4.jar:git-Spigot-628435a-72c5e74]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
#

this one

wraith rapids
#

mildly disconcerting

quartz goblet
#
    {
        Location l = ent.getLocation();
        
        prisonItem.remove(ent);
        ent.remove();
        
        int level = 1;
        int rad = 6;
        //x^2 + y^2 + z^2 = rad^2
        
        World world = l.getWorld();
        
        int x = l.getBlockX();
        int y = l.getBlockY() + 1; //start 1 block above contact point
        int z = l.getBlockZ();
        
        for (int i = x - rad; i <= x + rad; i ++)
        {
            for (int j = y - rad; j <= y + rad; j ++)
            {
                for (int k = z - rad; k <= z + rad; k ++)
                {
                    int a = (i-x) * (i-x);
                    int b = (j-y) * (j-y);
                    int c = (k-z) * (k-z);
                    
                    if ( ((a + b + c) <= (rad*rad)) && ( (a + b + c) >= ((rad-1)*(rad-1)) ) )
                    {
                        Location blockLoc = new Location(world, i, j, k);
                        
                        if (blockLoc.getBlock().getType() == Material.AIR)
                        {
                            blockLoc.getBlock().setType(Material.ICE);
                            
                            long minimumTime = 5000 * level; //minimum ice prison block time in ms
                            
                            long random = (long) (Math.random() * 500); //added random time to each block
                            
                            
                            long expireTime = System.currentTimeMillis() + minimumTime + random;
                            
                            prisonData.put(blockLoc, expireTime);
                        }
                    }
                }
            }
        }
    }``` this can execute when I have a isonground check for the entity and it works that way without error
young knoll
#

MovePlayer

#

Weird

wraith rapids
#

lines don't match with my paper source

granite stirrup
hybrid spoke
quartz goblet
#

it creates the blocks just fine, error occurs after

wraith rapids
#

yeah literally all of that code has been changed in paper

#

and I don't have spigot sources

granite stirrup
#

maybe you shouldnt worry about it

#

i mean it isnt effecting your server or ur plugin

quartz goblet
#

no but afterwords this happens to the player, and the player is invisible for others, and the player cannot interact with the server at all

#

^ when saying anything or executing any command

granite stirrup
#

probs a bug

quartz goblet
#

and I got an alt on and it cant see the player that caused the prison to happen

granite stirrup
#

just rejoin the world?

quartz goblet
#

this is an in combat thing. Actually only the person casting sees it

#

one sec il lsend more scs

young knoll
#

Plenty of reasons

#

We can’t judge anything without code

hybrid spoke
#

the material doesn't matter

#

you have to subdivide your operations

wraith rapids
#

use paper and mark your generator as async capable

hybrid spoke
#

@quartz goblet is your server lagging while spawning that prison?

young knoll
#

Make sure you aren’t causing cascading gen

wraith rapids
#

2-3ms is a pretty long time

quartz goblet
wraith rapids
#

issue is that each chunk requires adjacent chunks to be loaded already

#

and that there are a lot of chunks being loaded when you fly in a given direction

#

doubtful

young knoll
#

Wonder if it’s related to minecrafts jank lighting

wraith rapids
#

if you're calling setblock or something, each call fires lighting updates and shit

#

i haven't really worked with custom generators as the api is so hamfisted around them

digital plinth
#

how do i change the drop item of a block

wraith rapids
#

with a datapack

#

blockdropitem event or something along those lines lets you modify the drops

digital plinth
#

thx

young knoll
#

BlockDropItemEvent, yes

#

But the list is immutable, keep in mind

wraith rapids
#

certainly not

#

possibly look into how other plugins like void generator do it

digital plinth
#

does any one know of a good picture downscaler to make custom textures

lunar schooner
#

paintdotnet usually does it for me

digital plinth
#

theres nothin there

wraith rapids
#

did you make your avatar with mspaint perchance

granite trail
#

Don't think it makes sense.

#

It is just created and done

digital plinth
granite trail
#

It makes no sense to insult someone because of their pfp was made in ms paint

wraith rapids
#

what

sage swift
#

just use gimp

wraith rapids
#

perhaps I should insult you on the basis of your anime avatar instead

sage swift
#

Has a girlfriend (actually a love)

hybrid spoke
odd sentinel
#

I'll post that test case on the forums and see if anyone has a theory

sage swift
#

maybe it's because oak planks are a shapeless recipe

#

but i have no idea what your problem is

#

i only scrolled up half an hour

floral flare
#

How can I send a player to another server with a Bukkit plugin?

wraith rapids
#

that is actually a pretty convincing theory

#

you did account for other recipe types from just shaped, right

#

there are complex and shapeless recipes as well

sage swift
#

no his code only has shaped lol

wraith rapids
#

and like smithing recipes or something i think

odd sentinel
#

I did yes

#

but this breaks before the oak_plank recipes

rapid meteor
#

What do you mean my .yml file messed up?

sage swift
#

your plugin.yml file is messed up

#

as it says in the error lol

digital plinth
#

is it possible to give a crop a special name and put a custom texture on it using a resource pack??

rapid meteor
sage swift
#

not the block form at least

#

item, sure do what you want

rapid meteor
#
name: My Plugin
version: 1.0
author: Erawan
commands:
    Hello:```
#

That's my code.

sage swift
#

well there's the issue

rapid meteor
rapid meteor
sage swift
#

Hello: is a map

#

if you want it to be an empty map, set it to {}

#

right now, it's null

rapid meteor
#

Like what do you mean?

#

Can you make an example.

odd sentinel
#

I literally posted a complete test case. the type of recipe doesn't matter in this specific case because it's Bukkit.getRecipeFor that fails. Bukkit.getRecipesFor(itemStack) fails for OAK_PLANKS when their itemstack comes from getIngredientMap on STICK

sage swift
#

Hello: {} lol

#

high-level shit right here

rapid meteor
#

i mean I suck at java.

sage swift
#

that's not java

rapid meteor
#

It still doesn't work.

#

It throws an error again.

rapid meteor
sage swift
#

you already said that

#

but without a full stacktrace nothing will happen

#

?paste it here and we can get started

undone axleBOT
rapid meteor
#

What's that for?

sage swift
#

your stacktrace

wraith rapids
#

what's a stack trace

  • him, in 2 seconds
dusk flicker
#

Hahaha

#

I'm waiting for it

rapid meteor
#

xD

young knoll
#

?learnjava

undone axleBOT
rapid meteor
#

xD

dusk flicker
#

That's nice I don't remember asking

rapid meteor
#

I have some basic knowledge of Java.

#

But I'm not good at it.

rapid meteor
wraith rapids
#

bro that's crazy

earnest sonnet
#

A-alrighty

granite stirrup
#

LOL

#

Friday night funkin was glitching

#

the game was pausing without pausing

#

it was weird

#

it looked like it froze

#

but it didnt

#

xd

wraith rapids
#

damn bro that's crazy

granite stirrup
#

the notes stop but the camera still pans

#

and the animations stop to

#

let me record it

#

if its still happening

granite stirrup
#

lol

calm oriole
#

I don't know how to add it on oracle, but your problem is that the .jar (which is basically a .zip file) doesn't contain the plugin.yml file

#

on intellij, you just go to project settingsa and to your artifacts and add it to the jar

granite stirrup
#

#general message

proud furnace
#

why does essentials not work for 1.8

young knoll
#

Find the 1.8 version

#

Or update

proud furnace
#

yes

cyan bluff
#
target.sendTitle("", ChatColor.RED+"YOU ARE BEING WATCHED", 0, 30, 10);

Doesnt work as it doesnt recognize that there is a title, yet doing similar commands in vanilla minecraft works.

target.sendTitle(".", ChatColor.RED+"YOU ARE BEING WATCHED", 0, 30, 10);

Does work, but it leaves the dot there.

How can I just send a subtitle without a title?

dire marsh
#

you could try just putting a space in

ivory sleet
#

null?

dire marsh
#

should still work if just empty, though

ivory sleet
#

Yeah isn’t that method just an abstraction of sending a packet

cyan bluff
#

Null cancels it out completely

digital plinth
#

hmmm

dire marsh
#

you're passing an int instead of a consumer

dire marsh
#

apparently a space definitely still works tho

#

but, the comments are also saying this is intentional

quaint mantle
#

@cyan bluff are you the slenderman dev?

#

or am i mistaken

wraith rapids
#

slenderman is a hate symbol of white supremacy

quaint mantle
#

ok

#

How to allow a player to nick using &2 or any other color code

#

What premission node

granite stirrup
#

Essentials X allows that but if ur coding it you will have to use the ChatColor API I think

#

Not sure

#

Don't actually ask me lol

sage swift
#

you need to use Bukkit.shutdown() in the AsyncPlayerChatEvent

wraith rapids
#

i wonder if that's thread safe

granite stirrup
#

Probs not

wraith rapids
#

you might want to schedule it to be done on the main thread just in case

sage swift
#

no no, it should be done asynchronously

#

you wouldn't want your plugin to cause lag, would you?

granite stirrup
#

Doesn't the bukkit scheduler not allow you to do bukkit things in it?

sage swift
#

only when it checks >:)

lofty junco
#

does anyonw why this doesent work if("Cpro Industry Projects & Solutions GmbH-Bewerbung.pdf".equalsIgnoreCase("info@cpro-ips.com")) {
System.out.println("1");
} else {
System.out.println("2");
}

granite stirrup
#

Lol what's this

odd sentinel
#

ok the reason getRecipeFor doesn't work with ItemStacks from the ingredients list is because the ingredient items, at least for STICK, has UNSPECIFIC_META:{meta-type=UNSPECIFIC, Damage=32767} in the meta

sage swift
#

create new ItemStack with the material

dense goblet
#

say I have a class that gets serialised using normal java serialisation and it has transient fields. I initialise those fields in (private) readObject(). If I then have a child class which extends it, with its own transient fields, will giving it a private readObject() automatically call the super's readObject(), or do I need to make it protected and override and super.readObject()?

odd sentinel
#

I did, but I didn't like not knowing why that worked

odd sentinel
#

that's literally in my test case

quaint mantle
lofty junco
#

rly where

sage swift
lofty junco
lofty junco
#

if("Cpro Industry Projects & Solutions GmbH-Bewerbung.pdf".equalsIgnoreCase("info@cpro-ips.com")) {
System.out.println("1");
} else {
System.out.println("2");
}

quaint mantle
#

stop posting code and not using codeblocks

#

please

sage swift
#

```java
code here
```

dense goblet
#

"Cpro Industry Projects & Solutions GmbH-Bewerbung.pdf" will never equal "info@cpro-ips.com" no matter the case-sensitivity

lofty junco
sage swift
#

and the issue is

dense goblet
#

what are you trying to achieve

lofty junco
sage swift
#

uh

dense goblet
#

you want to use a map then

#

equalsIgnoreCase only tells you if two strings are the same, ignoring capitalisation

#

"aaabb".equalsIgnoreCase("AaabB") will be true

crisp citrus
lofty junco
dense goblet
#

look into maps (i.e. hashmaps) in java

crisp citrus
odd sentinel
#

unrelated, is there a place I can see how the equals/hash logic for Material is implemented, I have some funky things happening where list.contains(material); is returning true when it shouldn't

dense goblet
#

@lofty junco to elaborate, a map is a data structure which associates a unique input with an output. So you can use it to associate a string (email address) with another string (file path) (or a File depending on which you prefer to use)

sage swift
#

Material is an enum...

odd sentinel
#

ok so no custom equals logic

dense goblet
#

I use contains w/ Material and found no issues

#

with sets instead of lists but it should make no difference

wraith rapids
#

enum constants are identity elements

#

overriding equals isn't necessary

#

and yes they work with collections just fine

odd sentinel
#

I'm loading a map of material keys from a config and a stick is not one of them, but later map.containsKey(Material.STICK) returns true. stick is never inserted

indigo iron
wraith rapids
#

print the map

odd sentinel
#

I did

dense goblet
#

can readObject be protected or must it be private

#

I want to super it cause I use it for setting up transients

sage swift
#

print the map right after the check 👀

odd sentinel
#

ok so it only happens when the check is inside a loop of Material.values()

indigo iron
odd sentinel
#

using Material.STICK directly returns false

proud basin
#

Mr skull head I got it working

quaint mantle
#

I'm having quite the issue here, i know it has something to do with a loop or something but every time i try and send a message, it sends the message like this: 3 players online, sends it 3 times to each player if that makes sense. https://paste.md-5.net/ihofecozaw.cs

odd sentinel
#

ok ya ignore me I'm just doing dumb stuff

#

chasin geese

quaint mantle
#

Deleting messages be like

sage swift
#

he deleted his ¯_(ツ)_/¯

dense goblet
#

is a null check slow compared to a boolean check

dusty herald
#

they're both boolean checks

#

wdym

dense goblet
#

if I have someReference != null vs. isReferenceNull == false

#

in my case for custom recipe stuff

quaint mantle
#

🤨

#

dude

sage swift
#

ok... but where do you call execute

dense goblet
#

if(recipe == null) vs if(!isProcessing), where isProcessing would always match the value of recipe != null

quaint mantle
#

You're way overthinking it

quaint mantle
ivory sleet
#

The speed difference is negligible

quaint mantle
#

there is almost no difference in speed

sage swift
#

🤦

dense goblet
#

okay thats good, ty

quaint mantle
#

thats literally where I do it

#

Value == Value

is literally what both of those are

dusk flicker
#

Don't use underscores in methods

#

?conventions

undone axleBOT
quaint mantle
#

inGame

sage swift
#

and where do you call in_game

quaint mantle
quaint mantle
dusk flicker
#

Once you do java enough conventions are second nature

sage swift
#

must be calling the method 3 times in the runnable then

#

or you have 3 runnables?

quaint mantle
#

I have one big one for a few timers

#

just a few

#

which I hoped would make it easier but yeah

#

want me to send the timemanager class?

#

How do I make a npc?
When I use nms i get errors like:
package net.minecraft.server does not exist
in idea

young knoll
#

What are you using for dependencies

sage swift
undone axleBOT
quaint mantle
#

Spigot jar, Minecraft jar, and some other depencencies for other stuff

young knoll
#

Minecraft Jar.... why

quaint mantle
#

A test

young knoll
#

If you are depending on jars directly, you only need spigot

quaint mantle
#

I was when i built

#

i added it after build faliure

#

to test somthing

sage swift
#

well here's the issue :)

#
                    for (Player player : Bukkit.getOnlinePlayers()) {
                        //lots of code here
                        if (warmupValue == 0) {
                            player.sendTitle(ChatColor.translateAlternateColorCodes('&', "&c&lPLAY!"), " ", 0,37,3);
                            player.playSound(player.getLocation(), Sound.ENTITY_ENDERDRAGON_GROWL, 2.0F, 1.0F);
                            manager.InGame();
                            cancel();
                        }
                    }```
quaint mantle
sage swift
#

what version

quaint mantle
#

1.17

young knoll
#

NMS has been repackaged

#

So it won't be net.minecraft.server anymore

quaint mantle
#

How do I make an npc then?

young knoll
#

I would personally recommend the citizens API

dusty herald
#

Citizens API

quaint mantle
#

idk how to use that

young knoll
#

But your IDE should give you the proper imports if you have the class name right

sage swift
quaint mantle
#

those were the imports

sage swift
#

probably imported from elsewhere

quaint mantle
sage swift
#

:)

#

try removing the existing imports

#

and re-import from the new packages

quaint mantle
#

alright

#

What are new packages

young knoll
#

But your IDE should give you the proper imports if you have the class name right

quaint mantle
#

It doesn't tho

#

those are default

young knoll
#

Then those are correct

quaint mantle
#

No

#

Because i'm getting:
package net.minecraft.network.protocol.game does not exist

#

and many more

young knoll
#

Let me have a look

sage swift
#

hacks u

young knoll
#

Yep those are correct

quaint mantle
#

well im getting

#

idk why css

young knoll
#

You probably don't have dependencies set up correctly

quaint mantle
#

I just imported spigotjar

eternal night
#

Share your pom ?

quaint mantle
sage swift
#

spigot-api

#

🤔

quaint mantle
#

?

young knoll
#

You told me you imported the jars when I asked

#

Now you use maven

sage swift
#

where did you get this code

young knoll
#

Run buildtools for your version and switch spigot-api to spigot

quaint mantle
#

How do I do this

#

I was told to just improt

young knoll
#

?bt

undone axleBOT
digital plinth
#

OH MY GOSH

#

CALIFORNIA

#

JUST HAD A EARTHQUAKE

#

anyone from cali here?

young knoll
#

3.2, nothing that unusual

#

Unless there has been another one the internet hasn’t picked up yet

#

Also #general

digital plinth
#

the internet is fast

#

wait isnt it 4.2

indigo iron
digital plinth
#

the whole house shaked

digital plinth
#

if its frequent i bet half of the houses in cali will be gone

young knoll
#

“During the past 30 days, California was shaken by 1 quake of magnitude 5.3, 6 quakes between 4.0 and 5.0, 90 quakes between 3.0 and 4.0, and 467 quakes between 2.0 and 3.0”

sage swift
#

im in california, felt nothing

quaint mantle
#

It's not working

quaint mantle
#

I ran buildtools, then added the dependencie and it didnt work, I get the same errors.

twilit nexus
#

would anyone know how to use the getPing() function so that I can send it in a string

young knoll
#

What does it return

quaint mantle
#

this chat is always great

dense goblet
#

asking again since I don't think I worded my questions correctly earlier:
If a Serializable sub-class doesn't have its own readObject method, will it be deserialised using the default readObject behaviour or that specified by its super-class (which let's assume does implement readObject)?

eternal oxide
#

readObject?

dense goblet
#

the method which gets called to deserialise the class

#

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException