#help-development

1 messages · Page 1843 of 1

mighty sparrow
#

Bedrock will never be compatible with java plain vanilla because of the EULA

#

Mojang would already have done it

#

EULA is only applicable to java servers am I right

quaint mantle
#

geyser

#

geyser op man

#

tho i dont use geyser

wet breach
mighty sparrow
#

Yes thats why I said plain vanilla

wet breach
#

Bedrock and PC version are both created by Mojang o.O

mighty sparrow
#

Yes I know

wet breach
#

Then not entirely sure how the EULA prevents them being compatible with each other

mighty sparrow
#

Bedrock has different rules

#

Bedrock has a market and everything

wet breach
#

Sure, but do any of the rules from bedrock conflict with the pc version?

mighty sparrow
#

Multiplayer side yes

wet breach
#

which rule specifically?

mighty sparrow
#

My poor english is so bad tonight

#

I have no words coming out

#

Only in french

wet breach
#

I mean PC version EULA doesn't really require much of anything

#

therefore, I don't see what the EULA in the bedrock would have that would conflict with the PC verison?

mighty sparrow
#

Owners of bedrock servers may require payments from players. Which would conflict with java. And vice versa. Java players would be at a disadvantage compared to bedrock players

wet breach
#

EULA does not prevent that

mighty sparrow
#

I dont remember at 100% its 3am im dead inside

#

My brain is refusing to think

wet breach
#

what I mean is, a server owner can charge money for you to enter said server

#

so as long as it equally applies to everyone

#

so my point about the two EULA's is that the PC version isn't very restrictive

#

where as the bedrock one might be

#

which is ok, because as long as both are not super restrictive then its easier to comply with both 🙂

candid galleon
#

Bedrock sucks

#

It’s only a matter of time for Greedysoft to implement some form of in game currency for Java

mighty sparrow
#

There is already one in it lol

candid galleon
#

DLC Minecraft

#

Want superflat world? DLC
Biomes? DLC
Villager skins? DLC
Bonus chest? DLC

mighty sparrow
#

Jeb the chad: works on java

Microsoft: copy his work in cpp and put every single item unlockable via micro transaction

candid galleon
#

it’s only a matter of time

#

take my word

wet breach
#

not sure how it would work in Java

#

without it being circumvented?

#

just because it is in the game, doesn't mean you can't remove it from the game. Mojang doesn't run the servers except for realms which is where most of their EULA applies XD

mighty sparrow
#

Curseforge bought by microsoft and implemented in the game client.

#

Would be funny

wet breach
#

its like saying you can't accept crypto as payment because we said so, even if the local government allows it

#

if Mojang controlled all the servers that are running it would be a different story

#

but unfortunately nothing says you can't remove something from the game XD

mighty sparrow
#

Frl it would be a good idea by Microsoft to buy forge

kind hatch
#

Microsoft has been pretty hands off when it comes to the Java Edition. Really glad they haven’t destroyed it, but I am of the belief that they will make a move eventually.

wet breach
#

literally the community controls the Java edition

mighty sparrow
#

Thats why they do their own pc version

wet breach
#

if they do something the community doesn't like the community will just continue with their own versions

#

like it is now

mighty sparrow
#

The java community is conservative

#

And the bedrock one is more open to change

#

Idk

wet breach
#

also, keep in mind that while Mojang can change the EULA, EULA changes are not retroactive

kind hatch
#

The bedrock edition is managed more tightly. It’s not that they are open to change, but they are being forced to change.

Massive paradigm difference between the editions.

wet breach
#

so because the EULA changes are not retroactive, this is what allows the Java edition players to continue on if they don't like something 😛

waxen plinth
#

Java community has been very welcoming of major changes through the updates

#

But the java edition always had the freedom and flexibility

wet breach
#

yep

waxen plinth
#

Bedrock edition didn't

#

Trying to remove flexibility from something will generate more backlash than releasing a new thing with less flexibility

mighty sparrow
#

Import the bedrock marketplace into java i dont think it will be well appreciated

wet breach
#

or doable

mighty sparrow
#

Everything has been free since the beginning

wet breach
#

have to keep in mind Java as a language was never designed to be difficult to reverse engineer or anything

waxen plinth
#

Bedrock is real bad compared to java

wet breach
#

this is mainly what allowed projects like bukkit and spigot to exist to allow plugins for minecraft servers

kind hatch
mighty sparrow
#

Same

wet breach
#

I would be fine if Mojang charged a small license fee for servers

#

if they did this, they could just allow the server owners to do just about what they want. And we could have a marketplace where people can sell their stuff

mighty sparrow
#

If it can incite people into creating content

#

Its good

#

And by creating content, you can download other content because of the reward system

wet breach
#

the main reason for their microtransactions is for revenue, a monthly server fee which can be paid yearly would solve this as long as it is reasonably priced for that fee. Like maybe $10 or something

kind hatch
wet breach
mighty sparrow
#

Make it opensource 🤷🏼

wet breach
#

Minecraft code is partially open sourced already

#

just not directly

#

the other portions of the code, the community has already reversed engineered

#

so I mean, its not like there is something in the Java verison that is unknown or hidden XD

mighty sparrow
#

So easy to reverse engineer a plugin and make your own

#

I feel it

kind hatch
#

One of the benefits of using Java as your base.

wet breach
#

well mainly because Java wasn't intended for private use 😛

#

There was a reason why Sun didn't care about people using their language for free without paying for it. Their goal was aimed at enterprise and didn't care what people did with it privately

#

the penalties for businesses stealing or breaking licenses is a lot higher then for an individual

mighty sparrow
#

I wonder if notch wouldve chosen java over cpp if he knew the game was gonna be that big

wet breach
#

also easier to enforce licenses on businesses then individuals

wet breach
#

everyone agrees the server shouldn't be in java, but unfortunately java is also perfect because java is what allowed the server to be easily modded or projects like spigot to exist to allow plugins

#

in other words it is the communities that allow customizations that made Minecraft popular and not MC itself

waxen plinth
#

cpp kinda sucks

#

People can complain all they want but I really like java and much prefer it over c++

#

It's better for modding as well

wet breach
waxen plinth
#

Not really what I mean

#

Its OOP is much better and it's just overall a much safer and more robust language if you ask me

kind hatch
#

The only thing C++ has over Java is the speed. You can get damn near close with Java, but you kind of have to know a lot.

waxen plinth
#

