#help-development

1 messages Β· Page 1071 of 1

torn shuttle
#

at least it wasn't coomer's shadow

pseudo hazel
#

dont give goooler ideas

torn shuttle
#

my favorite part of the jar shadowing process is when knuckles realizes sonic is pregnant with his child

#

now it compiles, thanks

#

5:34:32 PM: Executing ':shadowJar'...

Task :compileJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Task :processResources UP-TO-DATE
Task :classes
Task :shadowJar

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

INFO: Shadow cheated on Sonic with Knuckles.

BUILD SUCCESSFUL in 21s
3 actionable tasks: 2 executed, 1 up-to-date
5:34:54 PM: Execution finished ':shadowJar'.

#

anyone remember off the top of their dome what java version was required to run mc 1.19?

#

I want to say 17? Or was that for older versions

chrome beacon
#

1.18 and 1.19 use java 17

torn shuttle
#

sounds about right thanks

blazing ocean
torn shuttle
blazing ocean
#

run gradle knows

torn shuttle
#

must be a weird plugin I'm using on gradle

blazing ocean
#

john is a bit silly

torn shuttle
#

must be some weird gradle bug again

cold pawn
#

bump ^

blazing ocean
torn shuttle
#

yeah gradle is weird

keen charm
#

Hey

#

How can I achieve this with Gradle?

torn shuttle
#

I am pretty sure spigot has a sample gradle project, potentially even lower down in that page

keen charm
#

I'm on here

#

And I don't seem to find one

chrome beacon
#

You need to use a 3rd party gradle plugin

keen charm
chrome beacon
runic pine
#

how i create WorldMap object in coordinates without players click on map. basically i want to create some maps when the server turns on

keen charm
#

How can I make it so that it'll use the remapped jar instead of normal builded jar?

#

Or does it use the remapped jar by default?

remote swallow
#

Specify remapped

keen charm
#

Remapping from remapped-mojang to remapped-obf

granite night
#

What is the new version of ChatColor.translateAlternateColorCodes?

lime wave
#

how could I execute a function every 20 ticks?

granite night
eternal night
#

I mean

wet breach
#

if you use text components sure

#

but I think you misunderstand that method you speak of though

eternal night
#

Yea idk what you mean with "new". What is wrong with the current method

wet breach
#

translate alternate color codes just allows you to specify what is the character to indicate the start of a color code instead of it being MC default character

#

since its not a character easily found on a keyboard. Handy when you are dealing with config files for example

granite night
wet breach
#

I guess you don't read

granite night
#

I knew this one but it says that ChatColor is deprecated

wet breach
#

so I have no interest in further helping those that are illiterate

granite night
pseudo hazel
#

deprecated does not mean it cannot be used

wet breach
#

its not deprecated

pseudo hazel
#

its deprecated in paper

wet breach
#

paper might have it deprecated but spigot does not

pseudo hazel
#

but you are in spigot server

wet breach
#

therefore there is nothing they need to change

eternal oxide
#

ChatColor.translateAlternateColorCodes if you want to use &

granite night
#

Ok, thanks you all. Sorry if I bothered you.πŸ™‡β€β™‚οΈ

lime wave
#

does anyone know how to execute a method every 20 ticks?

eternal oxide
#

?scheduling

undone axleBOT
lime wave
#

I've tried
Bukkit.getScheduler().runTaskTimer(this, this::load, 0L, 20L);

(load is my method) but it seems to mess with command blocks

#

or is it because load is taking a lot to compute?

eternal oxide
#

?nocode

undone axleBOT
#

It’s hard to answer a programming question without code
Oh no! You ran into a problem. But no worries, people are willing to help, but first they need to see your code. This is because otherwise, they would be providing help based on guesses instead of concrete knowledge. Whether it be a compile error, runtime error, or an unexpected output, I'm sure that if you were to provide code, you'd receive a quick solution.

lime wave
#
public void load() {
        Lmanager.diminuirTodos();
        Map<UUID, GUI> map = guiManager.getMap();
        for (UUID key : map.keySet() ) {
            Player player = Bukkit.getPlayer(key);
            assert player != null;
            if (player.getOpenInventory().getTopInventory() == guiManager.getMap().get(key).getInv()) {
                guiManager.update(player);
            }
        }
    }

public void update(Player player) {
        UUID uuid = player.getUniqueId();
        GUI temp = map.get(uuid);

        if (player.getOpenInventory().getTopInventory() != temp.getInv()) return;

        int page = temp.getPage();
        int sort = temp.getSort();

        map.replace(uuid, new GUI(player, page, sort));
        player.openInventory( map.get(uuid).getInv() );
    }

public void diminuirTodos() {
        leiloes.forEach(Leilao::diminuir);
        leiloes.forEach(leilao -> {if (leilao.getDuration() < 0) {leilao.finalizar();}});
        leiloes.removeIf(leilao -> (leilao.getDuration() < 0));
    }
lime wave
eternal oxide
#

ChatGPT code by the looks

lime wave
#

and part of it is in portuguese (my language)

eternal oxide
#

don;t use assert for live code

#

why are you updating an inventory for every player every second?

lime wave
eternal oxide
#

player.getOpenInventory() will always return an Inventory instance, even after they close an innventory

#

it will be their own inventory if they don't have one open

lime wave
eternal oxide
#

are you creating new items every time you call Lmanager?

lime wave
pseudo hazel
#

wont this be null if the player inventory is used? player.getOpenInventory().getTopInventory()

lime wave
lime wave
pseudo hazel
#

yeah I guess haha

eternal oxide
#

yes

pseudo hazel
#

my bad

lime wave
#

I guess there's prob a better way to do it

#

but what I'm trying to do is, call update() for every player that has the GUI open

#

and do that every 20 ticks

#

the items on that GUI are visual, the real ones are stored in Lmanager's leiloes

lime wave
#

Leilao stores price, duration, bid and owner

pseudo hazel
#

tf is a leilao

#

ok

lime wave
pseudo hazel
#

and what is the issue again?

lime wave
#

and every time the price, bid, or duration changes, it should affect for the items on the GUI, that should display the new time and all

lime wave
lime wave
pseudo hazel
#

where do you call this

lime wave
#

and load() is on main too

eternal oxide
#

ok first, don;t compare every player to every inventory

#

your key is the players UUID, so just get the player from teh UUID, get the inventory (Map value) and see if it is the player current open inventory

summer scroll
#

