#help-development

1 messages · Page 2121 of 1

grim ice
#

but the program has to be running

#

??

eternal oxide
#

no

grim ice
#

how would you interact with it

crisp steeple
#

read this

grim ice
#

if it doesnt even exist

eternal oxide
#

via any method in the resource

grim ice
#

the resource wont work if its not running

inner lintel
#

True true that a big point

crisp steeple
#

ok so tell me

eternal oxide
#

you seem to be confusing a resource with a running application

crisp steeple
#

if i directly connected to a database

grim ice
#

define resource then

crisp steeple
#

would that be an api

#

(it wouldn’t)

eternal oxide
#

a resource/library could be somethign as simple as a collection of images or compiled functions to perform some task.

#

How you interact with that resource is its API

grim ice
#

do you mean the thing that lets you interact with it, or the former?

crisp steeple
#

an api for a database would be the middleman inbetween you and the database that provides you with information in a predefined way

eternal oxide
#

you access an API to use the resource

crisp steeple
eternal oxide
#

It may be Javas Image methods or some custom methods in a library

crisp steeple
#

when you connect to say the youtube api

crisp steeple
#

you are connecting to a service that connects to their database

#

you aren’t directly connecting to their database

#

it acts as the middleman

grim ice
eternal oxide
#

no

visual tide
#

an api is simply an interface that either exposes information or takes instructions to manipulate data

eternal oxide
#

just accessible

crisp steeple
#

you could technically say anything is an api

grim ice
#

How would you use any of its methods if its not running

crisp steeple
#

but you wouldn’t

#

because that wouldn’t make any sense

eternal oxide
#

none of the code in an API executes until you call it

grim ice
#

if a plugin is shut down for some reason

#

and it has an api

#

im using its api, it wont work since the plugin is shut down

#

it has to be running for me to use it

eternal oxide
#

Yes, but they are two different things

#

teh API you use to access it is not the plugin.

visual tide
#

if the api just accesses a Map with data, that will still work

crisp steeple
grim ice
#

what does it have to do with what we're saying

crisp steeple
#

that’s what this originally started from

grim ice
#

Nono

#

the message you replied to

#

that doesnt circle back

#

What elgar said makes sense though

#

But I believe we both are wrong lol

#

in a way or another

crisp steeple
#

because we don’t want that to use it’s own plugin

#

anyways back to the current thing

brittle lily
#

Do Spaces On Codes Used Affect Optimization?

grim ice
crisp steeple
#
API

An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this s...

#

keyword: between

grim ice
#

dont send me wikipedia pages

#

conversate if youre willing to

#

anyways

#

definite

#

"That"

#

and "it"

crisp steeple
grim ice
#

Sure, now definite that and it

quaint mantle
#

uwu

eternal oxide
#

ie Player is a Bukkit Interface which describes how to access its members

quaint mantle
#

hi elgarr <3

crisp steeple
grim ice
#

Define "it" and "that"

crisp steeple
#

sigh

#

we are going in circles here

eternal oxide
#

Hi Purple

grim ice
#

or your argument makes no sense

crisp steeple
#

i wasn’t even making an argument

grim ice
#

why are you not defining it though

crisp steeple
#

just pointing out a smaller thing i noticed

grim ice
#

do you not understand what you said?

crisp steeple
grim ice
#

what is "whatever connects to the plugin"

#

i asked you to define 2 things

crisp steeple
#

the second being?

grim ice
#

'that' and 'it'

#

define both

crisp steeple
#

inference of english would give you that i was referring to the same thing

grim ice
#

"because we don’t want whatever connects to the plugin
to use whatever connects to the plugin
own plugin"

crisp steeple
#

lmao

#

you just aren’t even looking at the last part of the sentence apparently

grim ice
#

Elaborate

crisp steeple
#

ok i’ve had enough of this

crisp steeple
grim ice
#

Sure I did that

inner lintel
#

Yeah I was gonna say how long is this gonna take

grim ice
#

now elaborate

crisp steeple
#

i have elaborated more times than i can count at this point

inner lintel
#

It’s been fun reading about ya two arguing over smaller concepts to clarify the starting thing but now at this point it’s Annoying

crisp steeple
#

i am agreeing to disagree here

#

thank you

grim ice
#

If you cant elaborate i will assume you dont understand what you said

crisp steeple
#

people are trying to find development help here

grim ice
#

No one is, currently

#

and if they did, they couldve bumped or made another thread

crisp steeple
#

not to see 2 people arguing over what an api is

inner lintel
#

I’m just in it for the drama rn at this point

grim ice
#

or asked us to stop

#

However no one did any of these

grim ice
inner lintel
#

Oh I did ask for help but the saw u guys arguing and found it funny

grim ice
#

oh

#

what did you need?

inner lintel
#

Na forget it that can wait I want to see where this goes

grim ice
#

He doesnt seem to understand what he says

crisp steeple
#

i am out of energy

grim ice
#

Sure

crisp steeple
inner lintel
#

Lol

crisp steeple
#

i have explained it multiple times

#

let me see how long this has gone on for

grim ice
#

explain it again then

crisp steeple
#

nearly half an hour

grim ice
#

if you dont answer a question in an argument that means you have no answer

crisp steeple
#

or maybe it means i’m tired of arguing for half an hour

grim ice
#

If you were, you would've leaved

crisp steeple
#

i explain my explanation

#

then we argue about my explanation

grim ice
#

I don't see how moving your fingers on a keyboard tiring

crisp steeple
#

and then it repeats

crisp steeple
#

ok i’ll just leave this be

grim ice
#

Sure

crisp steeple
#

thank you and have a good day

grim ice
#

you too

inner lintel
#

Lmfaoooo the conclusion just ends with both sides being fed up oh man this was greate 😂😂😂 anyways This is what I needed help with btw

crisp steeple
#

you would use the get and set methods in file configuration to create and obtain data

grim ice
#

wait

#

what do u need to do

#

you wanna get a value from a config?

inner lintel
inner lintel
grim ice
#

alr

#

imagine this is ur config.yml

crisp steeple
grim ice
#

lol
test:
something: 1

#

u would do

inner lintel
grim ice
#

plugin.getConfig().getInt("lol.test.something", 0)

inner lintel
#

Oh ok I see

grim ice
#

the 0 is the default value

#