C++ is all over the place in terms of its standard library

#

Yeah java is not nearly as slow as most people think it is

waxen plinth
#

Granted it's still not as fast as C++ but with the runtime optimizations it can be really damn fast still

#

What a vague question

sullen marlin
#

this is the spigot server.....

waxen plinth
#

Use maven/gradle to import the dependency

wet breach
#

I like how md_5 comes back to respond specifically to that lol

#

anyways, Java if you code appropriately can be quite fast/efficient just depends what you are trying to do with it, but this generally applies to all languages lol

native gale
#

I think it mostly about the habbit

#

If there was an API for C++, I would probably use it instead of Java, just because I'm more familiar with it

mighty sparrow
#

Good night yall gotta sleep its christmas eve tomorrow

wet breach
#

if so there was one created already, not sure if it is still maintained however

kind hatch
#

I’m pretty sure I’ve seen some projects that exist for that purpose. Granted it’s been a while, but I remember someone talking about a similar idea.

wet breach
#

also you can technically use C++ with java as well

native gale
#

Because in Java I'm really not that comfortable with all this automatic memory management, and I prefer to have some kind of control over object lifecycle, but I believe it's only because I learned this way first

#

If for example I started coding with Java or C#, I would think the opposite way

wet breach
#

like for instance, you can null out objects to ensure they get GC'ed

#

or null them out if you know you don't need them anymore thus when re-created you don't get some old instance instead

#

or object re-use

#

instead of creating and destroying thousands of objects that are the same XD

native gale
#

Ah, thanks for explaining, but it wasn't exactly the point. Yall were arguing what language is better, but I believe it all comes to what experience with programming you had first, it is just more familiar to you, so it feels more "correct"

wet breach
#

well the reason I would have preferred MC to be in cpp is because you have much more control or easier access to hardware level stuff if need be

#

I am pretty sure everyone agrees that MC being in Java was probably the best thing because it is what helped it become popular

#

because Java is easy to work with

kind hatch
#

It’s also real easy to get installed on almost every platform.

native gale
wet breach
#

one of the hardest things with cpp is memory management

eternal night
#

Just wait for Valhalla to drop and we can finally get some sick speed

wet breach
#

other then understanding how pointers work

native gale
#

I think that's the reason bedrock servers aren't that popular, because it's probably an absolute nightmare to modify them to the same extend Java servers are

wet breach
#

since the majority of people doing anything with MC is kids, java works out well

kind hatch
#

Java also has a lot of safeguards for newbies. You can really do some damage with C++ if you aren’t careful.

wet breach
#

so there is a lot more work or effort that needs to be put into it to create something like what spigot provides

#

especially when updates come along XD

kind hatch
#

Side rant: One of the biggest things that irks me about Bedrock is that it’s not supported on Linux. I understand why Dungeons isn’t available since it relies on Xbox services, but the whole point of the Bedrock Engine was and still is compatibility between platforms.
It runs on Android ffs, sure the Android kernel has been forked and modified significantly, but that’s still a solid start. It’s not like they couldn’t have done it.
Then Microsoft had to go and really fuck it up by converting the launcher to a windows app. No one really used or adopted the Windows Universal Platform because it lacked features and couldn’t replicate the functionality of a native application. So why did they go and do it anyways?

wet breach
kind hatch
#

Yea I know that you can get it working, but I meant direct support from the launcher itself.

#

I would just prefer it launch from the official one rather than installing yet another launcher to play what could already exist if they just put the effort in.

wet breach
#

well you also have to consider MS doesn't like linux 😛

kind hatch
#

Yeaaaa

wet breach
#

bedrock was intended to be for everything else while pc verison for desktop when Mojang created bedrock

sullen marlin
#

thats something to get more annoyed about imo

kind hatch
#

I could be thinking of the Java edition, but back when I had a Mac, I thought I was using the bedrock edition. It was the early days of bedrock, but it’s not on Mac as of today?
Did they just only develop for Windows and consoles? Cause that just goes against the message they were constantly advertising about cross platform.

sullen marlin
#

windows, consoles, phone

#

definitely no mac

native gale
#

Öh, true, I was annoyed by that too

wet breach
# kind hatch I could be thinking of the Java edition, but back when I had a Mac, I thought I ...

originally bedrock was for everything else because it was easier, during the middle of bedrock(there was technically multiple versions depending on platform lol) mojang was sold, and then MS consolidated all the bedrock versions into a single one. and then I guess mac and linux got left out of the bedrock verison, but then again not entirely sure if it was ever intended to include those OS's since the Java edition pretty much covers that. The only reason windows 10 has bedrock is due to the windows store apps.

native gale
#

Also, it's not even fully on windows

#

I'm on windows 8.1, and there's no bedrock either

kind hatch
#

You aren’t able to get it through the Microsoft Store?

sullen marlin
#

isnt windows 8.1 eol or close to it by now

wet breach
kind hatch
#

Oh shit, that’s right. It’s literally titled Minecraft: Windows 10 Edition, I forgot about that.

native gale
wet breach
#

had a limited time to claim your free copy

#

Which I do have the windows 10 edition 😛

kind hatch
wet breach
#

I just never play it, claimed it because it was free for me so why not XD

kind hatch
#

Yea I also got it for free, since I owned the Java edition. Glad they didn’t make me pay for it again. 😛

wet breach
#

I even own the PS4 version as well

#

played that a little bit, but didn't really like it

#

and then also own it on Android but my younger brother plays it there and I don't

#

didn't really like the controls

native gale
kind hatch
#

@sullen marlin The Bedrock engine runs on iPhone right? Didn’t Apple have an update for Mac that allows for running apps on your desktop? Or at least tighter integration between MacOS and iPadOS. Meaning you might be able to launch Bedrock Minecraft on MacOS. Or am I thinking of that Windows announcement for Android apps working on the OS?

kind hatch
native gale
#

Also, hopefully by 2025 I'll have a new PC

kind hatch
#

Hopefully by 2025 graphics cards won’t be scalped into oblivion.

native gale
wet breach
#

if your computer was manufactured no earlier then 2016 odds are you can run windows 11

#

because that isn't the official place to get it

#

use buildtools to obtain the api

#

buildtools is available from spigot

#

it is the official way of obtaining spigot and its api

#

?bt

undone axleBOT
wet breach
#

oh you need the api, forgot you can just download the api from the repo

eternal oxide
#

on an i3770k it takes around 2-3 minutes to build with BuildTools

