#help-archived

1 messages · Page 21 of 1

red bolt
#

any good resource ?

#

about these ?

muted spindle
#

You'll find yourself mostly using Arrays, ArrayLists and sometimes HashMaps for stroing your data

#

Yeah I got a guy

#

Derek Banas is the god send for learning anything programming

#

at least for me

red bolt
#

thats where i watched the videos about patterns

naive goblet
#

RumDum learn about encapsulation, abstraction, dependency injection, inheritance & polymorphism.

muted spindle
#

^

red bolt
#

im guessing abstraction is the hardest part ?

naive goblet
#

Not at all

muted spindle
#

We can't talk troxx

#

we know it well

#

:p

naive goblet
#

yikes

muted spindle
#

Oh and interfaces

#

and maybe Annotations

iron nebula
#

Using abstraction well is the hardest part

red bolt
#

and im also guessing its gonna take a lot of practicing to master it

naive goblet
#

Well RumDum I'd say make something easy first and be sure that once you've done with it you should've understood literally everything you did.

muted spindle
#

yup

#

I'd say master what you know

#

before moving on to complicated stuff

naive goblet
#

When someone spoonfeeds you code. Ask what the hell that code will do don't juse copy paste lol

muted spindle
#

^

frigid ember
#

when should you rather use a set to a list

red bolt
#

list is ordered

#

i believe

muted spindle
#

when you don't want duplicates

naive goblet
#

Set is a list of keys

hoary parcel
#

mmmmg

frigid ember
#

linkedlist

hoary parcel
#

my sun is gone

frigid ember
#

can also do no dups right?

muted spindle
#

Lists can have duplicate values

#

Sets cannot

hoary parcel
#

no you could want a linked hash set iirc

iron nebula
#

Understanding how Set works vs List is really important

naive goblet
#

It's the set function to not have duplicates of elements

muted spindle
#

Lists have a .get function

frigid ember
#

sets dont gave a method to get an index

muted spindle
#

Sets must be iterated over

frigid ember
#

ok

#

why use a set

naive goblet
#

So for instance having an array of players then set would be prefered over a list.

frigid ember
#

u are making it harder for urself

red bolt
#

blocks perhaps ?

muted spindle
#

If you dont want duplicated values

#

or you want to do something to the whole set

hoary parcel
#

sets tend to have much quicker lookup

frigid ember
#

players id use a list

#

ok set

subtle blade
#

It's entirely situational, Retrooper

frigid ember
#

for non dups

muted spindle
#

^

frigid ember
#

@subtle blade CHANGE MY NAME

muted spindle
#

oof

frigid ember
#

OMG THis spigotmc system ass

naive goblet
#

Yes change my name as well please

subtle blade
#

fixed

muted spindle
#

xD

frigid ember
#

ffs

naive goblet
#

Give me my spigot name :/

frigid ember
#

OMG

muted spindle
#

LOL

subtle blade
#

😛

iron nebula
#

sets tend to have much quicker lookup
And the answer to that is the key to understand the difference between Set and List

frigid ember
#

choco

muted spindle
#

Am I allowed to be called Laeven or is that a nogo?

frigid ember
#

retrooper user doesnt exidt

#

exist

#

idiotic spigotmc system

#

lmao

#

who is retrooper

muted spindle
#

you apparently

#

:>

frigid ember
#

check spigotmc

naive goblet
#

And the answer to that is the key to understand the difference between Set and List
It's not really a key but rather understand the different concepts.

subtle blade
#

I don't know whether or not changing the name will screw with the bot

frigid ember
#

retrooper was previous name

#

i left with purplex name alst time

#

rejoined

iron nebula
#

Well ig you missed my pun then

naive goblet
#

If we leave and rejoin would we be able to change it then Choco?

frigid ember
#

and failed

#

ffs

subtle blade
#

I was thinking the same. It may refresh if you leave and rejoin

frigid ember
#

name me purplex

#

just name it

#

its right there

muted spindle
#

I tried to leave

naive goblet
#

