#help-development

1 messages Β· Page 2154 of 1

quaint mantle
#

no

#

why

#

it returns a MENU

#

A paginatedmenu is a MENU

river oracle
#

ohhhh

quaint mantle
#

why are you casting it

river oracle
#

wait its just returning a menu

#

fuck

#

you dont even need to cast then

#

fml

quaint mantle
#

i have been trying to stress that for the last 10 freaking minutes

river oracle
#

mans and here I thought he wanted to return a paginatedMenu

#

tlarSobbing I've failed

sterile token
#

I only want to fix that

#

But if cast it then an exception its trown

quaint mantle
sterile token
quaint mantle
#

cry about it

#

its java

#

you cant get it better than that

sterile token
#

That why i want to do add it directly into the getMenu method

river oracle
#

java isn't exactly pretty

sterile token
#

why ?

#

Its an interface

#

They are impl

#

πŸ˜‚

quaint mantle
#

you are so frustratingly uncomprehending

river oracle
#

I can feel Imajin just smashing his keyboard right now

quaint mantle
#

i literally did

#

on everything i did

#

im actually in awe

sterile token
#

dont orry yesterday i thrown a glass throw my window

river oracle
#

bruh don't speak proper english so he has no clue what your trying to say

#

likely main issue

sterile token
#

yes my english its not the greatest

#

And you gringos talk in a technically way that its not common

river oracle
river oracle
sterile token
#

This produces an exception

quaint mantle
#

no puedes hablar ingles facil

#

es porque no puedes comprender

sterile token
#

Si, no es que te estoy jodiendo, es que no te comprendo bien

quaint mantle
#

nothing we can do about that so i guess hair pulling will have to last for a while

sterile token
#

Hmn

river oracle
#

practice makes perfect tlarSobbing

sterile token
river oracle
#

practice sucks

sterile token
#

That what i want to understand

river oracle
#

How is your classes structured

quaint mantle
sterile token
#

Yeah let start from there

quaint mantle
#

no sabes es un PaginatedMenu

#

sabes es un Menu

river oracle
#

^ 1

quaint mantle
sterile token
#

That why i get the exception

quaint mantle
#

si

river oracle
#

I have to keep looking up these verbs I have the most awful spanish vocab

sterile token
#

Allright i have just understand

#

So i need to first check by its instanceof right?

river oracle
#

yes

quaint mantle
#

corecto

sterile token
#

I think i catch it

quaint mantle
#

no, porque

#
Menu menu = this.getMenu(player.getUniqueId());

if (menu instanceof PaginatedMenu menu) {
    // do stuff with `menu`
}
sterile token
#

My goal is to only be able to use PaginatedMenu and InventoryMenu

quaint mantle
#

Use πŸ‘ the πŸ‘ code πŸ‘ we πŸ‘ provide

sterile token
#

Allright

#

if (menu Instanceof PaginatedMenu) return;
PaginatedMenu paged = (PaginatedMenu) menu;

#

Thanks, really thanks. And sorry for making the 2 of you mad

river oracle
#

error will cause by this

quaint mantle
#

@river oracle hes trolling

river oracle
#

definitly

sterile token
#

Why?

#

Im trolling

river oracle
#

does he usually trol?

sterile token
#

I cannot understand

#

Really im not trolling, im trying to solve my issue

quaint mantle
sterile token
#

I think only conclure understand me

#

I think its time to take hair by hair from my head

river oracle
#

tu es muy estupido. Tu ignoras nuestro consejo

#

I think thats proper spanish

sterile token
#

No lo ignoro, es simplemente lo mismo si te fijas

river oracle
sterile token
#

Also im not using java 16

river oracle
#

doesn't change anything

sterile token
#

Menu menu = MenuHandler#getMenu(uuid);
if (menu Instanceof PaginatedMenu) return;
PaginatedMenu paged = (PaginatedMenu) menu;

river oracle
#

Menu menu = MenuHandler#getMenu(uuid);
if (menu Instanceof PaginatedMenu) PaginatedMenu paged = (PaginatedMenu) menu;

sterile token
#

Really im not trolling the code is the same

river oracle
#

my lord

sterile token
#

Oh im really im stupid, should be if (menu instanceof InventoryMenu) return;

#

I wnna shot me

#

I have just realized im really dumb

river oracle
#
Menu menu = MenuHandler#getMenu(uuid);
if (menu Instanceof PaginatedMenu){
  PaginatedMenu paged = (PaginatedMenu) menu;

}

I've sppon fed you the code you need just use it

#

poor Imajin

quaint mantle
#

ive spoonfed him countless times

river oracle
#

you poor soul

sterile token
#

Menu menu = MenuHandler#getMenu(uuid);
if (menu Instanceof InventoryMenu) return;
PaginatedMenu paged = (PaginatedMenu) menu;

#

Now yes

river oracle
#

sure!

sterile token
#

Y2k i was not trolling

quaint mantle
#

why cant you just use. my. code

#

you're basically coutning on the fact that there are two interface implementations, and only two

sterile token
#

I only have 1 interface, and inventory and paginated menu contains the same impl. The only diff is that the paginated one contains some etra methods apart from the inherited from the interface

river oracle
#

yes yes but what if you add more interfaces

#

then your code breaks is his point

sterile token
#

code breaks? you mean an exception or something diff

river oracle
#

yes because you wouldn't be accounting for another implementation

#

I mean the way you have it technically works but if you ever add any more interfaces your going to have issues ASakashrug

#

You could just use his code and it'd work fine but ASginthumbsup

sterile token
#

Yeah my goal is only to keep in track 1 object, with common methods for each impls and be able to use impls methods that are not inherited from the interface

vestal dome
#

flexible code is good.

quaint mantle
river oracle
#

If I had a bat right now and you were sitting next to me I would wack you a couple times.

quaint mantle
vestal dome
#

I feel a tos breaker

sterile token
quaint mantle
#

ISNT

#

HOLY FUCKING SHIt

#

usar tu cerebo SI TU TIENES

river oracle
#

BRO VERANO I FOUND EXACTLY WHAT YOU ARE LOOKING FOR

sterile token
#

I think im getting banned...

sterile token
quaint mantle
#

YES

#

MANY TIMES

vestal dome
#

I'm losing braincells by the minute

sterile token
#

Please dont ban me

quaint mantle
#

Please use your brain

vestal dome
#

bruh how old are you?

