#help-development

1 messages · Page 1870 of 1

chrome beacon
#

You will need to decompile and look at how certain cheats work and why and then find a good solution to detecting it server side

hybrid spoke
#

you need to be hella creative for making good anticheats

proud basin
#

How does a plugin loader work?

hybrid spoke
proud basin
#

No

naive jolt
#

Well some cheats are just easy to detect, like reach since minecraft has info on like how much distance it takes for a player to hit a entity

chrome beacon
chrome beacon
hybrid spoke
#

what kind of plugin loader? like injecting a jar into another?

naive jolt
dusk flicker
#

Reach ain't easy to detect lmao

#

5 block reach sure, 3.1 no

proud basin
#

It loads another plugin without the plugin being in the plugins folder

#

Idk if that makes sense

hybrid spoke
#

so like your plugins loads a module

naive jolt
hybrid spoke
#

which is in the folder of your plugin

dusk flicker
#

3.1 can and will give you an advantage

#

Even less than that will

hybrid spoke
#

3.1 good for combos

naive jolt
#

What do you mean

proud basin
#

no it loads an entire other plugins that's is stored in a web server or something

hybrid spoke
naive jolt
proud basin
#

okay okay

naive jolt
#

like really fast

hybrid spoke
proud basin
#

You know how some premium plugins have a loader

hybrid spoke
#

a loader for submodules of their plugin

chrome beacon
#

Use the update folder

hybrid spoke
#

f.e. rpg plugin has a loader for their custom skills

spiral light
chrome beacon
naive jolt
#

I am gonna just continue xD to learn more.

dusk flicker
#

Yikes don't do that

proud basin
#

okay look so the loader loads another jar that is stored somewhere but the loader doesn't have the plugin inside of it

#

no olivo

spiral light
#

just find the file in "plugins" and rewrite the data in that file with the update source O.o on the next reload it will automatically load

chrome beacon
#

If not auto updating then what you're trying to do is even more of a security risk

#

And a really bad idea

proud basin
#

how come?

chrome beacon
#

Loading jars is fine but don't do it from the internet

proud basin
#

You know what I mean though right?

hybrid spoke
#

not really

#

we can just guess

#

for now we understood you want to download a plugin from web and load it

proud basin
#

it loads the jar without the jar being downloaded to the plugin folder

#

it just loads the files

chrome beacon
#

You can load jars from other folders if that's what you want

#

Like addons and such

hybrid spoke
#

he dont want the jar to be there

proud basin
#

^

hybrid spoke
#

he want its functions without the source

proud basin
#

just the loader

chrome beacon
#

Then bad idea

#

Don't

proud basin
#

why?

hybrid spoke
chrome beacon
#

Are you working on your client again

hybrid spoke
#

you would have to go over an api or some stuff

proud basin
#

no

#

I completed that awhile ago

chrome beacon
#

All I can think of what you're trying to do is backdoor someone

proud basin
#

no

hybrid spoke
#

lemme guess, your plugins uses something from another jar what you dont want to be in your customers hand

chrome beacon
#

Or open a security risk

hybrid spoke
#

so you want to load it but not be existent

proud basin
#

no

chrome beacon
#

Then what just tell us ;/

proud basin
#

I just don't wanna obfuscate

hybrid spoke
#

so yes

proud basin
#

my jar

chrome beacon
#

People will grab that jar regardless of what you do

hybrid spoke
#

to load the jar it needs to be there

chrome beacon
#

If the code is running on their system they can and will grab it. What you'te trying to do is a security risk. Loading and running things from the internet directly is unsecure

visual tide
#

^

#

obfuscate properly or just dont

#

there are a bunch of premium plugins that dont obfuscate
some are even os

chrome beacon
#

Freemium model is nice :)

hybrid spoke
#

open source everything

proud basin
#

Oh yeah i've seen plugins only able to run on linux and not windows

quaint mantle
#

Open source premium plugins are the norm these days from what I've seen

chrome beacon
quaint mantle
#

Which is really nice

proud basin
#

no im not wanting to do that

minor garnet
#