This is my attempt to make player glow with colors but the glow is just white even tho I set the team color to blue or something, what went wrong?

    public static void setGlow(Player player, ChatColor color) {
        // Get the team and set the color first
        Team team = find(player);
        team.setColor(color);
        // Set the player to glowing
        player.setGlowing(true);
        // Set player to glow
        player.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING, Integer.MAX_VALUE, 0, false, false, false));
    }
eternal oxide
#

oh ignore me. I'nm not reading yrou code correctly

lime wave
#

is there a way to remove UUID from the map once the inventory got closed?

eternal oxide
#

yes, remove it on teh inventory close event

lime wave
#

does it handle leaving from the game, dying and all?

pseudo hazel
#

yeah

#

anytime an inventory closes

alpine urchin
grim hound
#

How can I get the craftbukkit version regex?

#

cuz on newer versions they removed it

remote swallow
#

paper moment

grim hound
remote swallow
#

use Bukkit.get some version and map it

grim hound
#

1.20.1-R0.1-SNAPSHOT is what Bukkit.getBukkitVersion returns for example

grim hound
shadow night
#

In CVN we use this

/**
     * Returns the old CraftBukkit location, no longer here after <b>Paper</b> 1.20.5
     * @return Something like v1_20_R3 or null if it is not relocated
     */
    public static @Nullable String getCBOldNotation(CVN plugin) {
        if(isNewCBPackages(plugin)) return null;
        String craftBukkitPackage = Bukkit.getServer().getClass().getPackage().getName();
        try {
            return craftBukkitPackage.substring(craftBukkitPackage.lastIndexOf('.') + 1);
        } catch (IndexOutOfBoundsException e) {
            return null;
        }
    }```
remote swallow
#

why have 2 different methods

shadow night
remote swallow
#

Bukkit.get some version existsed for ages so you just map it for all versions

remote swallow
shadow night
clear elm
#

how can i get a zombie spawner as a itemstack

#

there is no Material zombie spawner

remote swallow
#

create a spawner item stack and use block state meta probably

drowsy helm
#

does the noteblock physics update happen clientside? cancelling BlockPhysicsEvent seems to flash the noteblock for a tick

hazy spade
#

can someone help me i bought plugin
but its not for 1.21 only for 1.20.4 and idk when itll get update
cant i somehow update it myself

humble tulip
#

you can

#

do you know java?

mint nova
#
Player player = (Player) event.getWhoClicked();
        Location x = plugin.getConfig().getLocation("location.test1.x");
        Location y = plugin.getConfig().getLocation("location.test1.y");
        Location z = plugin.getConfig().getLocation("location.test1.z");

        Location location = new Location(player.getWorld(), x, y, z);

What im doing wrong?

humble tulip
#

x,y and z

#

are not Locations

#

configs can save locations btw

tardy delta
#

those are doubles

mint nova
#

so i need convert to doubles? in config.yml

torn shuttle
#

prepare for trouble and make it double

humble tulip
#

config.set("path", Location);

mint nova
#
location:
  test1:
    x: 10
    y: 1000
    z: 10
  test2:
    x: 1000
    y: 10
    z: 1000
```\
mint nova
humble tulip
#

config.getLocation("path");

mint nova
humble tulip
#

ofc you can also do it yourelf if you don't need to save the world and pitch and yaw

mint nova
#

ok i will try now thanks

granite night
#

How do you translate Hex codes(example: &#084CFB)?

humble tulip
# granite night How do you translate Hex codes(example: &#084CFB)?
    private static final Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}");

    public static String translate(String message) {
        Matcher matcher = pattern.matcher(message);
        while (matcher.find()) {
            String hexCode = message.substring(matcher.start(), matcher.end());
            String replaceSharp = hexCode.replace('#', 'x');

            char[] ch = replaceSharp.toCharArray();
            StringBuilder builder = new StringBuilder();
            for (char c : ch) {
                builder.append("&").append(c);
            }

            message = message.replace(hexCode, builder.toString());
            matcher = pattern.matcher(message);
        }
        return ChatColor.translateAlternateColorCodes('&', message);
    }
keen charm
#

Hey

#

If we run a task async instead of sync, does it get run later than the sync one?

humble tulip
#

Not necessarily

wicked beacon
tardy delta
#

@granite night

torn shuttle
#

oh wow

#

I think I just used an abstract class correctly for the first time ever

#

they're pretty cool actually

#

I approve

#

neat, now I can do this for hundreds of these files

grim hound
#

No key layers in MapLike[{}] pops up on my custom world loading

#

what is it caused by?

echo basalt
#

unless.. you init it for no reason

#

to load the static values

torn shuttle
#

:D

echo basalt
#

which is incredibly cursed

torn shuttle
#

it's called being a gamer

#

you wouldn't get it

torn shuttle
#

mad hatters gonna hat

vestal trout
#

why am i in the world "world" when registering first time? at the second time i'm in register world, but for the first?????

remote swallow
#

lang is null so its being teleported to home.LappyTon not locations.register

#

or well other way round

obtuse hedge
#

whats the best performant way to check when a player has walked into a area and also exited?

humble tulip
#

Well playermove event

#

But you can also use worldguard

vestal trout
humble tulip
obtuse hedge
drowsy helm
#

Player move event , but I think worldguard uses some sort of spanning tree to optimise getting area

vestal trout
#

I still teleport to the "world" world

vestal trout
obtuse hedge
keen charm
#

Hey. I'm sending a player remove packet, and when I go far away from the player that I removed and come back, I don't see that player anymore. For this, I listen to add entity packet, add the player again, then remove it. But the issue is if I do that, although I see the player, their skin is reset to one of the default skins instead of their previous skin. How can I fix it?

#

This is how I do it

inner mulch
#

Why are u using packets instead of Player#hideEntity

keen charm
#

I just want to remove them from tab list

#

Since UPDATE_LISTED doesn't exist in old versions like 1.18.2 I have to do it like this

#

By the way, Steve is the custom skin I set here

#

And the other skin that appears when the player becomes visible to my test account is one of the default skins which I never wanted to use or specified in my code

#

Any ideas on what am I doing wrong?

obtuse hedge
#

where is the best place I can host my pack for free for the longest time

#

so I can use it in my server

remote swallow
#

host ur own http server

pseudo hazel
#

github

vast ledge
#

Host it urself

obtuse hedge
#

github

#

ty

obtuse hedge
vast ledge
#

???

obtuse hedge
#

exactly

