#help-development

1 messages · Page 1300 of 1

shy junco
#

It's not very important to me right now, I need to get data from the client

slender elbow
#

okay

#

it is important because you can't send a login plugin message after the login process

trim lake
#

Its Block#getBlockData().getMaterial().isInteractable() reliable to disable interaction with blocks, or would be better to have list of intractable materials? I want players still be able to place block but not interact with anything.

young knoll
#

Does setting useInteractedBlock to deny in the interact event also disable placing?

trim lake
#

I will check if that clicked block is interactable, not item/block in player hand. It will be disabled anyway. For example if you right click chest you are not placing what ever block you are holding

sly topaz
#

don't ask me lol

woeful crystal
#

Where can I find the non-obfuscated 1.21.8 nms mappings?

drowsy helm
woeful crystal
#

Thank you so much

#

That's amazing

tranquil quail
#

Fella Plugin Creators, if you see this dm me!

worthy yarrow
#

For what

#

?services

undone axleBOT
young knoll
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

alpine urchin
sly topaz
alpine urchin
#

lol

sly topaz
#

I also really confused by that repository

alpine urchin
#

idk how maintained cliententities is, you suggested its not, but entitylib is more popular

sly topaz
#

why is there a discord bot there

alpine urchin
#

im not their spokesperson

#

lol

#

dont ask me lol

#

W comeback

sly topaz
#

turns out it just has lots of integrations

alpine urchin
#

wtf is that supposed to mean

sly topaz
#

I hate monorepos

tranquil quail
worthy yarrow
#

Yeah that doesn't answer the question

#

Talk to them about what

thorn isle
#

you can talk here

#

as long as it's dev related

#

as for dm's about non dev related things, i doubt anyone is going to slide into your dms from here to share their life story or whatever you're after

shy junco
#

I have this Velocity plugin code that sends a packet to my Fabric mod:

public void onLogin(LoginEvent event) {
    WrapperLoginServerPluginRequest request = new WrapperLoginServerPluginRequest(1, CHANNEL, new byte[0]);
    logger.info("Sending token request to player " + event.getPlayer().getUsername());
    
    PacketEvents.getAPI().getPlayerManager().sendPacket(event.getPlayer(), request);
}```

The mod receives it:

```ClientLoginNetworking.registerGlobalReceiver(HANDSHAKE_CHANNEL, this::handleHandshake);