and you would do

#

plugin.getConfig().set("lol.test.something", 10);

#

to set it

#

and

#

plugin.saveConfig()

#

after u made all the changes

#

ig thats fine for now

#

but later on when u advance u wanna cache ur values and only perform IO operations on program exit

little panther
grim ice
#

the item u clicked with

#

is prob air

#

(empty inventory slot)

little panther
#

can i fix so that doesnt send out an error?

grim ice
#

SkullUseEvent.java:57

#

whats here

#

line 57

little panther
#

ill send you the code, one sec

grim ice
#

nah just SkullUseEvent.java line 57

#

is enough

little panther
little panther
grim ice
#

so um

#

check

#

if e.getItem is null

#

before doing ur check in line 57

#

since if the item is null, it wont have a type right

#

an empty inventory slot is empty, it has no minecraft item in it

#

got it?

#

so u gotta check if u clicked an empty slot before trying to know the type of item in there

little panther
#

yea, i think i get it. Thanks

#

if(e.getItem() != null)

#

that should be enough right?

#

adding that before

grim ice
#

well

#

do

#

if(e.getItem() == null) return;

#

^ is better

inner lintel
# grim ice plugin.saveConfig()

Can u give me a small demonstration cause I’m not so sure how I would set it up, I’m just starting to learn how to use config files and all that

little panther
#

ah okay, thanks

grim ice
#

it stops ur code from running if the item is null

grim ice
#

heres an example

#

plugin.getConfig().set("players.bladestorme.coins", 10);

#

plugin.getConfig().set("players.hex.coins", 15);

#

plugin.saveConfig();

#

plugin is ur java plugin btw

#

(ur main class)

#

so basically

#

players:
bladestorme:
coins: 10
hex:
coins: 15

#

this will be the result

#

the . means to go down a section

#

saveConfig() saves the interaction youve done to the config

#

the actual file

#

this isnt really good to do but its the easiest way to explain it now

#

btw

#

Sorry for the length of this video, I wanted to be as detailed as possible. This episode I show you guys how to create a config.yml for your plugin and add functionality in your code to be able to access the data in the config file and also to be able to set the data. Stay Updated!! 👁

⭐ Kite is a free AI-powered coding assistant that will help ...

▶ Play video
#

this guy is awesome

#

in spigot tutorials

inner lintel
#

Ok I see and I would set up plug-in.getConfig().set(“player.bladestorme.coins”,10) would be set up in main class and from there I can also just implement that into the current config that I have it set up in and use it, and yeah Ik Cody I’ve watch his videos and all but the way he set up custom configs is not really what I was looking for, this method that Y2K_ showed me makes it so I can create configs like how u can with the default config by creating the file and giving u access to adding comments and all that but I wasn’t sure how I would implement what Cody shows in the video using this method

golden kelp
grim ice
#

do u have a fileconfiguration

#

object

inner lintel
#

Yea that’s right you are seeing me code in a raspberry pi 4 😂

vocal tundra
#

is there a way to place blocks without massive fps drops due to lighting calculations

grim ice
#

replace plugin.getConfig() with

#

the object from utils_config

#

.getConfigFile();

inner lintel
# golden kelp Why

So I’m at work right and I’m not home most times during the days so I have MicroSD card that holds all my projects, and a RaspberryPi 4 8gb modle, I found out a way to get data off the type c port that usually only transmit power and local host it to my iPad Pro 12inch so I can just do sudo local.host.o in a terminal or some like teamviewer and connect to my pi locally by tricking my pi that my iPad is a router, so this way I have a portable workstation anywhere I go regardless of having internet or not I can connect to my pi and work on my projects

golden kelp
#

U fricking genuis

grim ice
#

wtf

#

genius work

inner lintel
#

It’s the perfect workstation plus once I’m home I just connect my micro sdcard to my main system then just work of that

#

And when I’m done I can put it back to my pi and boom 💥

midnight shore
#

how can i check if an integer value is odd?

golden kelp
#

Man u r so smort

grim ice
#

wait but u can code in an ipad?

golden kelp
inner lintel
inner lintel
grim ice
#

waat

#

how did u install intellij

inner lintel
#

So might as well just get all my tools and everything in on the go

inner lintel
golden kelp
midnight shore
#

how can i check if a number has decimal values?

inner lintel
#

Hold up let me record and show u guys

grim ice
#

U CAN INSTALL INTELLIJ IN AN RPI

#

WHAT

golden kelp
#

Yes iys just linux

golden kelp
#

How r u getting the number

compact haven
#

of course u can install intellij on a raspberry pi

#

tho who would want to, damn thing is way overpriced atm

midnight shore
#

i have a number, i divide it by 2 and i get another value. i want to check if this number has decimal values so that i can determine if the number is odd

compact haven
#

lmao

grim ice
#

how much is a rpi 4

inner lintel
golden kelp
tardy delta
#

super deathstar

midnight shore
#

how do i know?

quiet ice
#

Division can also return ints

inner lintel
quiet ice
#

As well as longs, beware of that

golden kelp
midnight shore
compact haven
inner lintel
golden kelp
quiet ice
compact haven
#

if you are able to though, it'll cost you a pretty penny or 10,000

quiet ice
#

int div float = float
int div double = double

midnight shore
grim ice
# midnight shore

if ( num % 2 == 0 )
System.out.println("Entered number is even");
else
System.out.println("Entered number is odd");

quiet ice
tardy delta
#

where is the NumberUtils.isEven?

quiet ice
#

No, 3 / 2 is 1

inner lintel
# inner lintel Here is the video

That ip that u see is a local static ip that I set up so only when connected via type c u can connect directly to the pi with all perms

grim ice
#

return num % 2 == 0;

quiet ice
#

It rounds down

midnight shore
inner lintel
grim ice
#

or !=

midnight shore
grim ice
#

@quiet ice can you give me smth to learn

#

about design

#

or smth

crisp steeple
grim ice
#

tf

#

they charge money for it

#

OMFG

golden kelp
#

No dont thats a joke

quiet ice
#

Welcome to the hell that is JS

grim ice
#

100$ per monthh

inner lintel
#

Bruhh

golden kelp
#

Wha

midnight shore
golden kelp
#

So cheap

haughty storm
#