Just that I boost :[

subtle blade
#

RetrooperToday at 10:26 AM

muted spindle
#

and rejoin

#

it doesn't work

subtle blade
#

nice I quoted the wrong thing

muted spindle
#

even if you change your name and tag id

subtle blade
#

I don't know whether or not changing the name will screw with the bot

frigid ember
#

nice

#

ok

naive goblet
#

Please add some sort of update username command :p

red bolt
#

is it easy to make a plugin for nether water ?

muted spindle
#

yes

naive goblet
#

Shouldn't be too hard

muted spindle
#

blockplaceevent

#

set water block

#

when holding bucket

#

well, a bucket of water

naive goblet
#

Or PlayerInteractEvent

#

😮

muted spindle
#

yeah

#

that might be better

naive goblet
#

dunno

muted spindle
#

set the above block you're looking at to water

naive goblet
#

I mean static instance of main seems to be good

muted spindle
#

and replace water bucket with water

red bolt
#

i was told that i shouldnt abuse static

naive goblet
#

Idk

#

But I mean statics doesn't go into the garbage collector

old barn
#

How do I ban a player from the console in java?

naive goblet
#

But people avoid too much

muted spindle
#

ban <player>

naive goblet
#

lol

muted spindle
#

no /

red bolt
#

the unban command in spigot is weird

muted spindle
#

./pardon

red bolt
#

or in the vanilla jar

muted spindle
#

xD

red bolt
#

oh yeah

old barn
#

no

muted spindle
#

it is weird

old barn
#

eclipse bro

muted spindle
#

oh ban a player in code

naive goblet
#

i was told that i shouldnt abuse static
For instance looping through a static list and adding like 10000 elements to it wouldn't certainly be a good idea.

subtle blade
#

But I mean statics doesn't go into the garbage collector
That's not the reason we advise against static. In fact, we don't tell people not to use static. We encourage its use so long as it's appropriate to do so

naive goblet
#

Yaaa

subtle blade
#

The abuse comes in when people use it as a means to access it from another class

red bolt
#

ive read so much about it

subtle blade
#

A quick fix

red bolt
#

but i still dont understand what it does

naive goblet
#

Indeed

red bolt
#

lol

subtle blade
#

It assigns a member to the class rather than an instance

#

It's used mostly for constants to be shared between all instances of a class

red bolt
#

does it affect memory ?

naive goblet
#

depends

old barn
#

How do I ban a player, for example, at a PlayerKick event?

tiny dagger
#

ofc it stores something in memory 🤔

naive goblet
#

It can if used badly

muted spindle
#

you ban them

#

and then you kick them

subtle blade
#

Use the BanList API, Bukkit#getBanList()

muted spindle
#

^

#

add them to the ban set

#

then kick them

subtle blade
#

Also, TIL

Bans by name are no longer supported and this method will return null when trying to request them. The replacement is bans by UUID
Had no idea it returned null when fetched by name

naive goblet
#

ofc it stores something in memory 🤔
Well sometimes it better to store a static field that is going to be reused instead of spamming new instances everytime we want to use the field.

muted spindle
subtle blade
#

Not that you should be banning by name anyways but yea

muted spindle
#

I ban by their geological position

naive goblet
#

ban *

muted spindle
#

band

red bolt
#

i'd make a file and store stuff there

#

and on join check if they are inside the file or something

tiny dagger
#

if you create a new instance everytime to run just a method then you're doing something bad imo

naive goblet
#

Yeah that's when statics like constants comes handy

subtle blade
#

Then you get to the "utility class" territory which is always fun

#

finalize the class, privatize the constructor, static methods

naive goblet
#

I remember when I used final static on methods ;u

red bolt
#

why cant we upload screenshots ?

naive goblet
#

Verification

red bolt
#

what about this

#

is this allowed ?

naive goblet
#

mhm

red bolt
#

there

subtle blade
#

I recommend using event.getMaterial() instead

red bolt
#

but dont i need the check for the hand ?

subtle blade
#

(1) It's null safe and (2) just shorter ¯_(ツ)_/¯

naive goblet
#

Okay Choco can you like atleast make my name capital in the first letter

subtle blade
#

PIE is fired for each hand

red bolt
#

this is on 1.8.8 xD

subtle blade
#

Oh, well

#

Update

frigid ember
#

change

#

my

#

number

red bolt
#

people dont tend to play factions in 1.15 :/

subtle blade
#

Either way, event.getMaterial() is preferred for the sake of nullability

naive goblet
#

Who cares about null

#

We love null

subtle blade
#

Yea. Throw ALL the exceptions!

naive goblet
frigid ember
#

dont catch null

#

let him fre

red bolt
#

what does the material method do ?

naive goblet
#

Gets material

red bolt
#

in the hand right ?

red bolt
#

do i just cancel the event and place water with code ?

#

if so, do i need to check what direction a player is facing ?

subtle blade
#

What is it you're trying to do anyways? Maybe I missed this conversation

red bolt
#

nether water

naive goblet
#

check if event hasBlock and hasItem

#

other it might throw some Exception

red bolt
#

this ?

naive goblet
#

oof

#

We can use implicit else

#

instead

subtle blade
#

Can't compare Strings with ==. This is something you have to use .equals() for

naive goblet
#
if (!e.hasBlock()) { //Retun false if true and return true if false
  return; //Code stops
}
//Continue code
red bolt
#

yeah i forgot to mention im new to programming

subtle blade
#

== compares two objects' references in memory (i.e. they're the exact same instance) which a literal and returned value will never be ==

tiny dagger
#

yup equals is for same object check while equals is for their insides

subtle blade
#

.equals() can be overridden by classes (including String)

frigid ember
#

CHoco

red bolt
#

hold up let me screenshot this

frigid ember
#

what are u gonna do about my name

#

my spigotmc name is purplex

subtle blade
#

I'm going to leave it alone because I'm not obligated to change it?

frigid ember
#

u added dum nickname there we no problem

tiny dagger
#

mine changed 🤔

frigid ember
#

but u changed it

#

bruh

#

lies

#

gotem

naive goblet
#

Also rumdum check for hasBlock and hasItem before trying to get the item and compare it

tiny dagger
#

well i had the name changed on spigot but it updated here too

naive goblet
#

bs

subtle blade
#

afaik it updates weekly

frigid ember
#

so choco u are able to change it

#

bruh

red bolt
#

so at this point

naive goblet
#

Discrimination

red bolt
#

do i just place water ?

frigid ember
#

ikr

red bolt
#

but wait

#

this is the wrong event isnt it ?

#

i need blockplace

subtle blade
#

Block isn't placed so that event isn't called afaik

naive goblet
#

@EventHandler public void onSomeEvent(final LmaoEvent e) {
  if (!(e.hasBlock() || e.hasItem())) {
    return;
  }
  final Material material = e.getMaterial();
  final Action action = e.getAction()
  if (material != Material.DIAMOND && action != Action.LEFT_CLICK_BLOCK) {
    return;
  }
  //do stuff
}
final verge
#

Isn’t there a bucket use event

subtle blade
#

There may be but I'm not sure its called either

final verge
#

I remember seeing something about one when I was poking around nms

subtle blade
#

PlayerBucketEmptyEvent is what you're thinking of

frigid ember
#

why do we not use PluginEnableEvent

frigid ember
#

or so

final verge
#

Yep that’s it

red bolt
#

do i use that instead ?

naive goblet
#

Yes

subtle blade
#

I don't think it's called

frigid ember
#

which

final verge
#

Why would you need a plugin enable event?

frigid ember
#

it exists

#

and PluginDisableEvent

subtle blade
#

Lots of things exist but you don't need to use them

frigid ember
#

why is it therr

final verge
#

That doesn’t answer the question

naive goblet
#

It gets called but water removes instantly?

final verge
#

Why would you need it

subtle blade
#

So other plugins can listen for enabling and disabling of plugins?

#

If you need it, use it. If you don't, don't

frigid ember
#

u cant know if u enable before

#

other plugins

red bolt
#

is it good if you read other people's code ?

frigid ember
#

to learn yes

naive goblet
#

If you understand it yes

final verge
#

Then soft depend if you need it???

subtle blade
#

Does it get called, troxx? I don't know. I've never placed water in the nether and listened for events before lol

#

I just assumed it wouldn't because the water isn't placed

red bolt
#

a guy who made the exact same thing used PIE

naive goblet
#

I'm unsure as well. But the bucket still gets empty.

subtle blade
#

I would also use PIE

#

Kind of overloading you with information. You can compare the world against its environment as well to make it a bit more general instead of just specific to one world. World has a #getEnvironment() method

naive goblet
#

rumdum I think the BucketEvent works good

subtle blade
#

(this including World.Environment.NETHER)

pastel sail
#

Is it possible to rotate a player, which is laying on the bed? (or just has EntityPose.SLEEPING)
I can't figure out a way to do so.

naive goblet
#

Why would you rotate sleeping player?

red bolt
#

for this check

#

its good to use equals right ?

subtle blade
#