private CompletableFuture<PacketByteBuf> handleHandshake(
        MinecraftClient client,
        ClientLoginNetworkHandler handler,
        PacketByteBuf buf,
        Consumer<ChannelFutureListener> responseSender) {
    
    try (FileReader reader = new FileReader(TOKEN_FILE)) {
        String token = readToken(reader);
        PacketByteBuf responseBuf = prepareTokenResponse(token);
        return CompletableFuture.completedFuture(responseBuf);
    } catch (IOException e) {
        LOGGER.error("Error reading token", e);
        return CompletableFuture.failedFuture(e);
    }
}```

buf structure:

```   private PacketByteBuf prepareTokenResponse(String token) {
        PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer());
        if (token.isEmpty()) {
            buf.writeInt(0);
        } else {
            buf.writeInt(1);
            byte[] tokenBytes = token.getBytes(StandardCharsets.UTF_8);
            buf.writeInt(tokenBytes.length);
            buf.writeBytes(tokenBytes);
        }
        return buf;
    }```

But I don't understand how to receive the response from the client mod in my plugin.
raw haven
#

Add a listener on PluginMessageEvent

chrome beacon
#

you've already been answered

#

Use the API

#

and move to the Paper discord for further questions

#

since this is the discord for Spigot and Bungeecord

woeful crystal
#

Is it safe to use a plugin that has spigot 1.21.8 nms shaded into it on a 1.21.7 server?

#

From what I've seen, all of the mappings I use are unchanged between the two versions

worthy yarrow
#

try it

thorn isle
#

nms shaded in

#

that is probably not what you want

slender elbow
#

1.21.7 server

#

that's just outdated 1.21.8 builds

buoyant viper
#

spigot plugin
:D

keen charm
#

👋

#

Is there a limit for lore on an item?

grand flint
#

a single line has a 256 character limit

#

pretty sure total lines would be 256 as well

sly topaz
#

there is a 256 limit for the total amount of lines, not characters

grand flint
thorn isle
#

i'm sure there is, but it's probably beyond anything that'd be practical to render on the screen anyway

grand flint
#

yeah excatly

thorn isle
#

looks like it's measured in terms of the nbt length of the component and defaults to 2097152, presumably in bytes

#

there's also a max component length constant somewhere set to 262144

young knoll
#

Yeah at some point you’ll overload the networking system

#

Especially if it’s a packet that has multiple items with big lore together (not sure if such a thing exists)

thorn isle
#

i think the old inventory click packet was like that, for drag events

#

now it's a list of HashedItemStack which is i think lighter

slender elbow
#

yeah it's just a funny hashcode

buoyant viper
#

she hash on my item till i stack

young knoll
#

What about the window items packet

slender elbow
#

what about them

#

lore component has a single network codec

#

for all itemstacks

young knoll
#

Doesn’t it send the entire window of items at once

#

Or am I crazy

slender elbow
#

yeah but that's just a List<ItemStack> network codec

#

they are still individually encoded

young knoll
#

Ah

#

I thought the entire packet could run into a limit if you had a full chest of items with huge lore

slender elbow
#

yeah there is a limit for how big any one individual packet can be

#

i don't remember what it was but isn't that how the typical chunk ban or whatever works? give someone shulkers full of written books and stuff

young knoll
#

Maybe? I figured the server would refuse to send it if it knows it’s too big for the client

slender elbow
#

oh it'll certainly refuse to encode it

#

and proceed to kick the client

young knoll
#

Seems weird to kick the client

#

Just put them in the empty void of nothingness! Much more fun

buoyant viper
#

brain fart that ill test later but does UUID#fromString care if the string has hyphen separators or not?

#

oh hi @tender shard lol

#

im also having issues w recaf rn LOL

#

my fault i was using an old launcher version woops

slender elbow
#

recaf launcher
failed to launch recaf

#

YOU ONLY HAD ONE JOB

young knoll
#

Sadly it doesn’t accept strings without the -

buoyant viper
#

i was running an outdated launcher that doesnt limit the version for JFX, bc apparently its kinda broken

worthy yarrow
remote swallow
#

That cause could do with some formatting

worthy yarrow
#

That raw info would be displayed when you click a particular event though, otherwise a summed up format is in order ofc

#

Oh weird, it gets the data of the block post event if you will... should be stone but it's shown as air

echo basalt
#

does it show who cancelled it and a stacktrace of when

#

or is it literally an event logger

tranquil quail
worthy yarrow
worthy yarrow
vast dust
#

Hey yall

#

Im making a graves plugin

#

I have everything ready

#

I just wanted to know

#

That

#

How can i make it

#

So

#

The grave chest block

#

is shown as a grave texture

#

Without making a resource pack

#

and overriding another block's texture

drowsy helm
#

you'll have to mess around with block displays

vast dust
#

So, just overwrite the chest's texture but not all chests

vast dust
drowsy helm
#

not much to elaborate, you'll have to use many block displays to make a grave. It won't actually be a chest because therse no way of overriding the chest's texture with vanilla

#

just put a barrier, listen for player interact and open a menu

vast dust
#

Ohh i have already researched that way too haha

#

I was just wondering

#

If theres a way

#

to either make the chest invisible

#

but still interactable

#

and place a custom block over it

#

or either

#

a way to overwrite the chest's texture with custom metdata

drowsy helm
#

no

#

not without a resource pack

vast dust
#

Okay

#

But with the resource pack

#

Im not against the resource pack yk

#

But

#

Im just afraid

#

that it will make all chests the grave texture

#

which we dont want

#

Basically what i want is

#

The chest with a specific metadata

#

to be shown as a grave

#

I dont mind if its a resource pack

#

@drowsy helm

drowsy helm
#

yeah dont think thats possible

vast dust
#

Can we talk in dms rq

#

I have a few ideas id like to discuss regarding this

#

That i researched

drowsy helm
#

you can discuss it here

vast dust
#

Alright

#

So basically

#
  1. Was the resource pack but then it'd overwrite all chests
    2nd. Was a unused/custom block, but then i'd have to make a custom inventory which is just wayy too timetaking as of now
#

So

#

Is there any work around you can suggest for this?

#

I was trying to use custom model data

#

but turns out

#

when you overwrite the textures using custommodeldata

#

it still places as its original

#

model texture

#

and i couldnt find a workaround

drowsy helm
#

yeah chests on the ground dont have custom model data

vast dust
#

yeah

drowsy helm
#

you're going to have to do a custom inventory solution any way you do it if you don't want to use a chest

vast dust
#

Im gonna try to go into mcreator and see if that has something

vast dust
echo basalt
#

it looks fucking awful tho because MEG is shit

#

and I think our model is backwards

thorn isle
#

Lmao

#

Mythic 🚮

mellow blade
#

hello everyone! I've been trying to implement custom auth via a token (fabric client and spigot), but nothing works.. I've tried sendPluginMessage (nothing appears on the client), protocollib with custompayload (complains that there's no strings or minecraftkeys - how do I set a channel?), what's the best way to do that? I can't find practically any documentation on plugin messaging

echo basalt
#

Did you register the plugin messaging channel?

vast dust
#

@echo basalt

#

Hey

#

I think i found a way

mellow blade
echo basalt
#

Cool

vast dust
#

Illusion

#

Nvm

echo basalt
#

chat should I block him

mellow blade
#

idk 💔

echo basalt
mellow blade
echo basalt
#

Also I'm under the impression you're using different channels for different data types?

mellow blade
#

yeah, I never worked with modern networking, only on beta 1.7, so idrk how this works

#

registering channels in onenable

getServer().getMessenger().registerIncomingPluginChannel(this, "geckex:auth", ah);
getServer().getMessenger().registerOutgoingPluginChannel(this, "geckex:authrequest");
#

ah is AuthHandler

echo basalt
#

Right so in that case you're saying the server will RECEIVE data on the auth channel and send it through authrequest

mellow blade
#

and here's the authhandler (yes, i did register events)

@EventHandler public void onJoin(PlayerJoinEvent e) {
  Player p = e.getPlayer();
  p.sendPluginMessage(plugin, "geckex:authrequest", new byte[0]);
}
echo basalt
#

please use proper naming 🙏

mellow blade
mellow blade
echo basalt
#

Check pins and scroll down a lil

mellow blade
#

Ah ok i see

echo basalt
#

Anyways I'm not sure if an empty byte array works

#

Now show me your client code

mellow blade
#

just an old habit of working with bukkit haha

#

here's whats on fabric

#
void init()
        PayloadTypeRegistry.playS2C().register(Payload_AuthRequest.ID, Payload_AuthRequest.CODEC);
        PayloadTypeRegistry.playC2S().register(Payload_AuthResponse.ID, Payload_AuthResponse.CODEC);

        handler = new PlayPayloadHandler<Payload_AuthRequest>() {
            @Override
            public void receive(Payload_AuthRequest payload, ClientPlayNetworking.Context context) {
                context.client().player.sendMessage(Text.literal("Got authrequest"), false);
                ClientPlayNetworking.send(new Payload_AuthResponse(System.getProperties().getProperty("beeshield.token")));
            }
        };

        ClientPlayNetworking.registerGlobalReceiver(Payload_AuthRequest.ID, handler);
}
#

and the request/response:

public record Payload_AuthRequest() implements CustomPayload {
    public static final Identifier CHANNEL_ID = Identifier.of("geckex", "authrequest");
    public static final Id<Payload_AuthRequest> ID = new Id<>(CHANNEL_ID);
    public static final PacketCodec<RegistryByteBuf, Payload_AuthRequest> CODEC = PacketCodec.unit(new Payload_AuthRequest());

    @Override
    public @NotNull Id<? extends CustomPayload> getId() {
        return ID;
    }
}
public record Payload_AuthResponse(String token) implements CustomPayload {
    public static final Identifier CHANNEL_ID = Identifier.of("geckex", "auth");
    public static final Id<Payload_AuthResponse> ID = new Id<>(CHANNEL_ID);
    public static final PacketCodec<RegistryByteBuf, Payload_AuthResponse> CODEC = PacketCodec.tuple(PacketCodecs.STRING, Payload_AuthResponse::token, Payload_AuthResponse::new);

    @Override
    public @NotNull Id<? extends CustomPayload> getId() {
        return ID;
    }
}
#

i'm calling the init in onInitialize in ModInitializer

buoyant viper
#

underscore in the class name is diabolical work

mellow blade
#

i've thought of modifying login packet to include the token, but didn't want to get into that yet, i would have to modify bukkit server too then (or do heavy fuckery)

mellow blade
mellow blade
echo basalt
#

I'm under the impression he's registering his own packets instead of payloads

#

not sure yet

mellow blade
#

(again, i have no experience on modern networking, so forgive me)

echo basalt
#

Are you receiving the request on the server?

buoyant viper
mellow blade
#

No, I send response only when I get the request packet, and server's handler is not getting hit

echo basalt
#

I'd say

#

just rip this

mellow blade
#

the thing is

#

uhh

#

i've based my code on this mod

#

this one is server side only

echo basalt
#

aha

mellow blade
#

so i had to tweak some stuff here and there to clientplaynetworking for example

echo basalt
#

haven't fucked around with fabric in a while but your bukkit code is "fine"

mellow blade
#

i will clean it up when i get it working i promise

mellow blade
unreal sundial
#

can someone help me with finding code? all i see is .java files called IIIIIIII

echo basalt
#

Looks like you're trying to decompile an obfuscated plugin

unreal sundial
#

im sorry what does that mean?

echo basalt
#

someone put in effort to make sure you can't decompile / reverse-engineer the plugin

unreal sundial
#

so its impossible

#

to

#

read it

echo basalt
#

nothing's impossible it's just impractical

unreal sundial
#

is there a way to deobfuscu something it

mellow blade
#

well you can manually change names back to something legible thru something like enigma

#

(given that logic is intact and not obfuscated, so you can make sense out of whatevers there)

mellow blade
sage patio
#

any idea why i always have to manually import Latest version of spigot?

#

1.21.8 will get imported correctly when a new version is released, but now then its the latest? no

#

(this project is not mine so its on maven, but the latest spigot its always the same on maven)

hazy parrot
#

What

chrome beacon
#

because it's not already cached on your system so Intellij can't detect it

#

also I have no idea why you've changed the group id

sage patio
#

whe previous ones wasn't cached either, this is the only maven project i have

sage patio
chrome beacon
#

You should be using multiple modules

sage patio
#

say hello to MTVehicles which it was and still it is a pain

#

i'll build and import the latest one manually then

misty ingot
#

how can i get the display name of a Material in a specific language?
for example
BREAD would give me Pain

eternal night
#

you can't, the server only ships en_us

winter jungle
thorn isle
echo basalt
#

spigot is build with BT and cached in mavenlocal

#

and sometimes illegally distributed through other maven repos like <REDACTED>MC and some others

#

heck I have a private repo with some folia devbuilds and other goodies myself

sullen marlin
#

Also what's with the ......

echo basalt
#

he was thinking about it

sterile geyser
#

help me

echo basalt
#

no

winter jungle
#

nah

echo basalt
#

buddy left the server 😭

#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

winter jungle
#

he left

#

I think he took it personally

sage patio
sullen marlin
misty ingot
#

no workaround?

#

except ofcourse manually making a config file with the translated name of each material

thorn isle
#

why are you trying to translate it manually

sage patio
thorn isle
#

typically you create a translatable component and then have the client translate it to the correct locale

misty ingot
#

that works too, how would i go about doing that?

thorn isle
#

depends on the context in which you are trying to display the text

thorn isle
#

with adventure, you create one with Component.translatable(translation key), you can get the translation key from an itemstack/block

#

i don't remember how bungee components on spigot work anymore since it's been too many years since i last used them

misty ingot
#

i wonder if that works with PAPI

#

likely not right

echo basalt
thorn isle
#

depends on how you do it

misty ingot
#

i basically wanna return the display name of a material i choose through a papi placeholder
now i could do this easily IF i was allowed to do it in only en_us

#

but its in another language

sage patio
#

still using this master peace to build spigot xd

thorn isle
#

so you choose the material with the placeholder?

echo basalt
#

papi doesn't support components afaik

#

but you can run the result through minimessage elsewhere

echo basalt
misty ingot
thorn isle
#

it doesn't directly, but yeah minimessage works

sage patio
#

already build 21.8

misty ingot
thorn isle
#

i don't remember

#

basically minimessage is a string format that supports defining components with like <hover> and <translatable> tags, which you'll need to use since papi works with strings rather than components

#

so you take your raw string, parse it through papi, then parse it with minimessage into components

#

and then you shove the components in the item lore or send them in chat or whatever

echo basalt
#

pretty sure kyori also has a translation thing where you can use the player's locale

#

that way you skip translatable components entirely and decode them on the server

#

as long as the server has access to the lang data

slender elbow
slender elbow
mellow blade
#

hmm

#

how should I reorganize it then?

slender elbow
#

instead of sending in the join event, send in the other event i suggested, making sure the event is being called for the channel you are registering (auth or whatever)

alpine solar
#

aren't you supposed to use modules?

slender elbow
#

yes

sage patio
alpine solar
#

😭

sage patio
#

Also i dont know much about maven

worldly ingot
slender elbow
#

a big brain move to improperly structure your project yes

thorn isle
#

how does that work with so many duplicate classes on the classpath?

worldly ingot
#

That's why I also said profoundly stupid LaughingKirby

potent heron
#

anyone can give me an idea for make a pluin

grand flint
#

grow a garden

potent heron
#

a plugin of steal a brainrot?

grand flint
#

yeah

potent heron
#

Tell me something else like what you want me to do

grand flint
#

idk go play the roblox game

#

it has a gazillion players

worldly ingot
#

Roblox unironically is probably a good place to find inspiration

potent heron
#

ok

#

Yes

thorn isle
#

bomb your neighbor (in minecraft)

grand flint
#

roblox steals from steam

#

minrcraft steals from roblox

#

ez

sand bridge
#

I'm sure is plenty of people willing to pay 5,10 prob even 20$ for it

grand flint
#

15$

potent heron
#

but I still can't publish a paid plugin

grand flint
#

hmm

#

publish an extension for the plugin first

#

then publish the paid plugin lmao

potent heron
#

ok

thorn isle
#

why would an ah plugin need consistent updates

#

seems like a pretty feature complete concept, no?

#

you put things up for sale and people can buy them

#

you could probably write one against 1.8 and have it work on 1.21.8

slender elbow
#

"bump version"

grand flint
#

lmao

wooden bay
daring light
#

What would be the best way to disable a specific item from being crafted?

potent heron
#

anyone is bedrock for taste mi plugin

wooden bay
#

Let me taste your plugin

coral dagger
#

Can everyone help me with my plugin

#

package de.WombedCone.minecraftServerPlugin;

import de.WombedCone.minecraftServerPlugin.commands.testCommand;
import org.bukkit.plugin.java.JavaPlugin;

public final class MinecraftServerPlugin extends JavaPlugin {

@Override
public void onEnable() {
    // Registrierung des Befehls
    if (getCommand("testCommand") != null) {
        getCommand("testCommand").setExecutor(new testCommand());
        getLogger().info("testCommand erfolgreich registriert.");
    } else {
        getLogger().warning("Fehler: testCommand wurde nicht in plugin.yml gefunden!");
    }
}

@Override
public void onDisable() {
    getLogger().info("MinecraftServerPlugin wurde deaktiviert.");
}

}

#

name: Minecraft Server Plugin
version: '1.0-SNAPSHOT'
main: de.WombedCone.minecraftServerPlugin.MinecraftServerPlugin
api-version: '1.21'
commands:
testCommand:
description: Ein Test
aliases:
- test
permissions:
Test:
description: Erlaubt Zugriff auf den testCommand
default: op

#

package de.WombedCone.minecraftServerPlugin.commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

public class testCommand implements CommandExecutor {

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (sender.hasPermission("test")) {
        sender.sendMessage("§aDas ist ein zweiter Test");
    } else {
        sender.sendMessage("§cDu darfst das nicht tun.");
    }
    return true;
}

}

#

ich wollte nur mal testen zu programieren

#

und es funktioniert nichts

kind hatch
#

?paste

undone axleBOT
kind hatch
#

We have it for a reason

thorn isle
#

what do you need help with specifically

pure dagger
#

do we do == or equals to check if 2 inventories are the same? cause i think they have to be the same object

worldly ingot
#

They should be referentially comparable, but if you're ever unsure, there's no real harm in calling equals()

#

Except an NPE I guess lol

young knoll
#

Objects.equals

pure dagger
#

okay so its better to use == ?

hybrid spoke
pure dagger
#

i guess i do

hybrid spoke
#

otherwise equals is always the better option

pure dagger
#

i wanna check if the inventory is a gui, so i can cancell event, but im not sure if this can be 2 objects but same inventory

#

if you know what imean

hybrid spoke
mortal hare
#

who the hell decided that this is a good idea

#

"Im gonna waste hours in debugging because i wont tell you what broke" ahh moment

#

i hate visual studio

#

ofc it was a caching issue in visual studio

#

because WHY WONT THE CLEAN AND REBUILD OPTION WONT CLEAR THE CACHE

#

who would have thought that it would clean the project

young knoll
#

What are you doing in visual studio

mortal hare
#

including the cache

#

im forced to use it for x++

#

i'd have to say it was the worst experience i ever had in programming

young knoll
#

x++?

mortal hare
#

desync issues everywhere

#

yes

#

its proprietary microsoft language based on .net

young knoll
#

Is that like some weird language made by Elon musk

mortal hare
#

for dynamics 365

#

the tooling for is like made out of twigs

#

it barely works

#

and always throws errors even if you didnt do anything wrong

#

for example i had to edit xml file manually because visual studio has a bug where regenerating it doesnt append parameters properly

#

that's how awful it is

young knoll
#

The heck is dynamics 365

mortal hare
#

i thought i've seen everything ,but then i saw x++ ecosystem and it was new low for me

mortal hare
#

its ERP system basically

#

its slow, lacks basic functionality, tooling for it is awful

#

i cant see a single reason i would use it

young knoll
#

So why are you forced to use it

mortal hare
#

work related

young knoll
#

Some company that never migrated after 20 years?

mortal hare
#

that's the modern stack im describing of Dynamics/Axapta

#

its awful

young knoll
#

I assume the old one was just chalk on a slate

mortal hare
#

its like getting segfaults everywhere but its not that you cause it but some weird visual studio bug does it

#

and you're the bug hunter for bugs which caused visual studio xml generators for that system

#

there's no LSP for it in visual studio code, it there was i would never use that pile of crap

#

the worst i've seen is that you need to use visual basic to generate reports for certain records

#

and its ok, its legacy right, its understandable

#

but then you realize that that sometimes it deletes the whole design from the project for no apprarent reason if it fails to load it

#

and now you have to redo the design all over again just because visual studio craps itself

wet breach
mortal hare
#

all of tech which d365 f&scm uses is kinda legacy in a way but with new layer of paint (GUI was ported from desktop app to web UI which is kinda awesome)

#

buttt.... i would expect legacy components be stable as a rock (backend stuff)

#

yet its either visual studio which is buggy or the build tools for it

wicked bluff
#

Just saw today that the bungee TextComponent is depreciated, I almost never need to use it, does this mean that spigot is getting Adventure as a replacement?

young knoll
#

Ur using the paper api aren’t you

wicked bluff
#

No, but I am trying to send players rich text on Spigot, Paper and Folia.

young knoll
#

Well I assure you it’s not deprecated

wicked bluff
#

I see, loaded another project, still getting used to Intellij switched from eclipse. Good I don't have to relearn how to do components. whew.

buoyant viper
#

but yeah Paper+Folia might just complain bc it recommends u use Adventure, but until they hard break their API ur basically fine using Bungee components

feral salmon
#

@sullen marlin Can we talk privately? I would like to talk to you about trying to contribute more too the SpigotMC project and its infrastructure.

I have alot of unused equipment and 10 static ip addresses.

#

been here for 9 and 1/2 years now.

#

I am quite invested in this marketplace and its future.

woeful crystal
#

Hi

vast dust
#

Hey guys

#

I will be done with my graves plugin today

#

Just adding polishes

#

Anyone who'd be down to help me find bugs in the plugin and test it?

#

DM

winter jungle
feral salmon
#

If at first you don't succeed, try try again.

drowsy helm
#

i might be wrong but i think spigot infra is already subsidised by a sponsor\

#

and not to throw a shot at you, but nothing in your website really shows that you're a reputable host

twin venture
#

how much time it takes?

sullen marlin
#

5-7 years

buoyant viper
#

what are the prerequisites for using api provided by another plugin, just setting as a [soft]depend in your plugin.yml, and the Plugin classloader will do the rest?

young knoll
#

Yep

buoyant viper
#

going to try my best to prevent cyclic dependencies, but how are those handled?

#

iirc i know a cyclic hard depend just fails

#

but i remember reading somewhere recently that cyclic softdepends are "handled arbitrarily"

twin venture
thorn isle
umbral ermine
#

hey i want to make a plugin for 1.21.1 and i have coded it .zip can someone tell me how to make it be .jar?

chrome beacon
#

I assume you vibe coded it

#

as you've been answered in general you can use maven or gradle

thorn isle
#

Change the extension from zip to jar

chrome beacon
#

I'm going to assume they just zipped the .java files

thorn isle
#

Good enough

young knoll
#

What the JVM can’t compile it itself?

#

Smh

thorn isle
#

Let me tell you about graalvm

misty ingot
#

when i set the display name of an itemstack, it makes that name italics
how can i remove the italics?

lilac dagger
#

&r in front?

misty ingot
#

why does it make it italics anyway

#

its so... unnecessary

lilac dagger
#

i dunno

#

may be a way to differentiate from the og name

pseudo hazel
#

yes its because when you name an item in an anvil its italic so people know its different from the underlying name

misty ingot
#

i see.

#

well at least it does serve a purpose

lilac dagger
#

oh right

#

display names comes from anvil feature no?

young knoll
#

Pretty much

lilac dagger
#

that's so cool

young knoll
#

Back before we had components and all that fancy stuff

slender elbow
#

1.6? :p

young knoll
#

1.4

grim hound
#

When you retexture an elytra, the texture curves at the edges, not to mention that it needs to be in a very specific location to even render
Does anyone know how you could render some bigger elytra texture that does not curve on the edges?

potent crescent
#

wtf

#

is that really? lol

potent crescent
#

i dont think

#

it will work

grim hound
#

They are the same thing

potent crescent
grim hound
#

Like 4 people told you so already

thorn isle
#

a jar is just a zip, the format is the same

potent crescent
#

omg

thorn isle
#

but a jar of course needs to have the correct things in it to function as a plugin

#

which, if you vibecoded it and it's like .txt and .java files, is not what'll happen

potent crescent
#

I thought we needed a meaven to assemble and build it.

thorn isle
#

that is preferred, but just compiling .java files through javac into .class files and then zipping them up works as well

#

it's just a lot more effort to do that, so maven is used to automate the process

#

so i still would recommend you look up how to set up maven and gradle and use that to build

potent crescent
#

alr

#

It was a strange idea for me 😂

thorn isle
#

i think that should be possible with modern versions; it used to be that equipped item models, like armor or elytra, weren't remodelable/texturable with custommodeldata

#

but i vaguely remember support being added for that in i think 1.21

grim hound
#

I see what you mean

#

So basically creating a high resolution elytra texture and put my own texture on the part that's always rendered flat

#

And just increase the scale somewhere

#

I wonder, will minecraft pixelate it or does it not do any bs and just renders the vertices as they are?

thorn isle
#

vertices are a model thing, pixels are a texture thing

grim hound
#

I am aware

thorn isle
#

you can't pixelate vertices

grim hound
#

I am

#

Not

#

The sharpest pencil in the pencil case

thorn isle
#

can you rephrase your question

grim hound
#

Basically elytras

#

They render the major part of them on a flat surface

#

However, if you texture goes beyond a certain point

#

It will become 3d

#

As in: the texture will wrap around a 3d block

grim hound
#

Some won't render at all

thorn isle
#

different portions of the texture are UV mapped to different faces of the model

#

this should work the same say as upscaling regular block textures does

grim hound
#

Now I want to render wings, which should be only on a flat surface to look good

thorn isle
#

my recommendation would almost be to get one off of mcmarket to get your hands on a wings model, or make one in blockbench

#

the standard elytra model won't do

#

it has a fixed shape and size and changing the texture only changes what colors that shape look like

grim hound
#

But you can just put the texture on only one face

#

(altough not sure where that is)

#

No wiki on that

grim hound
#

Just having trouble getting it right, since it seems to often get into the other faces at the edges

#

And when made smaller, it just intersects with itself when rendered for some reason, and well, is smaller, much less noticeable

thorn isle
#

are you trying to make the wings appear visibly larger ingame than the vanilla elytra is?

grim hound
#

Nope

thorn isle
#

smaller?

grim hound
#

Nope

#

Same size if I could

#

But I could take larger

thorn isle
#

you just want them to be higher resolution?

grim hound
#

Well bigger and not intersecting

#

Since resolution can be probably solved by just using a higher multiple of the 2:1 ratio of the elytra texture for the canvas

thorn isle
#

if you want them to be larger, you have to change the model

#

same if you want to change the shape otherwise, i.e. make them not intersect

#

i can't find the specific model in the assets with a quick search, you might be better off asking in some modeling discord like blockbench

#

or mythicmobs, but they will probably tell you to buy one of their 500 copy-paste $25 wing asset packs

grim hound
#

Blockbench it is

misty ingot
#

how can i go about supporting color codes like #ffe400

grand flint
#

minimessage

misty ingot
#

how exactly?

echo basalt
buoyant viper
#

either with ur own way of formatting it, or with a prebaked solution like MiniMessage like others mentioned

thorn isle
#

minimessage is quickly becoming the new industry standard

#

i really advise against a homebrew solution of parsing it yourself

misty ingot
#

so i have a component now, which i got from #deserialize()-ing a string with a color tag
now how would i use this component to set the name of an item, or to send this message to a player

buoyant viper
#

besides gradients and "actionable" components (hover, click) i support mm-esque formatting :p

young knoll
#

I mean

#

Spigot can parse it fine

young knoll
thorn isle
#

if you mean the § thing, yeah, though you'd probably want to regex the #rrggbb into that so the end user doesn't have to deal with the §s

young knoll
#

For an item name, either NMS or just use the legacy serializer to go back to a string

thorn isle
#

i would've just uh

misty ingot
#

how the heck does it get the color from the hex

buoyant viper
#

Components handle that magic for me internally lol

#

i just supply spigot with the String format it expects

misty ingot
#

so how exactly am i support to use this

thorn isle
#

done replaceAll with (?i)#([a-f,0-9])([a-f,0-9])([a-f,0-9])([a-f,0-9])([a-f,0-9])([a-f,0-9]) and §$1§$2§$3§$4§$5§$6

misty ingot
#

i have to turn the string i get into a component?

young knoll
#

But that’s not a compiled regex!!!!111

thorn isle
#

idk how regex actually performs in java actually

buoyant viper
thorn isle
#

the strinbuilder scan method might be more efficient

young knoll
#

I found one that actually compiles the regex to a pattern a while ago

#

Don’t remember where it was, somewhere on the forums

thorn isle
#

i mean you can just toss that into a Pattern.compile and then do new Matcher(str).replaceAll() or something

#

String::replaceAll is just api sugar for matcher anyway

misty ingot
#

@buoyant viper what exactly do you do with the output of #convertHexTags to make it work?

thorn isle
#

you pass the string to one of the spigot methods that handle color codes

young knoll
#

I think this was it

thorn isle
#

just as you would pass a string with other § color codes

#

e.g. player::sendMessage

young knoll
#

Doh that doesn’t link to the exact reply

thorn isle
#

myeah that's how you'd do it

#

those matcher methods were the best thing added in java 9

misty ingot
#

so the string that method gives me is formatted in a way that i can just use it straight up?

young knoll
#

public String translateHexColorCodes(String startTag, String endTag, String message)
    {
        final Pattern hexPattern = Pattern.compile(startTag + "([A-Fa-f0-9]{6})" + endTag);
        Matcher matcher = hexPattern.matcher(message);
        StringBuffer buffer = new StringBuffer(message.length() + 4 * 8);
        while (matcher.find())
        {
            String group = matcher.group(1);
            matcher.appendReplacement(buffer, COLOR_CHAR + "x"
                    + COLOR_CHAR + group.charAt(0) + COLOR_CHAR + group.charAt(1)
                    + COLOR_CHAR + group.charAt(2) + COLOR_CHAR + group.charAt(3)
                    + COLOR_CHAR + group.charAt(4) + COLOR_CHAR + group.charAt(5)
                    );
        }
        return matcher.appendTail(buffer).toString();
    }```