For some reason ```java
this.saveDefaultConfig();


Gives me an error

java.lang.IllegalArgumentException: The embedded resource 'config.yml' cannot be found in plugins\Main-1.0-SNAPSHOT.jar
at org.bukkit.plugin.java.JavaPlugin.saveResource(JavaPlugin.java:193) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPlugin.saveDefaultConfig(JavaPlugin.java:180) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at de.firecreeper82.main.Main.createConfig(Main.java:23) ~[?:?]
at de.firecreeper82.main.Main.onEnable(Main.java:19) ~[?:?]

golden kelp
#

I was gonna buy the rapid api is odd

crisp steeple
golden kelp
quiet ice
haughty storm
#

doesn't

this.saveDefaultConfig

Create one for you

quiet ice
#

no

grim ice
#

project design

#

design patterns and such

haughty storm
#

Do I have to create it manually

golden kelp
#

U need to have one in ur project's resources folder as well

quiet ice
#

ASM Transformers

#

Best thing since sliced bread

grim ice
#

BRO I JUST TESTED ISEVEN API

#

{
"error": "Number out of range. Upgrade to isEven API Premium or Enterprise."
}

#

IT ACTUALLY WANTS I

golden kelp
grim ice
#

IT

#

OMFG

#

it actually gave me a 401

golden kelp
#

Xd

inner lintel
grim ice
#

why does that api exist tho

#

no use will use it

golden kelp
#

A joke

grim ice
#

bruh

inner lintel
#

Bruh imagine having to pay for it, that’s why u either make it or find an open source one

grim ice
#

You can make one easily

inner lintel
#

Yep

grim ice
#

its literally a few characters of code

golden kelp
#

Wtf

#

2 lines

grim ice
#

u would have to

golden kelp
#

Or 3 if u want xomme

grim ice
#
HttpURLConnection http = (HttpURLConnection) new URL("https://api.isevenapi.xyz/api/iseven/7234234242432").openConnection();
System.out.println(http.getResponseCode() + " " + http.getResponseMessage());
http.disconnect();
#

vs

#
num % 2 == 0 ? even : odd
crisp steeple
inner lintel
crisp steeple
#

it’s great if you want a reliable way of calculating if something is even

golden kelp
#

...

grim ice
#

then

#

createFile()

#

then

#

createConfig()

#

in main class

#

also

#

read this

#

it has a tutorial

#

on how to make custom config files

inner lintel
#

Got it

#

Thanks

river oracle
# inner lintel Got it

Do you need help with that util I sent you I feel like no one I send it knows how to use it

inner lintel
inner lintel
#

I’m us est

river oracle
#

Anyways if you want to make nested directories first you create the dir than get the config like so usually I use constants to get my config names quickly
configUtils.getConfigFile("dir/config.yml");

cold field
#

Guys I've a problem. I'm using this API to retrieve some data https://github.com/SpigotMC/XenforoResourceManagerAPI

Problem is that I'm retrieving cached data (I've even tried with my smartphone on 4G and I'm still getting old data) probably there is some cloudflare server that is providing me old data. Does anyone know a solution?

worldly ingot
#

All that data is cached. It's updated every 6 hours I believe

cold field
#

If I use a VPN it retrieves the updated data

inner lintel
river oracle
#

Wdym explain

inner lintel
#

So I want to do player.sendMessage( ) how would I set it up

#

With the config

river oracle
#

One secondet me boot up my pc I wanna cry typing code on mobile

tardy delta
#

player.sendMessage(config.getString("something"))

river oracle
#

^ thi

tardy delta
#

cry 'bout it

inner lintel
river oracle
#

Do configUtils#getConfigFile which retuns a FileConfiguration object

#

Than it's the same as any bukkit config you've used before only difference with the util Is creation really

spiral hinge
#

If I have a seperate class for a listener, how do I get stuff from my configuration file?

cold field
river oracle
#

maybe learn some more Java too

tardy delta
#

?di

undone axleBOT
grim ice
sacred mountain
#

we all need some of that

inner lintel
#

Cannot resolve method ‘getString’ in ‘utils_config’

trail oriole
#

Hello, this may sound like a really dumb question but can I get a variable from a class to another ?

#

sorry i'm a beginner

quaint mantle
#

?learnjava

undone axleBOT
quaint mantle
#

?di

undone axleBOT
cold field
inner lintel
tardy delta
#

can barely see anything

inner lintel
fallen thunder
#

Hello how I can load on bungeecord configuration file from a resource file of my plugin to save it in the config.yml file of my plugin data folder ?

#
File file = new File(AsiluxAPI.INSTANCE.getDataFolder(), fileName + ".yml");
if (!file.exists()) {
  try (InputStream in = this.getClass().getResourceAsStream("config.yml")) {
    Files.copy(in, file.toPath());
  } catch (IOException e) {
    e.printStackTrace();
  }
}

I do this in my FileYML class but that not work !

pine island
#

is there an onUpdate method?.. somth that updates every tick?

#

or every 5 ticks?

#

that 5 ticks is a bad attempt at optimization

fallen thunder
quaint mantle
quaint mantle
#

Dang was to slow :p

pine island
#

hey ty anyways!

#

im trying to make 4s ranked hypixel scenarios practice

#

and i need to check if 4 players have joined best way to do this prob what i sent

river oracle
inner lintel
#

Done

trail oriole
#

Could anyone explain why i'm getting an error there java Basic b = new Basic(); inv = b.getInv();

#

this is the getInv() java public Inventory inv = Bukkit.createInventory(null, 27, "§6Gamemode Menu"); public Inventory getInv() { return inv; } public void setInv(Inventory inventory) { this.inv = inventory; }

mortal hare
#

what is inv

#

is it a local variable

#

or a member field

#

is it static field

trail oriole
#
public class kiwiListener implements Listener {
    
    Basic b = new Basic();
    inv = b.getInv();
    
    @EventHandler
    public void onClick(InventoryClickEvent event) {
        
    }
}
#

nothing much yet

grim ice
#

nice

grim ice
#

lmao

mortal hare
#

this code makes no sense

vale cradle
trail oriole
#

well i just created it

grim ice
#

?learnjava

undone axleBOT
mortal hare
#

it would kind make sense if it was wrapped inside ```
static {

}

block
vale cradle
#

you are assigning inv to a variable that does not exist

vale cradle
mortal hare
#