is still calling if (looking.get(player) == entity) {

#

but dont rotate to my direction 🤨

spiral light
#

what did you change and any errors in log ?

minor garnet
#

nothing errrors

proud basin
#

ok got it

#

and done

spiral light
#

is it not turning around at all or only after a few time ?

buoyant viper
#

haha URLClassLoader go brrrr

chrome beacon
#

Yeah

spiral light
#

does this mean that it will be imported in the api soon ?

chrome beacon
#

Might need more then one person to apporve it

#

It's a good start though

tacit drift
#

how can I register a command with the command name from a config file? (pretty much register it in onEnable)

quaint mantle
#

If it’s not md_5, the review means almost nothimg

spiral light
#

isnt "Yannick Lamprecht" someone who is a helper for md_5 ? ...

proud basin
#

Olivio where is the update folder

late sonnet
spiral light
#

no its about the Enums stuff

fervent gate
#

What is the best way to get the inv of a chest from the block itself? my method isn't working

late sonnet
#

ahh this... its a big PR then xd

spiral light
late sonnet
spiral light
#

just some changes in materials and some stuff like that ... not important ^^

chrome beacon
chrome beacon
fervent gate
#

Is there a big difference?

vague mason
#

How can I check if material is stackable?

#

getMaxStackSize

#

found it

chrome beacon
fervent gate
#

@chrome beacon

if (!(block1.getBlockData() instanceof Chest)) return;
Chest chest = (Chest) block1.getBlockData();

Would this work?

somber hull
#

y is gradle so slowwww 😩

fervent gate
#

Yea, 'cuz it ain't working like I want it to

chrome beacon
#

And what's that

somber hull
chrome beacon
#

Also make sure to cast to the right Chest

fervent gate
#

I want the chest to be despawned and drop it's contents

fervent gate
#

lemme log the data and see what comes out

chrome beacon
#

Then what's the problem

fervent gate
#

It's returning at the statement, and it needs to continue bcs it is a chest

chrome beacon
#

Print the blockdata object

#

See what class it is

#

Ah wait my bad

#

Use BlockState not BlockData

fervent gate
#

I was using that yea

#

but it is with the dropping

quaint mantle
#

Make sure to use the right chest import

#

Iirc there are two types of chests

fervent gate
#

it despawns it but doesn't drop the items, because when I log the inv, it is all "null"

fervent gate
chrome beacon
#

Yeah

fervent gate
#

yea, but well, the inv it filled with null

#

while there are items in there

chrome beacon
#

Is the inv null or contents

#

If it's contents that's normal and just empty slots

fervent gate
#

I loop through the contents and the ItemStacks are null

chrome beacon
#

Ah okay that's just empty slots

fervent gate
#

I figured but still, there are no items in there, while there should be

chrome beacon
#

Show the entire code

fervent gate
#

It's a mess and a lot

chrome beacon
#

Oh well can't help you then

jade grove
#

I heard reflections are slow in Spigot, is this true?

fervent gate
tender shard
#

spigot has nothing to do with reflections, this statement makes no sense

jade grove
#

thought so

fervent gate
#

@tender shard Can you review some code?

tender shard
#

erm

#

maybe

fervent gate
#

this is the first class

#

it's just the last scheduler that doesn't work

#

The rest works

tender shard
#

so what is it supposed to do?

jade grove
tender shard
fervent gate
somber hull
jade grove
fervent gate
fervent gate
tender shard
somber hull
tender shard
#

this?

#

how is that a mess?

jade grove
tender shard
#

looks fine to me?!

jade grove
#

theres no spaces

#

way too

#

hard to read

tender shard
#

how is that hard to read lol

chrome beacon
jade grove
#

way too cluttered imo

tender shard
chrome beacon
jade grove
# tender shard imho it's totally fine
    @Override
    public ItemStack getItem(){

        Material material = Material.getMaterial(plugin.getConfig().getString("items.enderbutt.item"));
        ItemStack item = new ItemStack(material);
        ItemMeta itemMeta = item.getItemMeta();

        itemMeta.setDisplayName(Colorer.colorize(this.getName()));
        itemMeta.setLore(this.getLore().stream().map(Colorer::colorize).collect(Collectors.toList()));
        item.setItemMeta(itemMeta);

        return item;

    }```
somber hull
jade grove
#

this is how i format my code

tender shard
#

I do it like this too

somber hull
tender shard
#

I dont see any problem there

fervent gate
somber hull
fervent gate
#

this is the messages I am getting, all of the contents are null

somber hull
tender shard
somber hull
tender shard
jade grove
# tender shard

when writing if statements i would space it out 1 line from the line above

somber hull
fervent gate
#

I can't paste images here

left swift
#

how can i rotate the entity relatively? I mean, if the armorstand on the right turns, the one on the left turns behind it, and it will be at the same distance and with the same angle. They will still be in the same position.

jade grove
chrome beacon
fervent gate
#

gotta do that indeed

fervent gate
tender shard
somber hull
fervent gate
#

block1.getState it is now

spiral light
somber hull
#

leme find it

jade grove
#

i still do it

tender shard
#

wtf are you talking about

somber hull
#

@left swift you can get the vector of the armor stand and use that

fervent gate
left swift
fervent gate
#

otherwise I would get errors, because it can't drop null for obvious reasons

tender shard
#

your code looks fine to me, don't listen to those "your code is a mess" people

somber hull
fervent gate
fervent gate
#

but anyways, why th are all of the contents null

tender shard
somber hull
#

@left swift
Nvm had nothing to do with vectors lol

stand.setRotation(plr.getLocation().getYaw(), plr.getLocation().getPitch());
fervent gate
tender shard
somber hull
fervent gate
#

I am getting the inventory, looping through it and sending the itemstack, all null

somber hull
fervent gate
tender shard
left swift
tender shard
# fervent gate 235-240
ItemStack[] items = new ItemStack[chest.getInventory().getContents().length];

You create an empty array, then loop over it. Of course it's empty

fervent gate
somber hull
chrome beacon
somber hull
chrome beacon
fervent gate
#

yea ok, it did, I'm actually dum. Thanks all

tender shard
#

np 😄

somber hull
chrome beacon
#

Not sure how I missed that

somber hull
left swift
somber hull
#

Leme check

#

@left swift

somber hull
left swift
somber hull
#

Particle effects arent entities

#

At least i dont think so 😳

left swift
#

i mean vectors, for example

    private Vector rotateAroundAxisY(Vector v, double cos, double sin) {
        double x = v.getX() * cos + v.getZ() * sin;
        double z = v.getX() * -sin + v.getZ() * cos;
        return v.setX(x).setZ(z);
    }```
somber hull
#

I would legit just do this, hold up

#

Use protocollib to grab the EntityRotation packet, and then steal the yaw, and pitch of entity1. Then calculate one block behind because you now have its yaw and pitch you can use to create a vector, and use that location to set entity2

glossy scroll
#

@left swift the position can be given by r*cos(yaw) and r*sin(yaw) where yaw is in radians

#

The armorstands will always be facing in the same direction too

glossy scroll
#

Correct

wide flicker
#

Any way to use hex colors in TextComponents? Whenever I do, it just uses the minecraft color code of the last digit in the hex code (e.g. #123456 turns into &6).

Currently using Spigot's ChatColor.of(<hexcode>). Works great in normal messages, just not in text components.

glossy scroll
#

ChatColor.of(Color)

tardy delta
#

Color.of() in string format?

wide flicker
#

Like I said, I'm using ChatColor.of(), but when that's used in TextComponents, it's turning into whatever Minecraft color corresponds to the last value of the hex code

left swift
glossy scroll
wide flicker
#

1.17.1

quaint mantle
fleet imp
#

I'm trying to create a skull with a specific player as an owner, but when I create SkullMeta it says i need a new statement. But when i put it there, it says its abstract and cannot be instantiated

wide flicker
#
TextComponent example = new TextComponent(Color.parse("&#123456Example message here"));```where `Color.parse()` is using a regex pattern to replace any matches for `&<hexcode>` with the returned value of `ChatColor.of(<hexcode>)`
glossy scroll
#

And cast it to skullmeta

glossy scroll
fleet imp
quaint mantle
wide flicker
quaint mantle
#

md_5's dirty hack doesnt seem to work on components

glossy scroll
#

You should really look at the link

wide flicker
#

So I'll have to have individual components for each color? Great...

quaint mantle
glossy scroll
#

And to do that it’s best not to merge formatting into one string

wide flicker
#

Gotcha

quaint mantle
#

i'll recommend you taking a look on adventure - it had much nicer api, and minimessage - with those you will have power of chat components with easy format

wide flicker
#

Adventure?

minor garnet
minor garnet
quaint mantle
minor garnet
#

ah ok

quaint mantle
wide flicker
#

Gotcha, I'll take a look

weak adder
#

Hello Im trying to use color codes in my server but they dont work. im using spigot 1.8.8.

#

(freshly downloaded one)

glossy scroll
#

Downloaded from where

weak adder
night copper
#

What has spigot development become, people trying to create computers in minecraft and armor stand stuff

glossy scroll
#

?bt

undone axleBOT
glossy scroll
#

You must use buildtools

night copper
weak adder
left swift
glossy scroll
#

you gotta show some code

left swift
#
                Location loc = getBukkitEntity().getLocation();//first entity
                Vector vector = new Vector(Math.cos(-loc.getYaw()), 0, Math.sin(-loc.getYaw()));
                front.setPosition(loc.add(vector).getX(), loc.add(vector).getY(), loc.add(vector).getZ());//second entity```and it is in bukkit runnable
glossy scroll
#

what's "front"

#

why negative yaw?

left swift
#

second entity

glossy scroll
#

is it an entity?

left swift
#

armorstand

glossy scroll
#

what spigot version are you using? setPosition isn't a valid method

#

looks like you're using nms?

left swift
#

1.17.1, yeah it is nms

glossy scroll
#

does it have to be?

left swift
#

yes i am registering my own entity for this using nms

glossy scroll
#

hmm ok

#

well first of all

acoustic pendant
#

Hey! i'm new in bungeecord plugins, and i would like to know the way to check if player has a permission, i have done something like this:

#

but then how do they asing that perm?

glossy scroll
#

your yaw is negative, and it's in degrees

#

i dont understand why it's negative and it should be in radians

#

secondly, when you use location.add(vector), you add the vector 3 times

#

you only need to add it once

glossy scroll
glossy scroll
#

your code adds it 3 times

#

do you see that?

#

you add it once for X, add it again for Y, and add it again for Z

#

you only need to add it once for all of them

left swift
#
                loc.add(vector);
                front.setPosition(loc.getX(), loc.getY(), loc.getZ());```
#

will be ok?

glossy scroll
#

yes

#

i also gave you the wrong sin/cos too

#

minecraft treats angles differently

#

your dX will be -sin(yaw) and you dZ will be cos(yaw)

#

(multiplied by the radius still)

left swift
#

ok, I think it works, but the second entity is still to the left of entity, how can I change it?

glossy scroll
#

can you show a screenshot?

left swift
#

on the right is the first entity

#

on the left it is second

glossy scroll
#

which one are you setting the position of

left swift
#

left

glossy scroll
#

so its not moving?

left swift
#

it moves, but the entity for which to set the position is always to the left of the main entity.

glossy scroll
#

can you show your code again?

left swift
#
                Location loc = getBukkitEntity().getLocation();
                Vector vector = new Vector(1 * Math.cos(Math.toRadians(-loc.getYaw())), 0, 1 * Math.sin(Math.toRadians(loc.getYaw())));
                loc.add(vector);
                front.setPosition(loc.getX(), loc.getY(), loc.getZ());```
glossy scroll
#

ok well you still are using cos(-yaw)

#

should be -cos(yaw)

dark arrow
#

can I run My Spigot Plugins on Paper Server?

glossy scroll
#

yes

dark arrow
#

ok

left swift
glossy scroll
#

im not quite sure whats happening

#

the entity moves

vale ember
#

if i send actionbar via player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(text));, how would i change the time it is shown?

glossy scroll
#

what are you using to change the position of the main entity?

brave trellis
#

how to get all active async tasks within the plugin?

#

Or ones that are scheduled to execute code later

proud basin
left swift
#

i will send u a video how it works now, give me a sec

glossy scroll
left swift
glossy scroll
#

should be able to

spiral light
#

what is your mission there O.o

glossy scroll
#

oh im overcomplicating things

#

just use entity.getDirection() and subtract

#

meaning

#

use the main entity's location

#

subtract its direction

#

and you have it behind

spiral light
#

if he is trying to set specific yaw/pitch he should use Locatioin-setDirecton ^^

left swift
spiral light
#

dir = entity1.getLocation.getDirection

entity2.teleport(entity1.location.add(dir))

?

glossy scroll
#

🥄

spiral light
#

😄

frosty tinsel
#

anyone know how to build gradle plugin?

#

with IntelliJ

quaint mantle
#

or shadowJar

glossy scroll
#

@frosty tinsel

quaint mantle
#

🥄

left swift
#

ok, it works with add(vec) when i want to set it in front of the main entity, and substract(vec) when i will set it one the back, but what if i want to set it on the left or right side?

frosty tinsel
quaint mantle
frosty tinsel
glossy scroll
vale ember
#

how would i schedule a repeating task that will only run of certain time (count), without declaring some variable, incrementing it in each run and canceling it when the count reached?

quaint mantle
wide coyote
vale ember
wide coyote
#

and i dont think there is another way

glossy scroll
#

unfortunately not, i wish for the same functionality haha

vale ember
#

i just wondered that scheduler may provide some ready method for that

spiral light
glossy scroll
#

LEFT is i cross direction

#

RIGHT is direction cross i

#

or just negative left

spiral light
glossy scroll
#

yea i guess that works for 2D

spiral light
#

dont do that for 3D 😅

glossy scroll
#

cross product is the more general way to do it

#

and less confusing imo

jaunty temple
#

So i am creating a plugin that is suppose to do stuff when you throw a snowball with specific name and i have that part working. But i ran to an issue of the playerinteractevent triggering twice whenever i right click with a snowball. Thought at first it was because it triggers both on main and off hand, but with a quick check, it triggers it twice with main hand. How can I stop that?

spiral light
glossy scroll
#

considering you have a method to do the cross product

#

and is generally widely accepted in mathematics

#

id say its a lot less confusing

#

swapping the values is technically faster, but harder to read

spiral light
#

comments ^^

left swift
#

Works, thx!

north trench
#

i want to when someone that has my custom item when he right click at mob it will strike them with lighting

jaunty temple
tender shard
#

learn basic java

#

?learnjava

undone axleBOT
tender shard
#

if you won't do that you will still be asking this question in 2 years

spiral light
#

?jd

north trench
somber hull
#

I want to make a premium plugin, but i dont wanna do forum posts 😩

glossy scroll
#

premium plugins overrated

quaint mantle
#

do an opensource plugin instead

somber hull
# north trench Yes

Listen to an event for right click and then send out a (idk what its called, a ray maybe?) and get the entity it collides with, and then summon lightning on that entities location

somber hull
spiral light
#

if you use google you would get 100 different answers to that too

somber hull
somber hull
somber hull
#

usually off-hand

spiral light
#

he did that ^^

somber hull
#

weird

#

maybe he did it wrong?

spiral light
#

without code we wont know 😄

somber hull
glossy scroll
spiral light
#

oh yes ... how could i not know that

glossy scroll
#

open source

somber hull
glossy scroll
#

i mean his quirk is right

#

i have observed multiple interact event calls when right clicking the air

#

i forget why it happens

somber hull
jaunty temple
#

I confirmed the check is correct, but both calls are from the main hand

somber hull
misty current
#

does Inventory#getContents() return armor slots too or only the inventory?

glossy scroll
#

yes

somber hull
#

¯_(ツ)_/¯

glossy scroll
#

it does get armor slots

misty current
#

thanks

somber hull
glossy scroll
#

if you're trying to detect the launch of a snowball

#

just use ProjectileLaunchEvent

jaunty temple
#

I need to detect if the item had a certain name

somber hull
#

is it weird that i like working with events, and other non-command stuff more than commands

#

commands are annoying to me

glossy scroll
#

i forget if the event is called before or after the item is removed from inventory

glossy scroll
#

does it even matter if it's called twice?

somber hull
acoustic pendant
#

hey! could someone tell me why is this happening?

    at me.fragment.globalmessage.sql.MySQL.<init>(MySQL.java:11)
    at me.fragment.globalmessage.GlobalMessage.onEnable(GlobalMessage.java:35)
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
    at net.md_5.bungee.BungeeCord.start(BungeeCord.java:285)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)```
glossy scroll
#

that feels hacky tho

glossy scroll
#

and learn to read stacktraces

jaunty temple
#

Technically atm, no. But preferably i would like to get it only fire once to avoid problems in future

acoustic pendant
glossy scroll
#

well you should still learn to read the stacktraces

acoustic pendant
#

it says i have a problem here

acoustic pendant
#

But don't know why

glossy scroll
#

likely one of those things is null

acoustic pendant
#

well

#

didn't create any file

somber hull
#

@acoustic pendant send the full stacktrace (error)

kind hatch
glossy scroll
#

this is why java 16 is great

#

cuz it tells u whats null

acoustic pendant
#
java.lang.NullPointerException
    at me.fragment.globalmessage.sql.MySQL.<init>(MySQL.java:11)
    at me.fragment.globalmessage.GlobalMessage.onEnable(GlobalMessage.java:35)
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
    at net.md_5.bungee.BungeeCord.start(BungeeCord.java:285)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)``` this is the full error
