#help-development

1 messages · Page 33 of 1

proper notch
#

I might actually be wrong about having to use the constructor, someone else can correct me if I am. I'm not at my PC so I can't test

cunning canopy
#

done refactoring

#

If this fixes the problem I have no idea what it was

#

welp same problem

#

at least things look good now

glossy venture
#

why not setOut

#

you can just delegate it to the previous value

#

and if everything does that it should work fine

tardy delta
viral temple
#

That's why you can firstly declare a lambda outside

noble lantern
#

thats a negative from me chief

viral temple
noble lantern
#

indeed its ugly, its also a valid fix for callback hell in js

#

but, i never used it

tardy delta
#

pff im dying , its damn 26°C in here

viral temple
#

Ugly as hell

cunning canopy
#

?paste

undone axleBOT
glossy venture
tardy delta
#

why isnt this working tho :/

glossy venture
#

only reason i include comments lol

#

it looks good

quaint mantle
glossy venture
#

whats not working

viral temple
hybrid spoke
quaint mantle
cunning canopy
tardy delta
#

just trying out smth

glossy venture
#

cant tell what is what

#

but i assume its cuz you have a method in another

quaint mantle
#

sorry 🙏

glossy venture
#

or smth

viral temple
#

I find them useless

tardy delta
#

java weird

vocal cloud
#

Records are great for immutable database objects, data pulled from APIs, etc.

tardy delta
#

or when you have immutable stuff and are too lazy to write constructor getters and setters

viral temple
vocal cloud
#

What

tardy delta
#

ew

vocal cloud
tardy delta
#

eventually i might

glossy venture
#

intellij -> right click -> generate -> getter and setter -> template: builder

tardy delta
#

ik that generate exists

vocal cloud
#

just use alt-insert

tardy delta
#

alt insert tho

glossy venture
#

never studied the keybinds

cunning canopy
#

https://paste.md-5.net/ukubevoxoy.cs
I refactored. It spawns 1 sheeptower a second. I dont get why its repeating. Could it be because my task is running a nested task? Its supposed to spawn 1 btw.

#

1 per player

tardy delta
#

not using the bukit scheduler with a lambda :(

viral temple
#

Heard of block neighbor?

tardy delta
#

also dont use Integer -> int

#

you might want to use a Set<UUID> instead of List

#

i'd make a method void forEveryCageBlock(Consumer<Block>) to set it to glass and also to reset it aaaaaaa

#

thats just me

left swift
#

Which particles are used in fireworks (I mean this colored particles)

tardy delta
umbral bear
#

Hi, i need help, i'm trying to learn how to use AES in java to encrypt strings using a password and it works (but get stuck on decrypting), giving a BadPaddingException

left swift
tardy delta
#

ye

drifting halo
tardy delta
#

doesnt Particle.DustOptions fixes the color?

#

bruh i broke my maven project again

glossy venture
#

nice

#

use gralde

left swift
viral temple
glossy venture
#

yes

#

nothin g is perfect

#

well everything logic based is perfect

#

but no human is perfect

#

so everything will break

vivid cave
#

Random question, if ur in 1.19.1, report chat enabled, but a plugin takes care of cancelling every messages, and rebroadcasting (tellraw or whatever, or just player.sendMessage) to everyone the intercepted message, will it still be somehow reportable and readable by mojang/microsoft?

tardy delta
vivid cave
#

damn im happy to have vscode with this memory usage

tardy delta
#

got the 16 gigs ram so this isnt bad

night copper
#

I want to be a pro at programming plugins for minecraft, can someone who makes good plugins tell me what should i learn and how to do it, i already know how to make plugins but basic ones

sinful rapids
#

site off?

tardy delta
#

keep practising i guess

#

and look at other peoples github lmfao

sinful rapids
#
                    block.setType(Material.31:2);

why doesn't it work via id?

hybrid spoke
#

?learnjava

undone axleBOT
left swift
tardy delta
#

no idea

sinful rapids
tender robin
#

?pdc

hushed spindle
#

is there any way for me to view bukkit pull requests without needing a verified spigot stack account

gray merlin
#

There's a plugin in my server that is teleporting a player on an event, and the plugin i'm developing also teleports the player on the same event. Is there a way to make it so my event fires after the plugin's event?

hushed spindle
#

cant you delay what you're doing by a tick

gray merlin
#

we can do that?!

#

How do we do so?

hushed spindle
#

yeah just schedule a task by a tick

#

either BukkitRunnable or Bukkit#getScheduler

tardy delta
#

instantiating a bukkitrunnable 😵‍💫

eternal oxide
#

?scheduling

undone axleBOT
hushed spindle
gray merlin
#

Thank you!

tender robin
#

@eternal oxide so I did what u have said and I have also used ur pdc code but the args[1] is still red

eternal oxide
#

args[1] is from your command

tender robin
#

yes

#

Item

ItemStack rankbook = new ItemStack(Material.ENCHANTED_BOOK);
                            NamespacedKey key = new NamespacedKey(PvPSystemPlugin.getPlugin(), "args");
                            ItemMeta rankmeta = rankbook.getItemMeta();
                            rankmeta.getPersistentDataContainer().set(key, PersistentDataType.STRING, args[1]);
                            rankmeta.setDisplayName("§7» §e" + args[1]);
                            book.add("§7with this book,");
                            book.add("§7you will get,");
                            book.add("§7the rank §e" + args[1] + "§7.");
                            rankmeta.setLore(book);
                            rankbook.setItemMeta(rankmeta);
                            player.getInventory().addItem(rankbook);
hushed spindle
#

if args[1] is entirely red it means you dont have a variable args to use

tender robin
#

Listener

if(event.getItem().getItemMeta().getDisplayName().contains("§7» §f§e")) {
            ItemStack itemStack = new ItemStack(Material.ENCHANTED_BOOK);
            NamespacedKey key = new NamespacedKey(PvPSystemPlugin.getPlugin(), "args");
            ItemMeta itemMeta = itemStack.getItemMeta();
            PersistentDataContainer container = itemMeta.getPersistentDataContainer();

            if(container.has(key , PersistentDataType.STRING)) {
                String foundValue = container.get(key, PersistentDataType.STRING);
            }
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "lp user " + player.getName() + " group set" + args[1]);
            player.sendMessage(" ");
            player.sendMessage("    §e§m--------§6 Vouchers §e§m--------");
            player.sendMessage(" ");
            player.sendMessage("§8[§e»§8] §7you got the §6rank §f§m-§f§e " + args[1]);
            player.sendMessage(" ");
            player.sendMessage("    §e§m--------§c§l  §e§m-------§f  §e§m--------");
            player.sendMessage(" ");
        }
    }