river oracle
sterile token
#

Im a child, i have 15y

river oracle
#

I'm sure you could understand

sterile token
#

Yeah

#

I have exactly that code y2k

vestal dome
#

bro

sterile token
#

So in fact its solved

vestal dome
#

just accept what they're saying, why are you clogging up the chat for nothing

#

please I beg you.

quaint mantle
#

im going to track you down and personally rip your fucking bolas pequenos out of your mouth

sterile token
#

Yeah i dont know why i dont do that from the start. I think its that i get blcok when i doesnt work as how i want it

#

So it most my problem

quaint mantle
vestal dome
#

ewll

#

well

river oracle
#

I'd be pissed too

vestal dome
#

sure

quaint mantle
#

we started

#

an hour ago

vestal dome
#

IK I even went to play a val match

#

because I got bored.

quaint mantle
#

we have made the tiniest speck of progress

sterile token
#

Oh really we taken 1h for this

#

Imagine my dm conversations with conclure

vestal dome
#

what are you talking about

#

wtf

#

I must be dreaming

sterile token
#

Last one tooked likely 2h real clock

river oracle
vestal dome
#

I feel so bad for both of you

#

I cannot

#

my brain

river oracle
#

Me? I didn't do anything feel bad for imajin

vestal dome
#

you have headache so I'm sorry for you.

#

well

#

I feel bad*

sterile token
#

I should be more sorry than you

vestal dome
#

wdymmmmmmmmm

river oracle
#

you are fine just a bit slow ahaha

sterile token
#

Because i literally fuck them for 1h20m

#

i will translate to english what happens to me, so you can udnerstand better

river oracle
#

alright I'm tired gonna go watch anime and sleep

sterile token
#

Allright, have a good night. Im sorry for you headache

#

And im sorry for you Imajin too

river oracle
#

don't be he deserves it

#

nerds don't deserve to be happy

vocal cloud
#

I think you killed him ngl.

river oracle
#

yea he died

vocal cloud
#

Like the bounding box thing

vestal dome
#

@lmajin u still with us?

river oracle
#