glossy scroll
#

so you lied to me? lol

somber hull
#

hold up

somber hull
#

which is line 11

acoustic pendant
#

the first one

somber hull
#

well the first one is null

glossy scroll
#

im betting configuration is null

somber hull
#

(the rest are probably null too)

somber hull
acoustic pendant
#

i don't think so

somber hull
#

What is GlobalMessage

glossy scroll
#

well have you tried to debug it?

acoustic pendant
glossy scroll
#

that'd be the next step

somber hull
#

So your trying to statically grab your plugin?

acoustic pendant
#

i mean

#

the plugin isn't enabling

somber hull
glossy scroll
kind hatch
#

More like it’s not finishing its startup process.

somber hull
#

probably

glossy scroll
#

show us the method where you instantiate this class

somber hull
kind hatch
acoustic pendant
#
@Override
    public void onEnable() {
        // Plugin startup logic
        instance = this;

        file = new File(ProxyServer.getInstance().getPluginsFolder() + "/config.yml");


        this.SQL = new MySQL();
        this.data = new SQLGetter(this);

        try {
            if (!file.exists()) {
                file.createNewFile();
            }
            configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));

            configuration.set("host", "localhost");
            configuration.set("port", "3306");
            configuration.set("database", "example");
            configuration.set("username", "root");
            configuration.set("password", "");
            ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, new File(getDataFolder(), "config.yml"));
        } catch (IOException e) {
            e.printStackTrace();
        }


        ProxyServer.getInstance().getPluginManager().registerCommand(this, new create());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new change());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new announce());
    }```
#

this is the onenable method

glossy scroll
#

is onEnable in GlobalMessage?

somber hull
#

im assuming your using getInstance to pass in the instance

glossy scroll
#

instance is not null

#

do you see the problem

somber hull
#

But it looks like your getting it statically

kind hatch
#

Whoa, what is ProxyServer? @acoustic pendant

acoustic pendant
#

public static GlobalMessage instance;

glossy scroll
#

you instaniate configuration AFTER you call new MySQL

somber hull
#

So instance = this wouldnt run right?

somber hull
glossy scroll
#

so its going to be null

somber hull
#

ignore me then

kind hatch
acoustic pendant
#

let me try

glossy scroll
#

its really not

#

how else do you expect code to run?

#

completes things one step at a time

sacred mountain
#

anyoen know why this bug occurs? i pickup the water and it doesnt let me pick it up as intended, but it also removes the water for some reason. Heres the code https://paste.lucko.me/heG6quWb45

glossy scroll
#

static means it belongs to a class

#

not an instance of the class

#

very simple explanation

acoustic pendant
#

the same problem

glossy scroll
#

show us onEnable again

sacred mountain
somber hull
acoustic pendant
# glossy scroll show us onEnable again
 @Override
    public void onEnable() {
        // Plugin startup logic
        instance = this;

        file = new File(ProxyServer.getInstance().getPluginsFolder() + "/config.yml");


        try {
            if (!file.exists()) {
                file.createNewFile();
            }
            configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));

            configuration.set("host", "localhost");
            configuration.set("port", "3306");
            configuration.set("database", "example");
            configuration.set("username", "root");
            configuration.set("password", "");
            ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, new File(getDataFolder(), "config.yml"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        this.SQL = new MySQL();
        this.data = new SQLGetter(this);
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new create());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new change());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new announce());
    }```