I have a feeling that may be determined by the bed they're sleeping in, SoSeDiK

pastel sail
#

I'm able to force player into sleeping.
But I can't rotate him.

naive goblet
#

no

#

it's ==

subtle blade
#

Constants can be compared using ==. Enums are constants

naive goblet
#

but since you use implicit else, you may use != (NOT equal to)

#

and return; will obviously stop the code

#

So no further code that lays under the if statement would be executed if the if statement is true

red bolt
#

can you call an event from a different event ?

naive goblet
#

Yes

#

Bukkit.getPluginManager().callEvent(new EventClassName(/* params */));

#

It won't do anything else than other listeners might answer to that.

subtle blade
#

and you shouldn't be calling any Bukkit-provided events. Only ones you've made

naive goblet
#

I've seen people do it :o

silver pewter
#

Hello, I'm adding that it shows health below the name but it keeps showing up as 0 then when you hit the player it shows 18 any help thanks ```java
@EventHandler
public void onJoin(PlayerJoinEvent event)
{
for(Player player : Bukkit.getOnlinePlayers())
{
ScoreboardManager sm = Bukkit.getScoreboardManager();
Scoreboard s = sm.getNewScoreboard();

        Objective health = s.registerNewObjective("showhealth", Criterias.HEALTH);

        health.setDisplaySlot(DisplaySlot.BELOW_NAME);

        health.setDisplayName(ChatColor.DARK_RED + "❤");

        Score score = health.getScore("" + ChatColor.RED + ChatColor.BOLD + "❤" + ChatColor.WHITE + player.getHealth());
        score.setScore(20);
        player.setScoreboard(s);
    }
}```
naive goblet
#

Well

#

You seem to have missed to put the set Objective on the Scoreboard

silver pewter
#

I've fixed it it's because I didn't put the scoreboard on the outside of the loop and forgot to update players health lol

naive goblet
#

oh lol

#

Use lambdas though x)

subtle blade
#

No place there for lambdas

#

Sure you could forEach() but really, it's not necessary. Just use a for loop

naive goblet
#

Yeah I like forEach more though. I guess it's preferences.

pastel sail
#

Can I set the player's pitch and yaw without teleporting? 🤔

naive goblet
#

Yeah

#

Or I mean you'd have to teleport

silk bane
#

Objective health = Optional.of(Bukkit.getScoreboardManager()).map(ScoreboardManager::getNewScoreboard).map(s -> s.registerNewObjective("showhealth", Criteras.HEALTH).map(health -> {health.setDisplaySlot(DisplaySlot.BELOW_NAME); return this; }).map(health -> {health.setDisplayName(ChatColor.DARK_RED + "❤"); return this}).orElseThrow(RuntimeException::new);

#

here are your lambdas

subtle blade
#

...

silk bane
#

you're welcome choco

subtle blade
#

I just... I hate that you spent the time to write that

silk bane
#

there's a bracket missing don't @ me

subtle blade
#

Oh there is too. Bastard

silver pewter
#

Should I put the scoreboard in PlayerJoin for health or a different event?

old barn
#

What is the player disconnect event?

naive goblet
#

Depends when you want to enable the scoreboard for the players

#

PlayerQuitEvent or PlayerKickEvent

#

iirc

silver pewter
#

the heath

naive goblet
#

Join prolly

silver pewter
#

But when I look at the other person it says 0 health lol

#

unless I hit him

naive goblet
#

yeah

#

The value hasn't been initialized

silver pewter
#

Okay

#
    ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard board = manager.getNewScoreboard();

        Objective objective = board.registerNewObjective("showhealth", "health");
        objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
        objective.setDisplayName(ChatColor.DARK_RED + "❤");
        Score score = objective.getScore(ChatColor.DARK_RED + "❤");
        for(Player online : Bukkit.getOnlinePlayers()){
            score.setScore(1);
            online.setScoreboard(board);
            online.setHealth(online.getHealth()); //Update their health
        }``` What am I doing wrong?
naive goblet
#

What’s wrong ?

silver pewter
#

the name is setting to zero untill I hit the player

naive goblet
#

Yeah I told you it doesn’t initialize real health until that

#

You would have to make a custom objective for it

silver pewter
#

Okay, that's pretty stupid lol

naive goblet
#

Actually not

#

But I get your point

silver pewter
#

Yeah thanks

naive goblet
#

Well its mostly for saving memory

#

Having a list with only necessary elements

silver pewter
#

Yeah I'm new to scoreboards lol

naive goblet
#

Never worked with it

#

But I know how it works

silver pewter
#

Done that was easy lol

#

thanks

naive goblet
#