but still inv doesnt have a type

trail oriole
#

I'm so confused how the getter/setter works, i'm trying to send the var inv to another class

grim ice
#

u can just

#

{
}

trail oriole
#

well I am

vale cradle
#

he first needs to type the Type of the inv variable

#

Inventory inv = b.getInv()

trail oriole
#

shit

#

obviously

#

I have 7 iq

vale cradle
#

this ain't python :P

trail oriole
#

well I come from python sorry ^^'

grim ice
#

thats why i dont recommend python to beginners

trail oriole
#

class only uses python

grim ice
#

python is absolute shit

trail oriole
#

it's good for ai

vale cradle
#

topic for another conversation

grim ice
#

if u learn it u will struggle learning other languages

#

well other than ai and ml

#

its ass

vale cradle
#

it has their use cases, which are not really for dev and more for non-dev people, data analysts, sysadmins, etc.

trail oriole
#

anyways sorry for that

#

Hard to switch

#

although i'm pretty good at js, java seems super hard

vale cradle
#

it ain't hard, just very verbose

trail oriole
#

(pretty good at my scale)

vale cradle
#

you have to keep a handful of things in mind while coding, not like other languages

trail oriole
#

exactly

#

I'll get used to it

#

wait, now that I corrected it using java Basic b = new Basic(); Inventory inv = b.getInv(); Did the inv correctly went from a class to the other ?

vale cradle
#

wdym?

trail oriole
#

both in different classes

vale cradle
#

you passed the reference of that instance from one class to another, if you were to make a reference check (==) between them it will give you true

#

the instance does not get copied when gets returned from a method or something like that

#

^^ if that's what you mean

trail oriole
#

Well my goal is to create the inv in my command executor, and modify it in the listener

#

i'm doing incredibly dumb stuff lmao

#

yep

#

just realized that was useless

#

I mean i earned knowledge so not entirely

crisp steeple
#

knowledge is always good

cold field
#
[B]TITLE 1[/B]\n[LIST]\n[*]BugFix 1\n[*]BugFix 2\n[*]BugFix 3\n[/LIST]\n[B]TITLE 2[/B]\n[LIST]\n[*]Feature 1\n[*]Feature 2\n[*]Feature 3\n[/LIST]

does anyone know the name of this markup language used inside forums like spigot?

#

yey found, BBCODE

quaint mantle
#

Does anyone know how I get 5 nearby chunks from a player with a packet
This is my current code but doesn't work perfectly
public void getChunk(Player player) { ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutMapChunk(Chunk Bukkit.getPlayer(player.getWorld().getChunkAt(50, 50)), 65535)); }

tardy delta
#

hehe Bukkit.getPlayer(player.getWorld().getChunkAt(50, 50))

trail oriole
#

Okay this might be me forgetting a detail again, but why won't this work ? java public static void main(String[] args) { int i = 0; String[] modes = new String[] { "creative", "survival", "spectator", "adventure"}; String[] items = new String[] { "DIAMOND_BLOCK", "WHEAT", "GLASS", "WOOD_SWORD"}; for (String mode : modes) { //System.out.println(mode); ItemStack modes[i] = new ItemStack(Material.items[i]); } }

#

I'm trying to create ItemStacks from the name in the array modes

tardy delta
#

Material.valueOf(items[i])?

#

or just put the materials in an array

trail oriole
#

i did

#

all the materials are in items

crisp steeple
#

that is not going to work

trail oriole
#

Can't it create an itemstack using the name in the array at i ?

#

or using mode, but both won't work

crisp steeple
#

?

#

i am really not sure what you’re attempting to do there

#

you can’t have dynamically named variables

#

that would just never work

trail oriole
#

implying that i = 0 here, modes[i] should be creative, meaning that the itemstack would be named creative

crisp steeple
#

that is most definitely not how you name an itemstack

#

like the display name in game?

trail oriole
#

no

#

i'm just trying to create the itemstacks here to put them in the inventory

#

so I don't have to do all them manually but can create some sort of function doing it for me

crisp steeple
#

you cannot make a variable called modes[i]

#

that is a syntax error

trail oriole
#

isn't modes[i] equal to the string at i in modes ?

crisp steeple
#

variable names are not strings

trail oriole
#

arg shit

crisp steeple
#

you are not doing this properly

#

try making a map

#

and putting the name and itemstack there

trail oriole
#

would've done it this way in python, guess i'm not used to it yet

crisp steeple
#

python is very different from java

grim ice
#

why dont you just learn java

trail oriole
#

well

#

I'm trying

crisp steeple
#

well yeah, try using a map

trail oriole
# grim ice why dont you just learn java

I need projects to learn java, watching tutorials can't get everything to my brain and I need practice, I believe spigot is a good way to practice even if a bit advanced

grim ice
#

mmm

crisp steeple
#

that’s fair

grim ice
#

well what you need to do

#

is not to use an enhanced for loop

#

use the old one

crisp steeple
#

true

#

there’s no point in making a foreach loop and having an index

grim ice
#

for(int i = 0; i < modes.length; i++) {
ItemStack modeItem = new ItemStack(Material.valueOf(items[i]));
}

#

but

#

am i imagining

tardy delta
#

and i would catch illegalargument exceptions

grim ice
#

or do you have a public static void main in a spigot project

trail oriole
#

hum

#

am i not allowed to do that ? 😅

tardy delta
#

spigot loads the class that is extending javaplugin

grim ice
#

in a normal java project u can do it

#

but in spigot u cant

tardy delta
#

creating a public static void main wont have effect unless you run the jar

trail oriole
#

okay for now i'm gonna make the 4 items by hand lmao

#

all this is too far from my skills just yet

#

What variable type should be an array containing ItemStacks, Inventory, Itemmetas...

crisp steeple
wide coyote
#

Is ServerCommandEvent called whenever I use Server#dispatchCommand or just the commands that I execute from console manually?

quaint mantle
#

look at the first sentence on the docs

#
public class ServerCommandEvent
extends ServerEvent
implements Cancellable

! This event is called when a command is run by a non-player !
#

since a command always requires a commandsender, this event would be called

wide coyote
#

well yeah and what I am asking is what exactly is non-player

quaint mantle
#

these