kind hatch
# somber hull idk how static works tbh

Static is a little weird, but it still follows the basic rules. You need to declare something and then initialize it. Even if it is static.

It belongs to the class itself.

acoustic pendant
#
java.lang.NullPointerException
    at me.fragment.globalmessage.sql.MySQL.<init>(MySQL.java:11)
    at me.fragment.globalmessage.GlobalMessage.onEnable(GlobalMessage.java:51)
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
    at net.md_5.bungee.BungeeCord.start(BungeeCord.java:285)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)```
glossy scroll
#

now you debug

acoustic pendant
#

uh

#

sure

kind hatch
glossy scroll
#

System.out.println

acoustic pendant
#

private String host = GlobalMessage.getInstance().configuration.getString("host");

kind hatch
#

Your configuration is likely null.

glossy scroll
#

what type is configuration?

glossy scroll
kind hatch
acoustic pendant
#

is outside

glossy scroll
#

now im starting to doubt you even copied the plugin correctly

kind hatch
acoustic pendant
glossy scroll
#
            if (!file.exists()) {
                file.createNewFile();
            }
            configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));

            configuration.set("host", "localhost");
            configuration.set("port", "3306");
            configuration.set("database", "example");
            configuration.set("username", "root");
            configuration.set("password", "");
            ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, new File(getDataFolder(), "config.yml"));
        } catch (IOException e) {
            e.printStackTrace();
        }```