#

Though you should move the pattern to a static field

buoyant viper
thorn isle
#

or no that doesn't use the new java 9 methods

buoyant viper
#

but with the regex pattern being a constant yeah

thorn isle
#

that uses the old ugly java 8 while find

young knoll
#

The method itself should probably be static too

#

Also isn’t StringBuffer the fancy threadsafe one

young knoll
#

Should be a StringBuilder

sly topaz
#

oops mention, sos

young knoll
#

Technically it’s in the big 2020

#

And we all know that year was a mess, so the code fits

thorn isle
#
public String translateHexColorCodes(String startTag, String endTag, String message) {
        final Pattern hexPattern = Pattern.compile(startTag + "([A-Fa-f0-9]{6})" + endTag);
        Matcher matcher = hexPattern.matcher(message);
        return matcher.replaceAll((MatchResult match) -> {
            var group = match.group();
            return COLOR_CHAR + "x"
                    + COLOR_CHAR + group.charAt(0) + COLOR_CHAR + group.charAt(1)
                    + COLOR_CHAR + group.charAt(2) + COLOR_CHAR + group.charAt(3)
                    + COLOR_CHAR + group.charAt(4) + COLOR_CHAR + group.charAt(5);
        })
}
buoyant viper
#

i just have a custom solution because i hate myself and reinvent the wheel