keen obsidian
eternal oxide
#

What are FrontXYZ, LeftXYZ and UpXYZ?

#

From teh video it doesn't look like you will need quaternions as you never loop

naive jolt
#

Hey how do I use Event Damage Cause, I am trying to make a "if event damage cause = "entity_attack""

tardy delta
#

Isnt there already one

naive jolt
#

What do you mean

#

it does exist but I dont know how to use it

#

I get an error

tall dragon
#

show error

#

and ur code so we can help

naive jolt
#

Ah

#

Its a highlight

#
 if(EntityDamageEvent.DamageCause() == EventCause){

            }```
#

EventCause is a string

#

then a method call is expected

tall dragon
#

yea you cant use it like this

naive jolt
#

Ah

tall dragon
#

you also cannot compare a damagecause to a string

#

are you trying to do this inside the EntityDamageEvent?

naive jolt
tall dragon
naive jolt
#

OH that makes so much more sense

tall dragon
#

great

naive jolt
#

Thank you EpicGodMC

tall dragon
#

👍

delicate cargo
#

what event function is used for right-clicking a block?

tall dragon
#

PlayerInteractEvent

#

along with a check if its right click

delicate cargo
#

so i would use playerInteractEvent()?

tall dragon
#

yup

delicate cargo
#

and how would i check for a right click?

tall dragon
#

the event provides an Action

#

check if its RIGHT_CLICK_BLOCK

delicate cargo
#

how do i get PlayerInteractEvent.action?

tall dragon
#

show me how are you trying to do that event

#

idk if ur doing it right rn

delicate cargo
#

public void playerInteractEvent(final PlayerInteractEvent e)

tall dragon
#

yh

#

so use e

#

e.getAction()

delicate cargo
#

oh damn i was using PlayerInteractEvent.getAction()

#

idk why

#

ty

tall dragon
#

np

delicate cargo
#

another question is how do i make it not show the default '&e%default joined' message?

#

and '&e%default left'

tardy delta
#

Yes

#

Playerjoinevent

#

Setjoinmessage

ivory sleet
#

Could manipulate PlayerJoinEvent and PlayerQuitEvent

tardy delta
#

Set to null to disable

delicate cargo
#

alr

#

ty

#

how do i check if a certain block is clicked?

quaint mantle
#

playerinteractevent? idk

#

lemme check

#

?jd

quaint mantle
#

yea that should be good

#

you can go and check in mc if you want

#

@delicate cargo

keen obsidian
delicate cargo
#

i meant actually comparing the block

#

i have the event

quaint mantle
#

getBlock?

delicate cargo
#

but i need to compare it

quaint mantle
#

compare with what?

#

why dont just if (getblock() == something?)

delicate cargo
#

but i dont know HOW to make the block

#

or is it an itemstack?

quaint mantle
#

what do you mean bruhhh

#

dont you see it...?

delicate cargo
#

ffs

#

im asking

#

how do i compare getClickedBlock()

#

with a block?

#

ive already SAID THAT

quaint mantle
#

stop being mean or people will not help you bruh

delicate cargo
#

what im saying

#

is how do i compare the damn thing?!?

#

(getClickedBlock() == WHAT?!?)

#

WHAT do i put there?

quaint mantle
#

?learnjava

undone axleBOT
quaint mantle
#

i think it is time to see some basic.

tardy delta
delicate cargo
#

wdym?

tardy delta
#

If event.getclixkedblock.gettype == Material.Stone for example

delicate cargo
#

oh gettype

#

i see now ty

quaint mantle
#

you are asking us the question you should ask yourself.

#

so i think you should do some

#

?learnjava

undone axleBOT
delicate cargo
#

i think you should actually bother to read my question

quaint mantle
#

no, but you should.

delicate cargo
#

because you kept telling me to use ==

#

but you didnt say to use .getType()

#

and then compare with a material

quaint mantle
#

most people with basic java will understand what im saying. which you arent according to what i've seen

delicate cargo
#

i understand that i need to use ==

#

but you were no help with telling me what i should compare it with

quaint mantle
#

That's your job.

delicate cargo
#

i would be here all day if fourteen hadnt helped

delicate cargo
#

oh really?

#

ill show you

quaint mantle
#

that code is weird.

#

it isnt what we're talking

#

it is another class

delicate cargo
#

anyway

#

the interact function

#

is it onPlayerInteract() or playerInteractEvent()?

young knoll
#

Neither

delicate cargo
#

which is it then?

young knoll
#

PlayerInteractEvent

delicate cargo
#

not type

young knoll
#

The function is whatever you want

quaint mantle
#

this guy is weird

restive tangle
#

He's new, probably.

young knoll
#

The name does not matter

delicate cargo
#

doesnt it?

restive tangle
#

No.

delicate cargo
#

because if im registering an event surely it must

restive tangle
#

No, you'd need to register the class.

young knoll
#

No

delicate cargo
#

what?

restive tangle
#

Don't you know how to register events?

delicate cargo
#

just to clarify, im using implements Listener

restive tangle
#

You register the class if it is in a separate class, if not just use this.

ivory sleet
#

That alone won’t make the event class register said methods

#

yeah you need to use PluginManager::registerEvents

quaint mantle
#

hostile

ivory sleet
delicate cargo
#

oh damn i forgot @EventHandler

#

thats what the problem wa

#

*was

#

ty

ivory sleet
potent pecan
#

i need to do an action when dropping an item with Q and another one when dropping it from the inventory(by clicking outside of it with the item on the cursor). Is there a way to do that?

tardy delta
#

I think there is an itemdropevent

#

And an inventory click event with clicktype drop

ivory sleet
#

Afaik dropping an item is just dropping an item, it’s not tracked whether it was by inventory or simply dropping it from hand

#

Tho I guess you could check whether the player has an open inventory

#

Altho this wouldn’t work with the player inventory as its always open

tardy delta
#

What does ClickType.DROP meanz in the inv click event?

#

event.getClick()

ivory sleet
#

Ooo maybe that’s what he’s looking for

tardy delta
#

Yea that would make sense

potent pecan
regal dew
#

afaik the inventoryclickevent sets the slot to sth absurd like 999 when dropping it out of the inv

quaint mantle
#
Chest thisBlock = (Chest) event.getClickedBlock().getState();
PersistentDataContainer chestData = thisBlock.getPersistentDataContainer();
Byte dataByte = chestData.get(LOOT_CHEST_KEY, PersistentDataType.BYTE);```
Intellij is saying this byte will always be null, why?
visual tide
#