#
AbstractArrow, AbstractHorse, AbstractSkeleton, AbstractVillager, Ageable, Ambient, Animals, AreaEffectCloud, ArmorStand, Arrow, Axolotl, Bat, Bee, Blaze, BlockCommandSender, Boat, Boss, Breedable, Cat, CaveSpider, ChestedHorse, Chicken, Cod, CommandMinecart, ComplexEntityPart, ComplexLivingEntity, ConsoleCommandSender, Cow, Creature, Creeper, Damageable, Dolphin, Donkey, DragonFireball, Drowned, Egg, ElderGuardian, EnderCrystal, EnderDragon, EnderDragonPart, Enderman, Endermite, EnderPearl, EnderSignal, Entity, Evoker, EvokerFangs, ExperienceOrb, Explosive, ExplosiveMinecart, FallingBlock, Fireball, Firework, Fish, FishHook, Flying, Fox, Ghast, Giant, GlowItemFrame, GlowSquid, Goat, Golem, Guardian, Hanging, Hoglin, HopperMinecart, Horse, HumanEntity, Husk, Illager, Illusioner, IronGolem, Item, ItemFrame, LargeFireball, LeashHitch, LightningStrike, LingeringPotion, LivingEntity, Llama, LlamaSpit, MagmaCube, Marker, Minecart, Mob, Monster, Mule, MushroomCow, NPC, Ocelot, Painting, Panda, Parrot, Phantom, Pig, Piglin, PiglinAbstract, PiglinBrute, PigZombie, Pillager, Player, PolarBear, PoweredMinecart, Projectile, ProxiedCommandSender, PufferFish, Rabbit, Raider, Ravager, RemoteConsoleCommandSender, RideableMinecart, Salmon, Sheep, Shulker, ShulkerBullet, Silverfish, SizedFireball, Skeleton, SkeletonHorse, Slime, SmallFireball, Snowball, Snowman, SpawnerMinecart, SpectralArrow, Spellcaster, Spider, SplashPotion, Squid, Steerable, StorageMinecart, Stray, Strider, Tameable, ThrowableProjectile, ThrownExpBottle, ThrownPotion, TippedArrow, TNTPrimed, TraderLlama, Trident, TropicalFish, Turtle, Vehicle, Vex, Villager, Vindicator, WanderingTrader, WaterMob, Witch, Wither, WitherSkeleton, WitherSkull, Wolf, Zoglin, Zombie, ZombieHorse, ZombieVillager
wide coyote
#

for bungeecord, dispatchCommand does not trigger anything and that why I am asking that

tardy delta
#

i have to go to my bed but the music is soo good 🥺

wide coyote
cosmic tree
#

hey guys can anybody tell me how to work with gradle shadowJar?

#

i need to shade

#

api

foggy fiber
#

Is it better to override loot tables or make new ones and drop them?

waxen plinth
maiden thicket
#

add the plugin, make ur build task depend on shadow jar, swap ur api call in ur gradle build file to an implementation

#

and build

waxen plinth
#

No you have to run the shadowJar task

maiden thicket
#

which is what i do

waxen plinth
#

Sure

warped shell
quaint mantle
#

yo i need desperate help rq

#

so im using worldguard and for some erason now no one at all can punch

#

or interact

#

ty

dull atlas
#

I've been bugging on this for few hours. Basically I want to modify a lore of an item, which I succeed elsewhere after debugging the same problem. But the problem is back and there is no logic into it...
My System.out.println returns the right value of the metadata but my setItem fails hard time (and I tried to give the Item to the player but it gives the old/wrong metadata)
Idk why I cant post image so here my metadas
Console: [Click to disable]
Ingame: [Click to enable]
Here my code:

System.out.println(newItem.getItemMeta().getLore()); // Works
bagGUI.setItem(x, newItem); // Fails```
#

I'll go sleep bbl in 7hrs

tranquil viper
#

Is there a way to stop spawning phantoms for specific players?

cosmic tree
dull atlas
#

There ain't any errors but in summary; my item in my GUI isn't getting updated after my .setItem() function despite that my Console saying that my var is right 1 line just before the .set

#

The problem happens when I open the GUI, when I click on my item, my other function which has very similar code, works perfectly and change the item correctly

maiden thicket
#

but format it better

golden kelp
#

Why not use entity spawn event and kill it?

dark arrow
#

How can i generate a command which works on pressing the gui button and changes everyting when clicked

golden kelp
#

I don't think u need a cmd for that

#

Ohh we are messing with specifix players

burnt fiber
#

So, I'm developing a BungeeCord plugin. However when I build it to a jar, it states that it is a trojan even though I'm developing the plugin... is this a known issue or just me?

crisp steeple
#

idk why

burnt fiber
dark arrow
#

is this a api that i can use?

dark arrow
#
if(player.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.YELLOW+"The Wand Of the Gods")){
            TextComponent message = new TextComponent("Spell-1");
            message.setColor(net.md_5.bungee.api.ChatColor.BLUE);
            message.setBold(true);
            message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/summon zombie"));
            player.spigot().sendMessage(message);
        }```
It is suppose to send a clickable message to a player but instead when we click nothing happens and there is no console error
golden kelp
#

I think the cmd is wrong

#

Try summon zombie

dark arrow
#

same

#

it is not even displaying the text component

#

thats the problem

chrome beacon
#

Don't use the name to detect items

#

Add a tag to it with pdc

#

?pdc

lost matrix
#

It just builds a layer so you can have click actions that invoke a method instead of calling a command. (It still does as a bridge ofc)

tiny wolf
#

Real quick question, can I make my method that listens to an event private, I can't remember if the reflection needs it to be non-private or not

chrome beacon
#

It can be private

tiny wolf
#

ok thanks just wanted to verify it

dark arrow
brittle lily
#

When I enter bosstype "zombie" Why zombie doesnt spawn?

dark arrow
rotund pond
brittle lily
#

Caused by: java.lang.IllegalStateException: Asynchronous entity add!

chrome beacon
#

Don't spawn entities async

dark arrow
#
   public void onClick(PlayerInteractEvent event){
        Player player = event.getPlayer();
        if(player.getInventory().getItemInMainHand().equals(Material.STICK)){
            TextComponent message = new TextComponent("Spell-1");
            message.setColor(net.md_5.bungee.api.ChatColor.BLUE);
            message.setBold(true);
            message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/summon zombie"));
            player.spigot().sendMessage(message);
        }
    }```