(:

#

Yeah you could hit a player when they join with 0 damage or smtng

zenith siren
#

Really quick small question, does Player#setDisplayName have a max character length?

subtle blade
#

Doesn't seem like it

ebon charm
#

@silver pewter try this: ```java
public static void createScoreboard(Player p) {
Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
Objective healthOb = board.registerNewObjective("PlayerHealth", "health");
healthOb.setDisplaySlot(DisplaySlot.BELOW_NAME);
healthOb.setDisplayName("§c❤ ");

subtle blade
#
    @Override
    public void setDisplayName(final String name) {
        getHandle().displayName = name == null ? getName() : name;
    }```
#

Minecraft may stop rendering it if it's too long, though as far as character length, looks infinite to me

hoary parcel
#

for versions > 1.13/4 that is iirc

dusty topaz
#

Where do you find the source for objects like Player

#

Since it's an interface (or abstract class, I forget), where is it actually implemented

tiny dagger
#

CraftPlayer

#

that easy

dusty topaz
#

Is that the same for the majority of things? Like World is CraftWorld

tiny dagger
#

yup

#

bukkit is api

#

craft bukkit is where the wrappers are

slow tulip
#

Any suggestions for something to use to better and faster visualize what you're doing when playing with ChunkGenerators, PerlinOctaveGenerator, SimplexOctaveGenerator...

subtle blade
#

Most all interfaces in the Bukkit API are implemented by that same class prefixed with Craft in CraftBukkit source. There are minor exceptions (obviously with Bukkit classes that are not interfaces - i.e. CraftItemStack exists but so does org.bukkit.inventory.ItemStack). Though more often than not, you'll find a Craft prefixed implementation

#

All can be found either in the BuildTools directory you used to build the server, or on the stash

#

?stash

worldly heathBOT
ocean anvil
#

Is there a way of running something once an event is completed? Specifically I want to run a piece of code on a player's inventory only after the CraftItemEvent has finished adding the items to an inventory so I can actually see said items

subtle blade
#

Run it a tick later

tiny dagger
#

^

naive goblet
#

A villager never despawns right?

tiny dagger
#

it has no reason to

naive goblet
#

I take that as a yes.

tiny dagger
#

take it as a logic statement based on the idea that they should be in villages

alpine tide
#

OPa

final verge
#

In theory

#

They should never despawn

#

But sometimes they do cuz Minecraft fun

wanton delta
#

Villagers are persistent

#

And I believe there is a way to set mobs persistent via api if they aren’t otherwise

hot girder
#

tag

#

??

twin ingot
#

Does Anyone knew an good tutorial how to setup SpiGet update check for a Plugin?

rapid yacht
#

Is there any faster way of testing plugins rather than having to export it, put it into the plugins folder, and restart the server? (IntelliJ)

subtle blade
#

Write code correctly the first time so you don't have to re-export BigBrain

#

No, but really. I think IJ might have a hotswap feature? I don't IJ so you'd have to ask someone who does, but aside from that, I don't think there's a quicker way

wraith dew
#

idk about intelliJ but in eclipse i created a batch script that does it all for me when i run it

rapid yacht
#

Haha, That's unfortunate

wraith dew
#

i think maven has a test feature?

rapid yacht
#

yeah I use maven

hollow drift
#

Wow, it's still blowing my mind that the mechanism for the vanilla /give command is to make the player drop an item they don't have 😐

subtle blade
#

Well where else would they put it?

wraith dew
#

if you can execute batch script in IJ then i think that would be the easiest solution (if you are not on windows use shell script)

tiny dagger
#

with eclipse i can export directly as plugin then i can just reload the server

#

ez

wraith dew
#

i guess you could use the maven jar plugin and set the output directory to your plugins folder

wraith dew
#

how do you get the enchantment display name?

tiny dagger
#

i can't tell what method tells the entity to change direction when it colides with a block, i must be blind, anyone knows?

young dawn
#

I'm getting this error message in my plugin.yml file

Multiple markers at this line
- Content is not allowed in
prolog.
- 7 changed lines

rapid yacht
#

Whenever I execute my /feed command, it does what it's supposed to, but in chat it shows what I typed, (/feed)

#

How can this be fixed?

subtle blade
#

return true in the command executor

#

returning false will show that message as though it was unsuccessful

rapid yacht
#

Thank you

frigid ember
#

np

low sonnet
#

If im using a spigiot server and i want my friends to join but i dont want to give them my ip what do i do

frigid ember
#

give them ip

#

¯_(ツ)_/¯

#

lol

low sonnet
frigid ember
#

thats sad about port forwardin

#

thats a domain

#

you must purchase those

#

they cost money

low sonnet
#

I know

#

but is there any free versions

#

like noip works but its shit af

frigid ember
#

.cf

#

.tk

#

are free

#

.ga

#

.ml

low sonnet
#

What website do i get them off of tho

frigid ember
low sonnet
#

k thx

sour dock
#

@low sonnet You don't want to give them your IP address, but you are fine giving them a domain name that still points to your IP address?

gray trout
#

I'll never understand that

sour dock
#

Keep in mind that people can still "find" your IP address when you give them a domain name

subtle blade
#

It's not like your IP address is a big secret. That's your gateway to the internet.

silk bane
#

well

hoary parcel
#

I know have the IP from everybody who clicked 😄

subtle blade
#

uh huh... you know that's how simple got banned right? KEKW

#

(from Discord)

silk bane
#

who's simple

subtle blade
#

authority

tiny dagger
#

oh so he stole people's ip?

#

lol

hoary parcel
#

thelounge doesnt log, dw

silk bane
#

but they're still here

hoary parcel
#

it was just an example

subtle blade
#

On an alt lol

silk bane
#

dramatic

subtle blade
#

The @frigid ember account was banned LUL

wanton delta
#

you shouldnt worry about ip if you have the proper steps to combat that bad things that can happen to it lol

#

and if its for private use

#

theres virtually no worry at all

subtle blade
#

Now he's here as a way to increase our server member count evil

tiny dagger
#

the only port i have open is 25565 on my router

silk bane
#

hang on

#

if i just run like nginx as an image host

#

that has access.log

#

which logs all ips

hoary parcel
#

B A N N E D

gray plume
tiny dagger
#

someone gave konsolas ideas

hoary parcel
#

whats the error?

tiny dagger
#

it's yaml use a syntax checker online

gray plume
#

end of the stream or a document separator is expected at line 22, column 2: - 'LAVA_BUCKET : 1' ^

silk bane
#

your indenting is off

tiny dagger
#

oh look

gray plume
#

How am I supposed to fix the indent?

silk bane
#

quickly

tiny dagger
#

remove space

gray plume
#

just one space?

tiny dagger
#

if that was the thing

#

no the column space i think

wanton delta
#

if u have an odd amount of spaces

#

youve done something wrong

silk bane
#

oh what the fuck

#

that's a tab

gentle kelp
#

Is it possible to nerf the experience given from a ore mined with silk touch? if so, how? :p

wanton delta
#

recommend using np++ to verify yml

gray plume
#

It was like that when I got the config when I downloaded the plugin.

wanton delta
#

experience doesnt come out of ores with silk touch

subtle blade
#

Experience is not given for silk touched ores

wanton delta
#

do you mean fortune?

subtle blade
#

Sniped :((

wanton delta
#

LOL

hoary parcel
#

np++

#

is this 2005?

gentle kelp
#

lmao

#

I mean, the experiece given by ores mined with silk touch and then placed again, not natural ores.

gray plume
#

This is the config that came with the plugin I have. It's the kit.yml file.

wanton delta
#

IT WORKS

#

Ok?

subtle blade
#

I SEE A TAB

#

:((

wanton delta
#

Oh yea that too

subtle blade
#

YAML doesn't like tabs lol

wanton delta
#

Tabs bad

silk bane
#

they're ALL TABS

gray plume
#

how many spaces do I need then?

wanton delta
#

No one likes tabs

#

4 per tab

hoary parcel
#

space > tabs!

subtle blade
#

Some say 4, others say 2

wanton delta
#

Well

hoary parcel
#

4 is always right

gray plume
#

okay. So I just replace the spaces before the dashes with 4 spaces?

hoary parcel
#

never 2

wanton delta
#

A full tab is 4

tiny dagger
#

category:

2 spaces for subcategory

wanton delta
#

But yaml also uses 2

subtle blade
#

No no, anywhere you have a tab character ( ), you should use a space

tiny dagger
#

list:
from 0

subtle blade
#

Literally Ctrl + F for the tab character, replace with spaces

gray plume
#

Okay.

hoary parcel
#

or use a proper text editor like visual studio code line sane ppl

subtle blade
#

TIL Discord replaces tabs with spaces

#

lmao

silk bane
#

btw anyone have ideas on how to add persistentdatacontainers to Chunk?

subtle blade
#

Making a PR?

silk bane
#

that's what i'm doing choco

hoary parcel
#

chunks have no nbt

silk bane
#

they are stored as nbt

wanton delta
#

huh

#

no?

silk bane
#

and there's a class that loads and saves them as NBT

hoary parcel
#

I actually dont know the disk format I guess

#

I only know the wire format

gentle kelp
#

I mean, the experiece given by ores mined with silk touch and then placed again, not natural ores. (So i can nerf exp from ores mined with silk touch and then placed without affectiong the experience from natural ores)
^ sorry about my english dx

wanton delta
#

i thought region files were their own thing

silk bane
#

i was literally working on this, hang on

digital inlet
#

Is it possible to build spigot for 1.16? If I try --rev latest, I get 15.2.

#

1.15.2

hoary parcel
#

just hook into chunk region loader then

wanton delta
#

no

#

spigot 1.16 hasnt been released

tiny dagger
#

snapshot versions aren't releasing

#

i mean never

digital inlet
#

got it. tyvm.

silk bane
#

@hoary parcel problem is propagating it all the way up to Chunk

#

it doesn't have generic NBT

#

just lists and maps of NBT for entities and tile entities

hoary parcel
#

lemme see

silk bane
#

and there's PlayerChunkMap, ProtoChunk, and all of minecraft's chunk loading logic in the way

#

PlayerChunkMap has saveChunk

gray plume
#

Sorry if this is a really dumb question...
So how is a quick way to replace the tabs with spaces

#

choco said use Ctrl + F, but how would I actually replace it?

silk bane
#

ChunkRegionLoader has all the nbt stuff

wanton delta
#

ctrl r

silk bane
#

@gray plume depends on your editor

wanton delta
#

replace with

#

LOL

silk bane
#

sus

subtle blade
#

I told you! Discord replaces tabs with spaces!

wanton delta
#

lmaooo

subtle blade
#

Wasn't kidding :((

wanton delta
#

im actually laughing idk why i find that so funny

hoary parcel
#

just define a new method on IChunkAccess to consume the PDA nbt?

silk bane
#

huh

#

hang on

gray plume
#

How would I replace it in notepad++?

silk bane
#

oh yeah ichunkaccess is both chunk and protochunk

hoary parcel
#

yep

#

chunk is a normal chunk and protochunk is used in world gen iirc

gray plume
#

I'm so confused

silk bane
#

so what if i add a getter for persistentdatacontainer in ichunkaccess and fields in chunk and protochunk

#

@gray plume it's probably Ctrl+R but i'm sure you know how to use google even if it isn't

gray plume
#

Yes, i have the mental capacity to use google, was using this as my first resource.

silk bane
#

thank goodness

hoary parcel
#

yes that should work

gentle kelp
#

Mini, can you help my with my question?

hoary parcel
#

I dont know shit about vanilla mechanics

gentle kelp
#

fak

silk bane
#

oh no i'll have to add a new patch file to spigot

#

disaster

#

oh no i'll have to add two new patch files to spigot

hoary parcel
#

why u doing this in spigot?

#

and not in bukkit/cb?

silk bane
#

i am doing it in cb

#

there aren't patches for either of ichunkaccess and protochunk

#

and there actually might be more things that implement ichunkaccess

hoary parcel
#

nah, I checked

#

theres emtpy chunk which extends chunk

silk bane
#

oh cool

hoary parcel
#

and theres proto chunk extension which extends proto chunk

#

lemme get the mojang names, proto chunk extension is horrible

silk bane
#

oh that extends ProtoChunk so should be fine

hoary parcel
#

net.minecraft.world.level.chunk.ImposterProtoChunk

#

ok then mojang

tiny dagger
#

it's an imposter

silk bane
#

i lost hope when there were three fields in EntityLiving named xxx, yxx and zxx

tiny dagger
#

oh god

hoary parcel
#

ok but mojangs name makes sense

#

cause its a Chunk

#

that pretends to be a ProtoChunk

subtle blade
#

The XP, XN, YP, YN, ZP and ZN constants in Vector make me a bit sad though, ngl

tiny dagger
#

how is it in spigot?

hoary parcel
#

you mean xxa,yya,zza konsola 😄

subtle blade
#

Don't think they're named on Spigot's end because we don't use them

silk bane
#

but it's also a Chunk

#

that extends ProtoChunk

lofty otter
#

how you register a fallback prefix for a command? im using

ProxyServer.getInstance().getPluginManager()
            .registerCommand(plugin,
                new Command("test") {...etc...});

Doing /test works but i need /myplugin:test too

silk bane
#

flawless logic if you ask me

hoary parcel
#

well those make sense tho

silk bane
#

looks like bungee to me

#

i'm out

lofty otter
#

lol

#

i dont see any way to specify a fallback prefix in the Command class

tiny dagger
#

do you using the api?

lofty otter
#

yeah

hoary parcel
#

XN is better as xNegative if you use it in constants 🤷

#

never saw that in bungee

#

generally bungee is a bare bones api, you dont really want to do much stuff on bungee level but rather on the actual server

#

never put too much logic into a proxy, this true for MC too

lofty otter
#

yeah well this project works on both proxies and backend servers

#

i need it to work on both

#

so any ideas?

silk bane
#

and i think i'm also patching ChunkRegionLoader

hoary parcel
#

yes, thats where you want to read and write the nbt

#

cant you just add aliases alex?

lofty otter
#

you mean just put the whole thing with : as another alias?

hoary parcel
#

ye

lofty otter
#

hacky af but ok

silk bane
#

hang on

#

does chunkregionloader event load chunks

#

I only see a method that returns ProtoChunk

hoary parcel
#

how is that hacky?

#

its what bukkit does too

lofty otter
#

well I started writing plugins on sponge, where everything makes sense and is organized. Then i came over to spigot/bungee

hoary parcel
#

dont you see the method that returns InProgressChunkHolder?

silk bane
#

no?

hoary parcel
#

oh wait, thats paper

#

for async chunk loading

silk bane
#

maybe even generated chunks are loaded as ProtoChunks?

#

also there are two decompile errors -.-

hoary parcel
#

nonono

#

thats where our imposter chunk akak proto chunk extensions comes in

#

see line 179

silk bane
#

oh my god

#

what is the point

hoary parcel
#

how are there decompiler errors if spigot already touches that class?

silk bane
#

spigot doesn't

#

paper does i guess

hoary parcel
#

it does

#

for timings

#

so does spigot

silk bane
#

oh spigot

hoary parcel
#

I actually have the spigot class open now

silk bane
#

craftbukkit doesn't i guess

hoary parcel
#

oh right

silk bane
#

this'll be fun for everyone involved downstream

#

does spigot have a patch for the decompile error i can use

hoary parcel
#

I dont see why you would have decomp errors, there is nothing in spigot that attempts to patch them

#

I only see two commits

#

the mc-dev imports and the timings one

silk bane
#

line 93

#

and 105

hoary parcel
#

// function = IRegistry.BLOCK::getKey;

#

is that commented out for you too?

silk bane
#

nope

#

not commented

hoary parcel
#

same with 105

#

interesting

silk bane
#

so clearly there is a patch somewhere

hoary parcel
#

no clue how spigot does this

silk bane
#

because a decompiler isn't outputting that

hoary parcel
#

it would need to be in the mc-dev impoprts patch

#

else intellij would show the patch

silk bane
#

how much of it is commented out for you?

hoary parcel
#

yes its imported like this

silk bane
#

oh i see they inlined it

#

crap decompiler

hoary parcel
#

interesting, its a surprise that spigot has the mc-dev imporets patch like this at all

silk bane
#

that's why it was commented

hoary parcel
#

since this is distributing mojang code

#

paper does generate the mc-dev commit automatically

silk bane
#

what is it?

hoary parcel
#

"Imported files which are only modified by Spigot, not upstream. Files here should be completely unmodified aside from trivial changes such as adding throws statements to ensure proper compilation. You may need to add unrelated files in order to ensure a compilable result in the face of synthetic methods."

#

interesting

#

what is what?

silk bane
#

mc-dev

hoary parcel
#

mc-dev imports are bringing in the nms files so that they can get patched by spigot/paper

silk bane
#

ok so inlining has actually made things worse

#

it's doubled the error

#

and also why is there just a registryblocks.getClass() with an ignored return value

hoary parcel
#

object1 = TickListChunk.a(nbttaglist1, IRegistry.BLOCK::getKey, IRegistry.BLOCK::get);

#

object2 = TickListChunk.a(nbttaglist1, IRegistry.FLUID::getKey, IRegistry.FLUID::get);

#

maybe its to force class init

#

maybe its a decomp thing

#

who knows

silk bane
hoary parcel
#

its nested

#

0 is parent, 1 is level

#

2 is one of the sections

#

3 is a TE

#

4 is an entity

silk bane
#

now i need to figure out which imposter protochunk whatever actually makes it into the chunk object that's loaded

hoary parcel
#

imposter is a wrapper for chunk

silk bane
#

what's the point of all this tho

#

why does a chunk need to be wrapped in an imposter proto chunk

hoary parcel
#

chunk loading works with proto chunks 🤷

silk bane
#

i'm going to write it to the object on line 83

hoary parcel
#

yes, that object is either a chunk or a proto chunk, and if needed it will be wrapped on line 179

#

so your patch should go to like 140 I guess

#

or before the if at 179

silk bane
#

i put it 178

hoary parcel
#

ye

#

kinda dum that object isnt IChunkAccess, so much casting...

silk bane
#

there's also a chunk constructor that accepts a ProtoChunk

#

might need to copy the persistentdatacontainer in that case

hoary parcel
#

I think protochunks turn into chunks at some point

silk bane
#

so the imposter protochunk that wraps a chunk will one day turn into the chunk it wraps

hoary parcel
#

Playerchunkmap

silk bane
#

it's real

hoary parcel
#

mojang calls that method protoChunkToFullChunk 😄

#

even tho it takes a player chunk

#

whatever the fuck that is

tiny dagger
#

win key + shift + s then you can ctrl v in discord

hoary parcel
#

oh, nms calls it ChunkHolder

tiny dagger
#

so you don't have to imgur anymore

hoary parcel
#

sharex > snipping tool

tiny dagger
hoary parcel
#

and I can still do this

silk bane
#

😠

hoary parcel
#

my free hand selection is better 😉

tiny dagger
#

okay

subtle blade
#

I was really hopping that was a middle finger lol

silk bane
#

umm

#

turns out i moved files from the decompile folder to craftbukkit

#

running buildtools again is so fun

hoary parcel
#

and ppl wonder why I dont contribute to spigot

#

the tooling is so outdated

final verge
#

I run commands and hope they work

#

Then I cry waiting for prs to be accepted 😂

hoary parcel
#

sounds like a fantastic experience

subtle blade
#

At least you guys benefit from them

#

must be nice benefiting from PRs not directed at the project

silk bane
#

oh buildtools didn't generate the file anyway

hoary parcel
#

at paper cat just does this to me

final verge
#

😂

hoary parcel
#

choco, 90% of the patches are MIT, its not like we try to keep them secret

silk bane
#

does that mean spigot is technically allowed to upstream all of them

hoary parcel
#

sure, just need to add the license somewhere

#

and keep the authors of the patches

#

but thats something git would handle

#

its not like paper wants to maintain ~500 server patches

#

I think aikar would be pissed if timingsv2 would be added to spigot (without using his website, like md did with v1)

silk bane
#

what happened with v1?

hoary parcel
#

it was hosted on aikars website (like v2 is now), but md decided it host his own instance and patched the original url out of spigot

silk bane
#

😮

subtle blade
#

because it's third party

hoary parcel
#

that was no the reason

subtle blade
#

It's better hosted on the platforms servers

silk bane
#

oh no i missed a craftbukkit comment

hoary parcel
#

that calls for editing patch files manually!

silk bane
#

crisis averted

wanton delta
#

is there an updated resource for setting pathfinder goals?

silk bane
#

minidigger's paper pr

wanton delta
#

uh

#

link?

silk bane
#

err

wanton delta
#

well

#

not exactly what i meant

frigid ember
#

Hello, im trying to make a minigame plugin. I copy this code and I put it on my server. And it doesnt work. It should damage to players but it doesn't. It should take half a heart.I would really appreciate if someone can help me 🙂

naive goblet
#

Jesus

#

Copy paste never works

tiny dagger
#

that's not how you damage

silk bane
#

looks decompiled

tiny dagger
#

looks like ide help

wanton delta
#

is it safe to make minecraft the client use 500M of ram instead of the standard 1gb

fleet crane
#

Did you register the listener

subtle blade
#

Nah. If it were decompiled, the if statement would have used braces

#

or have been formatted the way it was

south cedar
#

Alrighty, I've got an issue with refering to entities within a world.

LivingEntity ent = (LivingEntity) Bukkit.getEntity(plugin.entities.get(i)); ent.setHealth(0D);
ent.setHealth(0D); is throwing a NullPointerException when executed, (as well as any other attempts to reference ent. This tells me that the server isn't finding the entity.
The entity in question is almost always going to be in an unloaded chunk, will this be causing the issue? If so how can I get around it? Thanks!

subtle blade
#

and yes, that should work fine assuming it was registered, but you're also going to be doing a LOT more than just half a heart of damage. You'll be doing 50 hearts lol

#

To my knowledge, if unloaded, Bukkit#getEntity() will return null

south cedar
#

Yeah I suspected that, is there a way to get an entity from an unloaded chunk?

#

Or do I need to store the chunk information, and load it when required?

subtle blade
#

Not really because there's no entity to interact with. You'd have to load the chunk

wanton delta
#

what are you trying to do?

south cedar
#

I'm spawning a set of Villagers and saving their UUIDs in a List<UUID>, I'm trying to kill them all in this case.

#

In other cases I'm trying to locate them, change other stats, etc.

subtle blade
#

Morbid

wanton delta
#

is PlayerChatEvent still usable? im just trying to use it for debug

south cedar
#

You bet 😉

#

Is there a Chunk variable type I can store in a HashMap alongside a UUID?
And load said chunk before doing any interactions?

wanton delta
#

theres a way to keep chunks loaded in vanilla minecraft

south cedar
#

Or do I need to store each x,z

wanton delta
#

you can use java Pair

#

but Chunk is also an object, yes

#

either would work

south cedar
#

Alright. Thanks

silk bane
#

perhaps you could interact with them lazily

south cedar
#

I don't want to load all the chunks at the same time because there will likely be at least 50 villagers spawned.

silk bane
#

i.e. store a list of things to do, and only modify the villagers when the chunk gets loaded by someone

#

1.13+ servers will thank you for not making them load chunks

subtle blade
#

^^

wanton delta
#

that is very smart idea

subtle blade
#

Definitely second this approach

frigid ember
#

I didnt refister my listener up i fix it, thanks to everyone who replayed

wanton delta
#

turns out it is ok to run minecraft with 500m ram

subtle blade
#

Of course. Vanilla isn't super RAM heavy. It gets bad the more and more blocks added to the game though because all those states are stored in memory

#

(that's why Forge can take as much as it does when you add hundreds of mods)

wanton delta
#

i only have 8gb and running a server, intellij, chrome, and two instances of minecraft is a bit much 😅

naive goblet
#

I tried 500mb and that’s fricking not good just saying

young dawn
subtle blade
#

spigot-1.8.8.jar.jar

#

Windows likes to hide file extensions

#

Rename your file to just spigot-1.8.8 and you should be good to go

#

(though you'd be much better to go if you were on the latest, supported version of the server)

young dawn
#

It worked, thanks!

#

How do I get to the console now?

subtle blade
#

The console is the window from which you ran the command

#

If you're using a start batch file (like it seems your doing), it will be in that window. That is your console

young dawn
#

I feel like this is a stupid question, but what's the IP? If I remember correctly, it's my personal IP, but I put that in and it didn't work.

subtle blade
#

127.0.0.1 will be your local host and is accessible from there

rapid yacht
#

Hey, I’m tryna get a bunch of opinions on this: For those of you that use IntelliJ, do you use the Minecraft Development extension?

subtle blade
#

Though if you want players to join from an external IP address, you have to give them your public IP address (you can search on Google, "what's my IP", it will tell you)

#

And you have to port forward your router to allow access to your server's port

#

?pf

worldly heathBOT
wanton delta
#

@young dawn there is a way to get windows to display file extensions

subtle blade
#

@rapid yacht I know a large majority of IJ users that do use that plugin and swear by it lol

wanton delta
#

a quick google will tell you how

rapid yacht
#

Swear by it? LOL

#

alright

subtle blade
#

Anything that makes plugin development a bit easier can't hurt

wanton delta
#

ive never herad of it :s

rapid yacht
#

True

young dawn
#

I just need it to test plugins for a larger server, I don't need to port forward or anything.

rapid yacht
#

@wanton delta u use IJ,

smoky tundra
#

i think i used it in the past but not anymore

rapid yacht
#

?

subtle blade
#

Plugin made by a community member for IJ, Martoph

wanton delta
#

ys

#

ive never heard of it :p

#

i will look into it now

rapid yacht
#

It makes things much quicker when making plugins

wanton delta
#

seems interesting

subtle blade
#

Supports Forge as well iirc. Saw some developers over in the Forge server using it which was pretty dope

rapid yacht
#

It is 100% worth a look

#

The thing is, it takes a bit of extra prep if your making a plugin under the version 1.12

#

It really isn’t a big deal though

subtle blade
#

yea but who the hell does that

rapid yacht
#

😮

#

You don’t like 1.8?

frigid ember
#

goo die

wanton delta
#

no one likes 1.8

#

1.15.2 or bust

#

anything under 1.13 isnt supported

#

hell, anything under 1.15 isnt supported

#

isnt**

final verge
#

Oooo Minecraft Development plug-in?

#

Makes small testing plugins for things super easy

#

I love it

young dawn
#

It says that there's no plugin.yml

fleet crane
#

Plugin.yml must be in the root

#

Not inside a package

young dawn
fleet crane
#

Yes

#

I said it must NOT be

young dawn
wraith dew
#

it needs to be in the root of the jar

south cedar
#

Bukkit.getWorld("world").isChunkLoaded(chunk) is returning null although I'm providing a chunk in the parameter

wraith dew
#

yes (i think)

fleet crane
#

A boolean method can’t return null

wraith dew
#

i cant remember since i use maven

#

getWorld is null

south cedar
#

17.04 00:30:26 [Server] INFO Caused by: java.lang.NullPointerException 17.04 00:30:26 [Server] INFO at org.bukkit.craftbukkit.v1_15_R1.CraftWorld.isChunkLoaded(CraftWorld.java:478) ~[server1152.jar:git-Spigot-ae72bf4-183139d] 17.04 00:30:26 [Server] INFO at com.starfluxgames.quests.commands.cmd_listquests.onCommand(cmd_listquests.java:38) ~[?:?]

fleet crane
#

Either its a bug or chunk is null

#

I’d probably bet chunk is null

young dawn
wraith dew
#

put it outside the src folder

#

put it in the root of your project

#

then i think it should work

#

also @fleet crane I have a question

#

relating to a bug but im unsure if its to do with spigot or minecraft

young dawn
dusty topaz
#

yep

wraith dew
#

yes that should work

fleet crane
#

I think it has to be in the src folder

#

I dont use intellij though

subtle blade
#

A boolean method can’t return null
Boolean

wraith dew
#

i think in eclispse its outside

fleet crane
#
        return isChunkLoaded(chunk.getX(), chunk.getZ());```
#

ye your chunk is nll

wraith dew
#

basically there are 2 moving compass targets

#

and the compass only works when the player is unrendered

#

do you know if thats a minecraft bug?

young dawn
wraith dew
#

@fleet crane

#

i dont know, i use maven so i just put it in a recourses folder

fleet crane
#

no idea, you can easily check yourself if its a minecraft bug

wraith dew
#

because it makes absolutely no sense for a compass to work until the target (a player) is rendered

subtle blade
#

Not sure it will matter given the changes to compasses in 1.16

#

Even if it is a vanilla bug, it likely will have been unintentionally fixed

fleet crane
#

compass rendering is client side anyway

warm carbon
#

@young dawn your main path is wrong

wraith dew
#

but does it cause problems if there are 2 targets?

warm carbon
#

it must be "me.hoggythewizard.nofail4.tutorial"

wraith grail
#

In the yaml (config.yml of my plugin), I tried this:
wbcworldregistery: - world: enabled: true
Got this when I printed the list:
[00 11 WARN]: This is what the list contained: [{world=null, enabled=true}]
The intention is to store several worlds in that wbcworldregistery, and each world is to
have a boolean associated with it.
Code I used to print that warning:
@Nullable List<?> wbcworldregistry = mainclass.getConfig().getList("wbcworldregistery"); mainclass.getServer().getLogger().log(Level.WARNING, "This is what the list contained: " + wbcworldregistry.toString() + "");

wraith dew
#

different compasses point to different targets

#

@warm carbon no the main path is right

fleet crane
#

you probably want to indent enabled and remove the -

warm carbon
wraith dew
#

nvm you are right

#

its wrong

#

sorry

warm carbon
#

no worries mate

wraith grail
#

@fleet crane Seems to have corrected the tree order as eclipse displays the yaml. So that was one part fixed. Thanks. :)
Now I just need to figure out why I get a nullpointer. I bet it's because I am trying to print the list directly.

#

Nope. Was not it.

wraith dew
#

did you solve it?

rapid yacht
#

yo choco

#

remember how u said I gotta have return true;?

#

in order for my commands to not repeat themselves in chat?

#

it's giving an error

fleet crane
#

return true in onCommand not onEnable

rapid yacht
#

o lmao thanks

#

Also, how do you send a message in the chat?

#

ik System.out.println(); is console

#

but what about the chat?

wraith dew
#

loop through Bukkit.getOnlinePlayers()

#

and do player.sendMessage("message");

rapid yacht
#

Thank you

wraith dew
#

np

silk gate
#

or

#

Bukkit.broadcastMessage?

wraith dew
#

that will send it to the console as well#

#

both work

rapid yacht
#

Alright awesome

#

thx again

#

ohh hold on, does that send the message to everyone?

wraith dew
#

yes

rapid yacht
#

I want the message to be sent to only the command executer

wraith dew
#

event.getPlayer().sendMessage()

south cedar
#

sender.sendMessage("")

wraith dew
#

i meant that

rapid yacht
#

Thank you

#

haha

wraith dew
#

thats for events like block break

south cedar
#

I'm not sure on the context so @wraith dew is also correct

wraith dew
#

its says command executor

south cedar
#

Can you paste your code?

rapid yacht
#

me?

#

sure

south cedar
#

Wait nevermind, xD

rapid yacht
#

ok

south cedar
#

I thought @wraith dew was you haha

rapid yacht
#

lmao

wraith dew
#

?

wraith grail
#

This solved it in the end:

Set<String> lol = mainclass.getConfig().getConfigurationSection("wbcworldregistery").getKeys(true); mainclass.getServer().getLogger().log(Level.WARNING, "boolean: " + lol.toString() + "");
Gave me:
[01:06:42 WARN]: boolean: [world, world.enabled, world2, world2.enabled]

south cedar
#

Alright this chunk problem is doing my head in.... Don't question the mess that it is. I'm pretty new to coding.

Can someone please have a look? https://github.com/pilchard2002/SFNQuests

In Main.java I'm running summonQuest(String, Location, Boolean), and I'm summoning an entity with the provided location argument.. I'm adding the chunk that it's spawned in paired with it's UUID in entityChunks.
Later when I'm in cmd_listquests.java or killallquests.java I'm trying to load the chunk that is stored by the UUID.
if (!Bukkit.getWorld("world").isChunkLoaded(plugin.entityChunks.get(plugin.entities.get(i)))) Bukkit.getWorld("world").loadChunk(plugin.entityChunks.get(plugin.entities.get(i)));
This is returning a NullPointerException

Could anyone please explain this as I've been trying to fix it for a few days!

wraith dew
#

which class?

#

nvm

#

does the world generator generate all chunks?

south cedar
#

??

wraith dew
#

nvm

gloomy shuttle
#

The verify dont get message for veirifaction

#

xd

wraith dew
#

can you print the stack trace @south cedar

#

?paste

worldly heathBOT
south cedar
#

The first time I run /listquests there is no problem.

#

after I run /killallquests it breaks

vernal spruce
#

@gloomy shuttle same sadly

wraith dew
#

does killallquests set anything to null?

south cedar
#

plugin.entityChunks.remove(ent.getUniqueId()); ent.setHealth(0D); plugin.entities.remove(ent);

wraith dew
#

plugin.entities i think is null

south cedar
#

it removed the chunks and entities from the List<> and HashMap<>
Although if I spawn another quest is adds it back into entities so it shouldn't be null

mellow matrix
#

how to stop a command in minecraft before it is executed

#

note i can not code so i need to use a plugin

south cedar
#

line:225 in Main.java summonQuest()

wraith dew
#

wait

#

it throws a null pointer on line 46

rapid yacht
#

What's the event that allows players to break blocks?

south cedar
#

BlockBreakEvent

vernal spruce
#

nvm

rapid yacht
#

Doesnt show up though :/