alt+enter then "Find cause"

quaint mantle
#

I did

#

it just just sais the place where I set dataByte

#

alt + f4 then

#

funny

visual tide
#

yes but what does it say

#

as cause

quaint mantle
#

nothing

#

lemme look up the message its no info

visual tide
#

:what:

quaint mantle
#

just a sec

#

its not pasting

#

oh no image

#

it just sais 'dataByte was assigned'

#

you didnt verify

#

to post an image

#

!verify

undone axleBOT
#

Usage: !verify <forums username>

quaint mantle
#

wait nvm maybe I found it

#

what is a byte when its not assigned anything?

#

I was checking for null

#

xD

visual tide
#

byte or Byte?

#

kinda big difference

quaint mantle
#

Byte

visual tide
#

Byte can be null

#

byte cant

#

cause its primitive

quaint mantle
#

hm I need to look at that

#

oh ok

#

I get it

visual tide
#

like int and Integer

quaint mantle
#

yup

#

ok

visual tide
#

Integer can be null, int can't

quaint mantle
#

ok, so I have a Byte, how do I Byte == value

#

I already checked for null

young knoll
#

Why not use the primitive type

#

Instead of Byte

quaint mantle
#

idk

#

PersistentDataContainer returns that

#

we are not talking about you

#

I had a question already

young knoll
#

You can still use byte

quaint mantle
#

dont be hostile

#

that guy is asking what he doesnt know, which is the purpose of this channel isnt it?

#

oh

#

thought you want a help with codings

#

nah dont do it

#

just use bettergui

#

or trmenu

#

IDE

#

intellij or eclipse

#

then librabries

#

?learnjava when

undone axleBOT
quaint mantle
young knoll
#

What

quaint mantle
#

i think you will need at least 1024TB drive

#

to get every librabries in the internet

#

maybe even more

#

LOL

#

just

#

i think you should see some basic about what is coding

#

then go see what is java

#

and then start to learn java

#

you dont? because that question looks sus

#

i dont know how to coad

#

that name looks sus

#

oh i just got here in like august and already 5k messages 🥳

#

you could look up a series on youtube on how to make your first plugin

delicate cargo
#

why doesnt this work?

@EventHandler
public void onPlayerInteract(final PlayerInteractEvent e) {
    if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
        if (e.getClickedBlock().getType() == Material.CRAFTING_TABLE){
            e.setCancelled(true);
            openGui((HumanEntity)e.getPlayer());
        }
    }
}
quaint mantle
#

gonna delete some of my old message so that people will never know how bad i was 👺

visual tide
delicate cargo
#

ok

#

i mean it does cancel

#

and is registered

#

just doesnt open

#
public void openGui(final HumanEntity ent) {
    init();
    ent.openInventory(gui);
}
#

wtf are you doing?

#

you wait

quaint mantle
#

i dunno

#

not for coding

delicate cargo
#
public void init() {
    for (int slot = 0; slot < 27; slot++) {
        if (slot != slotOut && !(Arrays.asList(slotsIn).contains(slot))) {
            gui.setItem(slot, Utils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, 1, ""));
        }
        if (slot == slotOut) {
            gui.setItem(slot, Utils.createGuiItem(Material.BARRIER, 1, "&c&lINVALID RECIPE"));
        }
    }
}
#

and the init function aswell

worldly steppe
#

Hello, I have a problem on my network, while programating messages of a plugin when the answer like Error, missing access or things like that the message contains rare letters, I am trying to solve this 5 days before

#

Like the first A

delicate cargo
#

did you code the plugin?

worldly steppe
#

Or other person?

delicate cargo
#

ofc, who else is here?

worldly steppe
#

Is an plugin downloaded

#

But no only with this plugin

#

Ocurr with all

delicate cargo
#

well why tf are you asking about a plugin you dont develop on in the place for help with development?!?

#

you ask it in the plugins official server

worldly steppe
delicate cargo
#

...

#

anyway why doesnt this work?

public void init() {
        for (int slot = 0; slot < 27; slot++) {
            if (slot != slotOut && !(Arrays.asList(slotsIn).contains(slot))) {
                gui.setItem(slot, Utils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, 1, ""));
            }
            if (slot == slotOut) {
                gui.setItem(slot, Utils.createGuiItem(Material.BARRIER, 1, "&c&lINVALID RECIPE"));
            }
        }
    }
#
public void openGui(final HumanEntity ent) {
        init();
        ent.openInventory(gui);
    }
#

and finally this as well