young knoll
#

But minimessage has to parse it to a component and then back to a string!!!!111

#

Muh cpu cycles

sly topaz
#
private final static char COLOR_CHAR = '§';
private static final Pattern HEX_PATTERN = Pattern.compile("<#([A-Fa-f0-9]{6})>");

public static String color(String message) {
  return HEX_PATTERN.matcher(message).replaceAll(mr -> {
        var hex = mr.group(1);
        var sb = new StringBuilder(COLOR_CHAR + "x");
        for (char c : hex.toCharArray())
          sb.append(COLOR_CHAR).append(c);
        
        return sb.toString();
  });
}
ivory sleet
#

now ur creating a new array no?

thorn isle
#

what now

#

replaceAll builds and returns the string

buoyant viper
thorn isle
#

i don't think you need an extra stringbuilder here

#

the group(1) in place of group() is correct

sly topaz
#

but it gets translated down to a string builder anyway

thorn isle
#

mmm i don't think it does anymore

#

it was in like java 9 or 16 or something that string joins were optimized a bit

ivory sleet
#

Ur still cloning the arr in the for loop

#

Which vcss version doesnt have

thorn isle
#

it tries to estimate the length ahead of time now and does it all with just a single string construct if it can

#

in this case the length can be determined ahead of time since the joined bits are all either string constants or char primitives