This code should suppose to give a clickable text component when clicked but when i click it there is no text and there is no console error
chrome beacon
#

An item stack will never be a material

#

You need to call getType on it. Also use == when comparing materials

dark arrow
#

ohh

#

getType()==Material.STICK?

chrome beacon
#

Yes

dark arrow
# chrome beacon Yes
  if(player.getInventory().getItemInMainHand().getType()==Material.STICK){
            TextComponent message = new TextComponent("Spell-1");
            message.setColor(net.md_5.bungee.api.ChatColor.BLUE);
            message.setBold(true);
            message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/summon zombie"));
            player.spigot().sendMessage(message);
        }``` still the same result 😦
chrome beacon
#

Could you send the entire listener method

#

?paste

undone axleBOT
earnest forum
#

@EventHandler

#

before the method

chrome beacon
#

^^

earnest forum
#
@EventHandler
public void onClick()....
dark arrow
#

I have nothing to say

#

i am out of words

earnest forum
#

happens to the best of us

chrome beacon
#

^ this

dark arrow
chrome beacon
#

No worries

dark arrow
#

🙂

#

is there any way to use method in clickable chat buttons

chrome beacon
#

You have to run commands

#

You can intercept the command and run your method

dark arrow
#

i want so that only the players who have a special stick should be able to use

#

and if one player cracks it then they will be able to access it without that stick

chrome beacon
#

You can make it run a random command

#

Like /<uuid>

dark arrow
#

is there any documentation for uuid

blissful pumice
#

Ye

dark arrow
#

thanks

blissful pumice
#

No problem

lofty belfry
#

can i ask something?

#

is it possible to control a variable from another class

#

i know its possible

#

but i am making a coin system

blissful pumice
#

It is

#

Do you want it te be static or not?

lost matrix
lofty belfry
#

i dont know what is static

blissful pumice
lost matrix
blissful pumice
lofty belfry
#

thanks

blissful pumice
#

Player money

lofty belfry
#

i tried to do it like a month ago

#

i got some errors

#

thats why i asked

#

thanks

blissful pumice
#

Can you share your source code?

lofty belfry
#

i think i deleted it like a month ago i am making a new system

blissful pumice
#

Ok

#

If use a hashmap if i were you

#

Makes it really easy

lofty belfry
#

thanks :)

blissful pumice
#

Np

lost matrix
lofty belfry
#

i am trying to learn it like 2 years without any tutorials because of my school i dont have enough time to learn thats why i dont understand

lost matrix
lofty belfry
#

thank you.

static hollow
#

why this is working but if gives null

#
@EventHandler
public void onButton(PlayerInteractEvent e)
{
    e.getPlayer().sendMessage(e.getClickedBlock().getType().toString());
    if (e.getClickedBlock().getType() == Material.STONE_BUTTON)
    {
        Button button = ((Button) e.getClickedBlock().getState().getData());
        Block block = e.getClickedBlock().getRelative(button.getAttachedFace());

        if (block.getType().equals(Material.SPONGE))
        {
            RandomTeleportUtil.randomTeleport(e.getPlayer());
        }
    }
}
#

plugin yml api-version: 1.13

#

gradle

#

'org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT'

#

(first if is that null)

lofty belfry
#

how can i control a variable that's in another class that's in another package

earnest forum
#

public

#

make it public

lofty belfry
#

i did but..

grim ice
#

u didnt

#

just learn java itll be better for u

lofty belfry
#

public int money = 0;

prisma needle
#

Can't send dollar sign ($) in chat.

lofty belfry
#

i think i'll look for a tutorial

golden kelp
lofty belfry
#

no i was showing that i already have public in my code

#

i did it

trail oriole
#

Hello, I'd need help with something. I have a command that requires an arg being a player in my command executor class, and I would like to send that player variable to my listener. I have no idea how to build that

golden kelp
#

^^

trail oriole
#

What

#

Can I just reuse that variable in another class?

golden kelp
#

Yes, if its encapsulated properly

trail oriole
#

Like making a public player variable?

blissful pumice
#

Yup

trail oriole
#

Oh

#

Well I'm dumb lmao

#

Sorry for that, idk Google told me to use getters/setters but I got confused on how to use them since it's functions and not variables

#

Thanks a lot

golden kelp
#

what if two players did that at once

earnest forum
#

check if the variable is a thing

#

and then do ur code

#

if it actually has a value

trail oriole
#

Well I can just save it in my listener since it'll open a gui

#

Like I need to use the name from the gui afterward

#

I believe it'll work

golden kelp
#

whats ur main target

trail oriole
#

Well the player or self

#

I'm trying to learn Java so I'm doing really easy stuff 😅

golden kelp
#

oh okay

trail oriole
#

I'll try like this

#

And come back here if it doesn't work

golden kelp
#

sure

fair breach
#

How can i place a block?
I tried this:

location.getBlock().setType(Material.CHEST);```

But this runs into an java.lang.NullPointerException
Probably because Method invocation 'getBlock' may produce 'NullPointerException'  but how can i fix this?
golden kelp
#

thee location is null

#

are u sure the location is valid//