he is offline :(

#

musta died

vestal dome
#

so uhh

#

can I get help now

river oracle
#

well its okay good thing in the field of copmuter sicence he is completely replaceable

vestal dome
#

LMFAO

river oracle
#

whats your issue

vestal dome
#

here

#

I modded bungeecord itself, to add this to disable JLine

#

but not work

#

because I want to capture the console of bungeecord

river oracle
#

oh fuck hell I would know I've not touched bungeecord

sterile token
#

My problem is the following, I'm stuck on something and I don't know what to do. On top of that I am quite stubborn. Well, everything is much more difficult. It was all my fault, instead of using 1 what he said and leaving everything still. Well, don't reason and keep insisting if there was no other way. But I really apologize

river oracle
sterile token
river oracle
#

depending on your project you could get away with trailing a log file

sterile token
#

Its has

vocal cloud
#

Question should be why are you capturing the log

river oracle
#

no need to customize its output

vestal dome
#

I don't like the log file 😒

#

I also want to give input

#

to the server

quaint mantle
river oracle
#

well for input I usually use something like screen or tmux though you can also use IO files with linux

#

I usually do this while trailing the log file

vestal dome
#

uhh wdym?

#

I cannot do that tho

river oracle
#

I'm sure if your on windows ther eis some form of screen and tmux replacement you could use

vestal dome
#

not on windows

river oracle
#

actively trailing the log is super simple as you can run it on another thread

vestal dome
#

yeah I get you

river oracle
#

most people use screen already to keep the servers up so thats an easy access point for pushing commands

vestal dome
#

I'm on a host

#

not on linux

#

like not " root access "

river oracle
#

if you have a web terminal you could probably send http post requests

vestal dome
#

also cannot do that

river oracle
#

what about keeping something like selenium open in the background while hacky its a simple and fast solution to your issue outside of just buying a VPS

vocal cloud
#

I'm confused as to what exactly you're trying to accomplish here? Are you trying to forward the console output somewhere?

vestal dome
#

ok what about disabling jline

vocal cloud
#

What

vestal dome
#

you can add -nojline to the parameters

river oracle
#

huh

vestal dome
#

and it will disable the jline thingy, like it does not appear the >, and the colors are disabled.

#

and stuff,

#

like in a vanilla jar, which allows you to save logs and send commands to server.

river oracle
#

no no he's talking more about the output what are you trying tod o with it

vestal dome
#

I'm trying to do the same thing on bunbgeecord.

river oracle
#

you shouldn't need to touch the output log file

vestal dome
#

because I'm attempting to run multiple servers using 1 jar to control all of the servers at same time.

river oracle
#

i'd die if I tried to do this without linux ASakashrug

#

nighty night

vestal dome
#

well it is possible

vocal cloud
#

Uhhhhh that sounds more like you need to write some sort of controller over redirecting log output

vestal dome
#

no I already have that done

#

but I have to disable JLine on bungeecord.

#

because I cannot do it any other way,

#

it works on spigot

vocal cloud
#

Why do you need to disable JLine on bungeee?

vestal dome
#

to be able to send commands??

river oracle
#

add -Djline.terminal=jline.UnsupportedTerminal to your java command (somewhere before -jar) found this on a spigot thread

vestal dome
#

doesn't work

#

no like seriously.

vocal cloud
#

Mmmm welp I don't know how to help lol.

vestal dome
#

weΓ§Γ§

#

well

#

idek

#

either

#

because I like, copied code from how spigot does it to disable jline, and it still doesn't work

river oracle
#

could be something with your host possibly

#

wouldn't doubt it

#

if your going to try to do something like this in the future I can't reccomend a dedi or vps more

vestal dome
#

not host

#

currently testing it on my windows machine

river oracle
#

oof sorry idk never done this shit on windows or a host

vestal dome
#

just do it like it's something

#

πŸ˜‚

#

I need help, I ran out of ideas.

vestal dome
#

hmmm

#

coincidence...

vestal dome
#

any ideas?

spare marsh
#

In a plugin description in spigot

#

how do I make a spoiler

mellow edge
#

can I ask something more off-topic?

#

because there is a lot of thecnical people I want to know how I can create a program that checks all of 3 latter available minecraft names. how can I get information about player name?
(in java programming language bdw)
I know its possible otherwise namMC wouldnt exist

steel swan
#

Use the mojang api

#

Did that before, very usefull

mellow edge
wet breach
short raptor
#

What's the issue here?

#

Is that not supported anymore

#

The thread was from 2018

#

Oh nevermind I found it

zealous osprey
short raptor
#

That's when the thread is from

#

I'm coding on 1.17.1

zealous osprey
short raptor
#

I just added target.spigot().stuff and it worked

#

Or I mean the red squiggle went away

midnight shore
pastel juniper
#

I want to make a plugin that adds player uuid and name in a configuration file

earnest forum
#

u cant set a player object in config

#

get the player's name

#

because right now ur just setting "name" to the whole player object, and player objects aren't serializable

midnight shore
# pastel juniper

Also it’s good practice to use uuids instead of names because players can change names and data is gone

pastel juniper
compact cape
#

I never used packets so far... But after I send openwindow packet, All items go invisible...

#

Any idea?

mellow edge
#

but mojang api should do it

#

I think

earnest forum
earnest forum
pastel juniper
visual tide
#

that would fill about 3 petabytes

#

3000 terrabytes

#

so yes

#

that might be it

#

yep

wet breach
#

also you are using floats instead of integers as well. Floats take more resources in storing as well as performing calculations

humble tulip
#

What happens that you don't want?

#

You mean the noise doesn't smooth out?

quiet ice
#

Although really a Map<Long, Float> or the fastutil equivalent would suffice for most people

wet breach
#

you would be better off, splitting this array at even points

#

even though you will have more arrays, because they are a smaller size they are more manageable and more optimal in terms of contiguous memory

quiet ice
#

And array accesses are amazingly fast from my experience

wet breach
#

I would probably create some kind of custom class for this, that kind of simulates buffers but with arrays or hashmaps

quiet ice
#

So even if you double or triple the amount of array accesses you will still see a comparable performance

wet breach
#

this is one of those cases where more is better πŸ˜›

quiet ice
#

A lazily initialised 4D array is magnitudes faster than hashmaps, but at some point you don't need to care about such petty performance concerns

torn shuttle
#

and then they wept, for despite all of their optimization efforts the next minecraft patch made chunk loading 10x slower

quiet ice
#

As long as you prevent (auto-)boxing, performance will go brrr

wet breach
quiet ice
#

Hopefully valhalla improves the performance of that

rustic pewter
#

hi, I am getting this error when starting my plugin. it is pretty much empty with only a event listener and the on enable and disable. can someone help me? https://pastebin.com/Mz5u1inB

quiet ice
quiet ice
#

You have a new MyPluginClass() somewhere

#

Probably at NoNames.java, line 5

rustic pewter
quiet ice
#

Oh no, I means NoNames.java, line 10 heh

rustic pewter
#

correct

quiet ice
#

You should only have 1 class that extends JavaPlugin, which is NoNames in your case

#

Your Listener class should not extend JavaPlugin

rustic pewter
#

oh, but then my other class wouldnt work. It would not suggest anything

quiet ice
#

Use the plugin's logger

#

You may need to pass it through the constructor beforehand for this

wet breach
rustic pewter
wet breach
#

?di

undone axleBOT
rustic pewter
#

thanks

blazing rune
#

So I'm trying to increase an integer's value which is in the config.yml

            plugin.getConfig().set("Darkcoins." + e.getPlayer().getName() + ".darkcoins", AddUp);
            plugin.saveConfig();```

The int's value is 1000 and I plusedit by 500. I did that but it still remains 1000, anyone here can help me?
#

Bru my english sucks

quiet ice
#
  1. Generally I would not store any savegame data as a yaml file
  2. Naming conventions reeeeeeeeee
  3. Do not store anything based on the playername
  4. You get and store with different keys
blazing rune
#

int AddUp = plugin.getConfig().getInt("Darkcoins." + e.getPlayer().getName()) + 500;?

#

Ym this?

#

😬

#

Ouch

#

Ok

torn shuttle
#

camelCase but yeah

blazing rune
#

I'm gonna just switch the e.getPlayer.getName to Uuid

harsh totem
#

I want to use a json file in my plugin and idk how to set it up. Ik how to make the json file but idk how to make my plugin read the file and edit it

#

can anyone help?

#
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.9.0</version>
            <scope>compile</scope>
        </dependency>```
I put it in the pom.xml file and it says `Dependency 'com.google.code.gson:gson:2.9.0' not found `
stray flare
#

Noobie question..

How do I add a Vector to an Entity 'Item'?

wet breach
#

look at your set method and your get method, the paths where you getting and setting are different thus when you load up the value, it was never modified in config thus always 1000

granite burrow
#

what's the best way to convert world ticks to a normal hh:mm time?
I've looked it up and will continue to do so but if yall have any ideas let me know

wet breach
#

20 ticks = 1 second

#

1 tick = 50ms

#

so the ideal way is turn the ticks into however many second, then however minutes

#

then you just keep going until no more remainders πŸ™‚

stray flare
opal juniper
#

that is more than one line

stray flare
#

my bad

#

edited

opal juniper
#

well a vector is never gonna be the same as 1.0

quiet ice
#

What exactly do you want to compare there?

stray flare
#

whenever item fall into endportal it will bounce back

quiet ice
#

What exactly must be 1.0 with the vector?

#

Also, bukkit or java or java incubator vector?

wet breach
#

1.0 either needs to have a d or a f at the end so java knows which it is.

opal juniper
quiet ice
#

Well, 1.0 is a floating point number, spread is a vector - so something is wrong there

#

But good point (though for 1.0 there is no difference between floats or doubles iirc)

#

By default it is a double either way

wet breach
#

also I don't see where spread is specified of its type

earnest forum
#

vector

wet breach
#

I just assume it is of some numerical value lol

earnest forum
#

top of the class

quiet ice
#

public Vector spread;

wet breach
#

ah jumbled in there

quiet ice
#

Yeah, unusual class layout, but what can one do

wet breach
#

yeah vector and float or double are not going to compare πŸ˜›

quiet ice
#

Now the question is what the person wanted to actually compare

wet breach
#

well if velocity accepts a double

#

they probably wanted that

quiet ice
#

Oh I think what they wanted to do

opal juniper
#

i imagine its |spread| they were after

quiet ice
#

@stray flare just get rid of the if statement, it is useless

stray flare
#

of this if (this.spread == 2.0) {?

quiet ice
#

No, just get rid of it

#

Or make it if (true) if you need to have one

#

What you have here is a useless optimisation technique

torn shuttle
#

god I hate web dev

quiet ice
#

The other question is why would you need to multiply the items velocity if it is going to be 0 most of the cases

#

Oh, dropNaturally might add some velocity at the start.

#

?jd-s let's see what the javadocs tell us

undone axleBOT
torn shuttle
#

it does

quiet ice
#

Well it is unspecified

torn shuttle
#

iirc there is some pop to items, I have done some work with it before

#

though I usually just apply my own vector

#

which imo should also be done here but whatever

torn shuttle
#

oh wait this is the function method not the event?

#

function lol, I've been doing js for too long

#

yeah never mind then

static hollow
#

Why.

shops:
  shop1:
    owner: eeced9a1-0f41-483b-870f-c826a0462d59
    id: 1

Code:

public static void createShop(Player p)
{
    Shop shop = new Shop(p.getUniqueId(), shops.size() + 1);
    shops.add(shop);

    if (!shopsFile.exists())
    {
        Main.instance.saveResource("shops.yml", false);
    }

    if (!shopsConfig.isSet("shops"))
    {
        List<String> shopList = new ArrayList<>();
        shopList.add("shop" + shop.id);

        shopsConfig.set("shops", shopList);
    }

    shopsConfig.set("shops.shop" + shop.id + ".owner", shop.owner.toString());
    shopsConfig.set("shops.shop" + shop.id + ".id", shop.id);

    saveConfig();
    p.sendMessage(shopsConfig.getStringList("shops").toString());
}
quiet ice
#

why what

static hollow
#

it sends me empty list, just []

quiet ice
#

What else did you expect?

static hollow
#

what? this is the list

shops:
  shop1:
    owner: eeced9a1-0f41-483b-870f-c826a0462d59
    id: 1
#

its not empty

quiet ice
#

But are the members strings?

#

You want a StringList, and it gave a String list - which is empty ofc because there are no strings

static hollow
#

oh. hmmm

quiet ice
#

And that is a map, not a list

harsh totem
#

so I got this error: java.io.FileNotFoundException: C:\Users\PC\Downloads\GlobalMute Plugin\src\main\java\com\ytg667\minecraft\isMuted.json (No such file or directory)
from this command: @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader("C:\\Users\\PC\\Downloads\\GlobalMute Plugin\\src\\main\\java\\com\\ytg667\\minecraft\\isMuted.json")); JSONObject jsonObject = (JSONObject)obj; boolean isMuted = (Boolean)jsonObject.get("isMuted"); if (sender instanceof ConsoleCommandSender || sender.isOp()){ if (isMuted){ jsonObject.put("isMuted", false); sender.sendMessage(ChatColor.GREEN + "The chat is now unmuted!"); } else { jsonObject.put("isMuted", true); sender.sendMessage(ChatColor.GREEN + "The chat is now muted!"); } } } catch (Exception e){ e.printStackTrace(); } return true; }
Idk what's wrong here