hushed spindle
#

what does your command method look like

tender robin
#

wait pastebin I send whole code

hushed spindle
#

brh

tender robin
#

it does work like this so why not using it this way

#

I just need the message at the end of the cmd so the args[1]

glossy venture
#

in this case it may be useful if you want to easily make it interchangable with, for example, permissionsex

tender robin
#

not sure tho

glossy venture
#

just ane xample

tender robin
#

how can I get the args[1] with pdc now

glossy venture
#

thats true

tender robin
#

wdym

#

if they don't have the permissions they dont

#

but I know what u mean I think I will do it that way

#

yeye u right I will use their API

#

how would it look like?

#
if(container.has(key , PersistentDataType.STRING)) {
                String foundValue = container.get(key, args[1]);
            }
#

like that?

#

I am rlly confused sry tried so many things in th past few days

cunning canopy
#

I found something interesting...

cancel();
Bukkit.broadcastMessage("Cancelled!");
``` I did as some kinda wanky debugging. and the message never gets displayed in chat. So somethings up...
#

oh

#

well

vast raven
#

wdym

#

oh well

#

sorry

#

Anyways, if you can help me..

cunning canopy
#

the message is still not being broadcasted

#

which is

#

bad

#

but also kinda good

#

then I know that the code is not being reached. But I have no idea why though

#

I found some errors hehe

#
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
Aug 02 03:03:11 server java[14668]: [03:03:11] [Server thread/WARN]: [Sheepstack] Task #10 for Sheepstack v1.0 generated an exception
Aug 02 03:03:11 server java[14668]: java.lang.NullPointerException: null
#

I get this exception

#

java.lang.IllegalArgumentException: passenger == null

tardy delta
#

your list.get(i + 1) returns null

vast raven
#

How to mix a json with a normal message

#

if (Bukkit.getPlayer(args[num]) != null && Bukkit.getPlayer(args[num]).isOnline())

rare flicker
#

How do i strip chatcolors from a string?

vast raven
#

or simplified

#

if (Bukkit.getOnlinePlayers().contains(args[your args])

rare flicker
cunning canopy
rare flicker
#

if (Bukkit.getOnlinePlayers().contains(Bukkit.getOnlinePlayer(args[your args])) this should tho

vocal cloud
#

You can map the players to a string and then check lol

vast raven
rare flicker
tardy delta
rare flicker
#

wdym by "mix"

vast raven
vast raven
#

As so, you get a message, and whenever you click on it, it suggests the command

rare flicker
#

oooohhh

vast raven
#

But how could I set the json just for a part of the message?

tardy delta
#

pain

rare flicker
#

{"text":"your text here"} something like this?...

#

; -;)

#

i'm not sure i get it

#

oh

peak depot
#

how can I attach that thing to a player

vast raven
#

🥲

vast raven
rare flicker
#

so essentially you want the suggestion to only appear over a part of the message?

rare flicker
#

(also i am a dumbass, this is a thing)

peak depot
rare flicker
#

that would put them on separate lines though

ivory sleet
#

ComponentBuilder

peak depot
#

thats one line then

ivory sleet
#
  • only works for strings
peak depot
#

nah that worked allways for me

ivory sleet
#

And it’d just call toString()

rare flicker
vast raven
tardy delta
#

something with crystal

#

ah end crystal

cunning canopy
#

YEEEES. IT WORKS. Thanks @tardy delta

rare flicker
peak depot
vast raven
vast raven
peak depot
#

the code?

vast raven
ivory sleet
#

Not if you want to have only part of the message clickable

ivory sleet
#

You’d get some weird json message instead

peak depot
ivory sleet
#

You’re hugely confusing another method

cunning canopy
#
for (UUID pId : Sheepstack.this.sheepstackPlayers) {
                Sheepstack.this.playersSheep.get(pId).get(0).teleport(Bukkit.getPlayer(pId).getLocation().add(0, 2, 0));
                Sheepstack.this.playersSheep.get(pId).get(0).addPotionEffect(new PotionEffect(PotionEffectType.GLOWING, 255, 255));
                Bukkit.broadcastMessage("Tick");
            }
``` this is run once per tick. the sheep is glowing but is not being teleported to the player
#

why wont the teleport work

#

there is no errors

worldly ingot
#

this is run once per tick
Not asynchronously, right?

tardy delta
#

Sheepstack.this.playersSheep horrible

lost matrix
cunning canopy
#

the 4 sheep is mounting 1 sheep

#

but I still need to teleport one of them

cunning canopy
lost matrix
#

Or use a slime as spacing first

cunning canopy
lost matrix
#

Use an invisible slime as spacing

cunning canopy
#

but wouldnt arrows u shoot then just go in the slime?

lost matrix
cunning canopy
#

Well so the goal of teleporting

#

is that I am planning to make it so that when the player looks upwards

#

the sheep will float a bit backwards

lost matrix
#

Take a step back and tell us what you are trying to do in the first place.

cunning canopy
#

okay

#

so

#

I am making a minigame right

#

Where players have sheep floating over their heads

#

the goal is to shoot down the others people sheep

tardy delta
#

sighs di for enums sucks

lost matrix
tardy delta
#

i'm trying to make a Settings enum that wraps the plugins fileconfig 🥺

lost matrix
cunning canopy
#

all got teleported

#

also