sly topaz
thorn isle
# ivory sleet Which vcss version doesnt have

if we're counting allocations and shit the while find stringbuilder is probably the most efficient approach (replaceall still needs to splice together a bunch of strings), but this is a bit less verbose

sly topaz
#

I do wonder whether it gets optimized away

thorn isle
#

you can get rid of the array clone with the String::chars iterator i think

sly topaz
#

Does compiler explorer have a JITted Java output? lol

thorn isle
#

it might get optimized away by jit yeah

#

seems like a viable case for escape analysis maybe

#

looking at how shit gets jit'd is a bit more complicated than bytecode since it depends on runtime heuristics

#

you usually just run the program with a benchmark with the some arcane jit debugging flags on that i don't remember that dump the c1 and c2 compiled code and display inlining info and shit

sly topaz
#

There is no possible way a color message method is called enough times that it gets optimized out but I do wonder

thorn isle
#

and then you look at it with some assembly viewer

sly topaz
#

I’ll try make a JMH benchmark since I am bored

#

famous last words

thorn isle
#

i last did this a few years back when trying to optimize server AABB allocations and i was like blackout drunk so i don't quite remember the process anymore

#

all i remember is that i'm very disappointed in jit escape analysis

#

almost every allocation of AABB could be eliminated with competent escape analysis, but jit gives up because there are like 50 nested overloads on the AABB resize methods, so they can't be inlined