static hollow
#

ok, thx

quiet ice
quiet ice
#

C) What the hell are you trying to achieve here

harsh totem
quiet ice
#

Let me guess, it should apply cross-server?

#

I.e. system-wide

harsh totem
#

I don't understand

quiet ice
#

The issue you have here is that this won't work if the file is not present (so on 100% of other computers)

#

You need to somehow dehardcode the file location

#

One way is to have it be done relative to the plugin dir, which is the most popular approach

tardy delta
static hollow
quiet ice
#

I still prefer my org.json:json, albeit this is less

quiet ice
#

You need to create the list manually

static hollow
#

no, how to edit code to make it create list

harsh totem
quiet ice
#

Unless ofc you are doing something cursed such as

shops:
    shop1: "owner:eeced9a1-0f41-483b-870f-c826a0462d59,id: 1"
quiet ice
tardy delta
#

yaml.set("shops", shoplist)

quiet ice
tardy delta
#

:o

quiet ice
#

?jd-s

undone axleBOT
harsh totem
#

the plugin is in downloads

quiet ice
#

Which will not be available in production

harsh totem
#

so I should do getDataFolder("C:\\Users\\PC\\Downloads\\GlobalMute Plugin\\src\\main\\java\\com\\ytg667\\minecraft\\isMuted.json")?

quiet ice
#

...

#

I have lost hope in humanity

harsh totem
#

I don't understand what you told me. why does that make me an idiot?

tardy delta
#

he is telling that you should save the files that your plugin needs in the resources folder of your plugin

quiet ice
#

Make sure to create the file however

tardy delta
#

are you usin intellij?

static hollow
tardy delta
static hollow
#

(original)

quiet ice
static hollow
#

but how to get all this shops?

quiet ice
# tardy delta heh what

I know that using the resource folder is going to loop back to the same issue we have right now - the best would be to simply delete that file and create it programatically as that will force the user to not hardcode that file location

tardy delta
#

ah wait the file is global

quiet ice
latent pelican
#

I want to define a command creating a maze. How can I write the source code so that it will open an mcfunction with the maze data?

quiet ice
#

What exactly do you mean with mcfunction?

#

If you just want to create an alias for another command, see the commands.yml

#

No need to write a plugin in that case

latent pelican
#

Well in vanilla you use mcfunctions to load certain objects

#

On my spigot server I am also able to call the maze with /function test:mytest

chrome beacon
#

I told you this yesterday; Rewrite the mcfunction to Java. Running them from a plugin isn't ideal

latent pelican
#

But I want to create a customizable command

wet breach
#

you can create a customizable command with Java

#

it seems however you don't know java

#

?learnjava

undone axleBOT
granite owl
#

any way to cancel the furnace smelting event from the FurnaceSmeltStartEvent event?

quaint mantle
#

can u control when tnt explodes

granite owl
#

u can change that value obv

quaint mantle
#

TNTPrimed tnt = player.getWorld().spawnEntity(player.getLocation().add(0.5, 0, 0.5), EntityType.PRIMED_TNT);

#

doesnt like this

eternal night
#

use the spawn method instead of spawnEntity

quaint mantle
#

ty

eternal night
#

spawn takes a Class<T extends Entity> instead of EntityType

quaint mantle
#
        TNTPrimed tnt = player.getWorld().spawn(player.getLocation().add(0.5, 0, 0.5), TNTPrimed.class);
#

i assume

eternal night
#

Yea