quiet ice
#

I mean, setting up a lighttpd server or similar isn't witchcraft

#

You'll probably need to do it one day or the other anyways

obtuse hedge
#

interesting

#

but i alr just setup github

#

where can I find 1.21 protocollib

blazing ocean
#

it sucks

obtuse hedge
#

i dont want to

#

but like 5 plugins i use

#

need it

#

or they dont work

#

and these 5 plugins are very essential to me

chrome beacon
#

The latest dev build should work

obtuse hedge
#

where can I get that

#

I tried building the github repo, but it failed

remote swallow
#

jenkins

obtuse hedge
#

k

keen charm
#

Hey

#

Is running runTaskLater in a chain ok?

torn badge
#

Sure

keen charm
eternal oxide
keen charm
eternal oxide
#

2,3,4

#

if you do 1 inside a running task it gets added to teh end of the queue and runs at teh end of the tick

keen charm
#

Got it

keen charm
#

But if I run all of them in the same task it doesn't work

eternal oxide
#

yes it will work, but your first task runs in teh same tick as teh outer task

urban crest
#

im new to java, can someone help me compile this code in eclipse?

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.plugin.java.JavaPlugin;

public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
// Define your spawn location and radius
Location spawnLoc = new Location(Bukkit.getWorld("world"), 14, 78, -22);
double spawnRadius = 700.0;

    // Register the event listener
    getServer().getPluginManager().registerEvents(new SpawnProtection(spawnLoc, spawnRadius), this);
}

}

obtuse hedge
#

bruh

#

ah helllll nahhhhh

quaint mantle
grim hound
#

yo, can you remake that for a 32-bit integer?

#

well I guess I can just use it as is

#

but have you tested the performance of it compared to a normal concurrent hash map?

quiet ice
#

Well using the same algo means supporting 30-bit ints at most

grim hound
grim hound
#

funky magic

quiet ice
#

that's just a spin loop

grim hound
#

no idea what the fuq this does

#

what does even Thread.yield do

grim hound
quiet ice
#

it's a NOP by default, but otherwise it will tell the scheduler "hey, I'm blocking - you can swap the currently active thread"

quiet ice
#

The while ((ctrl = this.ctrl) < 0) loop basically waits until a resizing operation has completed. After that it will try to increase the amount of threads currently accessing the bucket

quiet ice
#

I don't know but it's basically meant to stop a thread consuming too much CPU time in low-core systems even though it's blocking on other threads that aren't currently running.

shadow night
#

wtf are those words

quiet ice
#

On systems with a lot of cores you can just use a generic NOP though. To be honest that line was a bit of a premature optimization from mine

grim hound
#

it's good

#

it's not some premature ejaculation

#

nor optimization

#

it's just good

quiet ice
#

I trust JIT to do it's job there. If JIT deems it to be superfluous then it can turn it in a NOP, otherwise it'll do a syscall to the OS which might not be exactly free

#

However benchmarking asynchronous resizing operations isn't exactly the easiest thing in the world

grim hound
#

what's NOP tho?

quiet ice
#

no-operation - i.e. nothing

humble tulip
#

No op

#

No operation

grim hound
#

swapping the currently active thread?

humble tulip
#

Threads β‰  cores

#

Sometimes multiple threads are on a single core

#

So a single core has to do the work of multiple threads

quiet ice
#

I don't want to go through the messy details of java threads versus OS threads versus CPU threads

humble tulip
#

That tells the cpu that its doing nothing

#

So you can probably switch to another thread

grim hound
compact arch
#

I was wondering if anyone has had any problems with Inventory events for 1.21? It seems like they are completely broken. I've tested my entire codebase with 1.20 and everything works fine, but as soon as I depend on spigot-api:1.21-R0.1-SNAPSHOT this part of code breaks.

Even running something simple to test throws an exception:

@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
  System.out.println(event.getView().getTitle());
}

Error:

java.lang.IncompatibleClassChangeError: Found class org.bukkit.inventory.InventoryView, but interface was expected
        at [REDACTED].onInventoryClose(InventoryEvents.java:126) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor8.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Paper-794]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Paper-794]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Paper-794]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Paper-794]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:1470) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleContainerClose(PlayerConnection.java:2483) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2476) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:20) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:7) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1271) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1264) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1225) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1139) ~[patched_1.16.5.jar:git-Paper-794]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-794]
        at java.lang.Thread.run(Thread.java:831) [?:?]

Any suggestions? Or this is a genuine bug in the Spigot API?

humble tulip
quiet ice
remote swallow
#

or implement it

grim hound
echo basalt
#

redacting the package name

humble tulip
#

See geol

echo basalt
#

my boy either works at hypixel or he thinks he's a spy agent

remote swallow
#

a) update b) dont extend/implement inventory view

quiet ice
#

It likely won't be much different compared to how try-catch blocks work (or other signals such as SIGKILL, etc.)

compact arch
#

The plugin supports 1.16 - 1.20 fine. But implementing 1.21 seems to be troublesome

compact arch
quiet ice
#

Compiling for higher versions means it uses INVOKEINTERFACE instead of INVOKEVIRTUAL, which older versions of spigot will be super confused about.

compact arch
slender elbow
remote swallow
compact arch
compact arch
#

Nothing uses nms imports. Everything relies on the Spigot API

quiet ice
# slender elbow while (blah) Thread.onSpinWait(); :3

That's the other thing I've been thinking about. Ultimately I lack the knowledge of these low-level specifics to know what is the better approach, although onSpinWait will probably be a bit more appropriate for spin wait loops :p

remote swallow
#

spigot is designed to be forward compat so you just have to write the plugin to the lowest version you support and bukkit handles the rest

grim hound
compact arch
compact arch
#

kk I'll give that a try

slender elbow
quiet ice
# grim hound what the hell is that

A different kind of Thread#yield() which has a different connotation (while Thread#yield() is a definitive demand to yield the process time to another thread, onSpinWait is a bit more subtle)

slender elbow
#

but also, like, if you're doing spin wait loops, it sounds like you could/should be using conditions or some other locking & signaling mechanism

#

latches or phasers or what have you

#

but sometimes it's cheaper to not do that

grim hound
#

these could even be cached for max performance

quiet ice
#

Neither are things I have ever used beforehand

compact arch
quiet ice
grim hound
quiet ice
#

~INT_62_BITS will get inlined by javac - no point in caching that

grim hound
#

right?

compact arch
grim hound
#

