#help-development

1 messages · Page 1647 of 1

plain scroll
#

oh no its not like im tryin to learn it rn

#

🤯

quaint mantle
#

how do I check which hand the item was clicked into?

quiet ice
#

context?

quartz valve
#

how can i check, if a button was pressed by an arrow?

lost matrix
quartz valve
lost matrix
oblique pike
#

How do you spawn elder guardian laser particle?

lost matrix
lost matrix
crude charm
oblique pike
#

Thx

ancient whale
#

Hey, I would like to clear an empty glass bottle if dropped in the PlayerDropItemEvent
But so far the only way I got this working is by caching the entityId of the itemDrop and to cancel it's spawn in the EntitySpawnEvent but i'm pretty sure I could avoid using the EntitySpawnEvent
(I got nothing working properly in the PlayerDropItemEvent, setting the item to air, canceling the event...) any ideas ? 🙂

lost matrix
#

getItemDrop().setItemStack(emptyBottleItemStack)

tardy delta
#

does anyone knows if worldguard lets region members do all the things by default?

restive tangle
#
                String kits = "";
                for(String key : plugin.getConfig().getConfigurationSection("Kits..").getKeys(true)){
                    kits += plugin.getConfig().getString("Kits.") + " , ";
                }
                p.sendMessage(ChatColor.GOLD + "HERESY " + ChatColor.GRAY +"| kits: " + ChatColor.YELLOW + kits);

