#help-development

1 messages · Page 446 of 1

lost matrix
#
      if(!ability.flying) {
         while(this.options.keyFly.consumeClick()) {
          ...
         }
       }
      if(ability.flying) {
         while(this.options.keyFly.consumeClick()) {
          ...
         }
       }
#

I dont know what that boolean is for but its useless. So remove it.

sharp bough
#

am i crazy or strings used to be castable to itemstacks?

sharp bough
#

is this the way to do it?

lost matrix
#

What?

young knoll
#

Okay but did you give it that much

#

Tf are you running

lost matrix
#

Your jvm doesnt just grab all your memory on default

young knoll
#

Super buildtools?

worldly ingot
#

To be fair, we do access transform a lot of what Mojang writes so we can use them in CraftBukkit, so I wouldn't attribute the public access modifier entirely to Mojang

young knoll
#

(This is the client)

worldly ingot
#

oh lol

young knoll
#

Sadly we can’t make custom keybinds on the server

#

Yet

lost matrix
#

btw you should probably ask on fabric/forge discord if you are writing mods.
But dont ask on forge discord about fabric help. You will get bullied.

weak meteor
#

from onCommand method, if only the command is given, no sub command, is the strings array null?

#

i think that yes

young knoll
#

No

#

It’ll be 0 length

weak meteor
#

Okay

analog thicket
#

Yo 7smile7 I got the generator stuff done, i just have a little question. When I place a generator, atm im checking through the gens.yml file. Is this okay here? or should i do that the same way as the gens? If that makes sense

#

I was thinking you were the best person to ask, as you know what I'm talking about. (If you remeber lol)

lost matrix
#

My proposal was: One file per player

lethal coral
#

are there any existing apis to track spigotmc external download links for resources

analog thicket
#

But i have a overall file for the generators salesprice and stuff

#

And names, and what type of block it is.

lost matrix
#

You dont want to constantly check files. Thats very expensive.
Especially not for configurations.
onEnable -> load everything into a class

analog thicket
#

Alright, ill change it thanks 🙂

lost matrix
lethal coral
#

that's what I'm using rn for just about everything

#

and I either didn't look hard enough or didn't find something to automatically track external downloads

#

kinda hard to do though

lost matrix
#

I dont think you can track those because external download could need more than one step

lethal coral
#

I'm thinking for my use case only accounting for github repos and then using github's api

#

because otherwise like

#

idk

#

I just don't think anything else is plausible

remote swallow
#

inb4 you come across me over the plugin size limit so serving a static file from my vps

young knoll
#

Tf are you coding that’s that big

remote swallow
#

nohting

#

yet

young knoll
#

Mans shading all of maven central

vernal oasis
#

Is there a way to make it so the give command doesn't discard the excess items and instead just drops them to the ground? Like Essentials breaks it I think?

young knoll
#

You’d need a custom give command

lost matrix
#

Sure. Just add all items and use the Map<Integer, ItemStack> returned by the addItems method
to drop all overflown items on the players feet

vernal oasis
#

so I'd need to make a custom give command

lost matrix
#

Yeah ofc

vernal oasis
#

Is there any stash*?* type plugin like the one on hypixel that excess items goto a like item limbo?

lost matrix
#

Unless you intercept the PlayerCommandPreprocess event

young knoll
#

I mean you’d still need custom logic if you intercept it

#

Sure you could make some kind of system to store excess items

#

Keep them in a database or what not

#

I’m not sure if any exist already

vernal oasis
#

can I have a plugin that modifies another plugin? like super the essentials give command? or something?

lost matrix
#

You can fork essentials and simply change the code

#

I think its open source

young knoll
#

It is

vernal oasis
#

that's very true

young knoll
#

But you can’t really edit their command from your plugin

#

Maybe if you did some bytecode jank

lost matrix
#

In theory

#

Yeah

wet breach
#

In case you didnt know about it

young knoll
#

What

vernal oasis
#

well right now the issue I'm having is if you give item, it says not enough space and just deletes it

wet breach
#

The returned hashmap is all the items that couldnt fit

obsidian plinth
#

is their a way to tell what painting the player places down

tender shard
#

EntitySpawnEvent

obsidian plinth
#

ooo i forget its a entity

#

thx

tardy delta
#

operator overloading when

mortal pollen
#

I need help
how can I create class file in intellij idea

#

?

jagged monolith
#

Right click on the folder tree and create java class

mortal pollen
#

Can you help me in voice?

remote swallow
#

you cant stream here

mortal pollen
#

private call

remote swallow
#

idk how you need more help with making a class

mortal pollen
#

I cant to send here picture

remote swallow
#

?img

undone axleBOT
remote swallow
#

or verify

#

cant really tell much from that, show the file tree too

remote swallow
#

you still didnt add the file tree

mortal pollen
#

see there is no class file

remote swallow
#

show the file tree and i can tell you why

mortal pollen
#

how can I add it

remote swallow
#

you take a screenshot of it

#

as well as the right click menu

hazy parrot
remote swallow
#

you dont have the file tree

#

this is a file tree

#

you need to include it in your screenshot

remote swallow
#

yeah

#

why are you trying to edit a compiled jar

jagged monolith
#

Yeah, select file

#

An yeah, why?

mortal pollen
#

I want to change the NMS version of the plugin and the file is read only

remote swallow
#

nms is a lot more than that

#

you need source

mortal pollen
#

I have

remote swallow
#

so edit the source

#

not the jar

mortal pollen
#

I know how to do it but tell me how can I create a class file

remote swallow
#

it wont work like that, but create file and name it something.class

mortal pollen
#

but it not with the C logo

remote swallow
#

becuase the C logo is intellij decompiling it i would guess, you still cant edit the jar nms by converting the jar to a zip then to a folder

#

you need to download the source from github and modify that

#

if anythng that plugin needs a major refractor

tardy delta
#

cursed shit

fluid river
#

jree

tardy delta
fluid river
#

@Ove@Overriderride

#

return "";

round finch
#

java Return @override;

#

😂

tardy delta
#

this looks better, doesnt it?

#

makiing some kind of assembly/ bytecode fuckery

fluid river
#

fuckery

terse ore
#

Hey

fluid river
#

yeH

tardy delta
#

dont really want to have load/store semantics cuz that only makes the program longer

#

so register based

fluid river
#

i had an assembly exam 2 weeks ago

#

actually not assembly

terse ore
#

One question guys, should I make an interface for my GUI Inventories?

tardy delta
#