#

i'll eventually maybe try submitting a pr to paper that straightens out the overloads directly into the ctor

sly topaz
#

Tbf that is not something a JIT would take care of

#

They need to be fast, and escape analysis of that level is probably not

thorn isle
#

i mean it would work if jit would inline the entire call

#

but it goes over the default instruction length for inlining

#

it works fine when you crank it up to like 10x

#

but that has other issues

sly topaz
#

I wish we had compiler intrinsics in Java

#

That way we could just hint the jit to in-line stuff as necessary

thorn isle
#

there's @ForceInline but it's restricted for internal jvm classes only

#

because regular java devs can't have nice things

#

what do you mean you want more control over your code and how it runs? no, fuck you, also we're getting rid of unsafe because fuck you

#

you could accidentally BREAK SOMETHING if we let you use these things

sly topaz
#

They do treat us pleb Java devs like babies

#

Then there’s languages like Nim which just let you do whatever you want

buoyant viper
#

just write C

#

a Segfault awaits at every corner

torn shuttle
#

wonder when they'll release chatgpt 5

#

the deadline is tomorrow right

#

yeah

grand flint
#

whats wrong with the new gpt

torn shuttle
#

on august 2nd new EU laws kick into action that start regulating ai companies

grand flint
#

its pretty smart if u ask me

#

depends how u ask it though

#

like if u just say code me a plugin ur just stupider than the ai 🙏

thorn isle
#

how are they regulated

#

social scoring

#

i already violate it

#

good

torn shuttle
#

so models are trying to do a big last push in the next 24h

#

seemingly the idea would be to have gpt 5 out before the new deadline hits

thorn isle
#

neat

torn shuttle
#

there's other stuff as well but that's probably the biggest immediate change

#

much funnier is how they're fighting against microsoft

#

they have a contract with microsoft where microsoft has a bunch of rights and owns 49% of their business but only until openai achieves AGI

echo basalt
#

@lost matrix remind me, did you have some sort of distributed map that would do instant reads/writes to a local cache with eventual replication?

sly topaz
echo basalt
#

I need something with instant reads, eventual writes and distributed

torn shuttle
#

so now microsoft is already saying gpt 5 is kinda bad while altman is out there claiming it's literally going to destroy all of human civilization the moment it comeso ut

sly topaz
#

and if they launch, it si gonna be the most mid launch ever

echo basalt
#

TTL etc are nice-to-haves

torn shuttle
#

it's just very, very funny

#

honestly the main thing I want is just for them to slash api costs by a lot so other providers do the same, api prices are still way too high

thorn isle
#

it's going to be another nothingburger i'm sure

torn shuttle
#

eh I mean it'll probably just be a bit better

#

I don't find any of the gpt models to be better than claude right now

#

maybe it'll meet claude, or maybe beat it by a bit

#

I did hear they are finally doing 1 million context size though which is nice

sly topaz
torn shuttle
#

I mean google has been doing 2 million for months but it's still nice

echo basalt
#

Does Hazelcast populate the map on startup?

thorn isle
#

if you agree to share traffic with them they give you something like 10m free daily tokens, and you can enable it for specific projects so you can do both

echo basalt
#

trying to do guilds with claims without having to worry about latency

sly topaz
thorn isle
#

i use it for the deep research models because i don't really care if openai trains their shit on the specific bearing sizes or spare part specs i'm trying to find online

#

and it saves me lots of money because the deep research models eat up tokens like crazy

echo basalt
#

My AI's suggesting this

thorn isle
#

how does eventual replication with instant writes work

echo basalt
#

I don't care about instant writes

thorn isle
#

what if two parties write a value to the same key

echo basalt
#

they can have locks idm

#

in short I need instant read access to "loaded guilds" across the entire network, can do async / locked writes and once a guild becomes unloaded it gets removed from the maps and yeeted into the db

lost matrix
echo basalt
#

Sure might as well

#

Sounds like RLocalCachedMap with extra steps

sly topaz
#

if you're already using redis then LocalCachedMap is probably your best bet

torn shuttle
#

I don't see why I should care if whoever trains their models on my code honestly

echo basalt
#

problem with LocalCachedMap is that the data is only cached when it gets hit

lost matrix
thorn isle
#

yeah, if anything, it just means the next model might be marginally better at what i'm trying to do

echo basalt
#

the AI solution could work

#

where it just gets every key and calls get

#

for shits n giggles

thorn isle
#

but if you use it to like process personal information of other people it might be illegal or something

torn shuttle
#

I love putting static classes as listeners inside of other classes

#

I don't know really anyone else does that but the ai definitely sees it coming when I start typing it

sly topaz
echo basalt
#

it can get stale idm

thorn isle
#

out of curiosity, what is this for

sly topaz
echo basalt
#

Rpg server thingy

#

Already explained up above sorta

#

Sup fella

sly topaz
#

I can't remember the last time I have seen one

daring light
#

I wonder why

torn shuttle
#

you're right, we should ban you here as well