acoustic pendant
#

i'm debuging anyways

kind hatch
#

At least not with how this is setup.

glossy scroll
#

right here

kind hatch
acoustic pendant
#

i do it here?

glossy scroll
#

do you not see that it's initialized? lol?

glossy scroll
#

show us getInstance

kind hatch
#

My bad. I didn’t see it.

glossy scroll
#

is Configuration your own class?

#

if so can you show us getString

#

if not i want to know what library that belongs to so i can see the jd

#

found it

acoustic pendant
glossy scroll
#

disregard

acoustic pendant
#

what does that mean

glossy scroll
#

the only other option is that getInstance is null

glossy scroll
kind hatch
#

@acoustic pendant is there any reason why you’re not just using FileConfiguration?

glossy scroll
#

lets not deviate from the problem here

kind hatch
#

Ah

acoustic pendant
#

wait

#

i did debug

#

strange thing

#

check this

#
18:41:22 [INFO] 2
18:41:22 [INFO] 3
18:41:22 [INFO] 4
18:41:22 [INFO] 4.1
18:41:22 [INFO] 4.2
18:41:22 [INFO] 5
18:41:22 [SEVERE] java.io.FileNotFoundException: plugins/GlobalMessage/config.yml (No such file or directory)
18:41:22 [SEVERE]     at java.io.FileInputStream.open0(Native Method)
18:41:22 [SEVERE]     at java.io.FileInputStream.open(FileInputStream.java:195)
18:41:22 [SEVERE]     at java.io.FileInputStream.<init>(FileInputStream.java:138)
18:41:22 [SEVERE]     at net.md_5.bungee.config.YamlConfiguration.load(YamlConfiguration.java:77)
18:41:22 [SEVERE]     at net.md_5.bungee.config.YamlConfiguration.load(YamlConfiguration.java:71)
18:41:22 [SEVERE]     at me.fragment.globalmessage.GlobalMessage.onEnable(GlobalMessage.java:45)
18:41:22 [SEVERE]     at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
18:41:22 [SEVERE]     at net.md_5.bungee.BungeeCord.start(BungeeCord.java:285)
18:41:22 [SEVERE]     at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
18:41:22 [SEVERE]     at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
18:41:22 [INFO] 9
18:41:22 [INFO] 10
18:41:22 [WARNING] Exception encountered when loading plugin: GlobalMessage
java.lang.NullPointerException
    at me.fragment.globalmessage.sql.MySQL.<init>(MySQL.java:11)
    at me.fragment.globalmessage.GlobalMessage.onEnable(GlobalMessage.java:60)
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
    at net.md_5.bungee.BungeeCord.start(BungeeCord.java:285)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)```
glossy scroll
#

look at that

#

configuration is null

acoustic pendant
#
    @Override
    public void onEnable() {
        // Plugin startup logic
        System.out.println("1");
        instance = this;

        System.out.println("2");

        System.out.println("3");
        try {
            System.out.println("4");
            if (!file.exists()) {
                System.out.println("4.1");
                file.createNewFile();
                System.out.println("4.2");
            }
            System.out.println("5");
            Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));
            System.out.println("6");
            configuration.set("host", "localhost");
            configuration.set("port", "3306");
            configuration.set("database", "example");
            configuration.set("username", "root");
            configuration.set("password", "");
            System.out.println("7");
            ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, new File(getDataFolder(), "config.yml"));
            System.out.println("8");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("9");
        }
        System.out.println("10");
        this.SQL = new MySQL();
        this.data = new SQLGetter(this);
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new create());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new change());
        ProxyServer.getInstance().getPluginManager().registerCommand(this, new announce());
    }```
glossy scroll
#

ok so why

#

do you have two different files

#

new File(ProxyServer.getInstance().getPluginsFolder() + "/config.yml")

#

new File(getDataFolder(), "config.yml")

#

you should just be using one of them

tacit drift
#

why do you do configuration.set

glossy scroll
#

once again

#

deviating from the problem

#

we're not solving that right now

acoustic pendant
glossy scroll
#

also i advice instantiating two different file objects with the same contents

acoustic pendant
tardy delta
#

because i need two types this is looking like this :/

glossy scroll
#

just make a variable of File file = new File(getDataFolder(), "config.yml")

tardy delta
#

i dont have an object to load if i'm loading it, sounds obvious

glossy scroll
#

everything was right

#

you just needed to change new File(ProxyServer.getInstance().getPluginsFolder() + "/config.yml") to new File(getDataFolder(), "config.yml")

acoustic pendant
#

let me try

tacit drift
#

Bungee doesn't use YamlConfiguration and the other things from spigot?

glossy scroll
tardy delta
#

what am i looking at

            Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));
acoustic pendant
#

yea yea i changed that

tardy delta
#

the plugin loads its default config file when requesting it for the first time

#

but yea you changed it 😄

proud basin
#

does the lava tick go lower after a certain period of time?

quaint mantle
#

I'd like to know if there is a list of plugins lookin for contributions