@EventHandler
    public void onPlayerInteract(final PlayerInteractEvent e) {
        if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (e.getClickedBlock().getType() == Material.CRAFTING_TABLE){
                e.setCancelled(true);
                openGui((HumanEntity)e.getPlayer());
            }
        }
    }
    ```
#

yes it is getting cancelled

twilit wharf
#

I saw someone do the custom scoreboard with a plugin and resource pack, but I dont know any more than that. Does anyone have a idea on how they do this or a tutorial I could follow?

quaint mantle
#

font

#

custom font

#

I understand how to do it, but dont know how to explain it in the easiest way possible

twilit wharf
#

what about the border?

quaint mantle
#

everything is font

twilit wharf
#

hm

quaint mantle
#

maybe not the level classes but the rest mostly fonts

#

you have the resourcepack right?

twilit wharf
#

no

quaint mantle
#

ooo ok

twilit wharf
#

all I have is that screenshot

#

all I want is something like the border and the top and bottom, not what is inside the scoreboard

quaint mantle
#

welp we can do some pretty cool things with custom font

tulip owl
quaint mantle
#

they even use it for custom particles now lul

#

i just dont know how

#

*dont know how they could not be lazy

twilit wharf
tulip owl
#

I'll try

twilit wharf
#
  <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
tulip owl
#

yea, got that

twilit wharf
#

k

tulip owl
#

That's what i did

twilit wharf
tulip owl
#
[WARNING] NuVotifier-2.7.2.jar, SVL-1.3.0.jar, acf-paper-0.5.0-SNAPSHOT.jar, gson-2.8.0.jar, netty-buffer-4.1.49.Final.jar, netty-codec-4.1.49.Final.jar, netty-common-4.1.49.Final.jar, netty-handler-4.1.49.Final.jar, netty-resolver-4.1.49.Final.jar, netty-transport-4.1.49.Final.jar, netty-transport-native-epoll-4.1.49.Final-linux-x86_64.jar, netty-transport-native-unix-common-4.1.49.Final.jar, nuvotifier-api-2.7.2.jar, nuvotifier-bukkit-2.7.2.jar, nuvotifier-bungeecord-2.7.2.jar, nuvotifier-common-2.7.2.jar, nuvotifier-sponge-2.7.2.jar define 1 overlapping resource: 
[WARNING]   - META-INF/MANIFEST.MF
  - META-INF/MANIFEST.MF
SVL-1.3.0.jar, nuvotifier-bukkit-2.7.2.jar define 1 overlapping resource: 
  - plugin.yml
netty-buffer-4.1.49.Final.jar, netty-codec-4.1.49.Final.jar, netty-common-4.1.49.Final.jar, netty-handler-4.1.49.Final.jar, netty-resolver-4.1.49.Final.jar, netty-transport-4.1.49.Final.jar, netty-transport-native-epoll-4.1.49.Final-linux-x86_64.jar, netty-transport-native-unix-common-4.1.49.Final.jar define 1 overlapping resource: 
  - META-INF/io.netty.versions.properties
maven-shade-plugin has detected that some class files are
present in two or more JARs. When this happens, only one
single version of the class is copied to the uber jar.
Usually this is not harmful and you can skip these warnings,
otherwise try to manually exclude artifacts based on
mvn dependency:tree -Ddetail=true and the above output.
See http://maven.apache.org/plugins/maven-shade-plugin/

I don't think that worked

twilit wharf
#

looks like it worked

#

there were no errors

#

just a warning about a overlapping file

tulip owl
twilit wharf
#

it said you can skip these warnings

tulip owl
#

yea just i've had those kind of warnings with another dependancy

#

and it didn't work

twilit wharf
#

idk then

twilit wharf
tulip owl
delicate cargo
#

doesnt open the inventory

twilit wharf
#

are you initializing gui?

#

like gui = Bukkit.createInventory("Inventory", 54);

#

or something like that?

tulip owl
twilit wharf
#

yay

tulip owl
#

it didn't

#

votifier did

delicate cargo
tulip owl
delicate cargo
#

tysm

twilit wharf
#

np

twilit wharf
tulip owl
#

yes

twilit wharf
#

ah

#

when you give us the .jar

#

we cant do anything

tulip owl
#

nothing

twilit wharf
#

did you code this yourself?

#

we cant help then, this is for people who have trouble with their code. Head over to #help-server

#

they can prob help

tulip owl
#

read

twilit wharf
#

error?

#

@tulip owl I found your issue

#

in your vote.java file

#

you have the class implement listener

tulip owl
twilit wharf
#

in the ZuVotifier docs it says to implement VoteListener

#

@tulip owl try this ^^

#
public class BasicVoteListener implements VoteListener {

    public void voteMade(Vote vote) {
        System.out.println("Received: " + vote);
    }

}
ivory sleet
#

Paste the code

tulip owl
#

thing is, it works perfectly find by adding the .jar manually

ivory sleet
#

?paste

undone axleBOT
twilit wharf
tulip owl
#

^^

ivory sleet
#

No1 is going to take the effort to decompile it

twilit wharf
#

he downloaded it off the insternet

ivory sleet
#

Oh

#

Well then this isn’t the right channel

tulip owl
#

we tried to say that

twilit wharf
ivory sleet
#

Yeah

twilit wharf
#

I think he is on mobile and doesnt know why it doesnt work

#

and wants us to run it

twilit wharf
#

Idk how to make stuff shadow in maven

#

in gradle its pretty simple

ivory sleet
#

Maven doesn’t allow system dependencies to be shaded (requires a plugin)

#

As opposed to gradle which does allow that

tulip owl
# twilit wharf hmmm
<dependency>
            <groupId>com.vexsoftware</groupId>
            <artifactId>nuvotifier-universal</artifactId>
            <version>2.7.3</version>
            <scope>system</scope>
            <systemPath>${project.basedir}\src\main\resources\nuvotifier.jar</systemPath>
        </dependency>

This is what i did that worked, but it breaks on linux/GH actions due to backslashes

twilit wharf
#

chill

tulip owl
#

wow it's even a free premium plugin...

#

W O W

twilit wharf
#

if you post a help message in #help-server, someone will get to you eventually. We also do not provide support with pirated plugins

ivory sleet
#

?ban @quaint mantle

undone axleBOT
#

Done. That felt good.

tulip owl
#

🎉

twilit wharf
#

🥳

ionic hound
#

what's wrong??

twilit wharf
#

so linux/gh is the issue rn then? @tulip owl

twilit wharf
delicate cargo
#

how can i detect if an array does not contain a value?

twilit wharf
ivory sleet
vale ember
twilit wharf
delicate cargo
#

no

#

i mean a certain value

twilit wharf
#

ohh

#

here

ivory sleet
#

Linear search

unreal quartz
#

just search the array

#

or use a set if it is more appropriate

vale ember
twilit wharf
#
if (!array.contains(value)) {}
ivory sleet
#

Or use Arrays::binarySearch

unreal quartz
#

primitive arrays have no contains method

twilit wharf
ivory sleet
tulip owl
ionic hound
delicate cargo
#

Cannot invoke contains(int) on the array type int[]

twilit wharf
#

nevermind

ivory sleet
#

Arrays.binarySearch(array,1); //returns the index in which 1 was found in

delicate cargo
#

brb lunch

ivory sleet
#

For instance

twilit wharf
tulip owl
#

Just what i'm doing 🙂

twilit wharf
#

k

tulip owl
#

seams like it works

twilit wharf
#

alright

naive jolt
#

Hello again I am having a problem with Events

delicate cargo
#

hi forbidden! o/

naive jolt
#

heyy Blinky!

delicate cargo
#

whats the problem?

naive jolt
#

Can't send it

#

Uh

#

I will just use paste

delicate cargo
#

k

naive jolt
#

I think it has something to do with the settings

gleaming grove
#

java.lang.NoClassDefFoundError: Could not initialize class com.speederbox.hypercheat.hypercheat.Util.ReflectionUtils

#

i guess thats the reason

naive jolt
#

Ah

gleaming grove
#

do you use external library in your project?

naive jolt
#

ProtocolLib yes

gleaming grove
#

ye but it looks like library with this packet "speederbox.hypercheat.hypercheat" has not been compiled to .jar file

naive jolt
#

hypercheat is the plugin itself 🤔

ionic hound
vale ember
gleaming grove
quaint mantle
#

can someone please wrtie some method how to sort plazers in tablist? optionally be best if i could set prefix to them

#

for 1.8 and 1.18

gleaming grove
#

ReflectionUtils

naive jolt
#

It is

gleaming grove
#

and you show me your plugin.yml file?

naive jolt
#

Okay

#
name: HyperCheat
version: '${project.version}'
main: com.speederbox.hypercheat.hypercheat.HyperCheat
api-version: 1.18
depend: [ProtocolLib]
authors: [ ForbiddenBoX, Speeder323 ]
description: This is a anti-cheat Plugin to make sure no one hacks.
gleaming grove
#

hmm idk this exception java.lang.NoClassDefFoundError: Could not initialize class x appears always when some class is not compiled into jar file

#

show me content of that class ReflectionUtils

naive jolt
#

Okay got it

gleaming grove
#

what was the reason?

naive jolt
naive jolt
gleaming grove
#

are you sure all of this refelctions?

#

i mean maybe one of them is incorrect

naive jolt
#

Let me see

#

Also this happens when I trigger the EntityDamageEntityEvent

#

only then

naive jolt
gleaming grove
#

ye

naive jolt
#

in the classpath

#

let me check it once again

gleaming grove
#

if you do code Class myClass = Class.forName("randomclasssomething"); you get the same error

naive jolt
#

wait let me give you the main class if I have not already

#

I think it might be about that

gleaming grove
#

maybe show me this

#

PlayerUtils.isOnGround

naive jolt
#

ah on ground is deprecated

gleaming grove
#

better check all classed in this stacktrace

naive jolt
tulip owl
#

Has anyone here used GitHub actions? i'm trying to upload a file as an artifact

name: Java CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 16
        uses: actions/setup-java@v2
        with:
          java-version: '16'
          distribution: 'adopt'
      - name: Build with Maven
        run: mvn --batch-mode --update-snapshots verify

      - name: 'Upload artifacts'
          uses: ./
          with:
            path: target/SVL-*.*.*.jar
gleaming grove
#

        var boundingBox = ReflectionUtils.getBoundingBox(player);
        Object box = ReflectionUtils.modifyBoundingBox(boundingBox , 0, -yExpanded, 0,0,0,0);

        return ReflectionUtils.getCollidingBlocks(player, box).size() > 0;
    }
#

try do code like this

#

and check if exception is thrown by ReflectionUtils.getBoundingBox() or ReflectionUtils.modifyBoundingBox() method

naive jolt
#

Okay let me try that

#

Hey Jacek quick note when I start the server

#
[15:52:56] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it```
#