This is iterating through my config file and im trying to make it get the KIT.* path , my config file is here , i want it to get the "PVP" from the Kits path

  PVP:
    armour:```
ancient whale
lost matrix
#

getItemDrop().remove();

ancient whale
fathom canyon
#

does someone have a good gen script for me? to make a gen server?

lost matrix
fathom canyon
#

can i dm u?

restive tangle
#

nevermind , i got it

#

im very slow my bad

lost matrix
# restive tangle ``` String kits = ""; for(String key : plugin.ge...
    final String[] kitNames = plugin.getConfig().getConfigurationSection("Kits").getKeys(false).toArray(new String[0]);
    final String kitListString = Arrays.toString(kitNames);
    player.sendMessage(ChatColor.GOLD + "HERESY " + ChatColor.GRAY + "| kits: " + ChatColor.YELLOW + kitListString);
lost matrix
tardy delta
#

are minecraft bans by name or by uuid?

eternal night
#

uuid

opal juniper
#

changes name, gets banned

#

hmm

#

so

#

can i get an Entity object from id

#

cause i need to be able to persist after a restart

#

or do i delete it and start again

lost matrix
#

Entity ids will change after a restart

#

UUIDs wont

opal juniper
#

ok… so can i do it with uuids?

lost matrix
#

You can get an Entity by its UUID if it is currently loaded.

#

If its in an unloaded chunk then not,.

opal juniper
#

myeah, makes sense

#

what happens if i teleport an unloaded entity

#

just nothing?

lost matrix
#

You cant get an unloaded entity in the first place

#

You should save on ChunkUnloadEvent and load on ChunkLoadEvent

opal juniper
#

wait - i mean if i have an entity that i am teleporting down a line in a certain direction and then there is no player nearby - what happens

quaint mantle
#

Why i can't set spawn with simplespawn plugin?
[5:19 PM] Secret_Rojs: i can't /setspawn
[5:19 PM] Secret_Rojs: i'm on version 1.16.5

quiet ice
#

it'll unload at some point

loud swift
#

Hey guys, i was doing some research on physics events, and found something weird.
There are some physics events being triggered by DIRT, and they are affecting STONE, next to them.
I went to the place of the physics event and ther is flowing water above the dirt that triggered the event, which probably moved during chunk generation/load, but the dirt block shouldn't have triggered anything in my opinion.
Anyone know what causes this akward physics events?
Do you think this might be a spigot bug?
ps: went to the java docs and the description was:
"Thrown when a block physics check is called. "

opal juniper
#

myeah - but will it throw an error or just do nothing

#

this may be a try it and see moment

quiet ice
#

it depends on NMS implementation

#

cb just calls entity.setLocation()

wide moss
#

Hey,

I have a problem with MongoDB,
I cannot save information, however I do manage to retrieve it

Anyone know where this came from?

public Document getDocument(String databaseName, String name) {
        BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.append("pseudo", name);

        return this.getOther(databaseName).find(searchQuery).first();
    }
wide moss
# wide moss Hey, I have a problem with MongoDB, I cannot save information, however I do man...

Error: ```
Caused by: java.lang.IllegalArgumentException: Invalid BSON field name pseudo
at org.bson.AbstractBsonWriter.writeName(AbstractBsonWriter.java:532)
at com.mongodb.internal.connection.BsonWriterDecorator.writeName(BsonWriterDecorator.java:193)
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:211)
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:154)
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:45)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)
at com.mongodb.operation.BulkWriteBatch$WriteRequestEncoder.encode(BulkWriteBatch.java:403)
at com.mongodb.operation.BulkWriteBatch$WriteRequestEncoder.encode(BulkWriteBatch.java:375)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)
at com.mongodb.internal.connection.BsonWriterHelper.writeDocument(BsonWriterHelper.java:77)
at com.mongodb.internal.connection.BsonWriterHelper.writePayload(BsonWriterHelper.java:59)
at com.mongodb.internal.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:147)
at com.mongodb.internal.connection.RequestMessage.encode(RequestMessage.java:138)
at com.mongodb.internal.connection.CommandMessage.encode(CommandMessage.java:61)
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:247)
at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450)
at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:226)
at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)
at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)
at com.mongodb.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:435)
at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:261)
at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:72)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:205)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:196)
at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:501)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:196)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:71)
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:216)
at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1053)
at com.mongodb.client.internal.MongoCollectionImpl.executeUpdate(MongoCollectionImpl.java:1037)
at com.mongodb.client.internal.MongoCollectionImpl.updateOne(MongoCollectionImpl.java:622)
at com.mongodb.client.internal.MongoCollectionImpl.updateOne(MongoCollectionImpl.java:617)

quiet ice
#

reeeeeeeeeeeeeeeeeeeeeeeeeeee

#

I dont understand how so many libs manage to get such a huge stacktrace depth

#

my assumption here is that you forgot to register a field

wide moss
#

ok i go test it ^^

halcyon coral
#

?learnjava

undone axleBOT
lost matrix
halcyon coral
#

?

#

I was just doing the bot command

lost matrix
vast sapphire
#

Does anyone know the crackshot plugin? what is the energy projectile? is it #getTargetBlock?

lost matrix
#

Morphia is a object document mapper. It reduces a lot of boilerplate when working with mongodb but it can screw you over really really fast if you dont
fully understand the implications of it regarding mongodb.

wide moss
#

Ohh, okay

tardy delta
#

pff worldguard goes brr

solid cargo
#

how can i set a specific gamerule in a specific dimension

lost matrix
solid cargo
#

how did you guess my gamerule

#

and uh, how do i change the dimension

#

what do i change from the final thing?

lost matrix
#

index 0 is the main world
index 1 is the nether
index 2 is the end
every index above that are custom worlds loaded by a plugin

solid cargo
#

ah ok

#

so i make the same thing thrice for all worlds?

lost matrix
# solid cargo so i make the same thing thrice for all worlds?

Sure. Or you write a method like this to set a gamerule in all default worlds:

  public static <T> void setGameRuleInAllDefaultWorlds(final GameRule<T> gameRule, final T value) {
    final List<World> loadedWorlds = Bukkit.getWorlds();
    for (int index = 0; index < Math.min(3, loadedWorlds.size()); index++) {
      final World world = loadedWorlds.get(index);
      world.setGameRule(gameRule, value);
    }
  }
solid cargo
#

ty man/woman/other <3

hybrid spoke
#

7smile is a woman

solid cargo
#

ok

lost matrix
solid cargo
#

7smile, what do i need to do to disable it in all worlds with first method

#

this seems not to work

tardy delta
#

Bukkit.getWOrlds().foreach(// apply the gamerule)

#

something like that?

lost matrix
#
  public static <T> void setGameRuleInAllWorlds(final GameRule<T> gameRule, final T value) {
    for (final World world : Bukkit.getWorlds()) {
      world.setGameRule(gameRule, value);
    }
  }

spoonfeed

tardy delta
#

🙄

solid cargo
#

thats not a good sign

#

ik spoonfeeding isnt good, stop screaming at me 🙄

vast sapphire
#

how do I get then entity the player is looking at?

lost matrix
vast sapphire
#

1.17

lost matrix
#

Ray trace in the players direction

vast sapphire
#

hm ok

lost matrix
# vast sapphire hm ok

Example:

    Player player = ...; // Get player from somewhere
    World world = player.getWorld();
    Location start = player.getEyeLocation();
    Vector direction = start.getDirection();
    double distance = 5;
    Predicate<Entity> filter = entity -> !entity.getUniqueId().equals(player.getUniqueId());
    RayTraceResult rayTraceResult = world.rayTraceEntities(start, direction, distance, filter);
    if (rayTraceResult == null) {
      // No hit
      return;
    }
    Entity hitEntity = rayTraceResult.getHitEntity();
    if (hitEntity == null) {
      // No hit
      return;
    }
    // Use entity here
grim ice
#

why if (rayTraceResult == null) {
// No hit
return;
}

#

cant you do if (rayTraceResult == null) return;

silk mirage
#

is there any way to check for an entity (ender pearl) which is still alive (not hitted a object yet) thrown/summoned by a player at the current time?

#

I'm looking for a friendly method

#

.-.

ivory sleet
grim ice
#

there is one line and its one word

#

a waste of 6 lines

#

:D

silk mirage
somber hull
#

so im playing a particle effect

lost matrix
somber hull
#

but it plays on the blocks corner every time

#

block.getWorld().spawnParticle(Particle.DRIP_WATER, block.getX(), block.getY(), block.getZ(), 10);

hybrid spoke
somber hull
#

this just spawns 10 water droplets in the corner

hybrid spoke
#

if you would go for the CCP you would have to format your code too

#

and for now its just a giant block

lost matrix
hybrid spoke
#

what one did you read?

lost matrix
#

Eg Clean Code by Bob Martin

hybrid spoke
#

also there are no real specifications. there are just recommendations to make your code cleaner

grim ice
#

how is wasting lines making code clean

hybrid spoke
#

2Hex shut. you cant even jump in this discussion

lost matrix
grim ice
#

i dont need to be great at java to know that

ivory sleet
#

Not like one or the other gives runtime benefits

hybrid spoke
#

Clean Code by Robert C. Martin Series f.e. recommends to seperate your code so its not just a giant block

#

the scope is defined and visualized by the brackets

somber hull
#

particle no work

#

How would i place them randomly in the block

hybrid spoke
#

but maybe its just your own code guidelines

grim ice
hybrid spoke
#

and everyone has their own

somber hull
#

Cause Random doesnt let you set a maxDouble

hybrid spoke
#

and mine seems to be annoying. ask @opal juniper lmao

hybrid spoke
lost matrix
quiet ice
#

I also always use brackets

hybrid spoke
quiet ice
#

Especially inlining everything into a single line will result in some code gore - not a fan of that

grim ice
#

nerd

hybrid spoke
#

and not just switching every 2 weeks because some people do it otherwise

ivory sleet
#

2hex the only reason when I would not use squiggly brackets even if I can would be a lambda expression, turning it to a lambda body would certainly add more verbosity.

grim ice
#

at some point ill change everything about how i code

somber hull
#

wait wtf

somber hull
#

water particles are just hovering in the air for a second

ivory sleet
#

Many words

somber hull
#

they hover there, then fall

grim ice
#

o

quiet ice
#
if (condition) {
  // OP
}
``` - readable most of the time
```java
if (condition)
  // OP
``` - mostly readable
```java
if (condition) // OP
``` - unreadable for large ops
```java
if (condition) {/* OP */}
``` - if you really need to streamline things
grim ice
#

i only use the 3rd way for return; and stuff

#

tbh ill just do what i find good

#

all that bs is confusing

somber hull
#

🖌️ -tbrush

ivory sleet
#

For instance
ThreadLocalRandom.current().ints()
.filter(i -> i % 2 == 0)
.mapToLong(i -> i*3)
.peek(System.in::println)
.count()

This would be a lot more verbose if we would use lambda bodies for the lambda expressions.

somber hull
#

Yall should really make a development discussion channel

quiet ice
#
while(condition) {
    // OP
    break;
}
  • really strange shit
somber hull
#

...

grim ice
#

why would u even need that

quiet ice
#

continue

gleaming grove
#

Hi, i just made automatic dependecy injection api for my purpose.
it works greate and make development time a way shorter. I wonder why
this desing pattern is not so popluar in spigot community. Can someone
told me disadvantage of using it?

quiet ice
#

java doesn't have a GOTO outside of bytecode, so sometimes you will need to improvise

opal juniper
#

perfectionist af

waxen plinth
#

The break keyword that is

#

Sometimes it makes more sense to do a while-true with a conditional break than a while with a proper condition

unreal quartz
#

think he was referring to the non-repeating while loop

#

i.e. a glorified if statement

opal juniper
#

^

waxen plinth
#

Oh lol

#

Also incredibly useful for when you need a while loop that only runs once

unreal quartz
#

do { } while (false)

waxen plinth
#

Better than commenting out your code block 👍

quiet ice
#

do {}while(false) is basically {}

opal juniper
#

this

unreal quartz
#

amp, yikes

opal juniper
#

sorry am on mobile

visual tide
#

im trying to get the block a dispenser is facing, but this throws ```java.lang.ClassCastException: class org.bukkit.craftbukkit.v1_8_R3.block.CraftDispenser cannot be cast to class org.bukkit.material.Dispenser (org.bukkit.craftbukkit.v1_8_R3.block.CraftDispenser and org.bukkit.material.Dispenser are in unnamed module of loader java.net.URLClassLoader @37a71e93)

```java
e.getBlock().getRelative(((org.bukkit.material.Dispenser) e.getBlock().getState()).getFacing())

any ideas?

waxen plinth
#

Don't do that

#

Do this

#
BlockData data = block.getBlockData();
Directional d = (Directional) data;
BlockFace face = d.getFacing();```
#

Make sure you import the Directional in the right place

#

org.bukkit.block.data.Directional

#

Not org.bukkit.material.Directional

visual tide
#

i dont have blockdata :/
im on 1.8.8

waxen plinth
#

bruh

tardy delta
#

i dunno why people actually use super.onDisable()

waxen plinth
#

Well then cast to the other Dispenser

unreal quartz
#

because they don't realise it doesn't actually disable the plugin

waxen plinth
#

Not the one in the material package

#

The one in the block package

#

org.bukkit.block.Dispenser I think

visual tide
ripe bridge
#

hey dude how i update crazy crates plugin

gleaming grove
#

what is difference between Class<?> type and Class type ?

waxen plinth
#

One is generified

#

The other is not

#

They're more or less the same but the left one won't give warnings

#

But you should always parameterize classes that have type parameters

gleaming grove
quiet ice
#

Javac will shout at you for latter

#

But it will work even in pre-generics java (which you will unlikely use)

waxen plinth
#

Everyone uses java 1.0 these days

#

It's the new trend :)

opal juniper
#

“don’t touch my code it’s beautiful”

hybrid spoke
#

yeah and then some guy named ollie comes in and "fuck it, just want it to work" it

opal juniper
#

😈

#

myea

hybrid spoke
#

even if it already works

#

:(

opal juniper
#

that does sound like me

waxen plinth
#

"just want it to work" is such a bad mindset

#

Your goal isn't to get your code to work

opal juniper
#

i feel like i have been taken out of context

hybrid spoke
#

"refactoring it later" - quits - "hey gtg, you'll do that"

opal juniper
#

nononono

#

i’m unhappy with the way i have been represented

#

i need a lawyer

quiet ice
#

I did get a patch into forgeflower that had the "just want it to work" mindset active

waxen plinth
#

I take RedLib plugs as payment

opal juniper
#

i do it anyways

hexed hatch
#

Use FALLING_WATER for immediate gravity

opal juniper
#

thought you were shouting then i realised it was an enum

#

😳

hexed hatch
#

I am shouting

waxen plinth
#

Enums are just very assertive variables

opal juniper
grim ice
#

i agree with god cipher

opal juniper
#

and i don’t have git on muh iphone

#

something tells me apple won’t allow it

grim ice
unreal quartz
#

working copy is a git client

#

for ios

quiet ice
#

Alternatively, use Github's editor and edit one file per commit at a time

opal juniper
#

this godcipher dude sees a large method and is like
“this needs to be split into at least 5 sub methods immediately”

opal juniper
unreal quartz
#

you can get the full version for free since you're a student

grim ice
#

can u give me an example of submethods?

opal juniper
#

it does diff of code from the camera???

opal juniper
#

but i probs won’t bother cause i’m home soon anyways

unreal quartz
#

it's great if you're one of those weirdos who use ipads for some reason

opal juniper
#

ipads always seem handy but for their price there are better things

#

i was thinking about swapping my pc for a laptop and a thunderbolt gpu dock but those things are expensive af

grim ice
#

laptops are way better than u expect

#

theyre reallllly useful

#

u can take them wherevent u want

unreal quartz
#

if you're going to do that then whats the point since you're going to be tethered to a desk by the gpu dock anyway

opal juniper
#

i mean - the gpu would only be for like if i was at home wanting to play games

unreal quartz
#

you have a pc for that

opal juniper
#

swapping

unreal quartz
#

yeah

hybrid spoke
grim ice
#

get a gaming laptop

unreal quartz
#

what's the point

#

keep the pc and just get a laptop to carry away

opal juniper
#

so i have a laptop that i can take idk yeah probably

grim ice
#

dont u use interfaces

#

or smth

unreal quartz
#

instead of blowing your money on a gpu dock

hybrid spoke
#

yeah i use interfaces only

opal juniper
#

yeah well i will now

grim ice
opal juniper
#

but like i was naïve and unaware of the price

hybrid spoke
grim ice
#

ok

#

so like

opal juniper
#

i think you blew their mind godcipher

hybrid spoke
#

thats what a god is supposed to do

opal juniper
grim ice
#

public void ez() {

interface fuck() {
sout("fucked");
}

fuck();
}

#

or w h a t

hybrid spoke
#

exactly

grim ice
#

so u wanted them to make sub methods so theyre organized or wat

hybrid spoke
#

submethods

frigid falcon
#

Is there a public repository for spigot compiled including the net. minecraft package?

eternal night
#

no

hybrid spoke
#

splitting your large method into several smaller private methods

grim ice
#

o

frigid falcon
#

Thanks

quiet ice
#

NMS is ARR

hybrid spoke
#

look up "Extract Method refactoring pattern" @grim ice

quiet ice
#

Rehosting it would be illegal in most countries

grim ice
#

ok

somber hull
grim ice
#

oo

grim ice
#

like at what amount of lines

opal juniper
#

0

#

if ur god

hybrid spoke
#

if it gets too complicated to read and understand like a book

somber hull
#

Can i have a int in a config, and also allow people to set it to false?

opal juniper
#

no

#

well

#

yes

#

but you can’t use getInt

somber hull
#

well yea

#

Like could i check if its a boolean first

#

And if it isnt, check if its an int?

grim ice
#

thats easy

quiet ice
#

I personally extract instruction sets into proper methods only when I find (or expect) that I actually rewrite parts of the code. I would say that a method size limit would be pretty arbitrary here

grim ice
#

if(!plugin.getConfig().getBoolean("lolol"){
// do smth if its false (remove ! to check if its true)
if(plugin.getConfig().getInt("lolol") == 10) {
// do something
}

#

if a boolean is not true or false it will return false

#

so like if there is a number in like lolol: 69

#

it will return false

somber hull
#

but if its not a boolean wouldnt it give me an error?

grim ice
#

i just said

grim ice
#

if its not a boolean it will return false

somber hull
#

wait but the getInt would give an error right?

#

if its a boolean?

grim ice
#

no

#

wait

somber hull
#

I think im just gonna add a enabled in the config

grim ice
#

if(!plugin.getConfig().getString("lolol").equals("false"){
// its false
}
if(plugin.getConfig().getInt("lolol") == 10) {
// do something (its an int)
}

ivory sleet
#

U’re trolling right

grim ice
#

if its an int it will return false wont it

#

so it will run both if i use getBoolean

ivory sleet
#

getString("lolol").equals("false")

grim ice
#

Yes i know i can use a boolean

young shell
#

I currently have the issue that a integral part of my config.yml isn't getting created even though it is in the config.yml template in the IntelliJ Project. Any Ideas what the issue could be

ivory sleet
#

Well

grim ice
#

but it will still return false

#

if its an int not false or true

#

won't it

ivory sleet
#

use isSet then and getBoolean == Boolean.FALSE

grim ice
#

yeah thats one too

ornate heart
#

If i update my plugin to work on a newer version, which number would i edit in terms of semantic versioning? (Current plugin version is 1.3.1)

grim ice
#

my solution is still good if he doesnt have anything better :3

ivory sleet
ivory sleet
young shell
#
getConfig().options().copyDefaults();
saveDefaultConfig();```
ornate heart
grim ice
#

@young shell uh

#

i know why

#

because thats how spigot works

#

lol

ivory sleet
grim ice
#

if u want new config updates to roll out

#

without deleting the config.yml from ur plugins folder

#

and restarting the server

young shell
#

I did delete the config.yml and it still happens

grim ice
#

what?

#

lmao what

young shell
#

I deleted the whole testserver and it still happens

grim ice
#

ur wrong

#

u did smth wrong

#

either didnt save or smth

young shell
#

I saved it for sure, since IntelliJ Auto-Saves and compiled it multiple times and made sure that i used the new jar

grim ice
#

check if the config is correctly formatted

young shell
#

The weird thing is that it appeared in the config.yml earlier, I didn't change anything about it and for some goddamn reason it suddenly doesn't work anymore

gleaming grove
#

hi i just make piano plugin and have trouble with raycasting piano keys. There is some option to create custom hitbox?

ivory sleet
#

holy shit

#

thats like actually cool

young shell
maiden mountain
#

Now, play music on it

gleaming grove
#

all is base on armorstand but they are too close to eachother to detect colistion

gleaming grove
ivory sleet
#

wait thelooter what build tool do you use? Was it the copying from jar to data folder that doesn't work?

young shell
#

I use Maven

#

It doesn't generate the lines when starting the server

grim ice
#

also yes

#

u can do that 100%

young shell
#

So i guess yeah copying from the Jar to the Datafolder

gleaming grove
grim ice
#

BUT HOW IN THE FUCK DID U DO THAT WITHOUT RESOURCE PACKS LOL

grim ice
gleaming grove
grim ice
#

o

gleaming grove
grim ice
#

but how did u do that? do u know a tutorial for that

gleaming grove
#

what excatly i created custom 3d models in blockbench and then place them at the armorstand

grim ice
#

do u know a tutorial for that tho

gleaming grove
#

nope there is not

grim ice
#

rip

gleaming grove
#

i can record something for you

ivory sleet
grim ice
#

tbh u should sell it

#

i cannot handle this masterpiece being for free

gleaming grove
young shell
grim ice
#

o

sick forum
#

Hello guys, is there the way to use TextComponent with HEX-colored messages besides using ChatColor.of(#xxxxxx)?

grim ice
#

im so sad this only has 200 downloads

gleaming grove
#

well there is not much people interested in piano and MIDI

#

and this plugin is mostly useless

young shell
somber hull
#

Would it be bad practice to have multiple of the same listener but for different things?

#

Like multiple BlockGrowEvent in the same class. But with different code inside

gleaming grove
#

no

#

but better to make one Event and inside put switch that trigger an action

somber hull
#

aight

lost matrix
#

Example:

public record GUIListener(GUIManager manager) implements Listener {

  @EventHandler
  public void onClick(final InventoryClickEvent event) {
    this.manager.handleEvent(event);
  }

  @EventHandler
  public void onClose(final InventoryCloseEvent event) {
    this.manager.handleEvent(event);
  }

}
somber hull
#

alrught

#

thank you

gleaming grove
lost matrix
#

It just reduces a bit of boilerplate. There are also some implications regarding the memory structure but thats secondary.

gleaming grove
#

ok thanks

waxen plinth
#

That's not the sort of thing I would have thought to make a record

#

It also seems kind of pointless to just wrap those events

lost matrix
lost matrix
#

You could have multiple manager classes to which you pass your events.

#

It probably is in two different instances

gritty urchin
quiet ice
#

how do you know that it is empty?

gritty urchin
#

In the Listener class: System.out.println(inCaptchaA); // Empty

#

Shows as empty

quiet ice
#

what is the .toString() implementation of your HashMap?

gritty urchin
#

??

#

I can see no .toString() implementation

#

printing it already returns a string

quiet ice
#

hm

eternal oxide
#

where is cpa coming from?

quiet ice
#

apparently AbstractMap implements an interesting toString method. Can't complain

gritty urchin
#

Doesn't make a difference

#

Already returns a string printing out

eternal oxide
#

HashMap<Player, ColourProcessor.Colours> inCaptchaA = cpa.getInCaptchaA(); what is cpa?

gritty urchin
quiet ice
#

do you ever insert anything to the map?

eternal oxide
#

so where do you add a player to cpa?

quiet ice
#

You only use containsKey, but not put or something like that

gritty urchin
#

the constructor is called on a PlayerJoinEvent

eternal oxide
#

you can;t call the contsructor on an already created object

quiet ice
#

Change CaptchaA cpa = new CaptchaA(); to final CaptchaA cpa = new CaptchaA();

eternal oxide
#

change the public Captcha(Player p) to a method

quiet ice
#

that would prevent my first suspicion

eternal oxide
#

then call the method to add a player

#

Yeah, he's creating two instances of cpa

gritty urchin
#

Yeah, doesn't make a difference.

lost matrix
eternal oxide
#

is your Join event in your InventoryListener class?

quiet ice
#

I'm so close to recommend the forbidden keyword

eternal oxide
#

god no

#

it would fix his issue, but it wouldn;t teach him where he's going wrong

lost matrix
quiet ice
#

no, strictfp

ivory sleet
#

goto 😄

lost matrix
quiet ice
#

That one is doubley-forbidden

eternal oxide
#

cpa is a field within your InventoryListener class

gritty urchin
#

Two different instances

obtuse sinew
#

why is there no armor equip event?

eternal oxide
#

yes

quiet ice
eternal oxide
#

Not in Spigot

obtuse sinew
#

theres not

quiet ice
#

Doesn't Inventory click event solve it?

obtuse sinew
#

theres more to it that that

eternal oxide
#

lots more

obtuse sinew
#

you can get it equipped from dispensors

quiet ice
#

yea, mobs

obtuse sinew
#

hotbar

quiet ice
#

I see

eternal oxide
#

like, interacting with armorstands, hotbar, drag/drop, shift click

obtuse sinew
#

yea

#

its such a useful one and the lib that used to be there is deprecated now

opal juniper
#

armourequipevent hasn’t been merged yet

#

idk why the work stagnated

obtuse sinew
#

theres a pr for it?

opal juniper
#

there is a branch

obtuse sinew
#

huh

#

where can i find this?

opal juniper
#

?stash

undone axleBOT
grim ice
#

how to make dropped items at a player feet

opal juniper
#

yes

#

you do

grim ice
#

that arent

#

pickable

#

u use packets right

quiet ice
#

To make them pickable you simply reduce the pickup cooldown to 0

eager sapphire
#

*aren't ?

#

I think they want fake entities that can't be picked up

opal juniper
quiet ice
#

To make them not pickable increase the pickup cooldown to 4452414

eager sapphire
#

You can also cancel the event but the server will keep spamming it forever in that case

opal juniper
#

ah right

#

fair enough

quiet ice
eager sapphire
#

Hey so since we were speaking of missing API...

I've got component-based chat, action bars, item lore (via NMS sadly) - is there spigot API for sending component-based titles?

opal juniper
#

doubt

wise eagle
#

Hey!

#

I uploaded a wrong resource! How can I delete it?

obtuse sinew
#

report it

opal juniper
#

update it

obtuse sinew
#

oh

#

umm

opal juniper
#

also wrong channel

#

but yes

eager sapphire
#

You can delete it after you've uploaded a new one

opal juniper
#

probably update it and upload a new jar

eager sapphire
#

don't need to report it, I think, there's a delete button in the Version history tab

#

but you can't delete the most recent version .. for some reason

opal juniper
#

^

opal juniper
eager sapphire
gritty urchin
quiet ice
#

ohno

gritty urchin
#

when trying to access the HashMap

quiet ice
#

what kind of witchcraft did you do now?

wise eagle
#

How can I add premium plugins to spigot?

obtuse sinew
#

how do i get access to the stash?

quiet ice
#

sign the CLA, somewhere

obtuse sinew
#

cla

#

hmm ok

quiet ice
#

?cla

undone axleBOT
crimson terrace
#

Hey, Im trying to make a staff that launches you into the direction youre looking in. Its working pretty well but Im missing the part where I remove the "NoFallDMG" Tag from the player who used it. Im running into issues because theres a good possibility that the player doesnt take falldamage I can negate when they have the tag and they could just save the tag for later by not taking fall damage after using the item.

solid cargo
#

Cannot resolve method 'runTaskLater(me.powerbutton.kaboom.Kaboom, <lambda expression>, boolean, int)' yo guys why

eternal oxide
gritty urchin
solid cargo
eager sapphire
wise eagle
#

How can I upload premium plugins?

quiet ice
quiet ice
eternal oxide
crimson terrace
crimson terrace
#

currently I have a timer that runs all the time that ticks every 6 seconds to check wether the player is standing on a block or not...

quiet ice
#

its static final and the ctor doesnt refeer to it

eternal oxide
eager sapphire
tardy delta
#

is this something?

quiet ice
#

Your lambda expression makes no sense

tardy delta
crimson terrace
quiet ice
#

You probably meant to use () -> Bukkit.getWorlds().get(2).setGameRule(GameRule.FALL_DAMAGE, false ...

#

() -> Bukkit.getWorlds().get(2) would be a Supplier<World> but it expects a Runnable

crimson terrace
#

just use getNearbyEntities

solid cargo
#

ty

undone axleBOT
quiet ice
#

and/or the stacktrace

eager sapphire
# crimson terrace Im currently doing my first plugin and havent seen all the methods yet. sorry if...

Well that is a great question - myself and I think most plugins make a separate class to store our custom player data, then have like a Map<UUID, PlayerData> (or maybe WeakHashMap<Player..>)

But there is the persistent metadata api now, you could probably store it directly on the player with that:

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/persistence/PersistentDataContainer.html#set(org.bukkit.NamespacedKey,org.bukkit.persistence.PersistentDataType,Z)

The API is a little intimidating TBH but it's actually not hard to use

solid cargo
#

oops

restive tangle
#

how would i go about creating an entity lets say pig with specific properties

eternal night
#

you should probably not use the PDC to store player data like that

eager sapphire
#

World
(proud to have PR'd that method! 😄 )

crimson terrace
#

example:

quiet ice
#

depends on which properties

#

for some property altering you dont need nms, for others you do

crimson terrace
#

well it works... so it probably exists

eternal night
#

there is a tutorial for pdc somewhere

#

.pdc

#

no

quiet ice
#

?pdc

eternal night
#

oh

#

thanks

#

@crimson terrace ^^

crimson terrace
#

ooooooo perfect 😄

eternal night
#

might make your life a bit easier than the javadocs

quiet ice
#

PDC is a bit complicated

crimson terrace
#

Im guessing the location class is imported?

quiet ice
#

Importing the loc class has no effect here

crimson terrace
#

its in paper

#

maybe thats why

eager sapphire
#

If you don't have an entity to work with as the center of the query, you have to use World (loc.getWorld()) then pass the location back in.

There maybe should be a method on Location but there is not

crimson terrace
#

or that

quiet ice
#

You could use getNearbyEntites and filter out all non-living entities

hasty prawn
#

^

#

Streams 😍

quiet ice
#

There is an easier way afaik

crimson terrace
#

still dont know how to use streams.... such a noob lol...

#

just go removeIf

quiet ice
#

Use the Collection<Entity> getNearbyEntities​(@NotNull Location location, double x, double y, double z, @Nullable Predicate<Entity> filter) one

hasty prawn
#

That's a thing? Cool

#

I learn something new everytime I come here KEKW

crimson terrace
#

too many parameters, shutting down

opal juniper
#

lmao

quiet ice
#

Which would be e -> e instanceof LivingEntity

opal juniper
#

it’s fairly obvious what is what

quiet ice
#

is there some kind of (mostly) sane way to have a Map<String[], String> implementation where as the key object can be discarded/uncached after the put operation? I have the issue that the get operation returns null if I use a new string array (even if it has the same contents) however it returns the expected data if I reuse the instance

#

what does this mean for the people living under the rock?

tardy delta
#

😳

eager sapphire
lost matrix
quiet ice
#

The issue is that I'm calling the get method ~500k times per second

lost matrix
#

Then use a Object2ObjectCustomOpenHashMap from Fastutils and implement your own key hash method

quiet ice
#

yea, that's what I have been thinking about using

fervent gate
#

I'm trying to cancel the event when a player tramples a crop, and when a farmland dries, is that even possible?

tall dragon
#

playerinteractevent

#

phyisical interaction

#

and as for farmland drying you might be able to use BlockFadeEvent but im not sure on that

fervent gate
#

Is there a Material. for farmland?

tall dragon
#

yea

#

soil

crimson terrace
fervent gate
#

damn

tall dragon
#

^

fervent gate
#

thanks guys

tall dragon
#

no problem

crimson terrace
#

🙃

hardy swan
#

is there an inverse of PluginManager#registerEvents? To unregister listeners or clear listeners for a plugin?

eternal oxide
#

yes

opal juniper
#

yes

lost matrix
#

yes

crimson terrace
#

yes

quaint mantle
#

yes

tall dragon
#

well i shall help you out of misery and tell you, you should check out the HandlerList class 🙃

opal juniper
#

spoil sport

crimson terrace
hardy swan
crimson terrace
#

I love how 5 people across the globe just sat at their PC laughing at everyone saying "yes"

tall dragon
#

well technically thats what he asked for :)

crimson terrace
#

true

#

would this be true if the block was anywhere except on the surface?

hardy swan
crimson terrace
#

so if a block underground is mined, its replaced by cave air?

eternal oxide
crimson terrace
#

I guess Ill just stick with my complicated setup then

opal juniper
#

or just use .isEmpty() i guess

dense goblet
#

Can use isAir

#

I still don't get why they added cave air but it's probably for some weird mechanic I'm unfamiliar with

crimson terrace
#

bats maybe?

dense goblet
#

Nah

crimson terrace
#

maybe they feed on it

dense goblet
#

Bats are 1.4

opal juniper
#

xD

dense goblet
#

Don't think they've been touched since

crimson terrace
#

same

dense goblet
#

It's something 1.13

crimson terrace
#

I was gonna write something but then self control kicked in

dense goblet
#

Wait you are kinda right

#

Cave sounds happen more often and bats spawn more often

crimson terrace
#

that would be a rare case of me being right, so it cant be that. keep thinking.

#

maybe just something they are planning on doing?

dense goblet
#

Eh, it sounds like a weird solution to check if you're in a cave

#

Mojang style

opal juniper
#

why over engineer when you can just add a different type of air

dense goblet
#

It causes its own problems and is a very hacky solution

#

i.e. what if a player digs their own cave

young knoll
#

It's more useful during worldgen

dense goblet
#

How do they use it?

gleaming grove
#

hey is there another way to register event method. I need to make method 'onPluginStartEvent' private but because of that Spigot can't register it

tall dragon
dense goblet
tall dragon
#

yea i have wondered as well

gleaming grove
#

no to be overridden in class that will be inherit EventBase

dense goblet
#

You want it impossible to override or just not overridden by default?

gleaming grove
#

i mean to make sure that someone accidentalny not override it

dense goblet
#

final will do that

#

public final function

#

Oe protected final

#

Idk if protected works with events tho

gleaming grove
dense goblet
#

:)

quiet ice
#

protected should not work with events

grim ice
#

How do I add an external API to Intellij. I added it as a library but when I build my plugin with maven, I got this error: package (a package, example: package.package.package) does not exist

opal juniper
#

add it to the pom

grim ice
#

yeah i know that but h o w

#

<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>

#

i found this on googogol

#

but idk how to use it

opal juniper
#

normally the api will give you what you need

grim ice
#

it doesnt

quiet ice
#

Are you sure that it isn't hosted on some maven repo?

opal juniper
#

link?

grim ice
quiet ice
#

maven sucks for having local deps

opal juniper
#

use redlib

waxen plinth
#

👀

tall dragon
opal juniper
#

they have an armour change event iirc

quiet ice
#

<systemPath>${java.home}/lib/rt.jar</systemPath> actualy, wth

opal juniper
#

oh hey redempt

#

heheh

waxen plinth
#

Yeah PlayerChangedArmorEvent

quiet ice
#

why do you want to add the rt.jar

waxen plinth
#

I am summoned whenever anyone says redlib lol

#

If the event is all you need I wouldn't recommend using RedLib for just that though

opal juniper
#

true

waxen plinth
#

Since it'd be a plugin dependency for just one event

#

Feel free to copy the code for it though

tall dragon
#

u can use jitpack to use github projects are libraries @grim ice

grim ice
waxen plinth
#

Just please credit me if you use my code 🙂

opal juniper
#

is it just like a runnable that checks or something?

#

every x ticks

#

for a change

waxen plinth
#

Yeah every tick

opal juniper
#

myeah, i mean there is no better way to do it ig

opal juniper
#

until the branch gets merged

grim ice
#

i just click maven and do what they tell me?

tall dragon
#

yup

grim ice
#

@opal juniper man im not using another library or api

#

my code is already finished

#

:/

opal juniper
#

you are literally trying to use one???

#

i’m so confused

tall dragon
#

@waxen plinth woulnt it be better to use multiple other events to determine armor changes?

waxen plinth
#

Nope

quiet ice
waxen plinth
#

That's impossible

tall dragon
#

why not

waxen plinth
#

Because other plugins can edit a player's armor

#

Without sending events

#

For example, /clear

tall dragon
#

oh

#

yea of course thats not factored in then

waxen plinth
#

Checking every tick is the only way to be sure

tall dragon
#

yea you are right

grim ice
#

@tall dragon

opal juniper
#

lmaoooo

quiet ice
#

did you add the jitpack repo?

opal juniper
#

no

tall dragon
#

@grim ice did you add the repo

grim ice
#

yes

quiet ice
#

Also, replace Tag with the correct version

tall dragon
#

yea

grim ice
#

this one?

tall dragon
#

replace tag with 1.7.6

#

for latest

grim ice
plain scroll
#

is it broke?

#

or what jer of java do i need it to run on?

grim ice
plain scroll
#

is it 1.17

gleaming grove
#

for 1.17.1

plain scroll
#

i mean mc

#

oh

#

well its not workin?

gleaming grove
#

but i will investigate thx for report bug

plain scroll
#

is there an old ver that 100% works?

#

ill use an old mc ver

grim ice
#

wait i just removed the old one it works now i think

gleaming grove
tall dragon
#

@grim ice that should indeed work

dense goblet
#

@gleaming grove you'd have to implement your own raycasting algorithm

#
  1. Vanilla raycast to see if the piano is blocked
  2. Custom raycast against nearby pianos with max distance equal to the vanilla raycast's distance before hitting a block
#

If you don't care for perfect accuracy you can just step along the ray and do AABB tests (assuming your piano is orthogonally snapped)

#

First check against AABB covering all keys and then check whick key you hit based on the sideways position

dusk yarrow
#

how can i set the text of a sign and the facing of the wall_sign? (spigot 1.8)

gleaming grove
#

For now i made sth like this. Player shoot ray towards keys and getting closest key to ray destination

#

@dense goblet what do you think of this?

lost matrix
gleaming grove
#

becasue there are no blocks

lost matrix
gleaming grove
lost matrix
gleaming grove
#

only armorstand that are too close to eachother

lost matrix
#

This looks like you should use the position + angle of the player to calculate what key the player is looking at

dusk yarrow
lost matrix
gleaming grove
#

for now i have something like this to calculate hit position

wary harness
#

or any one here good with that language

lost matrix
wary harness
#

my friend has problem I think building project with it

#

and I am looking for some one to help with her problem

#

xd

gleaming grove
wary harness
#

no not me

gleaming grove
#

but this is the case?

wary harness
#

this is let me show u

#

nothing to do with spigot plugin

#

she got school project and follows this turorial

gleaming grove
#

so make ask this question on Python discord?

wary harness
#

well I am for long her

#

so asked if some one is good maybe with python

#

u get it

#

but yeah

#

will look in to that

lost matrix
#

Can you format this error in a readable way pls? This looks more like a c++ error of a backing library than a python error

wary harness
#

give me a few men it is on my friend need to wait for them

night copper
dense shoal
#

Hi everyone. I'm currently in the works of coming up with a functional design definition for a future plugin. I was looking for some kind of guide/resource that outlines how test-driven development could be applied to Spigot plugins. I found this: https://bukkit.org/threads/how-to-unit-test-your-plugin-with-example-project.23569/ using the Mockito and JUnit, but this guide is over 10 years old at this point.

Is anyone aware of any other resources and/or libraries that might be more Minecraft plugin specific for test-driven development?

reef wind
#

oi listen up fellas, I need the name of the common "pling" sound yeah?

night copper
#

note block bell?

rustic gale
#
    int x = 5;
    ItemStack item = new ItemStack(Material.STICK, x);

    ItemMeta meta = item.getItemMeta();

    meta.setDisplayName("Test");

    ArrayList<String> lore = new ArrayList();
    lore.add("123");

    meta.setLore(lore);

    player.getInventory().addItem(item);

When I run this, all i get in my inventory is a stick with no lore and the display name is still stick. Also note that item.hasItemMeta() returns false

reef wind
night copper
#

itemmeta meta = item.getitememta?

#

why is it guildChangeItem.getItemMeta

lost matrix
rustic gale
#

mb sorry

lost matrix
dense shoal
#

Oh cool, thanks for the info!

rustic gale
lusty cipher
#

no just ItemStack#setItemMeta

lost matrix
rustic gale
#

Ohhhh

#

alr ty guys

lost matrix
dense shoal
#

I have been writing plugins for about a year for fun and have been looking something just like this. I'm an enterprise java dev irl ( 😦 ), but I'm going to be doing a ground up development with Agile and want to see how realistic the methodology is with TDD 🙂

night copper
#

this might sound dumb but why do you say ItemStack#setItemMeta with "#" insted "."

lost matrix
lusty cipher
#

that's how javadoc function notation works

#

if you write javadoc and want to reference a function

#

you use Class#FunctionName

dense shoal
lost matrix
valid crescent
#

Hey everyone, I’m trying to make methods that return data from servers on the BungeeCord network (using plugin messages), but got stuck on this part... Does anyone know how can I make the method halt until the other server responds with the information?

lost matrix
#

Or at least lag out

lost matrix
valid crescent
#

Thanks, I'll try that

restive tangle
#

I cant use EntityVillager or CraftWorld , i heard i need to use buildtools but what do i have to do to get these

lost matrix
#

After you ran BuildTools once

obtuse sinew
#

?stash

undone axleBOT
restive tangle
#

and where do i find my "pom"

obtuse sinew
#

Pom.xml

lost matrix
obtuse sinew
#

Its created when you make a maven project

restive tangle
#

no i don't use maven

obtuse sinew
#

What are you using

restive tangle
#

That's the thing , i dont know what the fuck i am using

obtuse sinew
#

Um

restive tangle
#

its confusing me and i have been trying to see for an hour

obtuse sinew
#

Well

eternal oxide
#

Then you don;t need Craft anything

#

First learn Java, then how to make a basic plugin

restive tangle
#

i know basic java and how to make a basic plugin

obtuse sinew
#

Should look into a build manager like maven or gradle then

#

Thats going to help you

restive tangle
#

ill search into it more then

lost matrix
obtuse sinew
#

Personally i use gradle

quaint mantle
#

hi 🙂

#

You can help me I have a problem on spigot 1.16.3

#

plssss

lost matrix
#

Pls stop...

#

What java version do you use?

quaint mantle
#

ok ok but you can help me plsss i very urgent

#

SE1.8

lost matrix
#

Is Magical crops your plugin?

quaint mantle
#

no

lost matrix
#

Anyways. Update to java 11

quaint mantle
#

ok 🙂

lost matrix
#

or 16

quaint mantle
#

You've gotta use paste

#

?paste

undone axleBOT
night copper
#

Reminder: Its quicker to use int x = 3, y = 2, z = 5

obtuse sinew
night copper
#

int x = 3; int y = 2; int z = 5;

obtuse sinew
#

Ahh gotcha

#

I thought in compile it gets split either way?

quaint mantle
#

it does

#

it doesnt matter the way you declare them

#

its not interpreted

#

its a constant value at runtime

#

a = 1, b = 3, c = 9

no matter the way you declare these, theyll end up as 0s and 1s

main dew
#

how change player inventory without send packets?

lost matrix
main dew
#

yea but without send packet to player

lost matrix
#

Use protocollib to listen for outgoing packets and intercept them

#

But you know that this will lead to ghost items and weird behavior?

main dew
chrome beacon
#

Then what do you want

main dew
#

I don't want to create these packages

chrome beacon
#

If you don't want to intercept packets then fork spigot and remove the packet from being sent

#

Trust me this is not worth it

main dew
#

oke

sly trout
#

With scoreboards if you add 2 scores with the same name

#

it just combines into one ?

tame coral
#

Yep, it takes the most recent

dense shoal
gleaming grove
#

is there some event triggering after player press F to switch item between hands?

dense shoal
tame coral
#

here

dense shoal
#

Yup that's it lol

gleaming grove
#

thx guys

tame coral
#

np

unique halo
#

in my spigot plugin how do i access kits that were made with essentials?

fervent gate
#

I need help with names, I am trying to select a block, melon block for example, I used MELON and LEGACY_MELON_BLOCK, both don't work and when I do MELON_BLOCK, it gives an error... How do I do this?

#

Same with wheat

#

and mushroom blocks

#

Cannot resolve symbol 'MELON_BLOCK'

#

lemme check

sly trout
#

hey guys can we save

#

HashMap<Integer, String>

#

in YALM files

#

?

#

YAML

fervent gate
#

lemme check

#

Caused by: java.lang.NoSuchFieldError: LEGACY_MELON_BLOCK

#

now this

sly trout
#

well

#

I tried

#

it didnM't owkr

#

work

fervent gate
#

yes

sly trout
#
    title:
      1: "\xa77/cb editline"
    enabled: true``` ( the 1 is suppose to be the hasgmap value)
#

and it stores that weird thingty

#

instead of the string

tall dragon
#

@sly trout thats an unicode character isnt it

fervent gate
sly trout
#

it's a slash maam

#

oof my bad

#

am stupid

fervent gate
#

What does that mean?

sly trout
#

❤️

fervent gate
#

I'm coding in 1.8 btw

sly trout
#

1.8 for warriors

fervent gate
#

is that?

sly trout
#

only og are on 1.8

fervent gate
#

neither do I lmao

sly trout
#

what happened Bram?

sly trout
#

give the code

#

good idea

fervent gate
#

Did that

#

it gives MELON_BLOCK

#

MELON_BLOCK

sly trout
#

MELON_BLOCK

#

is the right one

fervent gate
#

that is the issue

fervent gate
#

but explain

sly trout
#

should be MELON_BLOCK

#

aight

#

what's the error

#

check if you got the right import

fervent gate
#

I do

#

Works with pumpkin, carrot, potato, etc

#

but not with that

tall dragon
#

@fervent gate "MELON_BLOCK" doesnt exist for you in the Material class?

fervent gate
#

that is the main problem

tall dragon
#

then ur not on the right spigot version

#

this is on 1.8

fervent gate
#

how

tall dragon
#

using maven?

fervent gate
#

what do I do wrong?

tall dragon
#

show pom

fervent gate
#

Where is that?

tall dragon
#

are you using maven