dusk flicker
#

Don't know of a list but maybe check open source plugins

somber hull
#

Should i use the bukkit permission system through my plugin.yml, or should i just hardcode it into my plugin with if (plr.hasPermission())

somber hull
quaint mantle
#

setDisplayName deprecated, what should I use instead?

wide coyote
#

setDisplayName of what

quaint mantle
#

If I want to support Minecraft 1.13 ... which java compiler target should I set?

#

I'm currently using jdk 17 and should I compile for ? jdk-8?

quaint mantle
#

has always been 8?

tacit drift
tender shard
tacit drift
#

I tried doing the same today, didn't find a lot of info on how to do that

#

:))

quaint mantle
tender shard
#

just use java 8

#

noone is using older versions

#

20% are on java 8, everyone else uses newer versions

tacit drift
#

Java 7: 0.0% 💀 💀

tender shard
#

3 people in total lol

tacit drift
#

is that a bug or what

#

also how tf are there servers on java 18

#

hasn't java 17 just released

tender shard
grim ice
#

hey yall

#

i wanna get this website

#

text (content)

#

which ik how to do

tender shard
grim ice
#

but what i dont is how do i turn it into a json object

quaint mantle
tender shard
tender shard
tacit drift
#

1 minute of searching

grim ice
#

yeah

#

tysm

lean gull
#

where can i learn customizable world generation for chunks? like i wanna learn how to make a method for creating chunks of world generation, and then make like sliders in game for stuff like size, how smooth the terrain is and other cool stuff

tacit drift
#

for the world generation stuff look into the sc of Terra

#

for the sliders in game thing, impossible i think, maybe something with the player's hotbar

spiral light
quaint mantle
#

is there any standard library to avoid the hassle to write boilerplate code for registering commands?

#

I was looking at WorldEdit implementation and they use PistonFramework an internal library

spiral light
spiral light
tacit drift
spiral light
lean gull
#

where can i read tera's source code? im tryin to find it in their github and in struggling

spiral light
lean gull
#

im in their github, i just dont know what im searchin for

#

im not very good at spigot and java

tender shard
quaint mantle
spiral light
manic furnace
#

How can i test my plugin on a 1.12 server? Because to get a 1.12 server from BuildTools, i need Java 8, which i don't have. I can't make me an account on oracle because i don't have business phone number and stuff like that.

tender shard
spiral light
tender shard
#

if you're on linux just apt-get it

manic furnace
tender shard
#

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

lilac dagger
#

Can someone help me install litebans on my web please

#

its an ubuntu 20 server

manic furnace
lilac dagger
#

but i cant find some directorys

tender shard
manic furnace
#

ok thanks man

tender shard
#

do you have a webserver installed? if so, which one?

lilac dagger
#

nginx

#

i think

tender shard
manic furnace
tender shard
lean gull
#

im in terras source code and this is not really what im used to, im used to having bigger classes that have like everything relating to that class in it, not this many short classes that just link to other classes

manic furnace
tender shard
manic furnace
#

ok thanks

torn oyster
#

should all plugins start at v0.0.1?

rotund pond
#

No

#

Your choice

tender shard
#

I start with 1.0.0-SNAPSHOT and rename it to 1.0.0 once it's released the first time

torn oyster
#

there's no official "release" for custom plugins

manic furnace
#

thanks

lean gull
#

?

tender shard
#

you can use "MyNameIsJeff" as version string

spiral light
# lean gull ?

what do you search there and what do you want to do with it

tender shard
#

or "1337.420.69"

spiral light
#

and how to learn is not the way your going -> you should understand the spigot api and not copy paste everything

lean gull
#

i wanna make my own thing doe, i don't wanna use a worldgen api

spiral light
#

you want to create a custom world without using the spigot api ? thats litterly the funniest idea today ^^

hasty prawn
#

Worldgen API != Spigot API

lean gull
#

no, i dont want to use a worldgen api, not the spigot api

spiral light
#

you dont have to use a worldgen api.... but the spigot api is limited too

quaint mantle
#

guy

tender shard
quaint mantle
#

s

hasty prawn
#

I'm pretty sure he just wants to use Spigot.

lean gull
#

i want to use spigot

spiral light
#

you would need to use nms for this... and i dont think you know enought about the spigot api to create a fully custom world ...

lean gull
#

not terra or advancedworldgen though

quaint mantle
#
public static ItemStack item(Material material, String name, List<String> lore) {
        ItemStack item = new ItemStack(material);
        ItemMeta meta = item.getItemMeta();
        meta.displayName(Component.text(name));
        meta.lore(lore);
        item.setItemMeta(meta);
        return item;
    }
#

how?

#

lore

tardy delta
#

ItemBuilder uwu

lean gull
#

i dont wanna make a custom world, i wanna make a custom chunk

tender shard
tardy delta
#

NEIN

quaint mantle
lean gull
spiral light
tardy delta
#

maybe instead of that static thing

spiral light
quaint mantle
#

guys

#

help me please

hasty prawn
spiral light
#

lore is just a List<String> ?

quaint mantle
hasty prawn
#

No it's not

lean gull
#

i wanna be able to make chunks like they were taken from the overworld and then customize them, and make more than 1 chunk

quaint mantle
#

Component

spiral light
quaint mantle
#
public static ItemStack item(Material material, String name, List<String> lore) {
        ItemStack item = new ItemStack(material);
        ItemMeta meta = item.getItemMeta();
        meta.displayName(Component.text(name));
        meta.lore(lore);
        item.setItemMeta(meta);
        return item;
    }
hasty prawn
#

Use setLore anyways

quaint mantle
#

lore

hasty prawn
#

Are you using Paper?

quaint mantle
#

yes

#

1.16.5

hasty prawn
#

Yeah ignore the deprecation.

spiral light
quaint mantle
spiral light
#

if you just wanne create some small structures as addon you should look for BlockPopulator

lean gull
#

i dont want to make a full custom world, only chunks

hasty prawn
#

Otherwise, use the "deprecated" Spigot method. PeepoHappy

left swift
#

@glossy scroll Hey, sorry for the ping, but I have a question for these armorstands, why if they have no gravity or are markers, at the beginning they completely diverge for some time, and only after about a minute / 30 seconds do they set themselves in the correct position? I am attaching a video of what it looks like. https://www.youtube.com/watch?v=HpEv8v2wVqk&ab_channel=Tuso