granite owl
#

its not implementing the cancellable interface

#

but id be a waste to let the counter run pointlessly if i wanna cancel it anyway

#

only the FurnaceSmeltEvent is implenting the cancellable interface tho

#

well apparently setting the totalcooktime to 0 sets it to infinite

#

which suffices combined with cancelling the furnace burn event

pastel juniper
#

e.getClickedInventory().getTitle().

#

I want sth to replace getTitle()

eternal night
#

the title is only available through the view

#

e.getView().getTitle()

chrome beacon
#

Make sure you're not using the title to detect your inventory

mighty pier
#

if (timer.getOrDefault(p.getUniqueId(), 0) <= rn) return true; how do i make the default value a long?

#

nvm

granite owl
#

how to get a furnace blocks inventory instance reference?

pastel juniper
quaint mantle
granite owl
#

yea but like

#

the api doesnt seem to give the option to get the inventory list that belongs to a block

#

i have a block instance

#

like this

#
    @EventHandler
    public void onFurnaceBurn(FurnaceBurnEvent event)
    {
        Bukkit.broadcastMessage("FurnaceBurnEvent:");
        Bukkit.broadcastMessage("Block: " + event.getBlock().getType().toString());
        Bukkit.broadcastMessage("Fuel: " + event.getFuel().getType().toString());
        
        if (event.getBlock() instanceof Furnace)
        {
            Furnace furnace = (Furnace) event.getBlock();
            
            //...
        }
    }
visual tide
#

cant you get that from a Furnace object

wet breach
#

furnace.getInventory()

granite owl
wet breach
#

o.O

visual tide
#

what version u on

wet breach
granite owl
#

1.18.2

#

the auto completer suggests a typecast to HumanEntity when i do .getInventory();

wet breach
#

not sure what you mean isn't supported in the api

midnight shore
granite owl
wet breach
granite owl
#

but the wrapper wont persist beyond /reloads

torn shuttle
wet breach
#

you shouldn't use titles to detect different inventories

torn shuttle
#

I did that mistake for a looong while

delicate lynx
#

holders are not the way to go

wet breach
#

main reason for this is because someone can spoof inventory packets with arbitrary titles and gain access to inventories they are not supposed to

granite owl
#

@wet breach public abstract interface org.bukkit.block.data.type.Furnace extends org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable {
} thats what i import

#

this has no .getInventory() member under the 1.18.2 api

#

maybe im using the wrong class?

wet breach
#

I linked you the javadocs of the api

#

it definitely is there

torn shuttle
#

wrong furnace

granite owl
#

org.bukkit.block.data.type.Furnace

#

sec

wet breach
#

org.bukkit.block.Furnace

torn shuttle
#

stop putting data in it

granite owl
#

ya wrong interface

#

got the right one now ty xD

torn shuttle
#

new package who this

granite owl
#

hm?

#

apparently i cant cancel the FurnaceStartSmeltEvent event, so i set its smelting time to 0 which seems to equal infinity

#

by its behavior ingame*

#

at least my test item is in there for 10min without result xD

#

which defaults to 10s smelting time

granite owl
#

the event thats fired at a finished process

#

i wanna cancel it at the beginning though

#

which is the Furnace Start Smelting Event

#

which is not implementing the cancellable interface

#

so i set the smelting time to infinity instead and cancel the fuel consumption event

#

as a workaround

torn shuttle
#

would I be in trouble if I made my webapp load chug jug with you with a 0.1% chance?

wet breach
#

and then you can cancel it

#

and it reverses what happened

torn shuttle
#

this is too funny not to do, I'm adding it

#

yep works great

minor garnet
#

some know how i can calculate the diference like that?

torn shuttle
#

wdym

tardy delta
#

store it

#

and compare the newer result with an older

minor garnet
#

the way i can calculate the difference between two times and return numbers similar to this

torn shuttle
#

then what fourteen said

minor garnet
#

i tried using dtstem.currenttimeinmilis and nanotime but it doesn't return me deckmore number

quiet ice
#

what

tardy delta
#

what are yo even doing

minor garnet
#

(System.currentTimeMillis() - lastClickTime)

#

return me 302394982093 like that

#

i want 0.230934 decimal number

tardy delta
#

thats the difference in milliseconds

torn shuttle
#

that's just for how long of an interval since the last click though

#

not how many clicks per second

quiet ice
#

Init) Assign start time to variable, reset counter variable
Action) Increment counter variable
Polling) Divide counter var with the different between start time and now

torn shuttle
#

if you want clicks per second you'll have to measure a second

kind hatch
#

Which 1 second is 1000 milliseconds.

quiet ice
#

You have to define a start and end window

torn shuttle
#

maybe he's on to something

minor garnet
#

I am doing this because I need to receive exact numbers just like that image to be able to create an if

minor garnet
#

i just want the diference

quiet ice
#

Do you have a time window (i.e. do you have a start and end frame)?

#

If so, what is it

quiet ice
#

Is the start frame a constant or is it relative to the end frame (e.g. 5 seconds before the end frame)?

quiet ice
quiet ice
#

No to what?

minor garnet
#

let me send a log

quiet ice
#

Logs are useless

#

Give me information, but not logs

#

Code is also good