from how I'm looking at it

#

this class seems to be some extra super fine optimized stuff

#

the resizing not being possible is a bit trouble but not something I can't manage

quiet ice
#

It resizes the buckets themselves, just not the amount of buckets as that would mean locking and rehasing the entire datastructure which would also mean more spin wait loops and thus quite a bit more performance waste if one already can anticipate the size of the collection

grim hound
slender elbow
#

that's why I preallocate my hash maps with Integer.MAX_VALUE πŸ’ͺπŸ’ͺ

quiet ice
#

Yeah, read the javadocs - it documents some extremely important quirks with this structure

#

And shrinking the datastructure is pure stupidity (not even ConcurrentHashMap does that from what I know)

grim hound
#

I was planning on holding like 1 << 20 buckets

slender elbow
#

that's a lot of buckets

grim hound
grim hound
#

like gc constantly checking for reachability of each of these

quiet ice
#

Well the iteration time would be absolutely wreck for one

slender elbow
#

generally speaking, I don't worry about the gc, more often than not they do far better work than you think they do

grim hound
quiet ice
#

Yeah, it's iterator would need to go through 16 Million longs if nothing is resized

grim hound
#

I'm not iterating

#

just add, remove & contains

quiet ice
#

It stores no less than 16 elements iirc

grim hound
grim hound
quiet ice
#

The size of each bucket increases exponentially in factors of two with a starting size of 16 elements

grim hound
#

damn

grim hound
#

I see

#

isn't that

#

134 MB

#

of RAM

#

nice

quiet ice
#

Also just as a quick test before you use this datastructure: What is the most important quirk of this structure? That is, with which inputs would the performance of this structure be reduced to a minimum?

young knoll
#

12

quiet ice
#

I probably should be bolding that line too - perhaps even have it be present in there more than once because I'm quite sure I made that mistake in one of my applications, too

quiet ice
quiet ice
#

Correct.

grim hound
#

does this just mean

#

that storing 30-bit

#

or lesser-bit numbers is more beneficial somehow?

grim hound
quiet ice
#

Oh, I didn't read the fine-print correctly. Good thing we have self-explanatory source code.

minor garnet
#

does anyone know how to get a vector direction based on the pose rotation of a armor stand pose?

Example:

pitch, yaw, roll

Vector3f pose = armorStand#setHeadPose(45, 90, 20);

pose -> vector direction

grim hound
grim hound
#

no idea

quiet ice
grim hound
#

each one will be unique

quiet ice
#

However, if your values are completely random (especially in the lower bits - though more bits will be used the more buckets you are making use of, so for 1 << 20 the 20 least significant bits are relevant) it's not too important

grim hound
minor garnet
minor garnet
grim hound
grim hound
quiet ice
#

Probably good

grim hound
#

aight ;]

grim hound
#

what even is roll?

#

wait I guess I can imagine what it is

quiet ice
#

You should be doing more aviation :p

minor garnet
quiet ice
#

Anyways, I'll sign off for the day. Cya tomorrow I guess?

grim hound
#

cya

hard radish
#

is using Dependency Injection recommended?

#

ive read through it but I still dont really get how DI works (dumb brain)

chrome beacon
#

?di

undone axleBOT
wet breach
#

Yes because that is how oop works or is done. However it does depend on the purpose of the class. Utility classes for example should not rely on outside objects and should be independent.

#

If the object is some kind of management object you probably dont want to use DI either

drowsy helm
inner mulch
#

when i have something that is always the same, for example the index of chest slots, should i store them in a final array or calculate them?

my case:
i want to know what slot indexes are in the first row of a chest (0-8). Should i just hardcode that or write a simple function calculating all these numbers?

quaint mantle
#

I want to do double jump. But I couldn't code the double jump left, right and back except the front. vector etx. I added it but it didn't work, I added char to the W, A S and D keys and that didn't work either. Can anyone help?

inner mulch
#

what?

#

im not sure what u r doing, but you cant get user input like with a mod, when creating a spigot plugin

quaint mantle
#

i want to double jump in every direction

remote swallow
#

easiest way would be just doing it with what way there looking

quaint mantle
#

how can you look back and double jump backwards? Instead I want it to double jump while going backwards.

#

i tried hard but it didn't work :/

inner mulch
#

player.setVelocity(player.getVelocity().multiply(number of your choice));

quaint mantle
#

u mean adding char right?

inner mulch
#

wdym char

#

you cant multiply something by a char

quaint mantle
# inner mulch wdym char

i wanna make a doublejump but work like this; when player clicking; w,a,s,d it will jump according to the keys you press

#

it won't matter where you look

inner mulch
#

okay but you are not making a mod

#

you cant get player input

quaint mantle
#

so there is no method for this?

#

with spigot

sullen marlin
#

the client doesnt send keypresses to the server

#

it only sends movement

inner mulch
quaint mantle
#

can I get it up when it walks to the right or left?

inner mulch
#

no

quaint mantle
#

behind?

inner mulch
#

unless you have a definition of what that is

#

there is no universal left and right

sullen marlin
#

well it'd be relative to what they're facing

#

so you could use trigonometry/linear algebra

quaint mantle
#

aigt i will

drowsy helm
#

But something as simple as first row is fine to calculate

inner mulch
#

or some weird ones

#

like anvil

drowsy helm
#

Eh thats really a case by case basis

#

Would have ti abstract it

inner mulch
#

my idea was to take the inv size as param

#

the width and height

drowsy helm
#

How would width and height work for an anvil?

inner mulch
#

anvil has height of 1 and width 3

drowsy helm
#

I would just take inventory type

#

Because youd have to define the width and height of every inv anyway

inner mulch
#

alright, thanks

modern peak
#

i need help with vaultapi

sullen marlin
#

?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!

modern peak
#

I made the integration of vaultapi in my plugin but when I start it, it does not find the plugin, I have maven configured, the plugin vault and essentials on the server.

when debugging I could only find this
[21:46:11 INFO]: [OnyxSpawners] Enabling OnyxSpawners v1.0-SNAPSHOT
[21:46:11 WARN]: [OnyxSpawners] An Economy service provider could not be found.
[21:46:11 ERROR]: [OnyxSpawners] Disabled due to no Vault dependency found!
[21:46:11 INFO]: [OnyxSpawners] Disabling OnyxSpawners v1.0-SNAPSHOT

which makes no sense because the plugins are loaded, vault as depend and essentials as softdepend so that it loads before my plugin.