lost matrix
cunning canopy
#

my problem is

#

the teleport isnt working

lost matrix
cunning canopy
#

I made it broadcast tick in the for loop

#

it said tick every tick

#

and there is no errrors

tardy delta
#

f.e. Settings.USE_SMTH.asBoolean()

vocal cloud
#

Don't print random crap print what you're using

cunning canopy
#

I also made the entity I was tryna teleport glow

#

it did glow

vocal cloud
#

Did you print the locations or whatever you're doing?

cunning canopy
#

no

tardy delta
#

i wish enums could be generic like in rust smh

#

imma just use methods instead of an enum ig

#

could integrate it with my Config class

vast raven
#

Why almost all plugins can't be load for an invalid plugin.yml

#

?paste

undone axleBOT
vast raven
cunning canopy
#

If I set a sheeps velocity to a players velocity every tick

#

will the sheep move with the players?

cunning canopy
lost matrix
cunning canopy
#

thanks

tender shard
#

i dont really get the different between all of those in CraftItemStack

vast raven
lost matrix
tender shard
#

like wtf is the difference between asBukkitCopy, asCraftCopy, asCraftMirror, asNewCraftStack, ...

cunning canopy
severe turret
#

I should probably try if it works on Spigot

eternal oxide
#

no

#

a plugin instance being null will always be down to teh code you are using

severe turret
#

But it should work

#

lol

#

Alex himself yesterday said it should work

#

At this point I've tried everything

eternal oxide
#

You issue is almost 100% down to some fubar with Lombok

tender shard
undone axleBOT
tender shard
#

and show the full stacktrace

eternal oxide
#

add some constructors manually and don;t rely on lombok. its the only way to diagnose it

severe turret
cunning canopy
#

cause I might have to do the same for the sheep

severe turret
#

I've also tried initializing the classes in onLoad

#

and onEnable

#

and using static getter instread of constructor injection

eternal oxide
cunning canopy
#

could there be a way of making the sheep non collidable for one player only?

eternal oxide
#

hang on

gray merlin
#

Hey @tender shard after reading and using your library, there doesn't seem to be a method to decode an Inventory + Armour from b64, even though there's one that encodes inventory + armour... Am I missing something?

eternal oxide
severe turret
#

yes

eternal oxide
#

Thats impossible

tender shard
#

your fields get instantiated before the constructor gets called

severe turret
eternal oxide
#

unless you don;t set teh instance until after you try to use it

lost matrix
severe turret
#

Yes

gray merlin
severe turret
#

Because it's an older paste

eternal oxide
severe turret
#

With constructor injection

#

not static getter

tender shard
#

yeah well would be helpful to send your actual code

#

and not some older code

eternal oxide
#

from command and events

severe turret
#

I sent that

#

yesterday

#

Same problem

lost matrix
#

Well... then post the code that caused the problem... wtf

severe turret
#

what?

#

I said

#

It causes that problem

#

I tried other fixes

#

do you want me to paste the code for every single fix I've tried?

eternal oxide
#

oh I see his issue

lost matrix
#

Ok.

  1. Compile
  2. Replicate error
  3. Post code and stacktrace
lost matrix
ember ridge
#

Heyy, can you make something to re-light the whole world?
Code plugin mod for 1.19

eternal oxide
#
  private final AntiChatSpam plugin;

  private final int serverTps = getFromConfig("ticks-per-second");``` getFromConfig is called in the field before the constructor runs.
#

your plugin is null, when the class is instanced

severe turret
#

The class should get instanced with the plugin?

eternal oxide
#

no

severe turret
#

yes?

eternal oxide
#

the class is instanced the first time you create the instance. You do not set the plugin reference untill teh constructor runs.

lost matrix
eternal oxide
#

instance comes before constructor

#

plugin is null

lost matrix
#

Because it kind of hides the problem if you dont know all the implications

tender shard
lost matrix
tender shard
#

yeah I just mean

#

how is that a lombok problem

lost matrix
tender shard
#

that's clearly their own fault to access stuff that they only set in a constructor, before calling that constructor

eternal oxide
#

if he removes Lombok from that class and adds a constructor to set all fields it will be fine

lost matrix
#

Using the constructor to initialize all fields is more obvious if the constructor is present

tender shard
#

yeah that's true ofc

eternal oxide
#

Do not call getFromConfig in a field. Its accessing plugin before the constructor has been called.

zenith saddle
#

I am kinda confused Rn.... :
*** Error, this build is outdated ***
*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***
*** Server will start in 20 seconds ***

Is there a video of how to do this, I downloaded the thing and have a server-1.19.jar in the "work" folder it created. What do I do next?

undone axleBOT
severe turret
#

So I should just have

#

private final int serverTps;

#

and assign a value to it in the constructor

#

after I get the instance?

eternal oxide
#

pass the instance using DI, in teh constructor

severe turret
#

I do that

eternal oxide
#

set all fields IN the constructor

severe turret
#

okay

zenith saddle
eternal oxide
#

lastly, do not call getFromConfig in a field.

tender shard
zenith saddle
severe turret
#

so something like this?

tender shard
#

there's a cli parameter you can use to skip this

#

I think it's called -DIReallyKnowWhatImDoingISwear or similar lol

#

let me check

#

yeah it's -DIReallyKnowWhatIAmDoingISwear=true or so

lost matrix
zenith saddle
#

WhAT is happening?

severe turret
#

gc

severe turret
#

i think

#

ty

noble lantern
glossy venture
#

so it can be reused

#

marking it as free

#

making the graph go down like a lot instantly

zenith saddle
#

why does it keep going up

cunning canopy
#

ProjectileLaunchEvent is called when someone shoots with bows or crossbows right?

carmine nacelle
#

or throws a snowball

#

or egg

cunning canopy
#

thanks

carmine nacelle
#

gotta check projectile type

noble lantern
glossy venture
#

and its not immediately cleaned

#

so it builds up

#

until its cleaned

#

it doesnt matter

carmine nacelle
#

server really do be existing tho

vocal cloud
#

If it keeps going up and doesn't stop using more memory then you've got a leak

carmine nacelle
#

java: im gonna use tons of memory to clear out stuff using memory, to gain you memory

#

ope there I go using 8gb

winter scarab
#

am i able to create a config section and a key at the same time by using .createSection().set

zenith saddle
#

Warning
/worldborder warning time <timeInSeconds>
Causes the screen to be tinted red when a contracting world border reaches the player within the specified time. The default is 15 seconds. The tint does not display if the user is using fast graphics.

is there any way to do this with plugins?

winter scarab
#

u want the tint or the border

zenith saddle
#

tint

#

Ig I could do set warning distance

winter scarab
#

its probably some sort of packet

zenith saddle
#

But It might cause lag if I set it to 60m

twilit pulsar
#

thi is

#

this is

twilit pulsar
#

THATS IT?

lost matrix
#

What does this sentence even mean?

#

let't

winter scarab
#

💀

supple elk
#

This is meant to stop a player moving a boat

#

it still lets me move however

#

any ideas why it doesn't work?

winter scarab
#

cant you just cancel the event

supple elk
#

not cancellable

#

not all events implement cancellable

#

it's a vehicle move event

#

the idea being that when it tries to move it teleports the vehicle back to it's previous position

#

do I need to teleport the player insead?

winter scarab
#

pretty sure you cant teleport vehicles with players in them?

#

but i also think if you teleport the player it will just dismount them

delicate lynx
#

I did boat stuff in the player move event

supple elk
#

right

cunning canopy
#

does java use garbage collection or should I free up/delete variables myself?

worldly ingot
#

Java has garbage collection

cunning canopy
#

ok

#

can I cast projectile source to a player?

winter scarab
# supple elk right

unfortunately everything ive seen on this results in people having to quickly dismount and remount after it is moved

tender shard
supple elk
#

I'll try a few things first

#

this doesn't seem to be working 🤔

#

do I need to delay by a tick?

ashen quest
cunning canopy
#

thanks

tender shard
tardy delta
#

public

glossy venture
#

how can i make gradle or intellij automatically get, index and suggest dependencies from a dependency?
right now, if i have

a |
b | dependencies: a
c | dependencies: b
``` i would need to declare it as