#

maybe a mod can wake up and deal with that

thorn isle
#

i think i implemented this myself a while ago for generic network-wide player data, like nsfw filter toggle status

sly topaz
#

@young knoll maybe you wanna take a look at this

thorn isle
#

though it was a sort of homebrew solution on top of rabbitmq rather than redis, because i don't like redis

#

but redis is probably the more appropriate tool

sly topaz
#

or well, valkey now

thorn isle
#

it seems like it's a jack of all trades and kind of shit at them all

echo basalt
#

I jiat realized making feature flags with it becomes effortless

thorn isle
#

i remember there being two or three big ones

#

but they all went bankrupt

torn shuttle
#

they come and go

thorn isle
#

i don't think it's any less popular than like say towny, just setting up a good rpg server that's worth playing takes way more money and effort than the alternatives

#

so they all go bankrupt and run out of manpower in like a year

torn shuttle
#

even if you make a good rpg experience, they all end at some point

#

unless someone starts working on a WoW type beat in minecraft which you'd have to be insane to try

echo basalt
torn shuttle
#

at some point you have just reached the end of the experience

thorn isle
#

if it isn't super massive you can probably churn through new players as old ones leave, rather than try keeping up with new content

#

a new one is born every minute

torn shuttle
#

sure

lost matrix
torn shuttle
#

there's some servers out there that kinda do it but they don't tend to stay in the zeitgeist for long

#

even if it's new to someone, it no longer is news

sly topaz
#

if HP Skyblock could get popular with MMORPG-like features, I am pretty sure other gamemodes could as well

thorn isle
#

well yeah i don't think churning through players and staying hip with the mainstream are mutually compatible

#

or god knows

#

the mainstream seems dumber and dumber every year

echo basalt
#

that literally looks like you reinvented RLocalCachedMap

thorn isle
#

fucking "generator" servers

#

literally 3d cookie clicker

sly topaz
#

is that still a thing, I was amazed that got any popularity

thorn isle
#

it seems to be more popular than ever

torn shuttle
#

hey I like a good incremental game

#

nothing wrong with those

sly topaz
#

I never got the concept right, is it just like, mining? Lol

lost matrix
torn shuttle
#

I'd take an incremental game over a gacha game any day of my life

thorn isle
#

it has evolved to "dungeon" servers where instead of generating things you auto-attack progressively more damage-spongey mobs that stand still and don't fight back, for incremental weapon upgrades

sly topaz
#

I love gacha, I am sadly too poor to actually enjoy it though

thorn isle
#

i.e. stand in place and pick a new mob to auto-attack once a minute or so as the old one dies

torn shuttle
#

that's just poor execution on a concept that could work

thorn isle
#

they're all like this, this is the mainstream execution

#

i think because it's functionally just a reskin of the already popular generator/idle bullshit

#

making it actually a game would defeat the point

sly topaz
#

or holocure

torn shuttle
#

you can make something like that fun imo, you just have to do it right

thorn isle
#

is that some mobile game i'm too old to know about

torn shuttle
#

even if it's autofarming mobs

echo basalt
torn shuttle
#

vampire survivors is a whole genre on steam now, and a pretty wildly popular one at that

#

it autoattacks and you just pick from upgrades while dodging enemies

#

in a sense you could see it as a spiritual successor to those 2d space shooter games

#

a lot of those also just always had guns shooting

lost matrix
echo basalt
#

And maybe some configuration system where I can pass a default executor or something

torn shuttle
#

really vampire survivors is just a bullet hell game where you have to pick your powerups as you go

echo basalt
#

I wouldn't mind turning this into a full library with sets and other collection types

torn shuttle
#

man I really am putting off working on my resourpack pack hosting ysstem

#

fml

#

I should get back to that

lost matrix
echo basalt
#

I wouldn't take it as far as hooking into mongo or whatever

sly topaz
echo basalt
#

just something with configs and whatever else

#

maybe something that implemented Map instead of just a couple methods

undone axleBOT
#

Done. That felt good.

young knoll
#

Crap that wasn’t a softban

torn shuttle
#

lol

echo basalt
#

also line 56 could be reworked to invoke loadFullRemoteState

lost matrix
# echo basalt I wouldn't take it as far as hooking into mongo or whatever
  private final Map<String, SomeData> localMap;
  private final Map<String, SomeData> mongoMap;
  
  public SomeClass(MongoDBDataHandlerFactory mongoFactory) {
    this.localMap = new HashMap<>();
    this.mongoMap = mongoFactory...;
  }
  
  public void load() {
    this.localMap.putAll(this.mongoMap);
  }
  
  public void save() {
    this.mongoMap.putAll(this.localMap);
  }

Example. It can serialize practially anything automatically.

echo basalt
#

at that point

#

just have RemoteMap and CachedMap<K,V>(RemoteMap<K,V>) impls

undone axleBOT
#
CafeBabe Help Menu