i had to translate assembly into binary and hex on my exam

fluid river
#

the course is about processor itself(ALU and stuff)

terse ore
#

this is my current code

tardy delta
#

wdym an interface

terse ore
#

let me ask another question instead

#

how should I do it?

tardy delta
#

probably want to separate gui from listener

#

as every instance would register another listener

remote swallow
#

i would say keep the listener in there

fluid river
#

guy probably read the

#

NEW APPROACH TO GUI

fluid river
#

or how was it called

remote swallow
#

if you have the listener elsewhere you can only have 1 inventory

#

keep the listener in that class

tardy delta
#

all listeners for all inventories will be called for inv click event

remote swallow
#

yes, how are you gonna tell if its yours

tardy delta
#

have a Map<Inventory, CustomInv> to dispatch events

remote swallow
#

you keep the inventory instance

fluid river
#

holder

#

ez

remote swallow
#

thats just a pointless class imo

terse ore
#

f

fluid river
#

you can use it

#

ez

fluid river
#
new MyOwnHolder()```
terse ore
#

let me see

fluid river
#
if (!(inv.getHolder() instanceof MyOwnHolder)) return;```
hollow beacon
#

yo

#

where does this LF char come from

#

i have this with no other plugin

#

it's a \n that doesn't compile correctly ig

wet breach
terse ore
hollow beacon
#

code is very simple;

terse ore
#

itemMeta.setLore(lore)

#

lore should be a list of strings

hollow beacon
#

metax.setLore(Arrays.asList("test\ntest2"));

#

doesn't support \n?

terse ore
#

I don't think so

remote swallow
wet breach
#

Could just use substring on /n and it gives you a list automatically

#

Or split works too

hollow beacon
#

yeah normally \n works fine for me in lores

#

but now it just gives that weird char

wet breach
#

Have you tried \r\n

hollow beacon
#

yep

#

i get the same weird unicode block with ch in it

#

but I fixed it with the lists

#

not a nice solution but meh

wet breach
#

Sounds like encoding problem

hollow beacon
#

yep thought so too, but I have everything set to UTF-8

wet breach
#

Would suggest setting the string specifically to utf8

#

Hmm

#

What was the code?

#

Because that LF character means line feed which is correct

#

Were you using character literals?

#

That is were you using single quotes or double quotes

hollow beacon
#

double quotes

wet breach
#

Try with single quotes

#

Double quotes means you want to actually show the character and it not be interpreted where as single quotes means take this literally. Hence the term character literal

quartz elbow
#

Is there any way I can prevent the player's cache from being saved in the world?

quartz elbow
wet breach
#

It means what do you mean

#

In other words please elaborate more on your question

quartz elbow
#

Ah ok, sorry I'm using the translator as I don't speak your language. I wanted to prevent the player's data from being saved, because every time I enter I'm in the last position I was and with the same items. If you can help, thank you

terse ore
quartz elbow
#

Portuguese

terse ore
#

it is working as it should?

wet breach
#

They dont want the player data and location saved

terse ore
#

how so?

terse ore
#

you can just delete player location

#

?

wet breach
#

They probably have some kind of minigame where they dont want that saved. So they want it wiped on exit

terse ore
#

you could set it to wherever you want them to spawn after the minigame ends

wet breach
terse ore
#

imma just read then

#

mb

wet breach
#

Not all minigames are controlled by plugins

#

They probably have a manual controlled one

#

And their issue now seems to be just wiping inventoried and resetting the locations

wet breach
terse ore
#

yeah

regal scaffold
#

Is it possible to save a class to a file using FileConfiguration

#

Like, a serialized version of the class

#

I know how to save fields individually but is it possible to simplify that if the class is too big

terse ore
quartz elbow
#

I just wanted to know this because like, if I'm in a minigame world, and I leave the game, I'm back in the minigame world. But I was actually supposed to be born in the lobby

weak kayak
terse ore
wet breach
terse ore
wet breach
#

There is some plugins and will have to look for them that do wipe inventories on exit

quartz elbow
#

I use plugins

wet breach
#

As for resetting location there is a setting you can use but for it to work you would need your lobby world to be the first world

quartz elbow
#

which?

wet breach
#

I dont know it off the top of my head. Just take a look in server.properties, spigot.yml or bukkit.yml

quartz elbow
#

OK, thanks for the help

wet breach
#

Anyways time for me to drive home uwu

regal scaffold
weak kayak
#

assuming you have a field of FileConfiguration named config and one of a class implementing the aforementioned interface named foobar:
config.set("key", foobar)

to get it use config.get("key"), i believe you can cast it afterward

river oracle
#

Yep you cast it after :3

weak kayak
#

indeedio, idk where but i have seen an empty string be passed in as the key too so if you want to just directly store it on the root you could do that
been a while since i messed with configs so take that with a grain of salt

regal scaffold
#

Thanks to both!

weak kayak
#

anytime!

regal scaffold
#

I'm using split config files anyways!

#

So key won't be an issue

#

1 file per object

weak kayak
#

noice

terse ore
#

can you guys give me ideas on how to make my code better

#

(go full on pls)

regal scaffold
#

?paste

undone axleBOT
terse ore
#

I feel like it's getting too repetitive

regal scaffold
#

You just started, that's fine as it seems

remote swallow
#

pretty sure this.config is gonna npe but i might be wrong

terse ore
#

I tried to make a class but couldn't make it work

regal scaffold
#

well yes, besides that

river oracle
terse ore
#

but

#

I need to

river oracle
#

Make a utility class for loading and saving etc

#

Just full of static

regal scaffold
#

this.config = YAMLConfiguration.load(file)

terse ore
#

in my main class I have public static GUIConfig guiConfig; onEnable(): guiConfig = new GUIConfig(this)

#

this is wrong?

regal scaffold
#

No

#

But still

#

Line 30 will npe

#

this.config.load(guiFile);
to
this.config = YAMLConfiguration.load(file)

terse ore
#

why

#

oki

#

.loadConfiguration() ?

remote swallow
#

i should deffo sleep

terse ore
#

this is better?

remote swallow
#

i was thinking the npe would be from calling load on a null object, didnt even think that it would npe on any config call

remote swallow
regal scaffold
#

put

#

this.config = YamlConfiguration.loadConfiguration(guiFile);

#

Inside a try/catch

terse ore
#

isn't it managed by the method?

#

it doesn't tell me to try catch it

regal scaffold
#

Your call, just safe practice

#

But good that you know to check how a method is implemented

terse ore
#