a |
b | dependencies: a
c | dependencies: a, b // need to decl both

#

to be able to use classes from a in c

#

which is annoying when youve got a lot of modules

#

which are not one letter names

#

and external deps

supple elk
#

It still thinks I'm in the boat, even when I'm not in the boat

hasty prawn
glossy venture
#

ah

#

thanks

#

is there also a version for implementation

#

which is shaded

#

or does it do that

hasty prawn
#

Thats what api is

glossy venture
#

aight thanks

hasty prawn
#

Basically just says that implementation -> they cannot see, api -> they can see

glossy venture
#

ah

#

makes sense

subtle folio
#

a*i

glossy venture
#

oooh so thats why its called implementation

#

lmao

#

never made sense to me

hasty prawn
#

Yeah it took me a while to figure out the difference between implementation and api

glossy venture
#

i never knew api existed, i thought implementation meant like implement it into the output jar

ornate patio
#

bump

hasty prawn
#

The process there is probably going to be basically the same. Afaik there's no API for changing their name above their head. You can only add to the front/end of it.

ornate patio
#

This is 1.8, will it still work?

#

Also is this ProtocolLib?

hasty prawn
#

No

ornate patio
#

i've never messed with packets before

hasty prawn
#

Well, Google is always your friend. Fortunately DarkSeraphim outlined what order and what packets you should send. You just need to send them and use reflection to do what you want.

ornate patio
#

hmm okay

#

I'm suprised that this isn't built into the spigot api

#

changing the player tag is such a common thing to do

hasty prawn
#

Well like I said, you can add to the front and end of it easily

#

But changing their actual name requires packets.

ornate patio
#

ah damn

zenith saddle
#

Why is player death event event.getEntity()?

feral whale
#

I have a questioni have multiverse-inv and İ have 2 games on one server soo i have to do setspawn on 3 lobbys How can i do that like i have oneblock spawn and survival.

hasty prawn
tender shard
#

there's no api for brewing recipes

#

at least there wasn't any last time I checked

#

maybe it's possible with NMS

#

oh yeah you should avoid NMS as much as possible anyway

supple elk
#

What counts as a duplicate?

tender shard
#

but there just really isn't any spigot api for brewing recipes

tender shard
supple elk
#

I want to clone a world

#

so I copy the world folder

tender shard
#

it explains it in the error message

#

simply delete the uid.dat file

#

then it will probably just generate a new random UID for that world

supple elk
#

ok cool

tender shard
#

this is how I parse custom recipes

tender portal
#

Is there a reason for images randomly disappearing from your spigot page and only showing [IMG]

tender shard
#

it'll probably be fixed soon automatically again

tender portal
grim ice
#

yk these days

#

ive been coding in notepad

#

like fr

#

i am actually coding in notepad

#

i memorized all the imports and shit

#

and im too lazy to open intellij

glossy venture
#

this is how to schedule a task to run every tick right

#

on the main server thread

tacit drift
#

any idea on why the content doesn't actually change?

function showNotification(title, header, message, duration, icon) {
    if (!showWatch && inAnimation == false) {
        var watch = document.getElementById("notificationsWatch");
        document.getElementById("notificationTitle").textContent = title;
        console.log(document.getElementById("notificationTitle"))
        document.getElementById("notificationHeader").textContent = header;
        console.log(document.getElementById("notificationHeader"))
        document.getElementById("notificationContent").textContent = message;
        console.log(document.getElementById("notificationContent"))
        document.getElementById("notificationIcon").src = icon;
        console.log(document.getElementById("notificationIcon"))
        watch.style.display = "flex";
    } else {

    }
}
tacit drift
#

in the document, yeah

#

the stuff from the console is the element after being modified

glossy venture
#

no clue

#

but i see the watch appearing

#

so it works right

#

are you changing it back when it disappears