vast ledge
#

?paste

undone axleBOT
vast ledge
#

Paste there please

sullen marlin
#

try removing the essentials softdepend

#

also code please

vast ledge
#

What is your plugin set to load

#

if it tries to load before vault is registered, its going to cause issues

#

This is what my YML looked like for a Plugin using vault

viscid carbon
#

Hello! can you not extend from entityType?

vast ledge
#

Isnt that an enum

#

if so, no you cant

viscid carbon
#

ah you right, just looked it up. thanks

vast ledge
#

np

viscid carbon
#

What class am i thinking of then?

#

livingEntity?

vast ledge
#

What are you trying to achieve?

viscid carbon
#

Making a simple pet plugin, just trying to modify data.

vast ledge
#

Why not just use an armorstand then

drowsy helm
vast ledge
#

or any entity for that matter

#

^

viscid carbon
#

Okay, need a class for every type. Gotcha

#

thanks all! ❀️

vast ledge
#

sir

#

?paste

undone axleBOT
vast ledge
#

please

modern peak
#

srry

vast ledge
#

in your yml

#

add

#
load: STARTUP
modern peak
#

same thing :c

vast ledge
#

Do you have essentials on the server?

modern peak
#

yep

vast ledge
#

then idk how to help ya

lime wave
#

is there a way to add items to the inventory of a player that is currently offline?

humble tulip
#

not via api no

#

but there are ways yes

lime wave
#

how so?

humble tulip
#

Google invsee offline players

#

Might find a plugin that does it

#

Essentially loading up the players save file

#

You can use nbt api OR nms

hard radish
#

is it wrong to have private final Core plugin = Core.getInstance(); in most things that i need to call my main class for?

#

I know a lot of people do private final Core plugin; and do public something(Core plugin) { this.plugin = plugin }

#

what is this reason to do the second way?

halcyon hemlock
#

That's the reason I hate java

hard radish
#

πŸ˜‚

#

like all the open source plugins i saw uses the second method im just questioning myself

halcyon hemlock
#

Half the code is design patterns and the other half is more design patterns to comply

halcyon hemlock
#

Works perfectly fine

wet breach
#

In personal projects or super small plugins probably wont really matter which you use lol

hard radish
#

ah ok

mortal vortex
fleet kraken
#

I want to make a schedule for the players, I want it to analyze their inventory all the time, what is the most β€œperformative” way to do this? Make a single scheduler and loop through all the players online or β€œattach” a scheduler to each player?

drowsy helm
#

if you schedule multiple they're still gonna run synchronously in order so you're just adding more overhead between each iteration

stark sierra
#

not sure if this is just a minecraft thing or an argument im missing when spawning a particle, but how come when I spawn FLAME or SMALL_FLAME it just flies off in one direction as opposed to being stationary?

worthy yarrow
#

Don't use an exploding particle

#

Pretty sure some are just like this

gilded turtle
#

hello i am using magma to make a forge spigot server and i want to use the items for exampel a gun from the mod in my pluign

#

can any one pls help

#

how i can do so

blazing ocean
gilded turtle
#

i can only acces the blog

#

which i search but couldnt find anythign usefull

dire sand
#

Hello,

I am using the spigot-1.19.4 api jar, but I cannot seem to find these imports:

import net.md_5.bungee.api.chat.TextComponent;

#

Anyone know if they have been removed? I know this is being pulled from bungee, so i'm assuming this has been removed?

#

I am upgrading from spigot-1.18 api jar to 1.19.4-api

hard radish
#

is it alright to put everything into a Dependency Injector? or just the things that I will have to use alot of?

torn shuttle
#

I have nothing to do with that

#

they stole my name, can you believe that

drowsy helm
#

okay spigooters

#

thoughts on incremental ores?

#

im thinking of adding an enchant which breaks both layers

buoyant viper
#

hmm

drowsy helm
#

or maybe diamond+ pickaxes break both layers

blazing ocean
# drowsy helm

that "current chat" widget looks exactly like mcci's lmao

drowsy helm
blazing ocean
#

lmao

torn shuttle
#

it would make more sense to tie is such that the block damage animation progresses far more slowly and the ore is slowly knocked out of the block as you mine it

drowsy helm
#

then regenerate

#

so if players don't wait for them to fully regenerate, they get less overall coal

#

probably should've said that initially

echo basalt
#

gold, gold nugget, stone, gravel^?

#

hm

drowsy helm
#

yeah except no gravel

#

gravel ugly

torn shuttle
#

my point still stands

#

I think it would look better without it getting removed for a tick

spice bough
#

my plugin saves items when they in lava , cactus etc.
when i use my plugin on 1.20.4 with java 17 , i can see the items in lava or cactus
but when i use my plugin on 1.16.5 with java 11 or java 16 , yes plugin works, If I go to where the item is, it comes to my inventory
but i cant see the items. is this about java version or minecraft version

dawn flower
#

how do i open a villager inventory to a player?

#

(that they can trade with)

summer scroll
dawn flower
#

without a villager actually existing

summer scroll
#

Yes, you can use that method.

dawn flower
#

that requires a villager / merchant object

summer scroll
#

You need to create a merchant and put the items.

dawn flower
#

aw

#

ok

sterile breach
#

Does Player#hidePlayer() remove player packets?

sullen marlin
#

Yes

summer scroll
dawn flower
#

:0

sterile breach
undone axleBOT
dawn flower
sterile breach
# sullen marlin ?

for a vanish plugin, in some cases, it's better to use packets rather than hideplayer?

dawn flower
#

no..?

sterile breach
#

I see a lot of vanish plugin than use packets

dawn flower
#

hideplayer literally does what y'll do with packets

dawn flower
eternal oxide
#

hidePlayer literally limits teh packets sent

sullen marlin
#

Bad plugins, hidePlayer is at least 10 years old

dawn flower
#

oh god

torn shuttle
#

man I'm old

dawn flower
#

i didnt know it was that old

torn shuttle
#

10 years really

dawn flower
#

does createMerchant spawn a merchant or just creates it

eternal oxide
#

I remember when Magma first joined this discord

shadow night
dawn flower
#

more like 12 years ago

sullen marlin
#

Yeah February 2012

torn shuttle
#

man

#

infdev was 14 years ago

sullen marlin
#

So 12.5 years

sterile breach
iron glade
#

Is there smth like PDC for placed blocks?

eternal oxide
#

only if they have a TileEntity

#

?blockpdc else