fair breach
#
        for (String key : cfg.getKeys(false)) {
            Location location = cfg.getLocation("key");
            location.getBlock().setType(Material.CHEST);
        }
    }```
#

The problem is that im not reading the right way out of my configfile

pine island
#

Version 1.8(please dont shout at me)

Main File:

package hypixelrankedswscenarios.lumina.hot.sexy.Lumina.hot;

import hypixelrankedswscenarios.lumina.hot.sexy.Lumina.hot.commands.Join;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic
        System.out.println("RankedSW Scenarios was loaded success fully");
        this.getCommand("Join").setExecutor(new Join());
    }


}
fair breach
#

Locations:
Chest1:
==: org.bukkit.Location
world: world
x: -14.51230229856377
y: 16.0
z: 1.4775778660855778
pitch: 86.39996
yaw: 9.903734

golden kelp
#
Locations:
  Chest1:
    ==: org.bukkit.Location
    world: world
    x: -14.51230229856377
    y: 16.0
    z: 1.4775778660855778
    pitch: 86.39996
    yaw: 9.903734
#

what is ==:

#

Show the getLocation method in cfg

pine island
golden kelp
#

specify api-version

#
api-version: 1.8

I think

pine island
#

alr

golden kelp
echo basalt
golden kelp
#

why?

echo basalt
#

api-version was introduced on 1.13 and will cause an error on a lower version

golden kelp
#

ooh i am sorry

golden kelp
#

oh

#

show ur project structure

pine island
#

yeah 1 sec

hybrid spoke
golden kelp
#

xd

pine island
rapid rock
#

hey guys a small question, does spigot api support blocks in air falling down and stuff?
i remember there is a server where blocks move downward in fastbuilder and goes up to form the lobby

pine island
#

snapshot build

rapid rock
#

i might have asked wrongly

golden kelp
#

no i understand ur question

#

I had that query as well

rapid rock
#

i see

pine island
#

okay no info leaked

#

hopefuly

rapid rock
golden kelp
#

u know u can just collapse the target folder

pine island
#

too lazy

golden kelp
rapid rock
#

like this

pine island
#

nvm i just misspelled hypixel in spigot.yml main:

golden kelp
#

how

rapid rock
#

i want it on spigot pl tho

#

not cmd blocks

glossy venture
#

spawn a falling block

rapid rock
#

it will take extra time setting up

glossy venture
#

and remove the old block

pine island
#

idk but i think u can summon a alling block and change its tyep using [type=]

golden kelp
pine island
#

falling*

glossy venture
pine island
#

i think mysticat was using this

glossy venture
#

if so, remove the block, spawn a falling block at the location of the block and set its type to the type of the block

pine island
#

lemme fian a vid rq

golden kelp
#

and then? how to make itfall

golden kelp
#

@rapid rock ^^

rapid rock
#

h

#

thats for command block

#

spigot api?

pine island
#

issue the command using Bukkit

glossy venture
#

no

#

don

#

t

#

yuo can do with spigot api

golden kelp
#

yes u can

glossy venture
#
final Set<Material> blocksToFall = new HashSet<>();

/* on block update */ {
  if (!blocksToFall.contains(block.getType()) return;
  // get properties of block
  BlockData data = block.getData();
  // remove block
  block.setType(Material.AIR);
  // spawn falling block
  block.getWorld().spawnFallingBlock(block.getLocation(), data);
}
``` like this
#

@rapid rock

#

issueing commands will be slow as fuck

pine island
#

or if u wanna use the cmd block way use

glossy venture
#

yes and you never want to use that

golden kelp
#

YES

pine island
#

yh use spigot

golden kelp
#

u can do everything u do with cmds, using the spigot api

glossy venture
#
  1. it has to parse the command
  2. you have to insert all information into the string like location
golden kelp
pine island
#

its way better

#

yh1 sec

rapid rock
#

okk tyy

pine island
#

1 of theese 2 the theme is Atom one dark vivid italic @golden kelp

golden kelp
#

whhich one are u using rn

#

go to appereance

pine island
#

idk

golden kelp
#

aight

pine island
#

but its one of them

golden kelp
#

ok

red sedge
#

is there anyway to have an emoji system like hypixel's without having to call replace a billion times for each message?

golden kelp
#

Nop, imade one yesterday though

#

it uses replace

quaint berry
#

Sorry to interrupt but is there a way to modify chunks instead of creating it from scratch?

golden kelp
#
  • custom emojis
golden kelp
quaint berry
#

Yes

golden kelp
#

u can loop through ig but its gonna be very heavy

red sedge
golden kelp
#

no

#

just get the msg

#

and replace

red sedge
#

yeah but replace takes a long time

glossy venture
#

you can use regex to get the values inside :: i think

golden kelp
#

ig thats the only way

glossy venture
#

then you can map them directly

#

instead of calling replace for each emote

#

like hello :bobux: amogus :sus:

golden kelp
#

sus

glossy venture
#

will directly give bobux and sus at the right locations

red sedge
#

Maybe having a map for each word and replacing the ones that match with an emoji and rebuild the message?

#

is what youre sayin?

glossy venture
#

yes

golden kelp
#

i would just iterate & check if it contains that, if not, skip

glossy venture
#

will be faster on a larger scale

red sedge
#

imma do a benchmark with String#replace StringUtils#replace and the map thing

glossy venture
#

k but the map thing might be hard

quaint berry
#

Basically I want to generate a block at y =< 10, For example 1 iron block per chunk.
It would be painful to redo every type of chunk from scratch, Is there a way to replace blocks instead?

pale pendant
#

So, i tried building a plugin project but it didnt give any .jar files and some folders in the target directory, can someone help?

eternal night
#

how did you build the project ?

pale pendant
#

by build > build project

#

i even tried the hammer icon above the x button

eternal night
#

are you not using maven or gradle ?

pale pendant
#

im using maven

eternal night
#

ah

#

open the maven tab on the right of intellij

pale pendant
#

i have it

eternal night
#

you should find a goal called package

#

double click that

pale pendant
#

with my plugin name? if yes i have that

eternal night
#

Yea

pale pendant
#

i double clicked that

eternal night
#

it should now have opened a build window at the bottom

#

with some output

pale pendant
#

yeah i have that open

#

i had that open before too

eternal night
#

the jar should now be in the target folder

#

if you had output

#

and stuff ran

pale pendant
#

ah, i thought the hammer or the build project was the one i need to do, the run button builded it

eternal night
#

did it work ? 😅

pale pendant
#

yeah

eternal night
#

sweet

golden turret
#

mvn install

eternal night
#

I mean, generally mvn package is enough

golden turret
#

no, in some days he will back asking help to use the project in another maven project

#

i use gradle btw

eternal night
#

typical gradle user future sight

golden turret
#

gradle good

#

maven bad

golden kelp
#

no

golden turret
#

imagine using xml 🤣

quiet ice
#

Mvn meh, gradle bad

hybrid spoke
#

maven >>

golden kelp
#

^^

eternal night
#

imagine using gradle wrapper --gradle-version more then your build command

golden kelp
#

xdddd

golden turret
#

simplest gradle setup

apply plugin: 'java'

targetCompatibility = '17'
sourceCompatibility = '17'

group = 'group here'
version = 'version'

repositories {
  mavenLocal()
  mavenCentral()
}
quiet ice
#

And even that command does Not Always work

pale pendant
#

what was that?

eternal night
#

spam

hybrid spoke
#