spiral light
spiral light
#

if you wanne create your chunks completly new you have to use the WorldCreator

lean gull
#

so i cant make only custom chunks?

spiral light
#

you can modify it with BlockPopulators ... but lag

lean gull
#

will i have to make a whole world?

glossy scroll
spiral light
#

just creating chunks wont work ^^

glossy scroll
#

but otherwise i dont know

spiral light
lean gull
#

wait so what does chunkgenertor do

spiral light
#

well sadly i dont know any tutorial for the new chunkgenerator ... but i hope you use 1.18 ?

lean gull
#

i use 1.18.1

spiral light
left swift
left swift
proud basin
#

op has every permission including plugin permissions?

marble granite
#

Does anyone know a place where it is explained how craftbukkit is made and implemented? i'd love to know more about this.

spiral light
# lean gull wait so what does chunkgenertor do

basically you create a world with a
WorldCreator creator = new WorldCreator....

then you apply seed or name and other stuff but for chunks you need to use:

creator.generator(new ChunkGenerator()....)
you can either create a class and extend chunkgenerator (you should do this) or implement the methods directly there...

then you can use the methods of the ChunkGenerator to modify the Chunks... you can set if the chunks will have bedrock and other stuff... also the Height of each x/z cord.

young knoll
proud basin
#

wym?

young knoll
#

What part of that is confusing?

proud basin
#

wym default: false

young knoll
#

When you create a permission

#

You can specify the default to either true, op, or false

proud basin
#

in the plugin yml?

#

or are talking about in a permission plugin

young knoll
#

Plugin.yml

proud basin
#

ah ok

wicked perch
#

Can you create a command in bungeecord wich not overrides spigot commands?

quaint mantle
#

Dont use taken names?

wicked perch
#

Yeah I mean like it’s just listens to /afk to register if a player is afk or not

lean gull
spiral light
#

you said now 10 times that you want to make chunks
and i said now 10 times that chunks only exist in worlds
and if you dont want to create a world but still want to modify chunks you should use BlockPopulator for this.
But they are not good for creating complete chunks

lean gull
#

wait, what do you mean by "chunks only exist in worlds"
do you think i dont know that you have to have a world to place blocks in?

arctic moth
#

what would be the best way to create a bunch of runnables for certain players, and then cancel one of them after a condition is met

spiral light
arctic moth
spiral light
arctic moth
#

more than once

lean gull
#

i meant that i dont want to make a full world with custom terrain, only individual chunks with custom terrain

young knoll
#

Store the task into a variable so you can cancel it later

arctic moth
spiral light
vale ember
#

help please, i am trying to use my project via jitpack but jitpack gives the following error in log (i am using NMS)

  • What went wrong:
    Execution failed for task ':v1_13_R1:compileJava'.

Task :v1_13_R1:compileJava FAILED

Could not resolve all files for configuration ':v1_13_R1:compileClasspath'.
Could not find org.spigotmcspigot1.13-R0.1-SNAPSHOT.
Searched in the following locations:
- file:/home/jitpack/.m2/repository/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/maven-metadata.xml
- file:/home/jitpack/.m2/repository/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/spigot-1.13-R0.1-SNAPSHOT.pom
- https://repo.maven.apache.org/maven2/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/maven-metadata.xml
- https://repo.maven.apache.org/maven2/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/spigot-1.13-R0.1-SNAPSHOT.pom
Required by:
project :v1_13_R1

young knoll
#

You can cancel them from within

arctic moth
young knoll
#

I mean

#

It does

arctic moth
#

like i have pdc for someone and when the pdc changes it will cancel the runnable

#

because im using the pdc anyways

vale ember
woeful crescent
#

If i set two entities' locations to the same location instance will they always be teleported to each other

spiral light
#

no

woeful crescent
#

dammit

#

but location.add changes the entitiy's location that uses it

#

so would it work for multiple

arctic moth
#
if(player.getPersistentDataContainer().get(new NamespacedKey(Main.plugin, "test"), PersistentDataType.INTEGER) == 0) {
     this.cancel();
}
#

that doesnt work

woeful crescent
#

?????

spiral light
woeful crescent
#

they are??

quaint mantle
#

They arent

woeful crescent
#

does setLocation set a copy

spiral light
#

setLocation is not existing?

#

you can use teleport ^^

#

but this also only copy the data of the location

manic furnace
#

When i try to run BuildTools in 1.8, i become this error after a bit of time.

Attempting to build Minecraft with details: VersionInfo(minecraftVersion=1.8, accessTransforms=bukkit-1.8.at, classMappings=bukkit-1.8-cl.csrg, memberMappings=bukkit-1.8-members.csrg, packageMappings=package.srg, minecraftHash=null, classMapCommand=null, memberMapCommand=null, finalMapCommand=null, decompileCommand=null, serverUrl=null, mappingsUrl=null, spigotVersion=null, toolsVersion=0)
Exception in thread "main" java.io.FileNotFoundException: work\minecraft_server.1.8.jar (Das System kann die angegebene Datei nicht finden)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:228)
        at java.util.zip.ZipFile.<init>(ZipFile.java:157)
        at java.util.jar.JarFile.<init>(JarFile.java:171)
        at java.util.jar.JarFile.<init>(JarFile.java:135)
        at org.spigotmc.builder.Builder.main(Builder.java:411)
        at org.spigotmc.builder.Bootstrap.main(Bootstrap.java:27)

What should i do?

spiral light
#

stop using 1.8 is a good idea

quaint mantle
#

^

arctic moth
young knoll
#

Well

#

They smell

arctic moth
#

lol

spiral light
#

you dont even have to use 1.8 for pvp

quaint mantle
#

1.9 pvp is better anyway

woeful crescent
#

you can never perfectly replicate 1.8 pvp tho

spiral light
quaint mantle
#

🌞

young knoll
#

Yes you can

arctic moth
#

also are shapeless recipes supposed to appear in recipe book

spiral light
woeful crescent
#

do the packets sent literally equal packets sent in 1.8?

quaint mantle
#

Wat

arctic moth
young knoll
#

If the packets aren’t the same then it isn’t the same

#

Duhhh

woeful crescent
#

I just didn't know they were exactly the same

#

i mean old combat plugins

arctic moth
#

