#help-development

1 messages Β· Page 586 of 1

somber scarab
#

I just added the config file lines

#

and save defaults

#

and it pooped

ashen bolt
#

I added the delay, however this doesn't seem to fix the problem

river oracle
#

stop abusing static

drowsy helm
#

plugin is null

river oracle
#

I don't even need to look at the code to know there is a static variable in there you are using

#

?di

undone axleBOT
river oracle
#

please use DI

#

otherwise make sure you init your static variable though that's a slippery slope for maintainability

drowsy helm
#

public static FileConfiguration config = FloorIsLava.plugin.getConfig();

#

is inherently flawed

somber scarab
#

I did

#
public final class FloorIsLava extends JavaPlugin {

    public static World VOID_WORLD;
    public static World NORMAL_WORLD;
    public static FloorIsLava plugin;
    public static GamePlotDivider GPD;
    public static WorkloadRunnable WLR;
    public static ConsoleCommandSender CONSOLE_SENDER = Bukkit.getConsoleSender();
    public static FileConfiguration config = FloorIsLava.plugin.getConfig();
    @Override
    public void onEnable() {
quaint mantle
#

@drowsy helm

river oracle
#

I hate maintainability too tbh

ivory sleet
#

if this is possible from a semantic pov:
variable a = 10

function x(y) {
y = 20
}

log(a) //10
x(a)
log(a) //20

then and only then is a language pass by reference, now does java allow this semantic behavior? No it doesnt, therefore its effectively not pass by reference

drowsy helm
#

oh no

somber scarab
#

lmao

ivory sleet
#

Why?

drowsy helm
#

player is null what are you trying to achieve?

ivory sleet
#

Would you want to have everything in global state and never pass around objects, or values for that part?

#

More of a design issue it sounds like

#

No dependency injection isn’t a design issue, your code might have design issues tho

brazen violet
#

i want to ask from my database if the language equals english any ideas how?

drowsy helm
#

static variables are also holding mem refs..?

#

so how is di any worse lol

hazy parrot
ivory sleet
#

Yeah you do use some bytes here and there extra

drowsy helm
#

eh its negligible

ivory sleet
#

But given the advantages I don’t mind it

#

But yeah this i why AtomicFieldUpdater was added to java for instance

drowsy helm
#

we have gigabytes of memory im sure a few bytes wont hurt lol

ivory sleet
#

(As a substitute for AtomicReference)

#

Still dont have to worry

#

Yeah fair

#

Well I doubt you have to resort to data oriented design anytime soon

river oracle
#

I mean its fair to think about memory while constructing a project, but I wouldn't sacrifice maintainability and readability, especially in Java just to squeeze out a few less kilabytes of ram usage

ivory sleet
#

^, unless you run into having millions/billions of data transfer objects

torn shuttle
#

hahaha brrrrrrr

river oracle
#

rather not think about that outside of production lol

drowsy helm
#

the player?

torn shuttle
#

garbage collection is for losers just buy more ram

drowsy helm
#

do you know what null is

river oracle
#

what OS you run?

#

try arch with xfce should absolutely eliminate ram usage lol

ivory sleet
torn shuttle
#

when my house is full of trash I buy a new house

#

why would I not do the same thing with my ram

ivory sleet
#

When my bank account is full of money, just buy a new bank account?

torn shuttle
#

when I max out a credit card I just get a new credit card

vivid cave
#

what are inventoryMenu.active and inventoryMenu.checkReachable ?

glad prawn
#

Try get nearby entities around it and then pass the nearest player?

torn shuttle
#

oh I think I cracked the code

drowsy helm
torn shuttle
#

I think I have entered the mainframe

#

boys hold my beer

#

this looks correctly rotated

#

naaaaaaay it failed

rough drift
#

it was already a feature lmao

torn shuttle
#

give me a break

rough drift
#

just for like environment though

#

yes

hazy parrot
#

til

torn shuttle
#

so close and yet so far

river oracle
#

that looks like custom blocks

#

what is that

torn shuttle
#

it's art, your primitive mind wouldn't understand it

torn shuttle
#

ok so I think I am correcting the origin correctly for the Y axis but for some reason when I apply the same math to the other axes it loses its mind

visual laurel
#

how can i set a players primary group in vault?

torn shuttle
#

is this what a number one victory royale looks like?

#

it's only slightly off now

rain patio
#

are worlds stored as a world variable in a class or would you store as a string?

vital yacht
#

UUID

rain patio
#

so .getWorld() would return a UUID? I've not looked at the doc for it yet

brazen violet
#

So guys im trying to ask from my database if the language is like english any ideas how?

glad prawn
#

getUniqueID but shorter xd

rain patio
#

so I've got an event menu with created events and stuff, and when the player creates an event their location gets saved the location gets stored in a JSON file and I tried saving it as a World type but it gave me some weird ass answers so I tried saving it as a string and using getWorld().toString(), no clue what to do here cause it didn't give me any errors so far

#

for some reason my minecraft wont launch either it's been like 5 minutes and I've launched it 3 times and the game hasn't even popped up yet but it says its still running

green prism
#

Hello everyone. Would you mind taking a look at my code regarding randomTP? It should always bring players to the surface in any world. The problem, is that to find a safe place in the end it takes ages.

https://paste.md-5.net/jibidafina.java

#

Maybe there's something that I can optimize

#

For height limits, I improvised now, the design needs to be improved but the concept is that. I apologize for the mess

hazy parrot
brazen violet
#

ok thanks

river oracle
#

it's been so long since I've made a mini game :( and this time I don't have my game engine

#

this is a sad life

timid hedge
#

How do i ingore if a player has op?
Becuase i have a command with opens a gui and if you have permission test.1 it sets grass in the menu and if you have permission test.2 it sets stone in the menu
But if i have permission test.1 and i am op it sets stone inthe menu

torn shuttle
#

aaaaaaaaaaaand it's done

#

completely done

#

rotations, uv mapping and scaling, display scaling, big models, offset cubes for maximized size, variable texture resolutions, format conversion, resource pack generation, import process

#

finally

vivid cave
#

gg πŸ™‚

vital sandal
#

chaos ;-;

river oracle
#

me about to do some fucking stupid ass math to switch all my custom bound system into BoundingBoxes only to realize I could just idk. check those numbers maybe

green prism
#

Does #Player.getPing() work correctly?

river oracle
#

I'd assume so if it doesn't you should report it

somber scarab
#

I approve and love that

green prism
hazy parrot
chrome beacon
#

Register the permission and set it to not be true by default when op

timid hedge
#

I want so it shows what it normallys shows
Like if you have permission test.1 it shows grass
And if you have permission test.2 it shows stone
and right now if i have permission test.1 and i am op it shows stone becuase i am op

chrome beacon
#

plugin.yml or use the permission class

#

It's up to plugin authors

timid hedge
chrome beacon
#

That's the commands section

#

You'd want the permissions section

#

Google the plugin.yml format

timid hedge
#

I got a permissions now

#

Do i need permissions or default-permissions?

hazy parrot
#

more or less, yes, as sentence from docs say

vivid cave
#

if I listen to InventoryEvent, do i listen to all types of InventoryEvents at once? like inventoryclick, inventorydrag, etc ???

#
    @EventHandler
    public void inventoryEvent(InventoryEvent event){}```
#

like that

quaint mantle
#

I don't find a way to set the footer and header of the tablist in 1.8.8 spigot

#

Im having some trouble trying to find a way to do this:
I have a folder with custom entities, which i would like to loop through so i can pick one out using a command, i already got the way to loop through the folder but how would i save them and be able to dynamically get one using a command, i also need to give arguments to the constructor

#

the is no method with Player

hazy parrot
#

Basically encapsulation you get ig

timid hedge
quaint mantle
river oracle
#

is Bukkit#getPlayer a relatively fast method givent he player is 100% online

quaint mantle
river oracle
vivid cave
river oracle
chrome beacon
# quaint mantle what

There is no spigot api for that in 1.8. You need to use the Minecraft internals directly

vivid cave
river oracle
hazy parrot
#

Just have method that takes InventoryEvent, put your logic there and make listener for every event and pass it into method

#

Seems stupid, but idk if there is smth better

vivid cave
#

i need to do black magic 😈

#

but pls tell me

#

how to listen to all at once

hazy parrot
#

I just told you

river oracle
#

if you want to refresh something (given a fixed rate of time). you should use a runnable and start it on open end it on close

vivid cave
river oracle
#

uhm less repetition in code

chrome beacon
# quaint mantle any guide?

When working with nms you'd generally rely on your own Java skills and read decompiled Java code. 1.8 is old so there's probably a guide for you somewhere.

If you're asking how to get access to nms, simply change spigot-api to spigot in your pom and run BuildTools if you haven't already

river oracle
#

imagine having to write the same thing over and over again like 10 times

#

I'd just kms

vivid cave
#

fair

#

well i want to kms rn cuz lazy to add all fucking inventory events

river oracle
#

what are you trying to do

vivid cave
#

black magic

river oracle
#

no like really

#

there might be a better way

hazy parrot
wet breach
hazy parrot
#

That is why you can't listen to abstract one, as all "listenable" events have static list of handlers

vivid cave
#

not really;
because basically some items are special (they have some nbt)
and i shall then spam setslot packets (animation), the animation is fake, like the items are not really getting replaced
but yeah that needs to happen for any inventory, for any event inventory (because no there isn't a proper way to do that for the itemstack only, in fact in the process of inventory events, itemstack instances are lost, we can't keep track of them this way)

vivid cave
wet breach
#

not sure what makes you think they are inherently lost?

#

yes, if the inventory instance goes away that is true

quaint mantle
#

Whats the packet in protocollib to create a new entitiy

wet breach
wet breach
#

or custom ones?

vivid cave
wet breach
#

then nvm, not wise to just hold inventory instances for all the players πŸ˜›

vivid cave
#

@wet breach the thing is, you should more consider that i'm animating the inventory rather than actively replace the itemstack
ideally, itemstacks remain unchanged

vivid cave
wet breach
#

actually

vivid cave
#

it's a project i'm on for 2 years lol

wet breach
#

you probably could hold the inventory instances

vivid cave
#

like their reference is dropped & replaced

#

i don't know why

#

its just how it is

wet breach
#

if the player disconnects or leaves the server the instance for the inventory of player will be lost

vivid cave
#

it's not the only case

wet breach
#

otherwise the player object always holds a valid inventory instance for said player

#

not sure how it wouldn't

vivid cave
#

it was my first attempt, i ended up making too many difficulties/exceptions

molten sleet
#

Hello. I have a question about the Spigot site. May I ask it here?

wet breach
#

sure

molten sleet
#

I have a premium plugin on Polymart. Can I upload a free demo version of this plugin to spigot, and for those who want a full link to polymart?

vivid cave
#

@wet breach on the subject of inventories;
any clue what inventoryMenu.active & inventoryMenu.checkReachable are for

#

what does active / reachable mean

wet breach
quaint mantle
#

Whats the packet in protocollib to create a new entitiy

pseudo hazel
molten sleet
wet breach
molten sleet
#

For example, the popular Eco plugin. If you go to his git, there will be a link to polymart

wet breach
#

you can't advertise on spigot's site

quaint mantle
vivid cave
pseudo hazel
#

ah

molten sleet
atomic brook
#

which channel should i go for git bash BuildTools error

pseudo hazel
#

yeah than its pretty much what frost says

molten sleet
#

I meant it

river oracle
molten sleet
#

@wet breach also possible?

vivid cave
pseudo hazel
#

I guess

#

try it out

wet breach
#

active most likely means the one being interacted with or opened. As I said I am not entirely 100% sure

vivid cave
#

no

pseudo hazel
#

oof

#

I dont remember teh commands

wet breach
# molten sleet

the reason their github is linked is because its a resource that is opensource

molten sleet
#

ok. thanks

pseudo hazel
#

if its open source, how can it be a premium resource

#

is there like a license key or something

wet breach
#

no

#

there isn't anything against selling a resource that is open source

#

that is completely allowed

quaint mantle
#

oraxen is paid and is open source

pseudo hazel
#

I know

quaint mantle
#

they have like 2k buys or smth like that

pseudo hazel
#

well I guess yeah

#

it depends on the person

wet breach
#

its more or less paying for convience that it is already compiled and to support the devs

pseudo hazel
#

but I imagine people just building the plugin on their own

#

yeah makes sense I guess

#

just like Aseprite

wet breach
#

Not everyone knows how

pseudo hazel
#

fair

hushed scaffold
#

the player.attack() method uses the players mainhand item right? so if the player was holding a sword for example and i did player.attack(target) it should use the sword to calculate the damage?

wet breach
#

and those inventories are shared between players

#

so, a player could have opened one, and then closed it, but it could still be opened for another player

#

so this doesn't mean that inventory completely closed

#

since the InventoryHolder is a block and not a player, you need a way to check if that inventory is still active IE opened

vivid cave
#

@wet breach do you know what the state id (also called revision) is for an inventory view ?
I'm confused what to put in this field of my SetSlot packet.

I can find ServerPlayer.inventoryMenu#containerId, would it be the window id of the currently opened inventory for player?
ServerPlayer.inventoryMenu#stateId and ServerPlayer.inventoryMenu#incrementStateId
which one of those should i use for my packet ?

wet breach
#

state id has 2 states

#

it either changed or it hasn't changed. The id changes if it changed, and then it gets sent to the client if the server made a change

#

the opposite is true from the client

#

both send periodically the same state id to infer the inventory has not changed

vivid cave
#

so in my setslot packets i should ServerPlayer.inventoryMenu#incrementStateId() right ?
to tell them it has updated? (or pretend it has)

chrome beacon
hushed scaffold
wet breach
#

or refresh it

vivid cave
#

ohhh

#

so i should put the same state id than before with ServerPlayer.inventoryMenu#stateId

quaint mantle
wet breach
#

the client will attempt to update the id if it made a change

vivid cave
#

i just want to send SetSlot packets (fake packets)

#

i mean

#

client should think the inventory changed

#

display smth else

wet breach
#

then increment the state id if you want the client to thing it changed

vivid cave
#

but server side it should stay the same

wet breach
#

the state is synced

#

between client and server

#

both need to have the same states

pseudo hazel
#

how can I find out in what version some api thing was added?

#

nvm im dumb

#

well i mean I would still like to know but I misread something which is why i couldnt find it

hushed scaffold
quaint mantle
spare hazel
#

HypixelSkillCore.getInstance().getServer().getPlayer(uuid).setMaxHealth(health);

warning : Method invocation 'setMaxHealth' may produce 'NullPointerException'

am i forced to find another way?

vivid cave
#

so,

  • i send a setslot packet with ServerPlayer.inventoryMenu#incrementStateId()
  • client updates the inventory
  • client synchronises to server the state id
  • server inventory hasn't changed, only client side has
wet breach
chrome beacon
quaint mantle
chrome beacon
#

?bt

undone axleBOT
spare hazel
hushed scaffold
vivid cave
wet breach
# vivid cave so, - i send a setslot packet with ServerPlayer.inventoryMenu#incrementStateId()...

when you increment state id, the server tracks the id changed, sends that along in the packet. The client then sees that and refreshes. The client after a time then responds back about the state of the inventory and it sends that id you set back to the server. The server acknowledges that the client hasn't made a change. If the client had made a change it would also increment the id and send that to the server. Server would then be tracking the new state id because both client and server needs to be the same

remote swallow
vivid cave
#

else client won't see that i asked it to change

wet breach
#

exactly

vivid cave
#

okay ty

wet breach
#

however, any modifications to the inventory automatically causes server to increment the id too just fyi

#

you only use that method if you just want the client to do a refresh

vivid cave
#

but i don't modify the inventory; i just send packets

wet breach
#

just letting you know that other things cause it to increment too

quaint mantle
#

@chrome beacon just done like you said

torn shuttle
#

do you know what the definition of insanity is

vivid cave
torn shuttle
#

it's doing the same thing over and over again and getting different results

hushed scaffold
#

thats sanity

chrome beacon
hushed scaffold
#

cus insanity is where you do the same thing over and over again with it never changing , but still hoping for a different result if i remember correctly

vivid cave
# wet breach exactly
new ClientboundContainerSetSlotPacket(session.inventoryMenu.containerId, session.inventoryMenu.incrementStateId(), slot, CraftItemStack.asNMSCopy(this.armor))

does that look good enough?
I fluked litteraly every knowledge (except your confirmation on increment thinggie)

#

i don't know what else to put in the first field of the packet

#

its supposed to represent window id

#

(session = some ServerPlayer)

hushed scaffold
#

hey , im tryna make like an area damage skill , where when the player does a certain action ( for example right clicks ) the player attacks all players in a certain radius.
is player.attack(target) the correct thing to use? i want it so it calculates damage based on the players mainhand item ( so for example with sword , axe etc )

quaint mantle
#

I have instaled build tools, and all that staff but can fix it to use nms spigot

#

when I reload the maven got error

chrome beacon
#

Is it done building?

quaint mantle
vivid cave
#

also last question
are raw slots (integer) in bukkit the same than the ones sent in packets for SetSlot ?

vivid cave
#

or are they two things apart

hushed scaffold
chrome beacon
kind hatch
# quaint mantle

This doesn't look like it's finished running. There should be a completed jar in that folder unless you specified a directory using --output-dir

quaint mantle
chrome beacon
#

?

quaint mantle
#

I did the command java -jar BuildTools.jar --rev 1.8.8

#

then wait and just did that

kind hatch
undone axleBOT
quaint mantle
#

now it's correct

#

thanks all of you

#

Whats the best way to add custom entities which i can easily loop through to pick one out by name/id

#

and sorry to be so dump

pseudo hazel
#

I cant remember but was there a reason for the playerinteract event to fire for both left_click_air and right_click_air when I right click with an item in the air?

cedar pine
#

Fellas does this code look okay?

package dev.eternatum.eternatumskills.listeners;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;

import dev.eternatum.eternatumskills.misc.ItemTypes;
import dev.eternatum.eternatumskills.misc.BlockTypes;
import org.bukkit.configuration.file.FileConfiguration;

public class ArmorStands implements Listener {
    private Plugin plugin;
    private FileConfiguration config;

    public ArmorStands(Plugin plugin) {
        this.plugin = plugin;
        ItemTypes.setPlugin(plugin);

    }

    @EventHandler
    public void onBlockBreak(BlockBreakEvent event) {
        Block block = event.getBlock();
        Player player = event.getPlayer();
        Material blockType = block.getType();
        ItemStack tool = player.getInventory().getItemInMainHand();

        // Check if the broken block is a mining block type
        if (isMiningBlock(blockType) && ItemTypes.isMiningTool(tool)) {
            player.sendMessage("You the correct tool to break this block!");
        }
    }

    private boolean isMiningBlock(Material blockType) {
        for (Material miningBlock : BlockTypes.MINING_SKILL_BLOCKS) {
            if (miningBlock == blockType) {
                return true;
            }
        }
        return false;
    }
}
remote swallow
#

?interactevent

undone axleBOT
#

The PlayerInteractEvent may be called once per hand. If you only want code to be executed once, you can check the result of https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerInteractEvent.html#getHand(), then decide functionality.

For example, only executing code if the main hand was used:

@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
    if (event.getHand() != EquipmentSlot.HAND) { // * if the hand used is NOT the main hand:
        return; // do not progress past this point  |
    }
    // provide functionality
}
pseudo hazel
#

im not talking about that

cedar pine
#

It's not displaying the text saying I don't ahve the correct code

pseudo hazel
#

im talking about left and right click

#

I already ruled out the fact that its the wrong hand

#

i mean for now I can just ignore right click air actions since it will fire again for teh left click, but still, its kinda weird

#

nvm it only happens for certain items

#

like the MAP

#

wtf

terse bough
#

https://ibb.co/FnHq0Q4
is there still this method to read packets, because I do not find in version 1.20 the method to get the channel from the player

fervent robin
terse bough
#

which e.g. to read only packets

fervent robin
#

I like ProtocolLib a lot but theres a lot of options

tranquil prairie
#

Whats the recommended way to deal with loading 52 placeholders. These are all loaded on the first player join of the startup so it lags the player a lot while its loading in. Im using PlaceholderAPI for placeholders. Any solutions or ideas to help solve this?

timid hedge
#

How do i add a name and a lore to a item i give to a player?

            ItemStack itemStack = new ItemStack(Material.BOW, 1);
            p.getInventory().addItem(itemStack);
fervent robin
terse bough
fervent robin
quaint mantle
#

Whats the best way to procedurally generate something like a dungeon, like i just want like 5 different random rooms connected straight after each other

remote swallow
#
ItemStack stack = ...;
ItemMeta meta = stack.getItemMeta();
meta.setLore(string list);
stack.setItemMeta(meta);
timid hedge
vast ledge
#

you need to reaply the meta

#

after editing it

timid hedge
#

What do you mean?
How to i reply the meta?

I got this right now:

            ItemStack itemStack = new ItemStack(Material.BOW, 1);
            ItemMeta meta = itemStack.getItemMeta();
            meta.setLore("This is the lore");
            itemStack.setItemMeta(meta);
            p.getInventory().addItem(itemStack);
            p.sendMessage("You got a bow!");
        }));
remote swallow
#

meta.setLore(List.of("This is the lore"))

timid hedge
#

I am getting this error
What havent i done right?
Cannot resolve method 'of' in 'List'

timid hedge
#

1.8

remote swallow
#

ah

#

use Arrays.asList("This is the lore");

fervent robin
#

Wym doesnt work? You dont get the effect? Do you get an error?

#

Did you register the event?

timid hedge
tranquil prairie
#

Whats the most efficient way to load 50 placeholders?

echo basalt
#

What kind of placeholders

vivid cave
#

can i listen to InventoryInteractEvent? (or is it just an abstract class)

tranquil prairie
echo basalt
#

And what do you mean by load

vivid cave
echo basalt
#

For PAPI I just have a big Map<String, Function<Player, String>> but some of the placeholders can be a bit wonky

vivid cave
# fervent robin Yeah

So for example, InventoryInteractEvent & InventoryClickEvent would fire both at the same time when i do an "inventory click" ?

tranquil prairie
fervent robin
river oracle
tranquil prairie
echo basalt
#

Oh so you have placeholders for values in the database

timid hedge
#

Why dosent my bow get a lore?

            ItemStack itemStack = new ItemStack(Material.BOW, 1);
            ItemMeta meta = itemStack.getItemMeta();
            Arrays.asList("This is the lore");
            itemStack.setItemMeta(meta);
            p.getInventory().addItem(itemStack);
            p.sendMessage("You got a bow");
remote swallow
#

you dont set the lore

vivid cave
remote swallow
#

meta.setLore(Arrays.asList("This is the lore"))

river oracle
#

lol

#

you just made an array list

river oracle
echo basalt
#

For that you might want to look at CompletableFutures and return a temporary value until the data's available

tranquil prairie
#

fuck i hate completable futures

vivid cave
tender shard
#

futures are great

tranquil prairie
#

I might just cache the place holders on startup

echo basalt
#

I kinda do this at work

#

Might switch from AtomicReference to something else

#

like a future.getNow

tranquil prairie
#

does that work with papi or that a custom placeholder plugin

river oracle
timid hedge
remote swallow
#

meta.setDisplayName(String)

quaint mantle
#

Procedurally Generated Dungeon

vivid cave
tender shard
#
        ItemStack ingredient = new ItemStack(Material.DIAMOND);
        ItemMeta meta = ingredient.getItemMeta();
        meta.setDisplayName("Special Diamond");
        ingredient.setItemMeta(meta);
        ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(myPlugin, "test"), new ItemStack(Material.DIAMOND_PICKAXE));
        recipe.shape("X");
        recipe.setIngredient('X', new RecipeChoice.ExactChoice(ingredient));
        Bukkit.addRecipe(recipe);
#

this turns a diamond named "Special Diamond" into a pickaxe

timid hedge
remote swallow
#

"bought by" + player.getName()

river oracle
#

go ahead and try

river oracle
river oracle
vivid cave
#

ah okay

river oracle
vivid cave
#

oki

#

well things should be more easy to understand

#

but thx for help

timid hedge
remote swallow
#

id recommending wrapping it in ChatColor.stripColor

#

so you dont get a coloured name

quaint mantle
#

how can I get the version and set it at the pom.xml, i mean to take plugin.yml version and set it with a variable on the pom.xml

remote swallow
#

resource filtering

quaint mantle
#

example?

tender shard
#

and in pom:

#
<project>
  ...
      <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
river oracle
vivid cave
#

kk

river oracle
#

as you know you can't instanciate an abstract class

#

so there'd be no way to fire it

remote swallow
#

use reflection to make it a normal class

quaint mantle
river oracle
remote swallow
#

blow up the houses of parliment?

river oracle
quiet ice
#

Unless you use reflection to register a Javaagent to hotswap the class to make it a normal class

#

Can this work? There is a slight chance. Should you do it? Absolutely not.

remote swallow
river oracle
#

that's my friend though

river oracle
tender shard
#

what would even be the purpose of trying to make an abstract class not abstract?

flint coyote
#

maybe the abstract class should not be abstract. But even then you could just create a class that extends it an changes nothing

#

Also Alex since you are finally here, how was your benchmark?

tender shard
#

oh tbh I forgot to look at it when it was done lol

#

lemme do it again

flint coyote
#

lmao

brave goblet
#

How can I allow moss to grow with endstone?

tender shard
#

10 minutes per method so 60 minutes in total

young knoll
timid hedge
#

Why dosent this work?
meta.addEnchant(Enchantment.KNOCKBACK, 2);
I am trying to give a stick of knockback 2 to a player

            ItemStack itemStack = new ItemStack(Material.STICK, 1);
            ItemMeta meta = itemStack.getItemMeta();
            meta.setLore(Arrays.asList("This is the lore"));
            meta.setDisplayName("Stick");
            meta.addEnchant(Enchantment.KNOCKBACK, 2);
            itemStack.setItemMeta(meta);
            p.getInventory().addItem(itemStack);
frigid rock
#

Hello, i'm storing in a hashmap whether a player has pvp on or off, how do i save the hashmap when server is reloading? (I think that using .yml files or mysql are too overkill for something like this)

carmine mica
young knoll
river oracle
flint coyote
carmine mica
#

you can register a listener for any event for which it, or a supertype has a HandlerList declared on it with both getHandlerList methods

brave goblet
#

is there a method to do this with a plugin or?

river oracle
#

interesting enough though

#

?jd-s

undone axleBOT
river oracle
#

so you could technically register and Use PlayerEvent lol

carmine mica
#

no

#

because it or a supertype doesn't have a HandlerList declared on it. that's what I said

river oracle
#

mmm read that wrong

olive lance
#

What is good private vpn server software

zealous needle
#

does anybody know why this could not be working?

quaint mantle
#

Any1 know anything about the worldedit api?
Trying to load a schematic but i have to create/get an edit session,
this requires a World as parameter but its from com.sk89q.worldedit.world.World;

chrome beacon
frigid rock
quaint mantle
frigid rock
#

you can read worldedit's wiki, it's all there

chrome beacon
quaint mantle
chrome beacon
#

It's a part of the WorldEdit bukkit dependency

#

And it's the class that converts between bukkit loc and worldedit loc

#

And other things

quaint mantle
#

thanks

frigid rock
#
World worldEditWorld = BukkitAadapter.adapt(p.getWorld());```
quaint mantle
#

would it be smart to use schematics and the worldedit api for procedually generated dungeons?

#

cus im not gonna lie, jigsaw blocks and structure blocks aint it

frigid rock
#

Hello, i'm storing in a hashmap whether a player has pvp on or off, how do i save the hashmap when server is reloading? (I think that using .yml files or mysql are too overkill for something like this) (i remember doing it a lot on the past but i can't remember how i used to)

tender shard
#

you can use the player's PDC to directly store it per player

frigid rock
#

oh thats how thanks, i forgot about persistent data containers

tender shard
#

in 1.20.1 there's a new datatype for booleans (on/off)

#

in older versions, you can just use a byte, 1 = on, 0 = off or sth

frigid rock
#

okay thanks guys!

tender shard
#

np

quaint mantle
frigid rock
#

ofc its better, it avoids use of NMS code as it might be abandoned in the next release

quaint mantle
#

how about being able to change textures using a texture pack with pdc? is that possible?

chrome beacon
#

PDC is stored as nbt

tender shard
chrome beacon
#

No

#

You can't use that on blocks

young knoll
#

^

tender shard
#

erm yeah I explained it wrong

young knoll
#

You use it on items for custom textures tho

tender shard
#

custom model data for the inventory icon

quaint mantle
frigid rock
#

itemstacks, not blocks

tender shard
#

then noteblocks / mushroom blocks with with weird overrides in the resource pack for placed blocks

young knoll
#

Sure just set the customModelData of the pickaxe

chrome beacon
tender shard
quaint mantle
#

ill consider

timid hedge
young knoll
#

Or you can use Mojang schematics

#

Keep in mind they have a bigger file size tho

quaint mantle
#

is there a gradle dependency for spigot 1.20.1?

chrome beacon
#

Yes

#

Gradle uses maven dependencies

#

?gradlw

#

?gradle

#

?maven

undone axleBOT
chrome beacon
#

Uh convert that or use the link

quaint mantle
#

My eclipse cant find it.

chrome beacon
#

Show your build.gradle

#

?paste

undone axleBOT
young knoll
#
repositories {
  maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' }
  maven { url = 'https://oss.sonatype.org/content/repositories/central' }
}

dependencies {
    compileOnly('org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT')
}```
quaint mantle
# young knoll Sure

im thinking of a good way to create a connection point in the schematics tho

tender shard
young knoll
#

shh

tender shard
#
maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
young knoll
#

You need both on gradle

#

Sadge

#

At least according to the wiki you do

tender shard
#

iirc sonatype is for bungeecord and bungeecord-chat

#

but idk

#

it's funny how bungee's listener system is much better than spigot's lol

wet breach
#

well, have to remember a lot of the code is from CB

#

bungee has nothing to do with CB code

quaint mantle
#

wait which java version do I need to use the spigot 1.20.1 api?

tender shard
#

java 8

wet breach
#

17 minimum

tender shard
#

the API is java 8

young knoll
#

Api requires a min of 8

#

I would use 17 tho

carmine mica
tender shard
#

well why bother forcing java 17 if it doesnt use any java 17 features

river oracle
#

good question is why haven't we bumped to java 17 yet

tender shard
#

it's basically only interfaces

young knoll
#

No reason to

river oracle
tender shard
quaint mantle
#

so preferable java 8?

river oracle
carmine mica
#

you are creating a chicken & egg situation. You can't use newer java features cause you don't compile with it, but you don't have a reason to compile with it cause you don't use features

#

private interface methods, records, better instanceofs

tender shard
#

I'd only use java 17 if my plugin is 1.18+ only

river oracle
tender shard
#

1.17 uses java 16

quaint mantle
#

okay my plugin is supposed to be only 1.20. I reckon I should use 17

wet breach
#

if it were me, I would bump the java version on the api

carmine mica
#

now, they are bumping to java 9 on the experimental branch but that version isn't LTS

wet breach
river oracle
#

java 9

carmine mica
#

that's my thing, and I said as much on the 2 PRs that bump it

#

at least bump to the next LTS version, 11

river oracle
#

I think I might make a comment as well

carmine mica
#

they are bumping because they want private methods on interfaces, so technically that only requires java 9, but its so weird to not use an LTS version imo

wet breach
quaint mantle
#

what repositories are necessary for 1.20.1 api? Just to check incase I forgot one

undone axleBOT
terse bough
#

https://ibb.co/Yt5XqCn
Does anyone know how to get the channel from a player from version 1.20, since this method no longer exists. And yes I know that I could use a packet API.

wet breach
#

that is the downsides of nms

#

methods change

#

its still there, just different now

carmine mica
#

thats the server, the api still compiles with 8

river oracle
#

oh

carmine mica
#

the server requires 17, cause mojang uses it and uses newer features

terse bough
wet breach
#

don't know haven't messed with 1.20 NMS yet

kind hatch
wet breach
#

just going to have to search for it lol

wet breach
quaint mantle
wet breach
#

the API doesn't use anything in the later versions that was introduced in those versions

carmine mica
#

that is a bad reason due to the chicken and egg thing I mentioned earlier

#

how can it "use" those features if you don't first bump the version

wet breach
#

you can't use something you are not using

carmine mica
#

you just spend extra effort or design poorly things to avoid using newer features

river oracle
terse bough
carmine mica
#

like private methods in interfaces, or records

wet breach
carmine mica
#

not old api, new stuff

#

that's why they are bumping to 9 in the first place, new api

wet breach
#

Ok, even then, a lot of the API doesn't have a use of new Java features

river oracle
#

...

#

oh my

#

you've really missed the point

#

you are creating a chicken & egg situation. You can't use newer java features cause you don't compile with it, but you don't have a reason to compile with it cause you don't use features

carmine mica
#

well apparently it does a little cause they are going to 9. You can't use the package-private record + interface pattern, which is nice for API designs

wet breach
#

I haven't missed the point, I understand their reason for wanting to bump to 9, they want to using something in the API but was only introduced as early as Java 9

river oracle
#

we can use features in the future where needs if applicable its better to have it than not have it

carmine mica
#

missing the way better switch statements for any switches that need to be in the API

kind hatch
wet breach
#

The only time a version bump in Java is necessary is if something being introduced into said api requires it

wet breach
#

Java 11 will contain everything in java 9

kind hatch
carmine mica
#

11 isn't outdated, its still supported right?

wet breach
#

its outdated and EOL

#

Java 17 is almost EOL as well

fresh timber
#

is there any reason that the PDC of a player that I added with my plugin would get cleared (I did not change it in my plugin and no plugins I have would have changed it) ... Randomly, ppl's PDCs are getting wiped for no reason. It happens like randomly every few weeks. Anyone know why this would happen?

river oracle
#

I wouldn't say 6 years is close to EOL

kind hatch
wet breach
#

extended support maybe

vast ledge
#
switch(life){
  case true -> entity.live();
  case false -> entity.revive();
}
carmine mica
#

11 gets security updates for 3 more years

carmine mica
#

17 gets security updates for 6 years

kind hatch
vast ledge
#

oooh

#

are we fighting about best java version?

river oracle
kind hatch
wet breach
#

extended support will still be there but that is only for enterprise

vast ledge
#

Just use java 19

river oracle
#

πŸ’€

kind hatch
#

What he said

vast ledge
#

angers everybody here

river oracle
#

lol

round finch
#

me: using java 20

vast ledge
#

Me using java 9 because i can

wet breach
#

another site that makes it easier to see

fresh timber
#

Is there any reason that the PDC of a player that I added with my plugin would get cleared randomly? (I did not change it in my plugin and no plugins I have would have changed it) ... Randomly, ppl's PDCs are getting wiped for no reason. It happens like randomly every few weeks. Anyone know why this would happen?

kind hatch
chrome beacon
#

Do they get cleared on death?

#

Might want to test that

vast ledge
#

yea

#

that would make sense

fresh timber
# vast ledge is it a saved file?

idk what you mean, when I set the PDC i just say player.getpersistentdatacontainer().set(key, the persistent data type, and the value)

kind hatch
fresh timber
#

i dont create a file to put it in if thats what you mean

wet breach
vast ledge
#

dont pdc's get cleared on restart?

fresh timber
#

no they dont

vast ledge
#

ok

fresh timber
#

they stay

vast ledge
#

just making sure

fresh timber
#

alright

chrome beacon
vast ledge
#

could be that there is a cap on max chars in a pdc

fresh timber
#

hmm

kind hatch
wet breach
#

I wonder if anyone has tested like how much data you actually could store in it before it just dies and resets

vast ledge
#

we can test this

fresh timber
#

i dont think so

carmine mica
#

are you randomly deleting your playerdata folder?

fresh timber
#

i think the int limit

#

but

vast ledge
#

hes using pdc

vast ledge
carmine mica
#

pdc is stored in the playerdata file right?

vast ledge
#

yea

wet breach
vast ledge
#

but then everyhting would be wiped

#

not just his data

fresh timber
#

yea

#

its like 1 dude gets his pdc wiped randomly

#

not everyone tho

vast ledge
#

does he have a weird username maybe?

wet breach
fresh timber
#

uhm no

fresh timber
wet breach
#

If it is just that single person, I can only assume they are using a hacked client to attempt to do something malicious but inadverntently whatever it is causes their Player data to reset or at the very least the PDC

#

I would see if you are getting some weird packets

fresh timber
#

hmm

vast ledge
#

could be that theyre overloading the pdc

#

like with books

fresh timber
#

i dont think so

#

some ppl that are staff are getting reset and some good friends that ik wouldnt hack

wet breach
#

oh its more then a single person

vast ledge
#

you said its only one guy πŸ’€

fresh timber
#

one guy at a time

#

but every couple weeks another one gets it

wet breach
vast ledge
#

what are you saving in the pdc?

fresh timber
wet breach
#

I would check for 2 things

fresh timber
wet breach
#

first, check you didn't run out of space

#

second check for hard drive failure

fresh timber
#

alright

vast ledge
#

but wouldnt more get corrupted?

#

not just a pdc?

wet breach
#

not necessarily

#

when chunks are created space is precreated for them

#

so they have space reserved already

#

PDC doesn't do this

mellow pebble
#

?paste

undone axleBOT
kind hatch
#

I don't think it's a bad drive. If it only applies to people's player data, that's too coincidental for a random disk failure.

vast ledge
#

?

wet breach
vast ledge
#

You could try outsourcing the data

#

into its own file

#

and see if ti still happens

fresh timber
#

yea ig

vast ledge
#

then you excluded disk failure

fresh timber
#

but its so confusing for me

#

I used to use a mysql database I just couldnt

#

so confusing

vast ledge
#

mysql is fun

fresh timber
#

nah

vast ledge
#

mongo is harder

#

but it also fun

#

data analytics is also fun

fresh timber
#

i wanna try to make my own file in the server but i aint got any ideas how to do that

wet breach
#

yeah definitely would see if your home directory, which is where most people put their servers ran out of space

vast ledge
#

you could try with a json file

kind hatch
vast ledge
#

i think its not going to be a hard drive

#

ssd

#

more likely

wet breach
vast ledge
#

USE PASTE

wet breach
#

and that dead sector happens to be where the playerdata directory is at

quaint mantle
#

yeah mb forgot

fresh timber
wet breach
#

and its also possible other directories are affected just unknown

quaint tapir
#

ItemMeta itemmeta = item.getItemMeta();
if (runeName(rune).equals("Jagged")) {
itemmeta.getLore().add("Every " + JaggedNumber() + " hits stuns enemies");
itemmeta.setDisplayName(ChatColor.GOLD + "Jagged Power Sword");
event.getCurrentItem().setItemMeta(itemmeta);
hi for some reason this code changes the name of the item but not the lore
any help would be great

vast ledge
#

HMMMMM

kind hatch
fresh timber
quaint mantle
wet breach
#

does that show you all the partitions?

#

and shows you space remaining?

quaint mantle
#

the aN method just conmverts a datawatcher to a byte

mellow pebble
#

hi so im making queue system at moment and basically in on inevnotry click i get which item is clicked and of that i get to which server should player be sent and all the necessery stuff that has to be provided inside of QueuedPlayer data class which works as constructor of some sort (that is second code starting from line 15) and i have this queue start function in Queue class that essentially just runs task every 2 seconds to check if someone is in queue and then queue is being sorted by priority that we are getting from QueuedPlayer data class/constructor and the first person with biggest/highest priority is being sent to server that we are also getting from constructor etc etc the problem is there is not even single error but for some reason im not sure if queueStart function is even being called (i call it upon on enable of plugin) so im added to queue and everything but seems like im not being sent even though im connected with bungeecord and channel should be settuped properly so any help would be really nice https://paste.md-5.net/podipikipu.cpp

fresh timber
fresh timber
mellow pebble
wet breach
#

that isn't all of them

fresh timber
#

no fro

kind hatch
#

My best bet is some plugin that you are using is either removing the data intentionally, or one is doing it accidentally when they modify the player data.

fresh timber
vast ledge
#

there should be more

fresh timber
#

should I find a different cmd?

mellow pebble
wet breach
#

points to a virtual mapping

fresh timber
wet breach
#

wonder if that virtual mapping is reporting incorrectly

vast ledge
#

it shouldnt be a virtual mapping tho

fresh timber
#

wanna make a thread for this?

vast ledge
#

yea

#

go for it

fresh timber
#

so we can see text easier

#

PDC getting randomly wiped

wet breach
timid hedge
#

How do i check with group a player is in with luckperms?

mellow pebble
fresh timber
#

alr i made one

vast ledge
fresh timber
#

pdc getting randomly wiped thread

vast ledge
wet breach
vast ledge
#

Im not good enough for debian server yet

#

its to barebones for me

wet breach
#

ubuntu has LVM

vast ledge
#

oh ye

#

i though you mean an OS

wet breach
#

no LVM is a software that manages volumes and partitions

#

typical use of it is for raid setups

shadow night
#

If I set an itemstack in a furnace inventory, do I have to update it or something or can I just leave it like that?

wet breach
#

I assume you have 2 Hard drives but in a raid configuration?

#

anyways I think you might have a soft raid setup with 2 hard drives

fresh timber
#

me?

wet breach
#

if the second hard drive starts failing it will cause issues with the first one

#

no the other person

#

the one with the problem

fresh timber
#

wha

#

im so confused this whole conversation went some weird way

wet breach
#

or is it you with the problem?

fresh timber
#

im tryina fix my pdc getting wiped

#

my pdc keeps getting randomly wiped

wet breach
#

oh it is you

vast ledge
#

@wet breach My new toy

fresh timber
#

i got no idea what yall r talkin abt

kind hatch
wet breach
vast ledge
#

It was only 20€

kind hatch
#

???

vast ledge
#

pretty nice

fresh timber
kind hatch
#

I want a switch for that price. :3

wet breach
#

@fresh timber yes what I was saying was to you

fresh timber
#

the WildMiner plugin is mine

fresh timber
wet breach
#

if you are using LVM odds are you have a soft raid setup as that is the typical use of it and quite common for hosters to provide

vast ledge
#

yea

fresh timber
#

LVM?

wet breach
#

unless you just like using it to manage your volumes

fresh timber
#

what is lvm

vast ledge
#

hosts ussually provide a soft raid or an raid 1 or 2 for servers

fresh timber
#

I host my server on my own computer

vast ledge
vast ledge
#

we didnt know that

wet breach
#

ok so no soft raids

#

then you just like using LVM then lmao

fresh timber
#

i own a server computer that runs vmware which sucks but I have a linux machine in the vmware that runs my mc

wet breach
#

anyways, I would take a look at LVM and see if its reporting any issues

fresh timber
#

i have no idea how to do that xd

kind hatch
#

I swear I think you guys are lookin in the wrong area. It's probably a simple issue with either his plugin, or one of the ones he has installed. :/

vast ledge
#

Yea

#

could also be taht

#

but it would effect everybody

#

and not in such random intervals

fresh timber
#

logical volume management i got no idea what this means

#

or how to check it

fresh timber
#

thats what i thought

kind hatch
#

Does it not just affect players who are online consistently?

fresh timber
#

its never happened while the player is online

#

always the player logs off and when they rejoin, their stats are gone

#

but not every time

#

its pretty rare

vast ledge
#

ok, then have ur plugin scan the data before the players leave, and when they join, and have it output a log

kind hatch
#

Do you have any code that modifies it onJoin and onLeave?

vast ledge
#

so you can get an idea when it happening

vast ledge
fresh timber
#

yea

#

it would happen all the time

fresh timber
kind hatch
vast ledge
fresh timber
#

yea

#

i think i already do

timid hedge
#

How do i check which group a player is in, in luckperms?

fresh timber
#

but what to do with information

vast ledge
#

@fresh timber show us ur onEnable and onDisable

vast ledge
fresh timber
#

alllllrightt

vast ledge
fresh timber
vast ledge
#

MY EYYES

timid hedge
quaint mantle
#

:O

kind hatch
#

How about sharing the code that relates the PDC usage?

vast ledge
#

@timid hedge Do you know how to read?
https://luckperms.net/wiki/Developer-API

fresh timber
kind hatch
fresh timber
#

alright

fresh timber
#

?paste

undone axleBOT
vast ledge
#

Cna you send us ur join event?

fresh timber
#

yea hold on

vast ledge
#

and leave

fresh timber
#

ima try to send a lot of the pdc stuff

vast ledge
#

ok

#

Me having discord on the left while trying to write smth

timid hedge
#

Why dosent this work?

    <dependency>
        <groupId>net.luckperms</groupId>
        <artifactId>api</artifactId>
        <version>5.4</version>
        <scope>provided</scope>
    </dependency>
vast ledge
#

do you have the repository

fresh timber
kind hatch
#

Holy large class

vast ledge
#

thats small

#

have you not heard of my legendary screenshots

#

that are 1920 x 8000

kind hatch
#

What? xD

vast ledge
#

frick

timid hedge
# vast ledge do you have the repository

I dont need to

Maven
If you're using Maven, simply add this to the dependencies section of your POM.

<dependencies>
    <dependency>
        <groupId>net.luckperms</groupId>
        <artifactId>api</artifactId>
        <version>5.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
vast ledge
#

wrong format

chrome beacon
timid hedge
#

Yep
Thanks

pseudo hazel
#

small question, the leather armor pieces are the only ones I can make into any color in the inventory right?

vast ledge
#

yes

kind hatch
#

Yep

pseudo hazel
#

sadge

timid hedge
#

I cant see how i check the players group..

mossy dock
#

i wanna develope a vote plugin with nu votifier. But every version i see isn't as an api available. Any idea why?

vast ledge
chrome beacon
kind hatch
fresh timber
#

exactllllyyyy

#

thats the point

#

nah

#

it does other stuff

#

like display it

#

and it boosts stuff

kind hatch
#

Right, but it's non destructive usage

fresh timber
#

like if your rebirth pdc is set to a certain level it'

quaint mantle
#

what would be a good way to mark spots in a schematic, like in a dungeon schematic for spawnpoints of enemies, do i just add armorstands? So i can get all armorstands and add those locations to a list

fresh timber
#

wdym?

fresh timber
#

it does stuff

#

it sets the values then uses them to boost other stats and blocks they mine

#

that wasnt all the classes that use the PDC btw @kind hatch

timid hedge
#

How do i check if a player is in two different groups?
I am trying to check if the players group is test1 or test2
if (player.hasPermission(getPlayerGroup().equalsIgnoreCase("Test", "Test2"))){

chrome beacon
#

Why is has permission there

kind hatch
#

Cause LP uses permissions like group.admin to specify inheritance.

chrome beacon
#

Yeah but equals would return a boolean

kind hatch
#

Oh yea, you right

#

Idk what they are doing.

kind hatch
fresh timber
#

ehm

kind hatch
#

Timeframes? Player activity? Only offline players?

chrome beacon
fresh timber
#

yea i tried to see a pattern but they just seemed to be playing as they normally do

timid hedge
#

Why does it expect a ;?
p.getWorld().getName().equalsIgnoreCase("A") {

chrome beacon
#

Missing if statement

#

You know you might want to go through Java basics

mossy dock
chrome beacon
#

Ah looks like 2.7.3 failed

storm scaffold
#

Is there a way to find the explosion power of an explosion in the BlockExplosionEvent and the EntityExplosionEvent?

kind hatch
#

#getYield()?

storm scaffold
kind hatch
#

Oh wait, you said power.

#

Don't think there is currently a way to get the power of an explosion.

chrome beacon
#

Power should always be 5

#

In that event since only beds and respawn anchors trigger that

#

As for entity explode yeah there doesn't seem to be any api

#

Hm check this one

#

Get the entity from explode event ^

vivid cave
#

where can i check source code of NMS ?

#

i need to do more black magic

#

😈

chrome beacon
#

You can ctrl click classes in your IDE

#

Should open them for you

vivid cave
#

but they don't give the actual code

#

just the architecture

#

like i have the interface

#

but not the impl

placid moss
#

you need spigot craftbukkit + nms as a dependency

#

and then you can check the heirachy of the class with ctrl+h

chrome beacon
placid moss
#

to get the impl class

river oracle
placid moss
#

isn't the "spigot" dependency cover craftbukkit tho

#

idk actually

river oracle
#

adding craftbukkit is redundant

vivid cave
#
package net.minecraft.world.inventory;

import net.minecraft.core.NonNullList;
import net.minecraft.world.item.ItemStack;

public interface ContainerSynchronizer {
    void sendInitialData(AbstractContainerMenu handler, NonNullList<ItemStack> stacks, ItemStack cursorStack, int[] properties);

    default void sendOffHandSlotChange() {} // Paper
    void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack);

    void sendCarriedChange(AbstractContainerMenu handler, ItemStack stack);

    void sendDataChange(AbstractContainerMenu handler, int property, int value);
}
#

i need the source of sendCarriedChange

#

@chrome beacon

#

(what i sent is all i get from my IDE)

river oracle
#

like jd-gui

#

then decompile the minecraft server in your .m2 directory

chrome beacon
#

Ij can already do that

#

It comes with Fernflower

vivid cave
#

bruh y'all confuse me

#

it's the 3rd different answer i get now

#

so,

#

if i decompile will it have the proper mojang mappings ?

river oracle
#

its just different solutions to the same problem, they are all valid. Though if you use IJ listen to Olivo

chrome beacon
vivid cave
#

okay i see

#

i don't have IJ