minor garnet
#
private long lastClick;

    public void click() {
        lastClickTime = System.currentTimeMillis();
        processedClick = false;
    }

    public void update(final float delta) { 
        elapsedTime += delta;
        
    //    final long clickDiference = (System.currentTimeMillis() - lastClickTime);
    //    plugin.sendMessage("Tempo de clique: " + clickDiference);```
tardy delta
#

uhhh

kind hatch
#

Just subtract the last returned value from the current one and then convert it to what you need.

tardy delta
#

take a look at TimeUnit

kind hatch
#

You already have something working here, just convert it.

quiet ice
#

Okay, but still, what is your duration?

#

E.g. is it counting from startup to now?

minor garnet
quiet ice
#

Another example is 5 seconds ago to now

quaint mantle
#

is there a way to ignore hitboxes, i.e have tnt on a players head and still let them hit other players

minor garnet
quiet ice
#

Let me bring out mspaint

torn shuttle
#

oh no he's minting a new nft

quiet ice
#

Please have some patience

minor garnet
#

xd

torn shuttle
#

hey vinny you speak portuguese?

minor garnet
torn shuttle
#

this is a great shame

minor garnet
minor garnet
kind hatch
#

TimeUnit.MILLISECONDS.toSeconds()

ivory flume
#

does anyone know how I can change the player list

#

i want my bungeecord server to have all the players on there visable in all server/worlds

#

though i dont see how to change the list itself

quiet ice
torn shuttle
#

oh boy I don't think that's going to help him

minor garnet
#

nice draw

quiet ice
#

Your time window will be a deque

#

You add actions (which is a record(long time)) at one end, and remove them at the other once they go into the discarded space

#

Then you count the size of the dequeue and divide it with the duration of the time window

torn shuttle
#

two can play this game

quaint mantle
#

how 2 put something on head without hitbox

#

pl0x help

quiet ice
#

This wont work in their case

minor garnet
#

umadre

torn shuttle
#

he just wants to know the time elapsed since the last click

quiet ice
#

They already have that however...

minor garnet
torn shuttle
#

they failed to do that right

quiet ice
#

Just divide 1 by the duration then

minor garnet
quiet ice
#

OKAY FUCK EVERYONE IM OUT

minor garnet
torn shuttle
kind hatch
torn shuttle
#

boy you can go for millions of nfts with that

#

what a great idea

#

jesus bitcoin lost a lot of value, I better convert that to dollars as soon as the bidding is over

#

from 66k to 29k in about 6 months

#

yeah it's not looking so hot

quiet ice
torn shuttle
#

also that scale is hilarious, how can you even get away with making a graph like that

#

the values aren't linear

#

it's a weird way to show that something lost over 50% of its value

#

when it occupies, what, 15% of the graph?

#

yet

#

hard to panic when you never bought it

#

only time I seriously considered it was in feburary of this year, thinking about putting 5 or 10k into it

#

do think I dodged a bullet there lol

#

it doesn't bother me, I find it hilarious

wet breach
#

I doubt btc is going to drop to 0

#

and even if it does, it has a long ways to go still before that happens

#

the worse thing you can do is pull money out of investments prematurely especially when the market is declining

granite owl
#

why doesnt the furnace implement the interface Lightable?

#

xD

quiet ice
granite owl
#

well

quiet ice
#

Yeah

#

I am a dumbo

#

?jd-s

undone axleBOT
granite owl
#

the interface Lightable says its subinterface is Furnace

#

All Known Subinterfaces:
Furnace, RedstoneWallTorch

#

or has the api changed

#

since i see its 1.13

quiet ice
#

And what doesn't make sense there?

granite owl
quiet ice
#

A lightable is something that emits light and can be turned off and on. A furnace can be turned off and on

granite owl
#

Package org.bukkit.block
Interface Furnace
All Superinterfaces:
BlockInventoryHolder, BlockState, Container, InventoryHolder, Lockable, Metadatable, Nameable, PersistentDataHolder, TileState

torn shuttle
#

actually you know what, what was said earlier is demonstrably false, this is the worst crash, just look at a linear graph. Percentage-wise the only one that comes close is that first peak when it went from 12k to 6k, but now it went frrom 67k to 29k which is the biggest drop numerically and pretty much the same %-wise as the other peak

quiet ice
granite owl
#

yea

#

and furnace

#

has no Lightable superinterface

#

why

quiet ice
#

One is block state, the other block data

granite owl
#

mhm and what is lightable part of then

#

block data?

quiet ice
#

yes

granite owl
#

so i gotta get the block data and set the islit value there

#

which i cant because it doesnt contain it arg

quiet ice
#

It is possible that you cannot set the lit value for a furnace

granite owl
#

im cancelling the FurnaceBurnEvent and under the circucumstance that theres still fuel in it, it will emit light indefinetly and for free @quiet ice

#

so i obviously wanna disable it

quiet ice
#

You could set the burn time to 0

#

Or 1 idk

granite owl
#

because im cancelling it

#

the problem is

#

that the event is being canceled

torn shuttle
#

it's up to you how you want to read it but I'm looking at the larger trends and the current downward trend started on 11/8/21

granite owl
#

so it doesnt update

quiet ice
#

The furnace's burn time

#

not the items or whatever

granite owl
#

iknow

#

but setting that has no effect

#

because cancelling the event prevents the block from being updated

#

already tried that

quiet ice
granite owl
#

uh

#

like ive said

#

i already tried setting the burntime to 0

#

didnt work

#

emits light indefinetly

quiet ice
#

I doubt that

#

Unless something else is going on

granite owl
#

okay im going to try it again, confirm the error and then send the source code here

quiet ice
#

Oh, you need to set it to -1

#

We should read the fine print more closely huh

#

@granite owl

#

A burn time of 0 is undefined apparently

granite owl
#

xD

granite owl
#

set it to 0

#

setting smelting time to infinity

quiet ice
#

Cooking and burn time are independent from what I know

granite owl
#
@EventHandler
    public void onFurnaceBurn(FurnaceBurnEvent event)
    {
        if (event.getBlock().getState() instanceof Furnace)
        {
            Furnace furnace = (Furnace)event.getBlock().getState();
            FurnaceInventory inv = furnace.getInventory();
            ItemStack is = inv.getSmelting();
            
            if (is != null)
            {
                if (is.getType() == Material.EMERALD)
                {
                    ItemWrapper item = new ItemWrapper(is);
                    
                    if (!item.isCustomItem())
                    {
                        if (inv.getViewers().size() > 0)
                        {
                            inv.getViewers().get(0).getInventory().addItem(is);
                        }
                        else
                        {
                            furnace.getWorld().dropItemNaturally(furnace.getLocation(), is);
                        }
                        
                        inv.setSmelting(new ItemStack(Material.AIR, 1));
                        event.setCancelled(true);
                        furnace.setBurnTime((short) -1);
                        
                        
                        Bukkit.broadcastMessage("FurnaceBurnEvent: CANCELLED");
                    }
                }
            }
        }
    }
#

thats what i use now

#

itemwrapper just checks if it has a PDC value

#

to seperate vanilla emeralds from custom items

#

so lets see

#

cause im creating custom items

#

and use emeralds as base item

#

im writing base code to seperate the behavior

#

@quiet ice the furnace keeps burning

#

indefinitly

#

being lit*

tardy delta
#

i guess early return exist for a reason x)

quiet ice
#

all interactive containers are cursed and utter pain

granite owl
#

so

#

how do i end the lit state now

#

xD

hybrid spoke
#

{
ew
}