undone axleBOT
iron glade
#

That seems to be what I was looking for, ty!

blazing ocean
# gilded turtle pls help
  1. stop crossposting
  2. we are not magma
  3. that setup is 100% unsupported
  4. people have already told you we can't help you in spigot
eternal oxide
#

What have you tried? What worked? What didn't?

gilded turtle
#

Can't i just use itemstack

#

And use the name of the

#

Item

#

?

eternal oxide
#

to a degree maybe

#

matching items by name is never a good idea

gilded turtle
#

Then

#

?

eternal oxide
#

do a /data on the item to see what meta it has

gilded turtle
#

Hm

#

So can I just use it even if it is not in vanilla mc?

eternal oxide
#

depends on teh mod, the plugin and magma

#

/data will tell you

torn shuttle
#

uh oh

#

I think I maybe have cooked a really spicy java meatball

#

reflections + shaded libraries

#

java ain't happy

granite night
#

What is the best way to code a command cooldown?

eternal oxide
#

hashMap

grim hound
#

is there any way to access the jdk.internal Unsafe class?

#

cuz this method isn't in the sun.misc Unsafe

quiet ice
#

why on earth do you need to allocate such an array?

grim hound
#

I mean, if I override all of it's contents anyway

#

isn't this just a more performant way of doing so?

quiet ice
#

The JIT compiler exists and will assist you in that, there is no performance difference

#

Otherwise might as well use alloc + FFI

#

Especially the memory segment API might do what you intend to do here

grim hound
quiet ice
#

it's a fancy byte array

#

Plus everything will be inlined anyways as it's built for speed

grim hound
#

well aight

#

just wondering why this is used

quiet ice
#

Most likely because string concatenation is a process that isn't exactly linear and the compiler might struggle with it

#

I'd not be surprised to see it gone in a few years though

runic pine
#

which more fast? switch with 100 cases or a map?

torn shuttle
#

benchmark it

runic pine
#

what would you do

torn shuttle
#

time it

runic pine
zealous osprey
#

switch isn't O(n), or atleast from what I know. If I recall correctly, switches use something similarly to a map, since all the values are already hardcoded.

quiet ice
#

switch is O(1), too

#

Switch should be faster as it does not make use of any buckets or similar (at least not directly) and thus does not need to distribute hashes evenly

#

However an enummap or similar will result in the same performance as a switch, if not even better performance

zealous osprey
#

Most of the time you can just use if-statements, since the "compiler" will change them to switch statements if it can.
Switch statements just loop nicer often times if you are comparing enums imo

torn shuttle
#

that's why my plugin is nothing but 7000 lines of nested if statements

quiet ice
#

Having that much trust in the JIT compiler is a bit dangerous, too lol

onyx fjord
#

I'm having some issues with Player#setCooldown. Most items work but for some reason pearls dont and just ignore the cooldown

#

is there something special about them?

eternal night
#

Well, when do you set the cooldown on them

onyx fjord
#

on ProjectileLaunchEvent

eternal night
#

Yea, I mean, ender pearls have thier own cooldown

#

so the server will apply a cooldown of 20 ticks after that event

onyx fjord
#

so i wait a tick?

eternal night
#

pretty much

onyx fjord
#

what

sterile breach
#

Is there a way to make mobs can't see a player? (Invisibilty effect don't work, mobs see you)

young knoll
#

EntityTargetLivingEntityEvent

sterile breach
#

it also work for zombie focus?

young knoll
#

You can cancel it when the target is a player

sterile breach
young knoll
#

Only called for living entities

#

You can probably use the base event though

sterile breach
torn shuttle
#

doing support for over 6 hours straight, we love that

#

it's great because as soon as it's done I can go back to refactoring the core of all of my plugins, a truly blessed day

#

πŸ™

eternal oxide
#

Which is preferred?```java
/**

  • command = new TestCommand().setCooldownDuration(Duration.ofSeconds(10));
    */
    public class TestCommand extends CooldownCommand<TestCommand> {
    @Override
    protected TestCommand getThis() {
    return this;
    }

    @Override
    protected boolean processCommand(CommandSender sender, Command cmd, String label, String[] args) {
    return false;
    }
    }orjava
    /**

  • command = new TestCommand();

  • command.setCooldownDuration(Duration.ofSeconds(10));
    */
    public class TestCommand extends CooldownCommand {
    @Override
    protected boolean processCommand(CommandSender sender, Command cmd, String label, String[] args) {
    return false;
    }
    }```

blazing ocean
#

i find A to be better since you can just do lots of chain calls with that

torn shuttle
#

builder pattern my beloved

bold rose
#

what is the better way to prevent ppl from decompile plugins ? like is there a way to prevent that ?

blazing ocean
#

you cannot prevent decompiling

#

always gonna be possible

#

but there's obfuscators

torn shuttle
#

distribute your plugins in physical black boxes and rig them to blow up if decompiled

blazing ocean
#

based

drowsy helm
#

unless you have some ground breaking brand new technology theres not much point

young knoll
#

Write terrible code so anyone that decompiles it has a heart attack

blazing ocean
#

yes

drowsy helm
eternal oxide
#

coming next cloud hosted plugins

blazing ocean
#

works 100% of the time

blazing ocean
bold rose
#

also can anyonne guide me to start learn how to make/add license keys on plugins ? i tried to search but to no avail (+8yrs ago videos).

torn shuttle
#

those may run afoul of the spigot terms and conditions for premium plugins fyi

drowsy helm
#

is your alias cmarco by any chance

runic pine
#

i need clone an itemstack to call getInventory#addItem?

blazing ocean
#

you don't

runic pine
# blazing ocean you don't

Is there a method to add an item to the inventory where the passed itemstack will be what is in the inventory?

blazing ocean
#

that is literally that metho

#

d

blazing ocean
#

@shadow night would know

bold rose
runic pine
#

I wanted it to return the same instance

blazing ocean
#

it is just the same thing lol

mortal hare
mortal hare
# bold rose adding backdoors is probably much easier than generating license keys πŸ‘Ώ

Although i havent done this before, but you can create this imo by:

  • creating node.js/bun backend api server with express js or smth else (js frameworks are appearing day to day basis to account for that)
  • creating spring boot web mvc backend api server
  • creating php backend api server