tacit drift
#

nope

glossy venture
#

well then the content is modified the first time

#

but stays the same

tranquil viper
#

How to I get a Map<UUID, String> from Gson?

glossy venture
#

how are bukkit Vectors serialized in yaml

ivory sleet
#

Isnt just the x,y and z

echo basalt
#

a vector is literally just x,y,z

river oracle
#

Crazy

#

thats crazy

echo basalt
#

It can be used as an absolute position

#

or defined as a displacement to 0,0,0 (or another coordinate)

old geyser
#

Guys, I need some help to use Listener

glossy venture
tardy delta
#

?ask

undone axleBOT
#

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

glossy venture
#

like 0,0,0 or

x: 0
y: 0
z: 0
``` or `[0, 0, 0]`
#

but i think i got it

wicked ember
#

what are the best tutorials to make plugins with spigot?

tacit drift
#

playing with the api

#

the best and only good to follow tutorial

zenith saddle
#

?pastebin

tacit drift
#

?paste

undone axleBOT
wicked ember
zenith saddle
#

This creates the file, but does not write anything to it...

old geyser
tender shard
#

?notworking

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

tender shard
#

you didnt use the EventHandler annotation

tacit drift
zenith saddle
#

wdym

tacit drift
#

CustomConfig.reload()

#

🤦‍♂️

#

did you copy paste those methods or did you write them?

zenith saddle
#

write them

tender shard
#

why not just make file, customFile, and all the methods instance-related? Then you can reuse this for any custom files as you want

atomic swift
#

is their an event that gets triggered if a console message is sent

tender shard
#

no

atomic swift
#

can i get a console message

tender shard
#

you can attach custom filters to the default logger. what do you need it for, though?

atomic swift
#

im trying to make my own discord plugin

tender shard
#

you probably gotta attach it to Bukkit.getLogger(), not your plugin's logger

atomic swift
#

ok

zenith saddle
tacit drift
lament sorrel
#

?paste

undone axleBOT
lament sorrel
#

?paste

undone axleBOT
zenith saddle
#

But nothing else worked

#

some how addDefault does not work

sly venture
#

Is there a good video using object orientation in Minecraft? uwu

atomic swift
#

is there any way to send a toast

lament sorrel
eternal oxide
#

🍞

atomic swift
#

thats a toast

eternal oxide
#

Advancement

atomic swift
#

ye the message type it called Toast

#

kinda like this
Windows 10 has its action center that slides out from the side of the screen and contains a notifications panel to let you scroll through any of its toast-like messages you may have missed or dismissed (where to find the action center).

eternal oxide
tranquil viper
#
public void loadMap() throws IOException {
    Gson gson = new Gson();
    File file = new File(plugin.getDataFolder().getAbsolutePath() + "/playtime.json");
    if(file.exists()) {
        Reader reader = new FileReader(file);
        Map<UUID, String> result = //what goes here
    }
}```
#

That is where I'm at atm

modest garnet
chrome beacon
#

Stay in #general

lament sorrel
atomic swift
chrome beacon
#

That's not what they want to do

modest garnet
#

its not what im trying do do but that might work

chrome beacon
# modest garnet

Looks like that document isn't open. Don't know much about mongodb can't help more than that

#

ah maybe it's not the document but the connection

quartz basalt
#

im trying to make function type things for my plugin that allow you to do stuff like:

  - summon entity x y z
  - summon entity x+1 y+2 z+3```
but im not toooo sure where to start, how would i be able to get the x, y, z values in the function? also how would i be able to allow math in the commands?
lament sorrel
#

can someone expert on plugins help me but pls not with youtube

#

vids

proper notch
# modest garnet

You're using a database wrong BTW. The point is the database filters for the document you want and then only returns that document.

gray merlin
#

You should start by looking that up, probably

compact haven
#

well first, I'd recommend not doing that and instead making use of an existing language

#

however, if you want to do that

#

then you need to create an interpreted language

#

now you seem to be creating it based off of english, similar to Skript

#

that's a bit more complicated than recognizing symbols and searching for function names, but still doable

gray merlin
#

How do I make it so my custom configuration is created with defaults inside? I thought doing .addDefaults and .save would write the defaults into the config.yml file, but it seems like not?

eternal needle
#

hi i have so plyers get somthing on there screen when i tag them but when i changed to 1.18.2 i can't see it like pl.sendTitle(ChatColor.RED + e.getPlayer().getName(), ChatColor.RED+ "tagget deg!", 20, 40, 20);

lament sorrel
#

||can someone expert on plugins help me but pls not with youtube
vids
||

compact haven
#
  • (1)summon entity (3)x+1 (4)y+2 (5)z+3)

consider you've found that you're looking for a function "summon entity". You know now you need 3 integers, so you go ahead and parse the next token and so forth til you reach the space

#

now that you're at the space, you try and match x+1, x is matched to the function parameter from the previous line

#
  • is matched as an expression, 1 is a literal
#

then you perform, literally, x+1 in code now that you know that's the goal

proper notch
lament sorrel
gray merlin
#

?ask

undone axleBOT
#

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

shy saffron
echo basalt
compact haven
#

well first make use of the database server to do binary operations, which is what it's meant for

#

then you can use new threads and async your code

modest garnet
proper notch
# modest garnet bump

Idk if you've been reading th3 chat and replies but you know we've answered u right?

modest garnet
compact haven
#

you was just given an example xd

modest garnet
#

lol im blind haha

grim ice
#

bro

#

disliking spigot 1.8 is wimpy imma be honest

kind coral
#

Having two points ( locations ) defined as A and B, how can I get the velocity needed for a projectile to reach B from A

grim ice
#

there are frameworks and apis a shit ton worse when in older versions

#

e.g forge gradle

#

e.g gson in really old versions

#

compared to them, spigot 1.8.9 is really pog

modest garnet
ornate patio
#

I don't understand how to use PacketPlayOutPlayerInfo and stuff

hasty prawn
#

Which part are you stuck on?

gray merlin
#

I'm calling .saveDefaultConfig(); but the config.yml file isn't being created...

gray merlin
modest garnet
#

no youve only read the top of the thread, carry on reading

#

u need this

ornate patio
#

I don't know what it does

#

or where or when to use it

hasty prawn
#

Thats because it's NMS

ornate patio
#

yeah well

#

i kinda dont even know how to start

hasty prawn
#

Mojmaps are helpful here, since it'll deobfuscate most the names so they're more useful.

ornate patio
#

I've worked with nms for custom entities and custom pathfinding before

gray merlin
ornate patio
#

haven't used this packetplayout stuff though

gray merlin
#

Alright then, thank you!

#

How would I add comments to my config.yml file?

modest garnet
#

using "#"

gray merlin
#

Yes but, is it through code or manually written? And if it's manually written, won't they be overriden?

modest garnet
#

it will only create the config.yml if it doesnt exist

#

and comments dont override with saveDefaultConfig()

ornate patio
#

how would I "send" this packet to a player

#

if thats how it works

hasty prawn
#

With mojmaps: ((CraftPlayer) event.getPlayer()).getHandle().connection.send(packet);

ornate patio
#

alright

#

ima try to figure this out

modest garnet
#

is there a way to get the language of the account?

quartz basalt
#

can you use spaces in config sections? ex:
config section: i forgot if you could

tender shard
#

yes

quartz basalt
#

ight ty

ornate patio
#

right when the player joins or something?

hasty prawn
#

Depends, send it whenever you want to change their nametag.

#

If you want to do that when they join then yes, but maybe delay it slightly.

naive bolt
#

Anyone any good with vault api?

EconomyResponse economyResponse = plugin.getEconomy().bankBalance(target);
```economyResponse.balance is giving 0.0
when doing /bal i see it says $3000 so i do have money in my vault account
rare flicker
#