also is there a way to keep someone in a crawling position sending block changes isnt workign

arctic moth
#

thats why it wouldnt cancel

tender shard
#

why would anyone try to run BuildTools for 1.8?

#

or did you forget a 1 in the version string?

left swift
manic furnace
#

No i mean 1.8. Because i want to test my plugin on a 1.8 spigot server

tender shard
#

but why

#

maybe also test it on windows 98

manic furnace
#

There are people who use 1.8 and i would test it before release it

spiral light
# left swift <@!290099048994701313> so maybe have u got any idea?

dont know how your code looks like but my gues was the direciton of the entity.getLocation() and entity.getEyeLocation() can be different... but dont know if armorstands have this ...
if you still need help tomorrow you can dm me or ping me ... maybe i will not find your ping but dm always should work

arctic moth
tender shard
manic furnace
left swift
manic furnace
vale ember
#

do anyone worked with jitpack???

tender shard
hasty prawn
tender shard
#

like: it sucks

#

jitpack easily is the worst repo out there

vale ember
# hasty prawn What are you trying to do

i am trying to use my repo with jitpack, but it gives the error:

Execution failed for task ':v1_13_R1:compileJava'.

Task :v1_13_R1:compileJava FAILED

Could not resolve all files for configuration ':v1_13_R1:compileClasspath'.
Could not find org.spigotmcspigot1.13-R0.1-SNAPSHOT.
Searched in the following locations:
- file:/home/jitpack/.m2/repository/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/maven-metadata.xml
- file:/home/jitpack/.m2/repository/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/spigot-1.13-R0.1-SNAPSHOT.pom
- https://repo.maven.apache.org/maven2/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/maven-metadata.xml
- https://repo.maven.apache.org/maven2/org/spigotmc/spigot/1.13-R0.1-SNAPSHOT/spigot-1.13-R0.1-SNAPSHOT.pom
Required by:
project :v1_13_R1

vale ember
tender shard
#

host your own

tender shard
hasty prawn
manic furnace
#

So is there a way to get the 1.8?

tender shard
tender shard
vale ember
tender shard
arctic moth
#

so how to force crawl

tender shard
vale ember
# hasty prawn Send your pom
import kr.entree.spigradle.kotlin.spigotAll

plugins {
    java
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

group = "com.aregcraft.delta"
version = "1.0-SNAPSHOT"

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compileOnly(project(":shared"))
    compileOnly(spigotAll("1.13"))
    compileOnly("org.projectlombok:lombok:1.18.22")
    annotationProcessor("org.projectlombok:lombok:1.18.22")
}

tender shard
#

if you just wanna publish sth I can give you an account for my public community repo if you like

#

everything is better than jitpack

manic furnace
tender shard
#

I normally do not help people who still think that 1.8 should be used but

#

why don't you just try at least one of the actually still-in-use versions?

#

1.8.8

#

like I can promise you that NOONE runs 1.8.0

#

if people are so stupid to still use 1.8, at least they use 1.8.8

hasty prawn
#

Or 1.8.9

vale ember
tender shard
#

I think it's the same on the server side, 1.8.8 and 1.8.9 only have client changes irrc

tender shard
hasty prawn
#

Oh, no idea

tender shard
hasty prawn
#

It was like 7 years ago so who knows at this point LMAO

vale ember
tender shard
#

okay you'll have to google that yourself then, I'll dm you the account details in 2 minutes

quaint mantle
#

if I need externals deps I still need to shade them, right?

#

I am aware of "libraries" options but seems a preview feature

manic furnace
#

Ok i just wanted to test it because you can say on spigot when you release a plugin you can say if you tested it on a few versions. Also 1.8 and 1.7

hasty prawn
quaint mantle
#

but should I use it? What are the implications if someone is running an older spigot version?

hasty prawn
#

Probably wouldn't work then. If you're supporting multiple versions then you need to shade or require them to install other plugins.

quaint mantle
#

Oh okay, thanks a lot

turbid tiger
#

does buildtools no longer build the patched server jar?

paper viper
tender shard
#

does anyone else want upload access to my community maven repo? i

tender shard
turbid tiger
#

like the jar with all the api changes in it so that i can add it to my buildpath

hasty prawn
#

It does

turbid tiger
#

When I add it I get redlines all underneath my code and errors that org.bukkit doesnt exist

hasty prawn
#

Are you using maven/gradle?

turbid tiger
#

No

#

Im open to using gradle but I cant quite figure it out

arctic moth
#

huh thats new

turbid tiger
#

I have a gradle project ready with this inside of it: repositories { maven { url = uri("https://papermc.io/repo/repository/maven-public/") } } dependencies { compileOnly("io.papermc.paper:paper-api:1.18.1-R0.1-SNAPSHOT") } java { toolchain.languageVersion.set(JavaLanguageVersion.of(17)) } but not sure how to get the ide to understand these dependencies

tender shard
light parcel
#

When is it appropriate to be using custom events? e.g. If I were to have a Player who wants to join a Game, should this be a new PlayerRequestsJoinGameEvent() the the game manager can listen for, or should it be something like plugin.getGameManager().getGame().tryAdd(player)

alpine urchin
tall dragon
#

its just useless to use it within the same plugin

young knoll
#

They would basically be part of your API

light parcel
#

Noted, thanks

quaint mantle
#

is possible to run the spigot server without ui?

light parcel
quaint mantle
#

lovve ya, thanks a lot

wet breach
#

I recently got rid of my Dedi, so it will be nice to have a new home for some repo's lol

north trench
#

can i get item stack in PlayerInteractEntityEvent?

chrome beacon
chrome beacon
swift adder
left swift
#

How can i check if entity is exist? I dont mean isAlive or is Valid, because after entity death it still exist for about 1 sec

somber hull
#

Should I use permissions via plugin.yml or hard coded by checking a players permissions?

#

Such is better

#

Idc intended way, what’s the better way

lilac dagger
#

mfnalex

#

i did what u said

#

whjat do i do now?

somber hull
lilac dagger
#

what?

somber hull
#

👨‍🍼

arctic moth
#

what would happen if you were to do player.setAI(true);

somber hull
#

What isn’t working

swift adder
# somber hull Elaborate a bit more

Right so, the /stats command works fine and does what it should but when you actually destroy dirt it doesn't do the if statement therefore not working the event

young knoll