this happens

night patrol
#

help please

#

how to

#

change world to String

naive jolt
#

.ToString does not work?

#

if not I think you can do this

night patrol
naive jolt
#

np

cinder spade
#

Anybody know what the permission nodes for using items, like fishing rods? I can't find it.

naive jolt
#

I have a problem with Event again

quaint mantle
#

A wolf cannot be cast to a player

#

you need to check if the entity from the event is a player before you cast

naive jolt
#

Ah

quaint mantle
#

How do I get the number of placed blocks? player.getStatistic

#

?

#

each statistic has an ID

#

oh it doesnt take a string

#

lemme check

quaint mantle
#

its not in there

#

I see

#

hm

#

I dont think it is in there.

#

a gde?

#

gde?

#

yes

#

what is that

#

where*

quaint mantle
#

???

#

ok well

#

I wrote it in Russian

delicate cargo
#

how can i make a loop run from onEnable() without effecting the server?

young knoll
#

You pass a material as a second argument to getStatistic

quaint mantle
#

What statistic tho

quaint mantle
delicate cargo
#

how would i use that?

quaint mantle
gusty gorge
#

So I wanna add a method to the Player interface (Player#setStatus) but i dont know how to implement that. Can anyone help?

waxen plinth
#

?scheduler

#

a

quaint mantle
#
Bukkit.getScheduler().runTaskTimer(MAIN CLASS, () -> {
            
        },0, TICKS 1 sec = 20);
#

1 sec = 20 right

#

1 min

#

oh

#

sorry

ivory sleet
#

?scheduling

undone axleBOT
delicate cargo
#

so if i set ticks to 1

#

will it run every tick?

quaint mantle
#

yes

young knoll
delicate cargo
#

ok perfect ty

young knoll
#

Make a wrapper

young knoll
gusty gorge
young knoll
#

Make a class that holds the Player object as a variable

#

And then also has your custom methods

quaint mantle
gusty gorge
formal bear
#

(ChatColor.of(new Color(r:134, g:255, b:16))
why r:134, g:255, b:16 highlighed?

formal bear
#

XD nvm

#

tysm <#

#

❤️

quaint mantle
#

bruh

gusty gorge
#

But somehow the method doesnt show up if i call it in my Class (I am creating a command)

quaint mantle
#

How do I get the number of placed blocks? player.getStatistic

grim ice
#

so i saw this but i dont rly know how to create teams and add players to it

#

if anyone doesnt mind may you help me?

#

Team firstTeam = scoreboard.registerNewTeam("1");
Prisoners.addEntry(player.getName());

#

that works right

worn tundra
#

What's your question

#

@grim ice

grim ice
#

i figured that out but i have a new question

#

can I add uuids to scoreboard teams

#

ill use toString but isnt there a character limit

hasty prawn
#

What version

quaint mantle
#

player.sendMessage(ComponentBuilder ("Connecting you to the lobby!").color(ChatColor.RED).create());
// i use kotlin
mention me pls if you have a solution

grim ice
naive jolt
#

I do not get why this does not work

hasty prawn
# grim ice 1.8.8

48 then I think, 16 for prefix, 16 for the name, 16 for the suffix

#

If there's no prefix and suffix, it's just 16 but I'm pretty sure there is

grim ice
#

but

hasty prawn
grim ice
#

im just adding an entry to a team, and the entry is a uuid as a string should i have to worry

hasty prawn
#

Hmmm, not sure, might just try it and see what happens

grim ice
#

a uuid is 36 characters long

vale ember
hasty prawn
#

What are you trying to do 2Hex

grim ice
#

im trying to sort players by permission in tab

#

so if a player has a permission like o.owner

grim ice
#

hes at the top

naive jolt
naive jolt
delicate cargo
#

why doesnt this work?```java
public String isRecipe(ItemStack[] items) {
List<String> ids = new ArrayList<String>();
for (ItemStack item : items) {
if (item != null) {
NamespacedKey key = new NamespacedKey((Plugin)Main.instance, "itemid");
String id = item.getItemMeta().getPersistentDataContainer().get(key, PersistentDataType.STRING);
ids.add(id);
System.out.println(id);
}
else {
ids.add(null);
}
}

    List<Recipe> recipes = new ArrayList<Recipe>(Main.instance.recipeManager.recipeMap.values());
    
    String outId = null;
    boolean recipeFound = false;
    
    for (Recipe recipe : recipes) {
        if (recipeFound != true) {
            if (recipe.idsIn == ids.toArray(new String[9])) {
                outId = recipe.idOut;
                recipeFound = true;
            }
        }
    }
    
    return outId;
}
formal bear
#

how its not supported version

eternal oxide
#

api version 1.18 not 1.18.1

formal bear
#

api 1.18 on server 1.18.1?

#

im confused

eternal oxide
#

in plugin.yml

quaint mantle
#

My blockdata is not setting when doing this.

Block lookAtBlock = sender.getTargetBlock(null, 5);
        if (lookAtBlock.getType() == Material.CHEST){
            Chest chestBlock = (Chest) lookAtBlock.getState();
            chestBlock.getPersistentDataContainer().set(LootChest.LOOT_CHEST_KEY, PersistentDataType.BYTE, (byte)1);```
it does set the state, when I do ```java
chestBlock.getPersistentDataContainer().get(LootChest.LOOT_CHEST_KEY, PersistentDataType.BYTE)```
it does return 1, but when I later do ```java
Chest thisBlock = (Chest) event.getClickedBlock().getState();
PersistentDataContainer chestData = thisBlock.getPersistentDataContainer();
dataByte = chestData.get(LOOT_CHEST_KEY, PersistentDataType.BYTE);```
in another event, the Byte will be set to null
formal bear
#

ok its working, but im wondering why?

quaint mantle
#

api-version does never have the last number

#

I dont know why

#

im working in 1.17.1 and I need to have 1.17 in api version

formal bear
#

🤔

quaint mantle
quaint mantle
#

theres literally no one here :(

rough drift
#

if(Objects.equals(server.getName(), player.getServer().getInfo().getName())) continue; is there a better way to check if a server is not the same as another server? (server is the server i am currently looping over) (Bungeecord)

unreal quartz
#

server == other?

eternal oxide
rough drift
#

oh wait, servers have the same instance regardless of where they are then?

unreal quartz
#

i would hope so

rough drift
#

kinda like Blocks?

unreal quartz
#

i don’t think the bungee cord api has as many edge cases as bukkit

#

could be wrong

rough drift
#

well there's basically no docs

unreal quartz
#

time to try it and see then

eternal oxide
#

instanceof TileState

quaint mantle
#

But doesnt every chest always have a tilestate?

#

I already checked if its a chest before

eternal oxide
#

yes, but only blocks with TileStates can have a PDC. so be certain you are actually testing the correct one

rough drift
quaint mantle
#

but I think I found the issue, I didnt Chest#update() after

eternal oxide
#

ah yes, you used a state so have to set it back to the block

quaint mantle
#

ok

grim ice
#

is this a string list

#

x: ["a", "b"]

rough drift
#

i think so

#

tho i mostly see it

#
x:
  - a
  - b
grim ice
#

Oh right my bad

#

how many spaces are before the - tho

rough drift
#

two spaces

#

tho

woeful crescent
#

hey, does Inventory#addItem merge the item with equivalent items in the inventory if possible by default?

rough drift
#
a:
  b:
    c:
      - d
      - f
#

2 spaces after the key

woeful crescent
#

eg. adding 2 diamonds to a player's inventory with 31 diamonds would turn that stack into 33

grim ice
#

oh ok

rough drift
woeful crescent
#

yeep

#

ok so, is there any way to get available slots for a certain item

vale ember
delicate cargo
#

well it always returns null

ancient plank
#

what returns null :)

delicate cargo
#

and always the current id is null

ancient plank
#

send the error too when you have an error :) people can't help with 0 information

delicate cargo
#

there isnt an error

#

the problem is it always returns null

vale ember
#

does the print statement execute?

delicate cargo
#

yes

#

and prints null

#

even tho the items im using has the tag

vale ember
#

well probably the reference equality 'recupe.idsIn ==' may cause the issue

delicate cargo
#

what?

vale ember
#

you should use .equals() instead

delicate cargo
#

ok

vale ember
#

on the line if (recipe.idsIn == ids.toArray(new String[9])) {

delicate cargo
#

done

#

nothing changed

vale ember
#

does it look like if (ids.toArray(new String[9]).equals(recipe.idsIn)) {

#

?

delicate cargo
#

no

#

other way round

vale ember
#

thats ok

delicate cargo
#

the thing is

#

everything in ids is null

#

regardless of what i put in

#

diff class

vale ember
#

well, are you sure itemstacks contain 'itemid' string?

delicate cargo
#

yes

vale ember
#

so the system out println prints null?

delicate cargo
#

yes

#

i gotta go

vale ember
#

the problem is in the code where you set

#

WAIT

#

did you set item meta to the item?

#

after getting item meta, getting PDC and setting the itemid, did you set the item meta to the new one? @delicate cargo

naive jolt
#

it is called obviously

#

oh wait let me update that

vale ember
#

why are you using first letter uppercase for method and variable names?

naive jolt
vale ember
#

that makes code a lot more readable

naive jolt
#

Ah anything for readability!

#

I tried a lot to get it to work

vale ember
#

so what do you do in game, that you expect it to trigger?

naive jolt
#

I hit the entity I expect that to output victim.sendMessage(distance + " is the distance");

#

and then a if statement

vale ember
#

what entity?

naive jolt
#

that checks if you are 4.275 blocks away from the entity

vale ember
#

do you hit player?

naive jolt
#

the Victim

#

so any entity I hit

vale ember
#

do you hit player in game

#

or just mob like zombie

naive jolt
#

a mob like a zombie

vale ember
#

but you're checking if damager is instance of Player

#

and the entity*

#

the entity you hit is obviously not player so the if is false

naive jolt
#

well let me remove the second part

vale ember
#

and delete cast

naive jolt
#

what

#

yes I meant the cast part

vale ember
#

Player victim = (Player) event.getEntity();

#

and the instanceof too

naive jolt
#

Ah

vale ember
#

event.getEntity() instanceof Player

naive jolt
#

oh its just the entity

#

instead of casting

vale ember
#

but you can't send message to entity

naive jolt
#

true

vale ember
#

so you won't do victim.sendMessage

naive jolt
#

should I just broadcast?

vale ember
#

if you want everyone to see it, then yes

naive jolt
#

The goal was to target the player that did it

odd sentinel
#

is it possible for chunk load events to fire before a plugin has registered listeners? on server startup?

vale ember
naive jolt
#

ah okay thanks

vale ember
#

damager.sendMessage

naive jolt
#

okay let me do that and come back to you

vale ember
#

ok

crimson marsh
#

anyone know how I can loop through all the worlds (including multiverse worlds) ?

vale ember
crimson marsh
#

I've tried that.

vale ember
#

and what's wrong?

crimson marsh
crimson marsh
mellow gulch
#

you're comparing a string to the toString of a list of strings ?

mellow gulch
#

reverse it, you should be checking if the list contains the name

#

not if the name equals the list

naive jolt
# vale ember and what's wrong?

Thank you so much, one more question how do I check the distance between 2 entities because it does not seem to be working

vale ember
#

entity1.getLocation().distance(entity2.getLocation());

#

if you don't need super accuracy

naive jolt
#

float distance = (float) damager.getLocation().distanceSquared(event.getEntity().getLocation());

#

Oh instead of squared

crimson marsh
mellow gulch
grim ice
#

where do scoreboard teams prefixes appear

eternal oxide
#

above players

grim ice
#

is it in chat too?

eternal oxide
#

I've never bothered to check

grim ice
#

is it in tablist? if u know

worldly steppe
#

what is the name of the web that i enter my plugin configuration of minecraft and it tell me the errors in the config?

foggy estuary
#

“`if(e.getDamager() instanceof WitherSkeleton && e.getEntity() instanceof Player){
if(e.getDamager().hasMetadata("ExplodingZombie")){
e.getDamager().getWorld().createExplosion(e.getDamager().getLocation(),5,true);
e.getEntity().remove();

        }
    }
}“`
hasty prawn
#

?

foggy estuary
#

i forgot how to use nomal format

#

whats the text format again

hasty prawn
#

backticks

#

`

mellow gulch
#

```java <code here> ```

foggy estuary
#

i hasve 60 percent keyboard so i dont have it sorry

hasty prawn
foggy estuary
#
        if(e.getDamager() instanceof WitherSkeleton && e.getEntity() instanceof Player){
            if(e.getDamager().hasMetadata("ExplodingZombie")){
                e.getDamager().getWorld().createExplosion(e.getDamager().getLocation(),5,true);
                e.getEntity().remove();
                
            }
        }
    }```
#

does anyone know why when it hits enemy it wont remove itself from world

#

after i use e.getEntity().remove();

hasty prawn
#

Probably doesn't have the "ExplodingZombie" metadata

foggy estuary
#

it does

#

double checked it

#

because it explodes when it hits player

#

but doesnt remove after

hasty prawn
#

Oh, cause you're removing e.getEntity() not e.getDamager()

vale ember
#

you're removing player!!!

#
  • it's kinda strange that you check for instanceof WitherSkeleton and metadata ExplodingZombie
hasty prawn
#

^

foggy estuary
#

its just a habit

#

ok thanks i didnt realise that lol

worldly steppe
#

can someone tell me the error of my config?

ripe geyser
#

Is it possible to create a command only usable by the owner which excludes other ops? So far I have:

commands:
  createvoidworld:
    description: "Creates a void world with a specified name."
    usage: /<command> <name>
    permission: lambdaminigames.createvoidworld
    permission-message: "§cThis is an owner-only command!"
    aliases:
      - cvw

permissions:
  lambdaminigames.createvoidworld:
    default: false

Do I need to use Java to do this or can I just do it from the yml?

hasty prawn
#

You have to use Java as far as I know

ripe geyser
#

Alright, do you reckon that player permissions could help me to avoid doing it in Java?

wraith apex
#

You will have to use java

#

either a specific UUID or a custom rank you only have

worldly steppe
wraith apex
#

plugin.yml has very limited functionality

ripe geyser
#

I think I'll use my UUID

#

Alright ty

peak granite
#

how do i check if opened inventory is player's inventory in InventoryOpenEvent

#

it's possible

#

u don't need protocollib

wraith apex
#

I remember people talking about this issue in a forum post. Something along the lines of the InventoryOpenEvent is not fired by the player opening their inventory

#

You have to listen to a packet instead

worldly steppe
hasty prawn
#

There is no packet for the player opening their inventory

#

That's clientside

peak granite
#

no u don't

dark arrow
#

Hey I wanted to ask that how to summon a mob on an event

peak granite
#

u can check

hasty prawn
#

If there was a packet for it why wouldn't InventoryOpenEvent be fired by it...?

wraith apex
hasty prawn
#

You can't check when they open their inventory

peak granite
#

not that

#

bro

#

what

wraith apex
#

for example, Bukkit.getWorlds().get(0).spawnEntity(new Location(Bukkit.getWorlds().get(0),0,0,0),EntityType.ZOMBIE);

peak granite
#

yes u can?

wraith apex
#

have the event print something out

wraith apex
wraith apex
worldly steppe
#

yes

#

that

hasty prawn
# peak granite yes u can?

You're more than welcome to try both InventoryOpenEvent and to look for a packet that is sent, but it's very likely you'll come up empty handed.

worldly steppe
#

i have an error and idk who

hasty prawn
#

Whats the error

wraith apex
dark arrow
worldly steppe
wet breach
# peak granite yes u can?

what you need to listen for is an inventory click as there is always a packet for that, that is the indicator that their inventory is open, also the client will send an inventory close packet for the player inventory even though the client never sends an open window packet for the player inventory

wet breach
#

The inventoryopenevent in the API is for when a player clicks on something like a chest

#

since a packet is indeed sent for that

hasty prawn
#

InventoryOpenEvent is for when they open a chest not click in it

#

That's for InventoryClickEvent/InventoryInteractEvent

wet breach
wraith apex
wet breach
#

but its not limited only to a chest so anything that has an inventory window that the player interacts with will send an inventoryopenevent, just not the players own inventory 😛

wraith apex