**Syntax:
**```
?cleanup

Base command for deleting messages.

**__Subcommands:__**

after Delete all messages after a specified message.
before Deletes X messages before the specified message.
between Delete the messages between Message One and Message Two...
bot Clean up command messages and messages from the bot in the...
duplicates Deletes duplicate messages in the channel from the l...
messages Delete the last X messages in the current channel.
self Clean up messages owned by the bot in the current channel.

**__Subcommands:__** (continued)

text Delete the last X messages matching the specified text in...
user Delete the last X messages from a specified user in the cu...

young knoll
#

Crap

echo basalt
#

jishuna you're bogging down the chat

#

someone mute him

lost matrix
#

The staff here is of questionable quality i must say

young knoll
#

Hey wait a second

echo basalt
#

I think I've seen my dad more than you, smile

lost matrix
#

Is that a euphemism for something? I dont get it.

echo basalt
#

milk joke

torn shuttle
#

he does

lost matrix
#

What?

echo basalt
#

dad went out for milk and never came back joke

torn shuttle
#

I saw that

lost matrix
#

Ah

echo basalt
#

perv

torn shuttle
#

worse than perv

thorn isle
torn shuttle
#

a cowardly perv

#

stand your ground

#

leave that stupid joke up

sly topaz
#

don't worry I saw it too

thorn isle
#

cross-server writes were locked and used futures

lost matrix
#

Delusional peple here. Shaking my head.

echo basalt
#

smh my head

torn shuttle
#

I ain't no coward, I'll say it: the mods think @echo basalt milks his dad, and I think that is very funny

echo basalt
#

as for the events it might be worth knowing if they came from a resync vs whatever else

lost matrix
#

Anyways, no idea why i even went there. I got stuff to do. Hf spigoteers spigot

thorn isle
#

this was actually a little difficult to get right since on velocity, a player connects to the target server before they disconnect from the source server

lost matrix
thorn isle
#

thankfully there is a time window during which the client goes through the config phase and that's more than enough to update network state for who is the authoritative server

echo basalt
#

can we get a removeIf pls :3

torn shuttle
#

ok I need to actually look at this resource pack hosting code again, fml

thorn isle
#

though only because it takes some time for the client to reconfigure and talk with the target server before properly joining in

#

which is kind of unreliable in principle but in practice it works with good enough margins for me to trust it

#

if it ever develops into a problem, i can always drop and resend some config packets to keep the player in between login and play for as long as i like, making sure the network state is all set

#

for now though, no need

echo basalt
#

Also @lost matrix your library fails in some cases if there is remote data that isn't locally cached

#

I'm also changing the thread-safe methods to return futures

#

Might be worth adding remoteValues and localValues methods as well

dry orbit
#

Is there any way to manually check wether a client is official (not cracked) and currently on a valid auth session with microsoft without needing online mode to be on? (so I'd avoid to require /login for these users)

I already tried keeping online mode to true and preventing kicks via asm (redirecting to login instead), but this really messed up uuids.

grand flint
#

u kept saying bruh

grand flint
#

bro u speak like an idiot

young knoll
#

?ban @thorny furnace continued racism

undone axleBOT
#

Done. That felt good.

grand flint
#

@molten hearth

slender elbow
#

xDDDDDDDDDD

grand flint
#

LMAO

young knoll
#

Bot are you gonna get those messages?

grand flint
#

dont bro that shit is so funny

young knoll
#

Oh wow it did get them

#

Just took a while

grand flint
#

also doesnt discord delete it

#

does it w me sometimes too

young knoll
#

Yes if you ban through discord you can remove messages

#

But that’s a separate thing

molten hearth
#

😡

hard socket
#

how can I check player interactions with display entities if they have no hitbox?

torn shuttle
#

well hey

#

google refunded me

#

so I got that going for me

sullen marlin
#

at org.bukkit.craftbukkit.v1_21_R5.CraftChunk.getEntities(CraftChunk.java:127) ~[spigot-1.21.6-R0.1-SNAPSHOT.jar:4518-Spigot-d5ca3f8-98f7fa2]
at com.magmaguy.elitemobs.CrashFix.delayedChunkCheck(CrashFix.java:65) ~[?:?]
at com.magmaguy.elitemobs.CrashFix.onChunkLoad(CrashFix.java:85) ~[?:?]

torn shuttle
#

iirc checks for persistent data containers to check identifiers

#

as in iterats through entities in the chunk and checks their pdc

sullen marlin
#

so ChunkLoadEvent -> event.getChunk().getEntities()

torn shuttle
#

yeah

#

is the paste website fixed

sullen marlin
#

ages ago?

torn shuttle
#

?paste

undone axleBOT
torn shuttle
sullen marlin
#

why would Chunk.isLoaded be returning false during ChunkLoadEvent

torn shuttle
#

🙂

#

why do chunks unload twice

#

why do chunks load twice

#

and why at random

sullen marlin
#

hm? can you repro?

#

I can't repro

torn shuttle
#

yeah

#

but very inconsistently

#

last I verified the issue was a while ago so I don't have any code that has currently verified that for 1.21.8

#

at this point I no longer design anything to depend on vanilla chunk loading because it will actually double load or double unload at random, messing things up

#

should be as simple as picking a random non spawn chunk somewhere to track then going to it and away from it repeatedly to see if it's still happening while logging the result

#

or keeping a set of loaded chunks based on loads / unloads then checking if it ever tries to add something twice or remove something twice

young knoll
#

Aren’t you supposed to access entities in the EntitiesLoadEvent

torn shuttle
#

maybe, this is really old non-critical code

#

the other stuff I was checking was locations, not entities

#

I don't like using persitent entities, I make my own

sullen marlin
#

I suspect the issue is more for some reason Chunk.isLoaded is false in ChunkLoadEvent in that stack trace (but not what I can repro)

#

the ChunkLoadEvent code scares me

torn shuttle
#

yeah it's bad

#

having used it probably more than most

#

it's real bad

worldly ingot
#

The world code scares me

alpine urchin
#

you are scared of a digital world?

bold nebula
#

can someone help with this packet? I can't find it in protocollib

sullen marlin
#

It'll be some sort of movement packet

pliant topaz
alpine urchin
#

guys, i may have a collaboration planned with dmulloy2

#

any ideas, a packet debate would be kinda nerdy and lame

echo basalt
#

generic wrappers vs your version specific stuff

#

procotollib's a buggy mess figure out the problems it faces

#

the real goat is comphenix his bukkit posts still pop up from time to time

buoyant viper
#

🙏🏻🙏🏻🙏🏻

alpine solar
#

protocolevents 😭

placid rivet
#

I don't know how to make furnaces to smelt items faster, how can i achieve that in a plugin?

sullen marlin
#

See cook time

woeful sleet
#

Hello

#

guys

#

@sullen marlin How are u today?

sullen marlin
#

Ok thanks

mortal vortex
#

i tried ur fried egg spice blend btw

#

was nice

sullen marlin
alpine urchin
#

im stacking them racks to acquire spigotmc for $1,000,000 SOON™

#

as unofficially agreed according to my understanding

remote swallow
#

i have a feeling if md ever sells spigot whoever buys it will get so many gdpr requests

mortal vortex
young knoll
#

(I’m going to invade the EU)

sullen marlin
mortal vortex
sullen marlin
# mortal vortex thanks queen!

I think you can buy it online too, but if you're ever in Melbourne there's this Lebanese supermarket called oasis bakery that has 10/10 duqqa too

#

Probably even better than the eggs

mortal vortex
sullen marlin
mortal vortex
#

@ the princess theatre

sullen marlin
#

It's a hard knock life

mortal vortex
#

so true

placid rivet
alpine urchin
#

sus md5

sullen marlin
placid rivet
chrome beacon
#

Set the cook time in the event

placid rivet
#

@EventHandler
public void fasterSmelting(FurnaceStartSmeltEvent e){
int normalCookTime = e.getTotalCookTime();
e.setTotalCookTime(normalCookTime / speedMultiplier);
}

#

speedMultiplier is 8

#

i'm not really that good into programming, thought this thing would be easy

chrome beacon
#

that looks correct

#

Did you register the listener

placid rivet
#

yes

chrome beacon
#

Are you getting any errors

placid rivet
#

not at all

#

but lemme check one more time

#

no

#

nothing

sullen marlin
#

Is the code running

placid rivet
#

well the plugin has some other listeners which work

#

oh nvm

#

it doesn't

#

i'm stupid

#

didn't check that

#

oh okay it works

#

i added some line of code that i thought wouldn't change anything

#

and it didn't give out any errors in the intellij

#

thank you guys

daring light
#

Is there a way to get entities in a world that are not loaded?

young knoll
#

Load them

#

Or do some unholy parsing through the entity NBT files

brittle geyser
#

Who knows how to correctly use @code tag in javadoc here?

 * {@code @Service
 * @Test({LoggerService.class, ConfigLoader.class}) //<- closes here
 * public class DatabaseService {
 *     // ...
 * };
 * }
robust helm
#

how can i bind the server to a different ip in tasks.runServer{} in build.gradle?

robust helm
#

nvm default works

mortal hare
#

i love it when chatgpt just casually stereotyped india in my prompt

lilac dagger
#

you can put classes in annotations?

slender elbow
#

sure

lilac dagger
#

this is actually super useful for my annotation config system