the backend will check on HTTP POST request if license is valid (POST https://my-proprietary-plugin.com/api/license/check). it should return response (HTTP status 404 or 200) stating whether or not the license is valid. You can store validation keys in a database. This way you can further develop api further to revoke licenses, generate them, whatever you want.

from the plugin side it depends how proprietary you want it to be, you can use some advanced approaches which the plugin itself is not loaded by the plugin the maintainer provided to you, instead the plugin which was given to you downloads the real plugin from the same api, and loads it in memory only, thus if you want to pirate it, you need to dump its contents from memory, or reverse engineer the api which can be tricky.

or you can simply add some if statements that would disable the plugin if api check returned you a false response for a license. you do you.

#

from the plugin side it depends how proprietary you want it to be, you can use some advanced approaches which the plugin itself is not loaded by the plugin the maintainer provided to you, instead it downloads the plugin from the same api, and loads it in memory only, thus if you want to pirate it, you need to dump its contents from memory, or reverse engineer the api which can be tricky.

☝️ I'm pretty sure this approach isn't available on spigotmc marketplace since it doesnt allow such DRM's (obfuscation only)

quaint mantle
#

Making paid home plugin with this one

torn shuttle
#

essentials, drm edition

#

costs an additional $40 on top of the regular price to maintain drm servers up

blazing ocean
#

php πŸ’€
js πŸ’€
no rust mentioned smh

mortal hare
blazing ocean
#

oh boy

#

a shit ton of stuff

mortal hare
#

dude its just an api which returns HTTP response code

#

are you really willing to code os dependant binary executable just to run your web server which returns 404 or 200

torn shuttle
#

that's a dumb question to be asking here

#

I've seen people do far more laborious things for much less gain

blazing ocean
#

need a sanity check, why would this be false

torn shuttle
#

what's the code for the check

shadow night
blazing ocean
#

boundingBox.contains(player.location.toVector())

mortal hare
#

js is bad: proceeds to use vscode and discord client which is based on electron

#

hypocrisy

shadow night
#

Nobody here uses vscode

mortal hare
blazing ocean
#

that's fucking IJ

torn shuttle
#

I've literally, unironically seen people abusing discord to use it for file hosting for their minecraft servers until they got spanked by discord

blazing ocean
shadow night
mortal hare
#

mk

#

my bad

#

i haven't touched intellij for a while now

blazing ocean
#

@shadow night opinions on this tho

shadow night
#

what the fuck is thaz

blazing ocean
#

allows me to use if (player in boundingBox) ...

shadow night
#

weird shit

blazing ocean
#

nuh uh

#

kotlin has the same for lists lol

torn shuttle
#

I have a fun question that I feel like may make me some enemies

blazing ocean
#

go on

torn shuttle
#

is there a way to listen for some event or packet being sent from a server regarding sending a resource pack and blocking that

blazing ocean
#

client-side?

torn shuttle
#

server-side

blazing ocean
#

packetevents?

#

what are you trying to do

torn shuttle
#

block other plugins from sending resource packs

blazing ocean
#

PE probably does the job

torn shuttle
#

ok I don't have much experience with that

#

think it would be cancellable or something akin to that?

keen charm
#

πŸ‘‹

#

I'm trying to change a player's skin on join but if I try to join while the server is opening the skin doesn't change although the game profile value changes

#

If I re-join it works

mortal hare
#

i dont remember which one

keen charm
#

Possibly metadata packet?

mortal hare
#

not sure, try to look at skinsrestorer plugin source

#

maybe some kind of dimension packet

#

it basically fools client and it reloads the skin somehow

#

maybe my info is outdated now

#

but that's how iirc was done in 1.8 days

keen charm
#

But the thing is it only happens when joining when server is opening

#

If I re-join after that it works

viral shell
#

Hi, i made a fake player using EntityPlayer and player connection from CraftBukkit, now i have a problem, i don't know how to see if the player hits the fake player. This is because EntityDamageByEntity checks for damage and the fakePlayer isnt damagable, is there another way to see if the fakeplayer is hitted or to make the fakeplayer hittable?

keen charm
#

By the way, the thing is it only happens if I send a player remove packet

#

Although I delay it it doesn't work

#

I delay it by 5 ticks

viral shell
chrome beacon
#

You need to listen to the packets on your own

mortal hare
#

i wouldnt suggest you create npc's like this

#

the classes are not designed for such functionality

#

use packet manipulation instead

#

unless you want the npc to tick

viral shell
#

i want a way to see if a player hits it

#

also its is not a real "npc"

mortal hare
viral shell
drowsy helm
#

Interact packet is sent, you just have to get entity id

mortal hare
#

im not quite familiar with OBC so i cant really say for sure, but maybe is there a way to add damage from OBC itself

viral shell
#

So, this can be solved with an entityinteract event?

mortal hare
#

im pretty sure it should respond to that event

#

since it acts like a virtual player

alpine urchin
#

it depends if this npc is fake or not

#

i didnt read context

viral shell
alpine urchin
#

then use packets

mortal hare
#

he created it via OBC

#

not packets

alpine urchin
#

then it’s not clientside

mortal hare
#

so it must be ticking, no?

alpine urchin
#

It depends

viral shell
#

i should use other libs for that

alpine urchin
#

i would need to see how you spawn it

#

is it currently visible

mortal hare
viral shell
alpine urchin
#

okay you spawn it usijg packets

#

meaning it’s fake

alpine urchin
#

you need to listen to interact packet

viral shell
#

can it be done with pe?

alpine urchin
#

and then see if the entity id matches your npc’s id

#

Yes

viral shell
#

mh ok

mortal hare
#

tbh fake entities arent one size fits all solution, they're glitchy since they're not ticking, so if you unload the chunk or go to another dimension they they dissapear iirc

viral shell
mortal hare
#

mk

runic pine
#

Unsupported class file major version 64. maven give me this error but im using java 22.why?

wooden zodiac
#

what I can i do to make my command remove player's name from tablist
i used gpt it just makes my player disappear

chrome beacon
#

also version 64 is java 20

#

not 22

runic pine
#

i can send you on dm?

chrome beacon
#

?img

undone axleBOT
#

Can't send images? That's because you're not verified! Use !verify to complete verification.
Alternatively, you can upload screenshots to any image hosting site and share the link.

Here's some screenshot utilities that you can use to upload images.
Lightshot: https://prnt.sc
Imgur: https://imgur.com/upload
Flameshot: https://flameshot.org

runic pine
chrome beacon
#

Update the maven shade plugin

#

and the other plugins while you're at it

runic pine
keen charm
#

Hey

#

How can I access a player's GameProfile object pre-PlayerJoinEvent?

grim hound
#

What's the most efficient way to execute a lot of tasks async? Let's say that even 3000 tasks per second to be scheduled

#

not waiting for anything, just purely executing on another thread

tardy delta
#

makes me question your design

spice bough
#

I want my plugin to work on all versions from 1.8 to 1.21.
q1 : which java version should i select here

slender elbow
#

it depends on the nature of the tasks

spice bough
#

q2: which minecraft version should i select here

tardy delta
#

assuming mc 1.8 uses java 8

spice bough
tardy delta
#

i would just have modules per java version

spice bough
#

i think i dont need to select 1.8

eternal oxide
#

1.8 but supporting such a wide range is not easy

grim hound
slender elbow
#

lol

tardy delta
slender elbow
#

downloading 3 GB file is a runnable, as is calculating the Fibonacci sequence

#

as is doing 2 + 3

ivory sleet
tardy delta
#

ForkJoinTask uwu

spice bough
#

for example if i select java 11, 16,17 or 20 plugin won't work correctly in 1.8 . is it true

#

it will work but with a lot of issues

grim hound
grim hound
#

so I'm not sure whether it's best to just schedule it

grim hound
tardy delta
#

we still have no idea what youre doing

#

πŸ₯Έ

grim hound
#

of the connections of players

#

for bot attack detection

blazing ocean
#

bro really doesn't like bots

spice bough
#

if i want my plugin to work from 1.16.5 to 1.21 which java version should i use?

humble tulip
#

Why does NMS use Holders?

humble tulip
#

Whatever version 1.16.5 is

grim hound
slender elbow
#

online-mode=true is my favourite anti bot tool

silent slate
#

what item meta do i need for a firework star? how do i create a firework star that has "small ball green"?

humble tulip
#

but creating one is so much pain

grim hound
humble tulip
#

like i dont even wanna replace the holder, just the thing it holds

grim hound
#

geol was right

humble tulip
#

OH I CAN JUST CHANGE WHAT THE HOLDER HOLDS WITH REFLECTION

#

im doing that

slender elbow
#

I mean we were more so asking what the tasks have to do but sure lol

slender elbow
#

not all holders hold a value directly

eternal night
#

FireworkMeta ?

silent slate
#

but thats for firework rocket isnt it?

spice bough
# humble tulip 1.16.5 java

so the plugin works properly in Java versions above the Java version I have chosen, but it does not work properly in those below it. is it true?

humble tulip
#

same with spigot

#

well bukkit

eternal night
#

sorry

grim hound
humble tulip
#

You code for the lowest version you plan to support

spice bough
humble tulip
spice bough
#

thanks.

grim hound
runic pine
#

Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
yow i fix

eternal oxide
#

wrong java version

runic pine
tardy delta
#

lemme just delete that

runic pine
#

how o fix @tardy delta

eternal night
tardy delta
#

i forgot

#

what plugin though?

#

compiling one from src or creating one?

runic pine
#

I think I've already fixed it

eternal night
#

cross posts in paper, does not read paper pings Sadge

runic pine
#

for some reason this error occurs if I use ArrayList.getFirst() instead of get(0) even when compiling with Java 22 (the IDE does not point out an error in the project, only this error when compiling)

eternal night
tardy delta
#

probably not compiling with java 22, check java version in pom.xml/gradle thing

worldly ingot
#

ArrayList#getFirst()?

slender elbow
#

sequenced collections!!!!!!

worldly ingot
#

Oh, right, sequenced collections

#

lol

tardy delta
#

thing in newer versions

worldly ingot
#

I forgot those existed now

tardy delta
#

sequenced collections πŸ‘€

#

whats that

torn shuttle
#

yeah I definitely know what that is

eternal night
#

.stream().findFirst()

slender elbow
#

collections that are sequenced

#

crazy

eternal night
slender elbow
#

iterator next

eternal night
#

reversed

tardy delta
#

ah that

slender elbow
#

reversed is goated

eternal night
#

reversed is truely goated

torn shuttle
#

the reversed cultists have entered the chat

#

Yvan eht nioj

eternal night
torn shuttle
#

it keeps getting worse

eternal night
#

LGTM

alpine urchin
#

LFG

torn shuttle
#

changed all message logging logic, changed all configuration files

#

about to add some 50 classes or whatever since I'm removing cloudcommandframework and breaking up the commands

river oracle
tardy delta
#

next step is to use kotlin

eternal night
river oracle
#

😭

tardy delta
#

im in danger

river oracle
#

Gonna die now

torn shuttle
#

speaking of looking good

#

it's leg day

#

bye losers

eternal night
#

my condolences

torn shuttle
#

have fun staying weak

blazing ocean
torn shuttle
#

I'll rack 300 on the leg press in your memory

tardy delta
#

you always lurking around?

eternal night
blazing ocean
#

i spawn whenever kotlin is mentioned

torn shuttle
#

I'd do 400 but I've been on a cut for 6 months

river oracle
torn shuttle
#

plus it's sets of 15

eternal night
#

300 is fine ℒ️

torn shuttle
#

300 isn't that much

eternal night
#

until you knee goes bye bye at a sport event

torn shuttle
#

I was almost at 400 before I started cutting

river oracle
eternal night
#

wtf

torn shuttle
#

it's 3x my bodyweight

#

well was

#

I'm down

#

originally I wanted to hit 450kg

#

but I'm definitely not doing that at 85kg and in sets of 15

river oracle
#

I've never even done leg press I can't imagine I can do much more than my bodyweight

torn shuttle
#

legs are your largest muscle

eternal night
#

Given you probably are not dying when doing a weightless squat, you probably can lol

torn shuttle
#

unless your knees are completely busted you probabably do more than bodyweight at some point in your day when getting up

river oracle
torn shuttle
#

cope and seethe, get better knees

river oracle
eternal night
#

Trust medicin, in 20 years we'll have cyberpunk knees

river oracle
#

Damn I forget how small lbs are compared to kilograms

#

My squat is 135 but that's only 61kgs

torn shuttle
#

61kg?

#

are you made of paper?

eternal night
#

magma gym shaming??

river oracle
eternal night
#

Toxic community member spotted??

river oracle
#

Lol

torn shuttle
eternal night
river oracle
#

I only really go to the gym once a month if I got daily my body starts to fall apart cuz of other stuff I got going on

torn shuttle
#

6'1 90kg gym machine let's go