How can i spawn colored firework particles?

sterile token
ornate patio
naive bolt
sterile token
#

Because the new one doesnt work with player names

naive bolt
#

hmm strange intelij suggested it

#

i will check thankyou

sterile token
#

Allright your welcome

ornate patio
#

is my mojang mapped even working correctly?

sterile token
#

😂

ornate patio
#

let me finish typing lmao

sterile token
#

Why don you just write all in 1 message

ornate patio
#

When I check the methods of Horse they all look normal:

sterile token
ornate patio
#

but when I check the methods of PacketPlayOutPlayerInfo, they're obfuscated

dim ledge
#

CloudFlare is becoming extremely annoying

#

I've just tried to upload a jar update three times

ornate patio
dim ledge
#

and all times got blocked

ornate patio
#

does mojang mapped not cover the packet classes?

sterile token
sterile token
naive bolt
#

You can not legally use vscode for java

ornate patio
#

version of what

sterile token
#

VScode is really shity for java

dim ledge
naive bolt
#

Most other things its fine

#

but Java 🤢

sterile token
#

?support

ornate patio
undone axleBOT
sterile token
#

Because 1.7.10 doesnt have mapping

ornate patio
#

you mean like

#

minecraft version?

#

1.18.2?

sterile token
#

Oh ok

ornate patio
#

man I've been trying to change a player's nametag for like 3 hours now

#

i dont know how to start

modest garnet
cunning canopy
#

EntityDamageByEntityEvent will also be triggered by arrow shots?

worldly ingot
#

Yes and the damager will be the arrow

ornate patio
#

First issue I'm running into is that I'm pretty sure I've installed mojang mapped correctly

#

but the Packet classes are still obfuscated

#

everything else is fine though

sterile token
#

Do you know have works maven tags?

#

Just for being curious

gray merlin
#

In my server, there's a mod called LOTR, which adds an NBT tag to an item when it gets created. I really don't want that NBT tag to exist, so I tried to register an InventoryPickupItemEvent and have it remove the tag, but it doesn't seem to be working.

Before I get into a debugging session, I'm using NMS, and the nbt tag is a custom modded one.

Simply: Is it even possible to remove the custom nbt tag?

ornate patio
#

Is it just me or does mojang mapped not deobfuscate packet classes for 1.18.2?

lament sorrel
#

can someone help

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.noah</groupId>
    <artifactId>FirstPlugin</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>me.noah</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.16.5-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

and im having this issue