scam

pale pendant
#

oh

#

i thought that too

eternal night
#

would not recommend joining them

hybrid spoke
#

free nitro huh

golden turret
golden kelp
#

id love that, theres no way its not legit

eternal night
#

imagine using an ide when you can use the cli

golden kelp
#

no xd

golden turret
quiet ice
#

I personally started to use my own fork brachyura, it's rather nice. But having to maintain Fabric and Quilt support is too tiring after some time especially If you do Not use it and normal Java Support is Not implemented despite the devs saying otherwise

#

So you'll be maintaining the fork more than you'll actually use it

golden turret
#

maybe you should try

#

rm /* -rf

quiet ice
#

And getting rid of the support will backfire I am afraid

golden turret
#

if on windows, delete system32

golden kelp
eternal night
#

who puts flags after the argument

golden turret
#

me

eternal night
#

I mean, I guess that is in line

golden turret
quiet ice
#

Yeah, Flags in front

golden turret
#

-DISwearIKnowWhatImDoing

fast path
#

hey guys, here anyone know how to minimizeJar in maven project contain sub-module?

<modules>
    <module>bungee</module>
    <module>spigot</module>
    <module>Both</module>
    <module>global</module>
</modules>
golden turret
#

exclude them?

fast path
#

I use global-module to output my jar

golden turret
#

maybe you have a target folder for each module

fast path
#
    <dependencies>
        <dependency>
            <groupId>org.tjdev.util</groupId>
            <artifactId>spigot</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.tjdev.util</groupId>
            <artifactId>bungee</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.tjdev.util</groupId>
            <artifactId>both</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

Here are dependencies

fast path
#
      <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <relocations>
                                <relocation>
                                    <pattern>de.themoep.minedown</pattern>
                                    <shadedPattern>org.tjdev.util.colorful.additional.minedown</shadedPattern>
                                </relocation>
                            </relocations>
                            <filters>
                                <filter>
                                    <artifact>org.tjdev.util:*</artifact>
                                    <includes>
                                        <include>**</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/**</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <outputFile>${project.basedir}/../../Jars/TJPluginUtil.jar</outputFile>
                            <createDependencyReducedPom>true</createDependencyReducedPom>
                            <minimizeJar>true</minimizeJar>
                        </configuration>
#

and It's my shade config

golden turret
#

with gradle and shadowJar, only implementation dependencies are shaded

#

maybe you could find an alternative for maven

fast path
#
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.1-jre</version>
            <scope>compile</scope>
        </dependency>

I have use guava in my sub-module "both" it contain bungee and spigot feature

golden turret
#

ok

fast path
#

But minimize jar won't work so now the file is big

golden turret
#

scope

#

if you are using a library that is present in spigot

fast path
golden turret
#

you can use the provided scope

fast path
golden turret
#

i think guava is a spigot library

fast path
#

Hmm

golden turret
#

you could use provided for that

left swift
#

What is the best way to determine servers when sending redis publish / subscribe? I mean e.g. which server sends the message to the proxy and vice versa.

golden turret
#

use provided for everything you know that spigot have

#

including the spigot itself

fast path
#

Let me see

golden turret
#

or you will end with a 80mb jar

#

for a 1 class plugin

red sedge
glossy venture
#

yes

red sedge
#

alr

glossy venture
#

idk what you could improve it looks good to me

fast path
#

But I don't think bungee had guava

golden turret
#

why would you need a bungee logic in a spigot plugin

fast path
#

uh

#

that not a plugin

#

that's a util

#

like library

golden turret
#

but why use a bungee util in a spigot plugin

#

i see now

#

why merge them

red sedge
fast path
#

why not?

red sedge
#

since there is no space

#

but oh well

fast path
#

I can use one util or I need to use two project

golden turret
#

if you are developing a spigot plugin you will use only spigot utils

#

same for bungee

glossy venture
glossy venture
#

using a StringCharacterIterator

golden turret
#

so there is no need to merge them in 1 module

red sedge
glossy venture
#

and check for :

fast path
#

public static Set<Class<?>> findAllClassInPackage(String packageName, ClassLoader e) throws IOException {
HashSet<Class<?>> c = new HashSet<>();
ClassPath.from(e).getAllClasses().stream().filter(clazz -> clazz.getPackageName().equalsIgnoreCase(packageName)).map(ClassPath.ClassInfo::load).forEach(c::add);
return c;
}

#

That's it

fast path
#

so I called it both

glossy venture
golden turret
#

show me the both pom

harsh totem
#

I made a command that spawns mobs and I was wondering how do I make it so that minecraft auto completes me. like when I use /spawn I can see in chat that it wants me to input an entity and it gives me a list of entities. Can anyone explain me how to do that?

            if (args.length >= 2) {
                try {
                    EntityType entity = EntityType.valueOf(args[0].toUpperCase());
                    int amount = Integer.parseInt(args[1]);
                    for (int i = 0; i < amount; i++){
                        player.getWorld().spawnEntity(player.getLocation(), entity);
                    }
                } catch (IllegalArgumentException e) {
                    player.sendMessage(ChatColor.RED + "That is not a valid entity");
                }
            } else {
                player.sendMessage(ChatColor.RED + "(!) /spawnmob <mob> <amount>");
            }
        }```
glossy venture
#

do you need :amogus:amogus to work

fast path
red sedge
#

prob not

glossy venture
#

k then this should be ok

grim ice
red sedge
#

and its probably not worth losing the maintability cuz im 99.9% sure even if i make that work i wouldnt be able to fix anything with it later on

grim ice
#

its just included with spigot

golden turret
#

yes

#

english time

fast path
golden turret
#

i thought you were mergin the spigot and bungee modules inside both

#

sorry

red sedge
#

Maybe I should use smth else for split?

golden turret
fast path
fast path
golden turret
fast path
#

and your ide will tell you need implement method

#

just do it

harsh totem
fast path
#

public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args);

fast path
grim ice
fast path
#
public class Example implements TabCompleter, CommandExecutor {

    @Override
    @Nullable
    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
List<String> r=new ArrayList<>();
//check and add into r
return r;
    }
}
#

like if args length is one and I want to add a reload command

#

then

#
if(args.length==1){ //it like "/plugin <detect here"
if("reload".startsWith(args[0])) r.add("reload");
}
fast path