what should I catch for?

regal scaffold
#

I need some more assistance

regal scaffold
#

So, I'm doing the exact same way we agreed on

#

But it doesn't like the fact that I'm storing another object inside of it

#

!!me.tomisanhues2.ultrastorage.utils.UpgradeType {}: 1

[08:01:50 WARN]: could not determine a constructor for the tag tag:yaml.org,2002:me.tomisanhues2.ultrastorage.utils.UpgradeType
[08:01:50 WARN]:  in 'reader', line 12, column 7:
[08:01:50 WARN]:           !!me.tomisanhues2.ultrastorage.u ...
#

These are my serialize/deserialize for that class

    @NotNull
    @Override
    public Map<String, Object> serialize() {
        Map<String, Object> map = new HashMap<>();
        map.put("upgrades", upgrades);
        return map;
    }

    public static UltraChestUpgrades deserialize(Map<String, Object> map) {
        Map<UpgradeType, Integer> upgrades = (Map<UpgradeType, Integer>) map.get("upgrades");
        return new UltraChestUpgrades(upgrades);
    }
terse ore
#

is it a good idea to check by inventory holder == null and name.equals(foo) for checking if it is my inventory¿

tardy delta
#

ah yes directives.put(name, readOperand(null, line.substring(line.lastIndexOf(' ') + 1), 0));

tardy delta
regal scaffold
#

Brush help me out

remote swallow
terse ore
regal scaffold
#

Yup

terse ore
#

store the inventory in a list for example

regal scaffold
#
        ConfigurationSerialization.registerClass(UltraChest.class);
        ConfigurationSerialization.registerClass(UltraChestUpgrades.class);
terse ore
#

and check if it is in there?

regal scaffold
#

This was working perfectly when I was storing inside PDC

tardy delta
#

idk what you are doing, o you have a custom inv class?

remote swallow
#

?paste main class and the config Serializable class(s)

undone axleBOT
regal scaffold
#

Hold on

#
tag:yaml.org,2002:me.tomisanhues2.ultrastorage.utils.UpgradeType
#

Why is it trying to do something with that class

#

Oh...............

#

It's a fking enum

#

That's not serialized

#

LMAO

#

Do I do it exactly like I would do with classes for an enum?

remote swallow
#

uhhh, one sec

#

ill check what bukit does

regal scaffold
#

Thanks bbygrl

#

Honestly I should do it but yeah

#

I could store it as a string tbh

#

But... not good practice

remote swallow
#

so the material enum isnt config serializable and niether do the other 2 interfaces it has, so im guessing the set method is calling toString

regal scaffold
#

Annoying

#

But fair

remote swallow
#

actually i dont think anything is even setting the material directly

regal scaffold
#

I figured it out

ivory sleet
#

material is rather trivial to serialize and deserialize tho?

regal scaffold
#
public enum UpgradeType implements ConfigurationSerializable {}

    @NotNull
    @Override
    public Map<String, Object> serialize() {
        Map<String, Object> map = new HashMap<>();
        map.put("upgradeType", this.name());
        return map;
    }

    public static UpgradeType deserialize(Map<String, Object> map) {
        return UpgradeType.valueOf((String) map.get("upgradeType"));
    }
#

Simple as that

#

Cool stuff

remote swallow
#

have i just had intellij open while i watched a movie

regal scaffold
#

ram eater

remote swallow
#

i onlyjust noticed so ig it did some form of sleeping

regal scaffold
#

Well, I just changed my program to go from PDC storage to a file system same efficient as before but with the added bonus that users can change stuff individually and see all data for storages

tardy delta
#

return Collections.singletonMap pls

remote swallow
regal scaffold
#

Yes indeed

#

What I did was

#

I made every chest have just 1 PDC value

#

Which is a UUID

#

And then I have a cache

#

So the UUID belongs to a file

remote swallow
#

i got bored one day so i made a player data class in my lib so i can create playerdata for players and that data is a yaml config on their pdc

regal scaffold
#

Oh yes

#

That's actually cool stuff

#

I wanna find a way to simplify the need

#

Of making a serialize() deserialize() methods

#

For every class you want to serialize

#

Like... I have a class with 20 fields... gotta add them all manually

young knoll
#

I mean

#

You could use reflection jank I guess

remote swallow
regal scaffold
remote swallow
#

my eye feels like someone punched it

#

idk why

fallow violet
#

is there a way to center the sword?

young knoll
regal scaffold
#

hmmmm

#

Yeah but then I suppose there's the issue with

#

Sometimes you don't want everything

#

So then the alternative is doing it 1 by 1 lol

#

Can't have it both ways

young knoll
#

You could use the one annotation gson uses for that

hazy parrot
#

And if field have annotation, exclude it ^

echo basalt
fallow violet
echo basalt
#

also swords look bigger on the hand than on a head

young knoll
#

Actually it’s not even an annotation

#

It’s a modifier on the field

echo basalt
#

your offset gets rotated too

#

like

#

offset = 0.5, 0, 0 (imagine)

#

newOffset = offset.rotateAroundY(yaw)

fallow violet
#

alright just gimme this function rotateAroundY xd

echo basalt
#

or if you want to be clever, rotateAroundAxis(getDirection())

echo basalt
fallow violet
#

NO WAY

#

okay that changes everything

fallow violet
echo basalt
#

Location#getDirection

#

which grabs yaw and pitch and does basic trigonometry

fallow violet
#

thank u man

regal scaffold
#

I need some help with git

#

I'm full lost

#

I'm currently on a branch which I made to do some big changes

#

And I'm ready to push them onto the main branch

#

But this IntelliJ git tab is confusing me

#

I commit all the changes to my current branch

echo basalt
#

commit and push to your current branch

#

and I'd just open a pull request on github and handle it there

#

or you can checkout master, Git -> Merge, and select your current one

regal scaffold
#

Oh really

#

I thought I was dumb from going on gh

#

And making the PR there

echo basalt
#

it's easier

regal scaffold
#

Fair fair

#

Thanks

tardy delta
#

java is weird, it complains that i must be final when i use i but i can just make another final variable with its value 🤔

eternal night
#

makes sense ?

tardy delta
#

somehow does

ivory sleet
#

thats java

#

cuz like the variable is copied, thus must be effctively final

tardy delta
#

cant it implicitly copy i?

terse ore
#

One question guys, I made a class that generates a config based on a .yml file, how could I check if the inventory was created by that class?

ivory sleet
#

but because java is multithreaded this becomes a bit hard

#