Could not find artifact me.noah:spigot-api:jar:1.16.5-R0.1-SNAPSHOT in spigot-repo (https://hub.spigotmc.org/nexus/content/repositories/snapshots/)

Try to run Maven import with -U flag (force update snapshots)
eternal oxide
#

groupId is wrong

lament sorrel
#

what do i put in there

#

org.spigotmc

sterile token
sterile token
lament sorrel
#

thx

sterile token
#

i straightly recommend forward reading about maven

sterile token
ornate patio
#

mhm.. and mojang mapped is meant to undo that

sterile token
#

But take in care that maybe spigot doesnt have packet remaps

ornate patio
#

thats what im trying to figure out

sterile token
#

ok

#

So just being pacient if your best solution here

#

Maybe open a thread on these channel

ornate patio
#

i think im just gonna wait for 7smile7 or something

#

ive made no progress lol

sterile token
#

PAtient

#

That is all what i can said

#

As a developer you will have days that you wont have energy to move 1 finger but other days you will not go to sleep because everything goes as you wish

ornate patio
#

mm

#

i just really wanna finish this project

#

its literally the last feature

glossy venture
#
CommandSender.hasPermission("a.b.c")

does the same as

CommandSender.hasPermission(new Permission("a.b.c"))
``` right
#

at least yields the same result

crisp forum
#

Is there any doc about which mc version fits best with which java version? I can set sourceCompatibility
targetCompatibility from build.gradle.kts and IDK what should I set them to

delicate lynx
#

well hasPermission() takes either the string node or a permission object

glossy venture
#

yeah

#

but the string node gets converted into a permission object right

#

because the permission object represents a node

#

or not/

delicate lynx
#

that I do not know

glossy venture
#

yeah think so

#

?stash

undone axleBOT
lament sorrel
#

can someone german help me

cunning canopy
#

can I make the Slime entity not spawn a bunch of smaller ones when it dies?

delicate lynx
#

cancel SlimeSplitEvent, that should be fine

#

could set the count to 0 or cancel it

warm trout
#

I'm creating a land claim with 2 locations, how can I get how many blocks are in it ?

sterile token
#

?ask

undone axleBOT
#

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

sterile token
#

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

lament sorrel
sterile token
#

Just ask your question your in english

#

And no probblem mate we are humans. Hahahha

#

A basic question, if i have some classes inheriting another and have 2 methods right? If i call the methods from the super class its get trigered on every class right?

gray merlin
#

Can I use an NMS ItemStack in a BukkitObjectOutputStream#writeObject?

lament sorrel
#

@sterile token just bc im german and cant speak-write english very good

lost matrix
carmine nacelle
#

Is the command in plugin.yml

#

Is "plugin" null"

#

any startup errors?

#

is the plugin loaded in /pl?

#

if you do /help <plugin> does it show the command?

sterile token
#

Can we see your main clas pleae?

#

Also, dont do that what you are doing here:

((Damageable) sender).setHealth(0);

#

Its completly unncesary

somber hull
#

I am getting this intellij error while trying to make a config in yaml Invalid child element in a block mapping

entitytypes:
  CAVE_SPIDER:
    items:
      STRING: 1
        chance: 0.7
        #You can have multiple items be given to the player.
       SPIDER_EYE: 1
         chance: 0.33
    experience: 1
sterile token
#

He is explaning that the plugin variable value is null

#

So then you are getting an exception

carmine nacelle
#

you dont need plugin for "setexecutor"

#

just do this or nothing

sterile token
#

No

#

He need it

#

I have always used it

carmine nacelle
#

You dont need it though.

#

ive never done it that way

flint coyote
# somber hull

that's not a valid yaml structure.
You have a key:value with a subkey

crisp steeple
# somber hull

you would have to put it like

SPIDER_EYE:
  amount: 1
  chance: 0.33
sterile token
sterile token
carmine nacelle
#

this.getCommand("ch").setExecutor(new CommandHandler(this));

#

this works just fine

sterile token
#

CommandHandler is your commands handler right?

#

I used all life CommandExecutor since i started coding on 1.8 and moved to 1.19 spigot api

carmine nacelle
#

yep then my commandhandler handles my subcommands

sterile token
#

I also planning to code my own simple command api because the ones already exists i dont really have patient to use them its seems that im really weird when i code

#

Your code seems to be okay

#

What ex do you have?

carmine nacelle
#

Change plugin.getCommand("brewingstand").setExecutor(this); to getCommand("brewingstand").setExecutor(this);

#

wait

#

ignore

carmine nacelle
#

I thought this was all in your main.

sterile token
#

So he must use plugin.getCommand

sterile token
carmine nacelle
#

register commands in your main class

sterile token
carmine nacelle
#

Its not a great way to do it

#

🤷‍♂️

sterile token
#

I think the issue is here you shouldnt be using sender variable

#

Doesnt make sense

carmine nacelle
#

that will cause issues if you run the command from console

sterile token
#

Yeah

#

i was typing that

#

Hahhaa

carmine nacelle
#

or commandblock, powertool

vocal cloud
#

Wait setting the health of the sender -> player then doing it again with the sender

sterile token
#

Hahaha

#

Also you will get an exception because you are not checking if sender is an instance of player before casting it

carmine nacelle
#

in the onEnable of the main class set the executor to the command class

sterile token
#

😂

#

Sorry if sound rude

somber hull
vocal cloud
#

ask question

ignore answer

What a chad

quiet garden
#

Hey! I'm currently trying to make some GUIs and have my code formatted like this:

GUIItem nextPage = new GUIItem(player, "&eNext Page",           "ee5d9dc951196223ac72947803a1093965ea8986a95bd9cd42e3d00240113f10",1);
        nextPage.addCustomClickEvent(ClickType.LEFT, (target, item) -> { page.getAndIncrement(); buildGUIs(items, inventory, page.get());});
        nextPage.place(inventory, 7, 6);

the variable "page" is an AtomicInteger which is used so I am able to access it in the lambda, I understand that it is used for multi threaded environments however is this an ok use of the type? Is there anyway to go around it?
Thanks

spare rune
#

hello, im configuring a recipe for a lifesteal book and i want to modify the recipe to be a book in the middle surrounded by 16 emerald blocks in each of the remaining eight slots. how do i add a quantity in the documentation from one emerald block to 16 emerald blocks required in each slot

#
      recipe-enabled: true
      item: revive_book
      shaped: true
      discover: true
      items:
      - TOTEM_OF_UNDYING
      - TOTEM_OF_UNDYING
      - TOTEM_OF_UNDYING
      - ENCHANTED_GOLDEN_APPLE
      - BOOK
      - ENCHANTED_GOLDEN_APPLE
      - TOTEM_OF_UNDYING
      - TOTEM_OF_UNDYING
      - TOTEM_OF_UNDYING```
#

this is an example of formatting for the normal items, im pretty dense when it comes to coding

eternal oxide
#

You don;t. recipes can;t take a quantity

#

To do that you have to manually handle the recipe and the crafting

quiet garden
spare rune
#

thx

sterile token
#

oh premium

#

😕

#

Did you paid for it

quiet garden
#

i made it xd

sterile token
#

Ohh

#

You are the owner?

quiet garden
#

yeah

sterile token
#

Im realy idiot

#

hahaha

quiet garden
#

would recommend tho xd

sterile token
#

Can i ask something?

quiet garden
#

sure

sterile token
#

Could be dm or not?

quiet garden
#

yea

sterile token
#

Allright really thank

ocean ice
#

how can i summon a entity in a class that implements CommandExecutor? because for me it doesnt work, it only works in a listener class

waxen plinth
ocean ice
#

yes

#

main file (not all of the code):

getServer().getPluginManager().registerEvents(new MadnessStart(), this);

armorstand file:

public class MadnessStart implements Listener {
    @EventHandler
    public void onConsoleCommand(ServerCommandEvent e) {
        String command = e.getCommand().toLowerCase().substring(1);
        if (command.equals("start")) {
            Player p = (Player) e.getSender();

            p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
        }
    }
}
waxen plinth
#

Why are you trying to handle commands that way?

ocean ice
#

oh wait

waxen plinth
#

And also

#

That's ServerCommandEvent

#

It is only fired when the server runs a command

#

But you really shouldn't be doing commands that way in the first place

ocean ice
#

i provided the wrong code

waxen plinth
#

So what's the right code

ocean ice
#
public class MadnessStart implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player p = (Player) sender;
            p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
        }
        return true;
    }
}
waxen plinth
#