quiet ice
#

If it works under paper - then that is great you can ignore spigot. Otherwise not so good but I doubt anyone can help you there

granite owl
#

im using spigot

quiet ice
#

Spigot has a bunch of bugs

granite owl
#

paper is a spigot fork

hybrid spoke
#

thats the purpose of a fork

quiet ice
#

Yes, and paper has less bugs and more predicable behaviour

granite owl
#

i mean dont get me wrong, technically everything is working just fine xD no illegal items can be smelted, its not resource heavy and just works

tepid ore
#

Is there an easy way to check whether or not a block is emitting light?

granite owl
#

the only thing bugging me is cosmetical

quiet ice
#

One plugin of mine works meh under paper but under spigot it is borderline unusuable due to spigot have cursed behaviour

granite owl
#

the lit state has 0 effect on technical behavior

hybrid spoke
#

bukkit >>

random plank
#

E hola

granite owl
#

and with the next proper smelting it updates itself

#

and it also only happens when u smelt a legal item and then swap it for an illegal one

#

xD

#

while having fuel

quiet ice
#

I think the best you can do is to file a bug report or something, but it wont go far considering that this is something that happens deep in nms territory

#

Oh

#

You never update the block state

granite owl
#

furnace.update() did super weird behavior based on my code spawning lots of emerald s

#

or wdym

quiet ice
#

huh

granite owl
#

so

quiet ice
#

furnace.setBurnTime((short) -1);
will not have an effect until you call
furnace.update()

granite owl
#

like this u say?

#
furnace.setBurnTime((short) -1);
                        furnace.getBlock().getState().update();
quiet ice
#

Oh, you must remove is too probably, but idk

quiet ice
granite owl
#

sec lemme test

#

furnace.update() makes the furnace fire the cancel event indefinitly

#

prob because of my code before the update call

#

i suppose update() is a callback that checks for the current state and needs and thus its requesting indefinite times the use fuel event

#

which i cancel

quiet ice
#

I'd remove the smelting input if needed

granite owl
#

and make another update call to

opal juniper
granite owl
#

yea

#

@quiet ice the problem is that i cancel the fuel consumption event and make an update call

#

which then calls the fuel consumption event

#

so i cant update the block from within an update callback ofc

quiet ice
#

I guess you want to prevent the ability to smelt items?

granite owl
#

yea and thats working

#

its just not disabling the lit state

quiet ice
#

In that case, why not listen for the hopper events and inventory click events?

granite owl
#

because i wanna make it look like the recipe doesnt exist

#

im using a dummy recipe

#

and use the events to set results

#
//Furnace Recipe for Custom Items
        Bukkit.addRecipe(new FurnaceRecipe(new NamespacedKey(plugin, "recipe_furnace"), new ItemStack(Material.EMERALD, 1), Material.EMERALD, 1, 200));
        Bukkit.addRecipe(new BlastingRecipe(new NamespacedKey(plugin, "recipe_blastfurnace"), new ItemStack(Material.EMERALD, 1), Material.EMERALD, 1, 100));
quiet ice
#

I did wonder how you could smelt emeralds

granite owl
#

xD

#

thats the easy part

wet breach
granite owl
#

hm

#

im prob just going to ignore the lit thing tbh

#

its only cosmetics

#

and tbh

quiet ice
#

Probably the easiest option really considering that it is the only thing not working

granite owl
#

if they wanna "cheat" infinite light sources

#

id prob rather go with torches xD

wet breach
#

literally its like 1 option change in a packet

#

to tell the client its state is not lit

#

XD

granite owl
#

yea but then i need to tell every client for every furnace

#

whenever they log in

wet breach
#

sure? You just re-use the code you have for the packet

#

send it everytime

quiet ice
#

I think you can do it with data watchers, but idk

granite owl
#

tbh like ive said

#

its not usable for anything than cheated light sources

#

and yea...

#

we know how efficient a furnace is xD

golden kelp
#

how can I make certain area around a player glow. I am using a Armor stand (invisible) and trying to make it glow but it just doesnt

granite owl
quiet ice
#

I know

golden kelp
#

grenade recipe

quiet ice
#

Just not in vanilla

#

Or better said, in vanilla you cannot use everything

granite owl
#

mhm u need a dummy item because even tho u can create new items server sided via nms

#

and fool the client

#

the bukkit api doesnt support it

#

so unless u write everything in nms u need to use an existing material as dummy

#

and the emerald has one of the least usages

golden kelp
#

can you spawn fake light sources?

#

like I got 7 light sources, id like to spawn them

#

but invisble

#

so they light the area around a player

summer scroll
#

For some reason my list isn't being loop even tho I already loop it, I honestly have no clue about this, this is so weird.
Output: https://paste.md-5.net/osifiponog.cs

List<String> materialList = new ArrayList<>();
if (config.getString("material") == null) {
  materialList.addAll(config.getStringList("material"));
} else {
  materialList.add(config.getString("material"));
}

for (String name : materialList) {
  System.out.println(name.toUpperCase());
}
golden kelp
#

are you sure materialList is not empty

#

try printing its size

summer scroll
#

it got printed, but the output is a list

tardy delta
#

getString("material") vs getStringList("material") :/

#

can you different values with the same key?

timber crescent
#

is it possible tomake my server not respond at all to a certain protocol?

summer scroll
summer scroll
tardy delta
#

why are you getting material as a string first and then as a stringlist?

summer scroll
#

it can be both

#
material: netherite_sword
material:
  - "netherite_sword"
  - "diamond_sword"