or well supports multithreading

tardy delta
#

hmm

burnt current
#

Hey Guys! How do i create a Mob, thats following the Player like a pet (For example a Zombie which is normally Running after the player and follows him) and (in case of a zombie) does not attack the player but instead attacks other mobs, which are not the same "team" as the mob (not spawned by this player) Does somebody know how i can implement this?
I tried to use This Tutorial of Codedred to implement that the pet follows the player but i dont like this style of how the entity follows you. Its just so fast, unnatural and also very complicated https://www.youtube.com/watch?v=Fnonn5chXk4.
Does somebody know another way to implement this?

Custom pathfinder goals is here! I went very in-depth the best way I could to explain how custom pathfinders work. I hope you all enjoy and understand the video :D Thanks for watching!

P.S
Sorry about the damn zombie noise in the background forgot I had my mc sound on :(

Want more videos?
Become a Patreon support to gain access to more videos!...

▶ Play video
tardy delta
#

codedred was the reason i started exposing collections 💀

burnt current
#

How do you mean that?

tardy delta
#

ah fuck he's in here

tardy delta
#

fancy

echo basalt
#

yeah it generates a compiler warning

terse ore
wet mesa
#

im a web developer but decided to learn how to make plugins... for no reason at all but anyway, i have this: ```import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.*;

public final class Test extends JavaPlugin {
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
Location loc = event.getPlayer().getLocation();
loc.setY(loc.getY() - 1);
Block b = loc.getBlock();
b.setType(Material.STONE);
}
}``` how do I put this in my server now?

tardy delta
#

im also having fun today

echo basalt
#

you'd need to register the class anyways

tardy delta
#

me keeping resources from being gced, fun

echo basalt
tardy delta
#

looks like me writing a command framework

echo basalt
#

this is a bit more than a command framework

wet mesa
tardy delta
#

mine ended up being jank so i just decided to use acf

echo basalt
wet mesa
#

ok thx

tardy delta
#

might want to follow some tutorial

echo basalt
#

this automatically parses and learns the syntax

terse ore
remote swallow
#

why does that task bar have farenhight on

tardy delta
#

is that a project you're doing for yourself tho?

echo basalt
terse ore
#

could I check the code

echo basalt
terse ore
#

I am making rn some guis and I am having headaches

echo basalt
tardy delta
#

there musnt be pain if you followed my steps

terse ore
tardy delta
#

you didnt, so prepare to die

terse ore
#

which steps

remote swallow
echo basalt
#

and a bit more

tardy delta
#

told you to use a map<inv, custom inv>

echo basalt
#

and variables

tardy delta
#

instead of messing with inv holders and putting a listener for each inv

remote swallow
#

why does it need a class for it

echo basalt
#

each model is a class

#

a model defines syntax and impl for it

terse ore
#

@tardy delta can you criticise my code?

tardy delta
#

sounds like code i saw in mindustry, i better hope yours is better

#

yes

terse ore
#

1 sec

tardy delta
#

atleast something that sounds better than looking at assembly all day

echo basalt
#

each model looks something like this

terse ore
#

go full on pls

#
main:
  name: "Realms Menu"
  size: 27
  fill: true
  items:
    settings:
      name: "Open Realm settings"
      material: REDSTONE_TORCH
      amount: 1
      command: "realms settings"
      custom_model_data: null
      slot: 9

    players:
      name: "Manage the players in your realm"
      material: PLAYER_HEAD
      amount: 1
      command: "realms players"
      custom_model_data: null
      slot: 11

    tp:
      name: "Go to your Realm"
      material: GRASS_BLOCK
      amount: 1
      command: "realms go"
      custom_model_data: null
      slot: 13

    delete:
      name: "Delete your realm"
      material: BARRIER
      amount: 1
      command: "realms delete"
      custom_model_data: null
      slot: 17```
#

this is the config where I am checking from

echo basalt
#

ehh

#

just make a whole class that parses that stuff

#

and you just associate an action to "delete", for example

tardy delta
#

this looks jank

echo basalt
#

like how I do here

tardy delta
#

and this

#

dont ever make public fields again

terse ore
terse ore
echo basalt
#

encapsulation

eternal oxide
#

a getter, same as you did for everything else

tardy delta
#

do you have one GuiConfig globally?

terse ore
#

getGuiConfig() return this.guiConfig?

tardy delta
#

thats what a getter is

terse ore
#

srry for the noob questions

tardy delta
#

well you are always doing Realms.guiConfig

eternal oxide
#

without code, it looks like he does

tardy delta
#

id say make that config a field in your GUI

#

and pass it through the constructor

terse ore
#

okok

tardy delta
#

your getDefaultBackgroundItem creates the same item every time but you keep calling that method in a loop, so id make a BACKGROUND_ITEM static field

torn shuttle
#

does anyone have a guide on how to publish a sonatype repository for a multimodule project?

tardy delta
#

to avoid creating it over and over

torn shuttle
#

maven

remote swallow
#

add the server block in settings.xml and add the distribution management section to parent iirc

torn shuttle
#

ah

remote swallow
#

before you ask how to add the server block i have no idea

torn shuttle
#

both on parent and the dist module?

#

dw I got the settings right yesterday

remote swallow
#

check how jefflib does it

torn shuttle
#

same issue after putting it in the parent

terse ore
torn shuttle
#

hm

#

parent should be the module manager right

tardy delta
#

looks a bit better

terse ore
#

yay

torn shuttle
#

yo hol up

#

did it work

terse ore
#

compared to the code I was coding last month I think I got better ngl

torn shuttle
#

am I about to do a default fornite dance

#

damn it I got this garbage again

tardy delta
#

id probably create a static method somewhere, not in that class, to go from a config section to one of your custom guis

terse ore
#

you can do that by just

#

new GUI(guiIdentifier)

#

and it returns one of my guis

tardy delta
#

it feels weird to interact with a config in a gui class

terse ore
#

I was thinking of making the setItems a method in GUIConfig

#

and pass the inventory to that method

#

that would work better?

twilit roost
tardy delta
#

id make some kind of guimanager

terse ore
#

oh and the most important question

#

how would I check if it is one of my guis?

#

checking for inventoryholder == null and name?

weak kayak
#

one way i have seen people do it is have a custom InventoryHolder class
but the name thing also works

tardy delta
#

have a Map<Inventory, GUI> in your gui manager which server as a way of finding the gui that was clicked

terse ore
#

what do I do then, custom InventoryHolder, the name or the hashmap?

eternal oxide
tardy delta
#

ye i havent seen him using click consumers tho

eternal oxide
#

yet

terse ore
#

brief explanation on what those are?

tardy delta
#

you just store the code that runs when you click on a slot, mapped to each slot

glossy venture
#

yo your password is in there

eternal oxide
#

It alows you to have a single listener for ALL GUIs

glossy venture
#

might want to change that now

terse ore
#

ooh

twilit roost
tardy delta
#

oh wait my click consumer is in the gui item class

twilit roost
tardy delta
glossy venture
#

also idk maybe you need to send a hashed password

tardy delta
#

lemme open wireshark rq

regal scaffold
#

Uhhh

#

How can I serialize a Material

#

Since it doesn't implement ConfigSerializable

#
 in 'reader', line 35, column 7:
        ? !!org.bukkit.Material
tardy delta
regal scaffold
#

I hate using strings but I guess

eternal oxide
#

don;t serialize a Material, you only need its name

tardy delta
#

and later call valueOf

regal scaffold
#

Fair

#

private Map<Material, Integer> items;

#

How do I serialize that then lol

rough drift
#

Converting Vector to pitch/yaw

regal scaffold
#

Do I need to change the storage type to a <String, Integer> and parse it every time?

#

I doubt it

tardy delta
#

MAp<Material, int> sounds like what looks like an itemstack

regal scaffold
#

Do itemstacks have int limit?

#

Like, max amount?

icy beacon
#

i think that they get capped to (-128, 127) at SOME point

regal scaffold
#

Then it's not a itemstack

#

Cause I need way more than that

twilit roost
# glossy venture also idk maybe you need to send a hashed password
icy beacon
#

well you can make a Map<ItemStack, Integer> and then just copy the ItemStack serializer and modify it to serialize your amount instead

#

if you want itemmeta to exist for your item as well

regal scaffold
#

I thought but

#
        Map<String, Integer> itemString = new HashMap<>();
        for (Map.Entry<Material, Integer> entry : this.items.entrySet()) {
            itemString.put(entry.getKey().name(), entry.getValue());
        }
#

Solved it

#

Not the prettiest solution

icy beacon
#

don't you care about meta?

regal scaffold
#

No

icy beacon
#

eh

regal scaffold
#

Not for those

icy beacon
#

ok then

glossy venture
#

open devtools

regal scaffold
#

It's just the material and amount

glossy venture
#

go to network or requests idk what the tab is called

#

and look for a request to the login api

#

when you login

twilit roost
#

open dev tools on that site im requesting?
or anywhere in browser

glossy venture
#

on the login panel of the site

#

and then login

#

and check what it sends

#

but i gtg now srry

twilit roost
#

aight thx
imma firegure it somehow

#

well I don't get any new data in Network tab when I execute my code

icy beacon
#

any easy way to turn an org.bukkit.Color into ChatColor? the problem is that ChatColor seemingly doesn't allow for RGB and I want RGB for team names in scoreboard

echo basalt
#

Bungee's ChatColor has a ChatColor.of

#

but in paper it's deprecated in favor of adventure

icy beacon
#

i do use paper in this project (shhhh no need for ?whereami i am fully aware of what the fuck i'm doing) but i'm fine with using bungee still

#

deprecation =/= unusability

#

hehehe

#

though it does seem like bungee's chatcolor takes in a java.awt.Color

#

hm

#

how'd i get around tht

eternal oxide
#

?jd-bcc

icy beacon
#

java.awt.Color has a getHSBColor method, but org.bukkit.Color only has asARGB, asBGR and asRGB

#

hm

weak kayak
#

java.awt.Color has a constructor that takes in r, g, b, and a as floats

icy beacon
#

it's especially helpful when the two methods i'm looking for has no docs

#

thanks elgar very cool

weak kayak
#

no prob

#

there's also a constructor that only takes in r, g, and b if you don't care about alpha

icy beacon
#

yeah i'm using it rn

weak kayak
#

aight

icy beacon
#

btw how'd i convert from a bungee chatcolor to a spigot chatcolor

#

i only see the opposite

#

from spigot to bungee is straightforward

#

other way around isn't

echo basalt
#

You can do ChatColor.of("123123") and it parses #123123

icy beacon
#

does it require some witchery and use of another random class

icy beacon
#

still bungee though

tardy delta
#

isnt there a way to see who cloned it?

icy beacon
#

what exactly would you want to see

#

the ips of people who cloned it?

tardy delta
#

names

icy beacon
#

can't you clone without being authenticated

weak kayak
#

you can clone without logging in can't you

icy beacon
#

yeah

#

i reckon

twilit roost
raw sky
#

How should I handle having my premium plugin (private repo) being a fork of a my free plugin (public repo)

#

We could host some form of version control on our own dedi, we would prefer not to do that though

hazy parrot
eternal oxide
#

probably reqwuires a missing header for browser

twilit roost
#

ooh I was missing s in https

ocean hollow
#

How to make it so that items from the inventory can only be taken?

lost matrix
tardy delta
#

NumberFormatException: For input string: "arr_st+i_off" smh

#

and me who thought writing parsers was fun

ocean hollow
lost matrix
#

You just prevent them from being added to the inv by cancelling the InventoryClickEvent and InventoryDragEvent

torn shuttle
#

my god I somehow wrangled sonatype into working

#

truly it must be an easter miracle

tardy delta
#

wondering how id write a regex to split lda [arr_st + i_off] into lda and [arr_st + i_off] and ignore spaces within [] lol

lavish cliff
#

guys how i can use hex color?

tardy delta
#

ChatColor.of("#ffffff")

#

not spigots one

worldly ingot
#

Group 1 is lda, group 2 is [arr_st + i_off]

#

Whitespace inside of the [] being ignored entirely, whitespace between lda and [ is ignored as well

tardy delta
#

well lda is just an opcode, so should be anything with letters

worldly ingot
#

Then you can replace lda in that RegEx with something like (\w{3})

#

(or {2,3} if it's 2-3 chars)

#

(\w{3})\s*(\[.+\])

#

Fun feature in RegEx, you can name your groups as well

#

(?<opcode>\w{3})\s*(?<instruction>\[.+\])

#

Then you can get opcode and instruction as groups instead of 1 and 2

tardy delta
#

im wondering if there isnt just a better way 🥹

torn shuttle
#

what's the correct maven scope for shading again?

tardy delta
#

not sure how optimized String::split is

torn shuttle
#

I've been on gradle for too long

tardy delta
#

for parsing a whole sourcecode file

worldly ingot
#

compile

torn shuttle
#

thanks

tardy delta
#

or leave it blank

worldly ingot
#

Default is compile, yeah

torn shuttle
#

ah it'll not document it then

icy beacon
#

/scoreboard objectives setdisplay belowName - what's the alternative for spigot?

#

nvm accidentally figured it out lol

remote swallow
icy beacon
#
scoreboard.registerNewObjective("kingdoms", "dummy", "Kingdoms")
      .displaySlot = DisplaySlot.SIDEBAR
tardy delta
#

how many chars would \\s+ be

#

3 ig

worldly ingot
#

\s+ is at least one whitespace character

#

You can use * instead of + if you want 0 or more

tardy delta
#

well i mean so the fast way of split() isnt used

#

internally just compiles a pattern every invocation then

worldly ingot
#

Yes

tardy delta
#

i probably want to write my own split

worldly ingot
#

I do kind of wish they would add a String#split(Pattern)

tardy delta
#

Pattern#split(CharSequence)

worldly ingot
#

Oh, yeah, there is one lol

#

Still, for convenience

tardy delta
#

time to reverse engineer lol

#

this all needs to work

#

everything behind ; is just removed

worldly ingot
#

I mean I'd avoid RegEx all together then. Looks to me like you can just split based on one whitespace and limit the split

tardy delta
#

well there theoretically isnt a limit for operands

#

imma just go hunt for spaces and if that space is within [] ignore it

worldly ingot
#
String[] parts = instruction.split("\s", 2);

String opcode = parts[0];
String args = parts[1];
int commentIndex = args.indexOf(';');
if (commentIndex > -1) {
    args = args.substring(0, commentIndex);
}```
tardy delta
#

limit being the max amount of strings in the result array?

worldly ingot
#

Yes

#

So lda [arr_st + i_off], despite having 3 whitespace chars, limits the split to only 2 elements. It would result in ["lda", "[arr_st + i_off]"]

tardy delta
#

what when you have smth like add [a] b

#

will that also just return an array with two parts?

#

ah it concats all params

#

imma just go implement my own split method

glossy venture
#

just dont use regex for parsing

#

most things

raw sky
#

?rules

undone axleBOT
tardy delta
#

ah it uses substrings

#

i expected stringbuilders, weak

glossy venture
tardy delta
#

Pattern#split can it so yes

#

id rather not use patterns for every line of code so imma write something more simple

#

[, [i_off], ] now 💀

#

last and first part are just gone cuz of that prevSpace var

rose trail
#

Good afternoon, I want to ask for help, namely how to save and load my classes from the config?

tardy delta
#

you want to save your class as a yml config section and retrieve it back to a class?

#
BukkitWiki

The Configuration API is a set of tools to help developers quickly parse and emit configuration files that are human readable and editable. Despite the name, the API can easily be used to store plugin data in addition to plugin configuration. Presently only YAML configurations can be used. The API however was designed to be extensible and allow ...

tardy delta
#

just messing around with setting and getting values from that config ^^

#

sta [i_off] 0 -> [sta, 0, [i_off], ] lol

#

ah wait im an idiot

fluid river
#

and contruct new instance

#

new Class(valueFromConfig, valueFromConfig2);

#

why do you even need this tho

ocean hollow
#

how to block the removal of things from the armor stand?

fluid river
#

interactAtEntityevent?

ocean hollow
#

just this way?

rose trail
pseudo hazel
#

yes

#

I mean they described serializing in different words

fluid river
#

yup

ocean hollow
#

says no such method exists.

pseudo hazel
#

is the api on the same version as the docs?

#

like where is that documentation

ocean hollow
#

but spigot has it

pseudo hazel
#

has what

remote swallow
#

what project version

pseudo hazel
#

spigot just has this locktype thing

ocean hollow
#

Oh, I did.

fleet sundial
#

i get this error when i connect to it connection timed out no further information what should i do to fix it

mighty pier
#

sink

#

no sink

fleet sundial
#

can some one help me fix this issue

raw sky
#

Some users get this issue in 1.8.x, yet I do not. Its due to a GSON issue not being inside spigot 1.8, so I then shaded it into the plugin

#

which is why it worked for me and not others. What should I do about this?

#

Should I just make my own custom parser for the JSON data, find a different one

pseudo hazel
#

well why dont you just share the shaded jar

#

so it works fr everyone the same way it works for you

raw sky
#

I believe I did?

#

which is the weird part

#

Seems to be the same file size too

#

Indeed it is

icy beacon
#

pp TROLL

raw sky
icy beacon
#

i'm a mature gentleman

raw sky
icy beacon
#

using maven shade plugin, you're able to relocate libraries and whatnot

raw sky
icy beacon
#

why? beats me to this day lmao

#

but we just have to sometimes

icy beacon
#

relocate

chrome beacon
icy beacon
#

ah

#

i know nothing about gradle, sry

raw sky
#

me either!

raw sky
ocean hollow
#

please help, when saving the config this

chrome beacon
#

Are you trying to save a CraftAttributeMap???

icy beacon
#

that's one way to approach custom entities...

#

xD

chrome beacon
#

Then why is it trying to save that to your file?

#

You're probably trying to save an entire entity for some reason

chrome beacon
#

Yeah don't do that

ocean hollow
#

Entities cannot be saved in a config in any way?

chrome beacon
chrome beacon
icy beacon
#

entities are really already stored in a file

#

if you manage to read it (and i think there are open source nbt readers for minecraft) you won't need this witchcraft

ocean hollow
#

Okay, I understand, but can I save inventory? Or do I need to get a list of items?

icy beacon
#

probably better to save a list of items

#

itemstacks are natively supported for serialization by bukkit

weak meteor
#

Someone can help me importing the config?

hazy parrot
#

what config

weak meteor
#

I got this method: ```java
@Override
public void onEnable() {
saveDefaultConfig();

    getCommand("fg").setExecutor(new CommandManager(this));
    prefix = config.getString("prefix");
    // Message
    onEnableMessage();
}```

That goes to:

public CommandManager(Plugin plugin){
        subCommands.add(new RandomSubCommand(plugin));
    }```

That goes to:
```java
public RandomSubCommand(Plugin plugin) {
        super();
        this.plugin = plugin;
    }```

Only to do this:
```java
String prefix = ChatColor.translateAlternateColorCodes('&', config.getString("prefix")); 
#

Error:

hazy parrot
#

what is this line

#

also

#

?npe

undone axleBOT
#

The NullPointerException, (commonly referred to as NPE), is thrown in the following cases, but not sealed to: 1. null is passed into a method or constructor which does not allow it; 2. When trying to access a field on an object pointing to null; 3. Casting null to a primitive. See https://stackoverflow.com/a/3988794/17047120 for information on how to debug NPEs.

weak meteor
#
public RandomSubCommand(Plugin plugin) {
        super();
        this.plugin = plugin;
    }

    Plugin plugin;
    Configuration config = plugin.getConfig(); // Line 22```
weak meteor
eternal oxide
#

Fields are initialized at class instantiation

#

so plugin is null

weak meteor
eternal oxide
#

assign config in your constructor

weak meteor
#

okay

eternal oxide
#

same as you do for plugin

tepid jewel
#

are there any shop plugins that dont have an econemy tied so you can trade items for items?

weak meteor
remote swallow
#

you move the Configuration config = ... into the constructor

eternal oxide
#

just pass plugin and access config as required

#

it doesn;t need it's own field

weak meteor
#

oh

#

lol

#

Just changed java public RandomSubCommand(Plugin plugin) { super(); this.config = plugin.getConfig(); }

hazy parrot
#

you removed this.plugin = plugin

weak meteor
#

yes

eternal oxide
#

if this is line 21 this.config = plugin.getConfig(); you are passing null

weak meteor
eternal oxide
#

is that another field?

weak meteor
#
public class RandomSubCommand extends SubCommand{

    public RandomSubCommand(Plugin plugin) {
        super();
        this.config = plugin.getConfig();
    }
    Configuration config;
    String prefix = ChatColor.translateAlternateColorCodes('&', config.getString("prefix"));
eternal oxide
#

yep

#

I already told you ALL fields are initialized at class instantiation. You can;t use config as it's not been assigned yet. your constructor has not run

weak meteor
#

OHH

#

RIGHT

#

SORRY

#

Well, it didnt crash, but know the command doesnt work, lol

#

nah nvm

#

i was spelling wrong

tawny remnant
pseudo hazel
#

whats at line 81

tawny remnant
#

public void openInventory(final HumanEntity ent) {
ent.openInventory(inv1);
}

the middle one

pseudo hazel
#

inv1 is null then

#

or ent

tawny remnant
#

oh thanks

lavish cliff
#

@EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { Player player = event.getPlayer(); String chatMessage = event.getMessage(); ChatColor currentColor = ChatColor.valueOf(player.getDisplayName().split("§")[1]); String replacedMessage = currentColor + chatMessage.replace("ꐥ", ChatColor.WHITE.toString()).replace("ꐦ", ChatColor.WHITE.toString()).replace("ꐧ", ChatColor.WHITE.toString()).replace("ꐨ", ChatColor.WHITE.toString()).replace("ꐩ", ChatColor.WHITE.toString()).replace("ꐪ", ChatColor.WHITE.toString()).replace("ꐬ", ChatColor.WHITE.toString()).replace("ꐫ", ChatColor.WHITE.toString()).replace("ꐬ", ChatColor.WHITE.toString()).replace("ꐭ", ChatColor.WHITE.toString()).replace("ꐮ", ChatColor.WHITE.toString()).replace("ꐯ", ChatColor.WHITE.toString()).replace("ꐰ", ChatColor.WHITE.toString()).replace("ꐱ", ChatColor.WHITE.toString()).replace("ꐲ", ChatColor.WHITE.toString()).replace("ꐳ", ChatColor.WHITE.toString()).replace("ꑊ", ChatColor.WHITE.toString()) + currentColor; event.setMessage(replacedMessage); }

guys someone know why don't work?

#

the simbol is emoji

vast raven
#

Does the deserialization works perfectly with ItemStack using the serialization of .serialize()?

remote swallow
#

yeah

vast raven
#

Okay, I've just tested it out, and yeah it does, my problem is that if I try doing a test deserializing the serialized itemStack on my main hand for example, and then re giving it, that works, but not with Gson

#

I mean, it doesn't hold the ItemMeta with Gson

remote swallow
#

item meta is serialized seperately

vast raven
#

wdym?

remote swallow
#

the serialize method just handles the stuff not on meta, the other stuff is handled in its specific file

vast raven
#

But why doing something like this would work even on meta and not on Gson?

remote swallow
#

im pretty sure that entire system is designed on yaml and configuration serializ-able, for gson you either need to write a type adapter to serialize/deserialize or convert the stack to b64

vast raven
#

Do you have any snippets?

remote swallow
#

ive got stuff for b64, one sec

vast raven
remote swallow
#

that is pretty much a type adapater, just not made to work as one

vast raven
#

😦

remote swallow
#
public static ItemStack itemStackFromBase64(String base64) {
        try {
            @Cleanup final ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(base64));
            @Cleanup final BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
            return (ItemStack) dataInput.readObject();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }
``` & ```java
public static String toBase64(final ItemStack item) {
        try {
            @Cleanup final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            @Cleanup final BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
            dataOutput.writeObject(item);
            return Base64Coder.encodeLines(outputStream.toByteArray());
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
``` The @Cleanup is from lombok
tender shard
#

why do people keep insisting to use base64

#

also why are you using Cleanup instead of try-with-resources o0

remote swallow
#

7smile gave me it

tender shard
#

yikes

vast raven
#

What do you suggest then for an itemstack saving on a db

tender shard
#

the byte array

remote swallow
#

including all possible nbt values

tender shard
#

why would you base64 that

#

bukkit can serialize it fine into a byte array

lavish cliff
remote swallow
tender shard
#

just use BukkitObjectOutputStream -> ByteArrayOutputStream -> you have a byte array

tender shard
remote swallow
#

it was using gson so json

#

b64 for items in json, yaml just use the bukkit methods, db uses byte[]

remote swallow
#

thats just a method in my lib

#

free to use if i ever need

#

the only place ive used it so far is in a gson type adapter

tender shard
#

idk base64 is just byte[] with extra steps

remote swallow
#

again why would i put a byte array in json

river oracle
#

Byte array in json 💀

#

Nah fam just stick with base64

#

byte aeray in a json file is not a pretty sight

remote swallow
#

its not pretty but its better than spending 9 hours serializing every edge case of an item stack

tender shard
#

why would one transform it into sth anyway when one already has yaml, which basically is json

#

I mean, just do ItemMeta#getAsString() and you already have json

remote swallow
#

go convert bukkits config serializable to work in json

river oracle
tender shard
#

idk json is just "hard-to-read yaml" lol

river oracle
#

I actually quite like json I use it for everything non spigot

remote swallow
#

also how do you convert the ItemMeta.getAsString() back to an ItemMeta

eternal oxide
#

Bukkit has a static method

wise mesa
#

okay so I'm storing namespaced keys in persistent data right

#

as strings

haughty storm
#

How would I be able to put an item inside of a chest, generated by minecraft, for example in a village

wise mesa
#

but if I want to get them back i have to use the deprecated namespace key constructor right?

#

is there an easier way to read these back without having to use the forbidden constructor

tender shard
wise mesa
#

ooh

#

nice

#

perfect

rigid drum
river oracle
#

Why do you want byte array in json

tender shard
#

ItemMeta

#

getAsString

#

that's already json

#

why not just use that lol

river oracle
#

That exists

#

Get as string

tender shard
#

yes

#

and then ItemFractory#createItemStack(yourString)

river oracle
#

I didn't know that was a thing I'm going to go find a cliff now

#

Bye

tender shard
#

it's "quite" new though

#

so dw

icy beacon
#

and it works majestically

worldly ingot
icy beacon
#

I used it for translating a name

remote swallow
tender shard
worldly ingot
#

Early 1.19 I think I added it?

tender shard
#

no need to do any byte[] or base64 shit

tender shard
worldly ingot
#

I wouldn't rely on SNBT for serialization

icy beacon
remote swallow
#

damn thats too new

river oracle
#

I'm still coding in ancient 1.18.2

tender shard
#

1.18.2 added it

river oracle
#

Rip

tender shard
#

I just checked

river oracle
#

Oh

#

Perfect

remote swallow
#

still too new

worldly ingot
#

I wouldn't rely on SNBT for serialization

tender shard
icy beacon
#

what isn't too new

worldly ingot
#

Use byte serialization because at least that way it can be future-proofed with Bukkit's serialization versioning

icy beacon
#

pdc is kinda new 🥴

worldly ingot
#

The ItemFactory parser doesn't do any data fixer uppers

tender shard
#

i only learnt about PDC in 1.16

icy beacon
#

namespacedkeys are fairly new

remote swallow
tender shard
icy beacon
#

tbh everything after 2003 is too new

worldly ingot
#

NamespacedKey was added in 1.13? o.O

#

It's like 4 years old

icy beacon
#

yep

#

the flattening update or smth

worldly ingot
#

Poor punctuation. It was a statement

tender shard
#

1.13 is also already 5 years old

icy beacon
#

?howoldisminecraft188

#

where

tender shard
#

my first plugin was 1.13 🥲

icy beacon
#

?188

remote swallow
#

?1.8

undone axleBOT
icy beacon
#

holy hell

#

7.5 years

#

almost matches my younger sister

#

do you think she'd like coding in 1.8 api

tawny remnant
#

How od i block players from clicking on item 8 in their inventory?

icy beacon
#

listen to inventoryclickevent

#

if slot is 8 cancel

tawny remnant
#

what if i need an IF statement checking for an inventory? What inventory do i check for?

icy beacon
#

there's a magic thing called inventory viev

#

view*

#

which has a top & bottom inventory

#

you can find it in the event

tender shard
#

vers inventory when

desert tinsel
#

When I try to set the type of bed to air aka deleting the bed, the bed drops on the ground, how can I prevent this?

tender shard
#

set both parts of the bed to air

desert tinsel
#

I have the same problem with lanters and ladders

#

and I set an entire layer, not just a block

noble hedge
#

Hey,
i have a Problem i recentry swaped Distro to EndevourOS so i run the BuildTools with following command
sudo java -jar BuildTools.jar --rev 1.19.3 --remapped
after it compleded Sucessfully:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Spigot-API 1.19.3-R0.1-SNAPSHOT .................... SUCCESS [  7.786 s]
[INFO] Spigot-Parent dev-SNAPSHOT ......................... SUCCESS [  0.005 s]
[INFO] Spigot 1.19.3-R0.1-SNAPSHOT ........................ SUCCESS [ 37.921 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  45.959 s
[INFO] Finished at: 2023-04-04T20:26:07+02:00
[INFO] ------------------------------------------------------------------------
 

the remap jars cant be foud

Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find spigot-1.19.3-R0.1-SNAPSHOT-remapped-mojang.jar (org.spigotmc:spigot:1.19.3-R0.1-SNAPSHOT).
     Searched in the following locations:
         file:/home/tom/.m2/repository/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT-remapped-mojang.jar

and the jars are not present in the .m2 local folder

eternal oxide
noble hedge
#

nop

eternal oxide
#

?nms

eternal oxide
fossil wraith
#

Hello guys,
any thought of identify a custom inventory but not method like hashmap or inv holder
just upgrading my plugin from old version to 1.19.4 ⛏️

eternal oxide
#

instance is the correct way to identify an inventory

fossil wraith
noble hedge
# eternal oxide look just above that section in the log. It shoudl list what it's installing int...
[INFO] Installing /home/tom/BuildTools/Spigot/Spigot-Server/target/spigot-1.19.3-R0.1-SNAPSHOT.jar to /root/.m2/repository/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT.jar
[INFO] Installing /home/tom/BuildTools/Spigot/Spigot-Server/dependency-reduced-pom.xml to /root/.m2/repository/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT.pom
[INFO] Installing /home/tom/BuildTools/Spigot/Spigot-Server/target/spigot-1.19.3-R0.1-SNAPSHOT-remapped-obf.jar to /root/.m2/repository/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT-remapped-obf.jar
[INFO] Installing /home/tom/BuildTools/Spigot/Spigot-Server/target/spigot-1.19.3-R0.1-SNAPSHOT-remapped-mojang.jar to /root/.m2/repository/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT-remapped-mojang.jar`

the shoud be there but they arent

eternal oxide
#

it looks like you are using gradle. Did you add your local repo?

noble hedge
#

mavenLocal is added

eternal oxide
#

then no clue

twilit roost
#

if I want to check how long ago was some timestamp
Should I use SimpleDateFormat or DateTimeFormatter

real fable
#

How can I retrieve tags given on an ItemStack by for e.g. /give @s item{...,Tags["the-thing-I-want-to-check"]}

fossil wraith
ocean hollow
#

I thought Invulnerable was responsible for this, but nothing changes

narrow lichen
#

what would be the best way to make it so that non whitelisted players spawn into a different world than the whitelisted ones?

round finch
#

make a config
teleport on first join