Have you registered this CommandExecutor?

#

And have you declared the command in your plugin.yml?

ocean ice
#

yes

waxen plinth
#

You're also not checking the command label

waxen plinth
ocean ice
#
name: MadnessPlanet
version: '${project.version}'
main: madnessplanet.madnessplanet.MadnessPlanet
api-version: 1.19
authors: [ RevolvingMadness, thunder_sh0k ]
description: A Game Made By RevolvingMadness
commands:
  start:
    description: Starts the game
    aliases: madnessstart```
waxen plinth
#

And your onEnable

ocean ice
#
package madnessplanet.madnessplanet;

import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public final class MadnessPlanet extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic
        System.out.println("CREDITS: thunder_sh0k");
        System.out.println("-----------------------------------------------");
        System.out.println("thunder_sh0k: came up with the name of the game");
        Objects.requireNonNull(getCommand("start")).setExecutor(new MadnessPlanet());
    }

    @Override
    public void onDisable() {
        System.out.println("MadnessPlanet is shutting down.");
    }
}```
waxen plinth
#

If you add a print statement in your command code, does it print to console when it's run?

ocean ice
#

no which i found funny

worldly ice
waxen plinth
#

Well that means it's not running at all

worldly ice
#

your command executor is MadnessStart

waxen plinth
#

Oh yeah, I didn't even notice

#

Good catch

worldly ice
#

not MadnessPlanet

ocean ice
#

omg

waxen plinth
#

You tried to instantiate your plugin class

ocean ice
#

i will try it

#

if this works thanks so much

#

YEs

#

YES

#

thanks

#

SO MIUCH

sterile token
rotund pond
#

Hello everyone!
I have a question for the smarter guys among you all :
I want my plugin to get initialized only in one server, so it can't be stolen from the owner for other servers.

How would you do it ?

Any tips are welcome...

(Obviously I'll obfuscate it and cipher every raw text)

sterile token
waxen plinth
#
  1. DRM won't stop them
sterile token
#

Because obf can be reverse engeniering

waxen plinth
#

Genuinely

rotund pond
#

Yeah but it will slow them really hard, mainly in a plugin with 200+ class

sterile token
#

You can make them harder with obfuscation and a secure license system (if isnt mean to be uploaded to spigot)

rotund pond
waxen plinth
#

Open source your plugin

rotund pond
#

Ah, would be a nice idea

#

Can't steal a public thing xd

waxen plinth
#

Well that, and there are many benefits to it

rotund pond
#

Mh ?

waxen plinth
#

People will trust your code a lot more, you'll gain the ability to have other people contribute, you'll be able to use it on your portfolio

rotund pond
#

I see, nice idea

#

Thank you ~

waxen plinth
#

And it won't really decrease revenue much

#

There are plugins that are open source and premium

#

Because most people don't want to download and compile a plugin on their own

#

Most people don't know how

lament sorrel
#

hello guys i need help

waxen plinth
#

And even if they do, they don't get support without paying, presumably

waxen plinth
undone axleBOT
#

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

rotund pond
waxen plinth
#

Why

#

Most people are not developers

undone axleBOT
#

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

grim ice
#

big L ngl

#

Even a normal person can do it

lament sorrel
#

I created a mini really basic plugin and i would like to add a method to when i start the plugin in a server it creates a config.yml file

sterile token
#

Lmao give a price

waxen plinth
rotund pond
#

I'm done

waxen plinth
#

But won't know how unless they research it

grim ice
#

"gradlew build"

ocean ice
#

sorry for asking a question in a row in under 5 minutes lol. how can i place a block relative to a ArmorStand entity so for example ```java
ArmorStand as = (ArmorStand)p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
as.placeBlock(0, 0, 0, Block.BEDROCK); // I know this isnt a real function

sterile token
#

who is pinging me?

grim ice
#

2 words in case of Gradle

#

Lmao

#

U don needa be a dev

grim ice
#

Well gn

lament sorrel
waxen plinth
grim ice
#

My eyes hurt

waxen plinth
#

Yes I know it's simple

#

But most people do not know how

#

It's not just one command

#

You have to clone the repo

#

You have to open a terminal and navigate into its directory

grim ice
#

Not rly

waxen plinth
#

And then run the build command

grim ice
#

U can download it

waxen plinth
#

My guy

#

You're missing my goddamn point

#

It is simple but most people do not know how

#

It's easy to look back in retrospect and say how easy it is

grim ice
#

click download open command prompt and type two words

#

so hard

waxen plinth
#

You're just a broken record aren't you

#

Like, once you know, yes it takes 10 seconds

#

But to someone with no background knowledge

#

They don't know how to clone a repo

#

They don't know what a repo is

inner yacht
#

this is such a dumb argument

waxen plinth
#

They don't know what gradle is and wouldn't know how to use anything related to it

grim ice
#

u dont need to clone it but you have a point

waxen plinth
#

Right, lots of things seem easy once you've at least got your foot in the door

grim ice
#

I'm just trollin anyways tbh don't mind me

waxen plinth
#

But they can seem daunting if you have zero experience

lament sorrel
waxen plinth
waxen plinth
grim ice
#

lol

waxen plinth
#

?jd-s

undone axleBOT