``` it can be like this
mighty pier
#

how can i add a , before the last character in a string?

tardy delta
#

substring stuff

summer scroll
#

It's like the value is [NETHERITE_SWORD, DIAMOND_SWORD, IRON_SWORD, GOLDEN_SWORD, STONE_SWORD, WOODEN_SWORD] even though I use Collection#addAll

tardy delta
#

wait wha is the problem that its printing like that instead of under e/o?

summer scroll
#

Yes, it's printing like that.

#

it should be like this, not like https://paste.md-5.net/osifiponog.cs

[ItemSkins] Loading 'doomhammer.yml' skins (from 'skins' directory)
NETHERITE_SWORD
DIAMOND_SWORD
IRON_SWORD
GOLDEN_SWORD
STONE_SWORD
WOODEN_SWORD
tardy delta
#

i would print the size

#

to check

summer scroll
#

alright, i'll try it.

#

yup, size 1

#

lmao

#
[ItemSkins] Loading 'doomhammer.yml' skins (from 'skins' directory)
Size:1
[NETHERITE_SWORD, DIAMOND_SWORD, IRON_SWORD, GOLDEN_SWORD, STONE_SWORD, WOODEN_SWORD]
tardy delta
#

so that whole thing is 1 element

#

thats what i was thinking

summer scroll
#

yeah for some reason

#

do you see something wrong with my code?

tardy delta
#

try replacing materialList.addAll(config.getStringList("material"));
with config.getStringList("material").forEach(materialList::add)

#

hmm i guess its taking the whole thing as a string instead of a list

#

add sysouts

tardy delta
#

did you add sysouts to see what it does?

#

if its getting it as a list or as a string

summer scroll
#

ah

#

i think

#

config.getString("material") is not null, even tho I have it as a List on the config

tardy delta
#

i think its never null

summer scroll
#

yeah i was right

#

i changed it to config.isList() and it worked

humble tulip
#

You only get the stringlist if it's null?

#

Oh you solved

summer scroll
#

yeah it's solved xd

tardy delta
#

im using this to initialize a datasource in a connectionfactory class based on the type of storage, does it look good or is there a better way?

golden kelp
#

can anyone help me out with LightAPI i am having issues importing it with maven for 1.15.2

tardy delta
#

did yu add the dependency?

#

and repo probably too

kindred valley
#

?paste

undone axleBOT
golden kelp
#
Cannot resolve authentication failed for https://jitpack.io/com/github/BeYkeRYkt/lightapi-bukkit-common/5.1.0/lightapi-bukkit-common-5.1.0.pom, status: 401 Unauthorized
kindred valley
quaint mantle
#

Anyone know why this doesn't work?

            Bukkit.broadcastMessage(ColorText.translateAmpersand("&eβ€’&cβ€’aβ€’ " + player.getDisplayName() + "&fjoined the lobby&7! &eβ€’&cβ€’aβ€’"));
        }```
eternal night
#

oh god

golden kelp
#

Jesus sanitize this code

eternal night
#

Also using the name to identify roles ??

quaint mantle
#

Yes because I have a disguise system, if I use permission it won't be nice

tardy delta
#

satan take this child

#

πŸ”₯

golden kelp
#

btw, why does jitpack say 401

#

when importing light api

rich inlet
#

How is this achievable in spigot, that it displays what you should input into that arg (here: [<target>])? Because it is not a tab complete
https://imgur.com/i3MI5ja

golden kelp
#

I know what it means, but whytf is it saying 401 for a public repo

tardy delta
#

chrome eating my ram rn

golden kelp
#

sadge

#

use brave

tardy delta
#

give my 1.5 gigs back pls

vestal dome
#

help

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!

vestal dome
#

this code does not WORKKK

tardy delta
#

uhm and what are you doing

vestal dome
#

modding BungeeCord to disable JLine

golden kelp
#

can someone show me an example of a pom for light api. I am very confused

vestal dome
#

like the -nojline you can add in spigot

tardy delta
#

whats Jline btw

vestal dome
#

this beautiful prompt, that's what JLine is.

golden kelp
vestal dome
#

what about my problem 😒

harsh totem
harsh totem
golden kelp
#

your config files and stuff

kindred valley
#

has been compiled by a more recent version of the Java Runtimeim getting this but everything matches normal i dont know why

harsh totem
#

I don't have any, I just opened a new project to learn how to use json to store data

golden kelp
#

and what are you trying to run

vestal dome
harsh totem
#

I have this command: ``` @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("C:\Users\PC\Downloads\GlobalMute Plugin\src\main\java\com\ytg667\minecraft\isMuted.json"));
JSONObject jsonObject = (JSONObject)obj;
boolean isMuted = (Boolean)jsonObject.get("isMuted");
if (sender instanceof ConsoleCommandSender || sender.isOp()){
if (isMuted){
jsonObject.put("isMuted", false);
sender.sendMessage(ChatColor.GREEN + "The chat is now unmuted!");
} else {
jsonObject.put("isMuted", true);
sender.sendMessage(ChatColor.GREEN + "The chat is now muted!");
}
}
} catch (Exception e){
e.printStackTrace();
}

    return true;
}```

and it doesn't work. the console says java.io.FileNotFoundException: C:\Users\PC\Downloads\GlobalMute Plugin\src\main\java\com\ytg667\minecraft\isMuted.json (No such file or directory)

#

idk why

#

somebody answered me before but i didn't understand him and he said that he lost hope in humanity

vestal dome
#

bruh

kindred valley
harsh totem
#

what does that mean

daring maple
vestal dome
#

the parser variable

#

just create it

#

and store it

#

why are you creating it every single time that code runs?

kindred valley
golden kelp
#

like is this a jar?

harsh totem
kindred valley
golden kelp
#

okay

#

show pom

kindred valley
golden kelp
#

do java --version

kindred valley
#

yes

golden kelp
#

and send ss or copy the output

kindred valley
#

15.0.2

#

java version "15.0.2" 2021-01-19 Java(TM) SE Runtime Environment (build 15.0.2+7-27) Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)

golden kelp
#

yea see thats the issue

kindred valley
#

what

golden kelp
#

u tell maven that u are using 16

#

but u have 15

kindred valley
#

where

golden kelp
#

in your pom

vestal dome
#

on compiling you have 16

#

on runtime you have 15

kindred valley
#

ah i pasted the wrong one sorry

golden kelp
kindred valley
#

?paste

undone axleBOT
kindred valley
#

here is the new one

#

i have this momently

torn shuttle
#

guys I think a miracle happened today

#

I think we should make today a holiday

#

I hope you're sitting down for this one

golden kelp
#

i am

torn shuttle
#

I told someone not to use the reviews section as a support room and they actually removed the review

harsh totem
# vestal dome why are you creating it every single time that code runs?

I changed my main file to this, is that what you wanted?

    public JSONParser parser;
    {
        parser = new JSONParser();
    }

    @Override
    public void onEnable() {
        // Plugin startup logic
        this.getCommand("globalMute").setExecutor(new globalMute());
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}```
torn shuttle
#

I damn near passed out typing that it was so powerful

golden kelp
#

we found the new "1000000 iq guy"

vestal dome
#

actually

vestal dome
#

and then use that instance

#

and about the file exception