#help-development

1 messages · Page 793 of 1

lost matrix
#
public static boolean NOT_UNTRUE = Boolean.TRUE == (1 == 1);
eternal night
#

what is there to not get when you cast twice. What is the concept here

round finch
#

REEE ECPLISE is doing it own things so much lag

wet breach
#

Double casting is not a common term. But generics can use it

#

And typically there isnt a reason to do it either

#

But it exists just like using unsafe exists and typically you dont need it lmao

eternal night
#

I mean, it is just a langauge feature ?

#

i don't even know why it has a special term

#

nor have I ever heard of it lol

remote swallow
#

lynx have you ever dove into translation stuff in mc

eternal night
#

obviously you can cast twice, I am just confused as to why a concept like "double casting" even exists (apparently)

eternal night
#

why ?

remote swallow
#

ive got a pr for more translateable stuff and im wondering if stuff i thought were missing ways to get the nms version that have translateable stuff have a way to get it

young knoll
#

He’s been voluntold to make everything translatable

eternal night
wet breach
#

As i said most likely will not need it

eternal night
#

Yes, generic tomfoolery is one of those

lost matrix
remote swallow
#

yeah its kinda annoying

eternal night
#

just wait for string templates NODDERS

#

and component support kekwhyper

young knoll
#

Yeah choco

eternal night
#

which is going to be fantastic given that the bukkit translatable is in spigot-api

#

and the translatable component interface is in bungee

#

mhmmm

remote swallow
#

some things have keys in lang file but they dont expose a description id so i would have to manually generate the string which is is magic values

young knoll
#

Wait bukkit translatable is in spigot api

eternal night
#

well

#

bukkit

lost matrix
eternal night
#

Well for components themselves yea

#

but for formats for components

#

they are fucking godlike

round finch
#

it was

young knoll
#

Sometimes I wish we could kill the spigot patches

#

But alas

round finch
#

some weird entity lambda

eternal night
#

very important that those remain as patches NODDERS

#

otherwise how would you know where bukkit starts and spigot ends

#

how else will I run craftbukkit in producion

young knoll
#

I think it’s more about licensing?

#

Idk I’m not a layer

eternal night
#

layer

young knoll
#

Or a lawyer

eternal night
#

flat af coll

young knoll
#

I’m like the earth!

lost matrix
eternal night
#

🤤

lost matrix
young knoll
#

I guess other people could just rewrite some of the spigot patches to solve any license issues

#

At least the smaller ones

eternal night
#

rewrite to solve licence issues is a wild idea kekwhyper

#

sounds rather difficult for anyone to truely claim they "heard of a concept in spigot" and then implemented it without having any influence/being close to spigots implementation

rotund ravine
#

Just rename all the methods right?

#

./s

eternal night
#

like, you are just derivative work at that point

young knoll
#

As long as you don’t look at the impl you should be fine

#

Technically

eternal night
#

Yea but who hasn't

young knoll
#

I mean

#

I haven’t looked at the code for Player#respawn

rotund ravine
#

Sigh

#

Guess i need to raise a kid in a locked room for my future spigot heist

young knoll
#

The children shall be used as a pr vessel

wet breach
#

The reason clean room implementations require this is mainly for businesses to have a clear defense if something is similar

young knoll
#

Pretty much

#

MD wants to be safe and avoid another dmca situation

#

Which I get

#

Sadly it prevents us from just yoinking paper patches

wet breach
#

Well the grey area currently is mojang has not officially countered the DMCA of bukkit

#

They stated they dont acknowledge it but they never contested it

floral field
#

why u gays talking sulks here

wet breach
#

So, that leaves everyone else in the middle lol

eternal night
#

We love the gray middle ground

#

paperclip moment

young knoll
#

Do you have plans if something goes wrong legally

#

And do those plans consist of blaming it all on mini

shadow zinc
#

changed it a bit, thoughts?

eternal night
#

Given we have people in rather close contact with mojang themselves 😅

young knoll
#

Fair

#

But what if one of your contributors goes rouge

wet breach
young knoll
#

Ah yes

#

500iq

wet breach
#

Then you have mojangs blessing and protection uwu

shadow night
#

Do I not understand something

lost matrix
young knoll
#

Im in

wet breach
eternal night
#

maybe md_5 was already bought by mojang too

#

who knows

lost matrix
shadow night
young knoll
#

md_5 has an _

#

You know what else has an _

#

_jeb

eternal night
#

oh

#

my

#

god

lost matrix
#

lol

remote swallow
#

isnt it jeb_

eternal night
#

undenyable truth

young knoll
eternal night
#

hopefully we get a response forum post from md_5 in regards to these allegations

young knoll
#

Damn it is jeb_

#

I misplaced my _

wet breach
# shadow night What does that mean

Anyone can ask mojang to take over the bukkit project officially. If you have a decent team they may let you. But yeah anyone can contact mojang to do it as they said in the past

young knoll
#

I’ll do it

wet breach
#

Currently no one has done it

eternal night
#

one man army

young knoll
#

My team will be md, choco, epic, and Chocos dogs

shadow night
young knoll
#

Yes

#

He started it

shadow night
remote swallow
#

what for

young knoll
#

Dinnerbone and grumm are all over the commit history

shadow night
remote swallow
#

how did they commit fraud

shadow night
young knoll
shadow night
#

Or should I say .-.

young knoll
#

BlockData/BlockState moment

eternal night
#

hate it

shadow night
#

Bukkit will always be the vegan in the modding scene

young knoll
#

Bukkit doesn’t eat meat?

remote swallow
#

md forces it to only eat plants

shadow night
round finch
#

wait how do you assign with lamba and an entity

young knoll
#

Bukkit full of kelp

lost matrix
young knoll
#

Hey

shadow night
young knoll
#

itemStack exists internally!

#

Kinda

remote swallow
#

do i exist

young knoll
#

Internally?

#

No

remote swallow
#

so im not a craft player

young knoll
#

You cannot craft

lost matrix
#

Epic us just some random abstraction withing spigot

young knoll
#

Is craft player a class or an order

shadow night
#

Isn't a craftplayer an implementation of player using nms code or something

young knoll
#

Yes

#

It links with the internal ServerPlayer

shadow night
#

Nice

#

What if EntityPlayer

young knoll
#

What’s an EntityPlayer

#

I only speak mojmap

remote swallow
#

its this weird thing

shadow night
remote swallow
#

theyre like really bricky

young knoll
#

Actually I think it’s still EntityPlayer in cb source

#

:(

eternal night
#

just remap it smhduck

young knoll
#

That’s up to the slime!

wet breach
#

Just mess with the nms stuff so the nms devs can have more work uwu

young knoll
#

We should randomly relocate craftbukkit

#

Rather than a silly consistent version name

remote swallow
#

coll can you go and wake choco up

young knoll
#

Ask simon to

remote swallow
#

idk simon

young knoll
#

Skill issue

remote swallow
#

do you know him

shadow night
#

Does spigot have own mappings

eternal night
remote swallow
young knoll
#

Yes

#

Spigot used to maintain its own mappings

#

But I don't think we do anymore, so now we have some weird mojmap/spigot hybrid

shadow night
#

Lol

young knoll
remote swallow
#

go get him to wake choco up

valid burrow
#

coll is canadian???

remote swallow
#

yeah

#

you didnt know?

valid burrow
#

no

young knoll
#

Why are people always surprised by this

valid burrow
#

now that i think about it i barely know anyones home country from spigot

remote swallow
#

you dont say eh enough

young knoll
#

MD is Australian

#

That's all you need

valid burrow
#

didnt know that either xd

remote swallow
#

choco is canada too

valid burrow
#

that i know

young knoll
#

tbf that's about all I know

remote swallow
#

7smile is german

valid burrow
#

i know most german ones

#

since im german myself

remote swallow
#

cowoconcluwube is sweede

valid burrow
#

and i know a few polish ones

shadow night
round finch
#

i just figured out geometry for drawing with code today

valid burrow
hybrid turret
#

Nevermind i‘m stupid lol

round finch
#

have a list of points and draw lines beteewn them

valid burrow
#

coll if you would send sirup pics in general i wouldve known

#

@young knoll

young knoll
#

Ah yeah sorry

shadow night
#

"You would have" = "You'd've"

round finch
#

sirup pics 😋

round finch
#

You'd've'L'2d

rotund ravine
# shadow night "You would have" = "You'd've"

In the labyrinthine corridors of linguistic eccentricity, one'd've often found oneself grappling with the esoteric tapestry of lexical peculiarities, where the idiosyncratic amalgamation of syllables, as if engaged in a clandestine dance, metamorphosed the commonplace "you would have" into the enigmatic "you'd've."

shadow night
#

It's often pronounced "yud ev" anyways

hybrid turret
#

Can I use saveResource if I want to save the resource to folder/file instead of file?

#

Basically let‘s say I want to save list.yml to dataFolder/lists/list.yml
Is that possible with saveResource?

lost matrix
hybrid turret
#

So if i created the folder lists in my resources folder of my jar, the folder would also be created, when using saveResource?

#

And to save I would then type saveResource("lists/list.yml")?

upper hazel
#

Is it possible to increase the block by placing it on an armor stand in 1.16.5?

smoky anchor
#

elaborate on "increase the block"

upper hazel
lost matrix
lost matrix
#

But yes

upper hazel
#

i was think this is can be only in 1.20

lost matrix
#

No, models can be quite big. But the size is fixed to the model description. In 1.20 you can scale literally anything to a tiny size or a huge one.

young knoll
#

The max size for a model is 7x7x7

#

Including scaling

lost matrix
#

Hm. You could create a tiny blocks plugin which lets you display schematics in pocket format. squint

young knoll
#

Without scaling its 3x3x3

#

I kinda have that going actually

#

Lets you turn any worldedit selection into a bunch of block displays and then manipulate them

lost matrix
#

Interesting. But i just thought about how to properly scale this all down to a small size and lost interest.
Transformations are always so time consuming...

young knoll
#

Ignore the glitching, that's due to lag

valid burrow
#

cool

#

up to what size does it work

valid burrow
#

i mean i understand that

#

but practically

young knoll
#

Ah wait do you mean the size of the displays

upper hazel
young knoll
#

Or how many blocks

valid burrow
#

blocks

young knoll
#

Probably about 2k before the client starts to struggle

valid burrow
#

is this a private code?

young knoll
#

For now yess

#

I'll release it when it's done

valid burrow
#

tell me when its done id like to have some fun with it

#

its really cool

young knoll
#

You can scale, rotate, translate, and create animations for them

#

And change the glow color

lost matrix
#

Centric rotation. Did you translate, rotate, translate back?

young knoll
#

I thought glow color override was only the 16 default glow colors but no, it's RGB

valid burrow
young knoll
#

I should add the ability to bind commands to them

#

Then servers could use them like a fancy npc

valid burrow
#

mhm

#

did you add rotation speed

young knoll
#

You control that via keyframe spacing

quaint mantle
#

how do i eat spigot

young knoll
#

Are you looking for like, recipes?

#

I find a bit of seasoning is all you need

quaint mantle
#

i don't think you should eat it raw?

young knoll
#

Well yeah

#

Cook and season

quaint mantle
#

oil or butter?

#

what season

young knoll
#

I believe I am required to redierct all talk of how to cook spigot to #general

hybrid turret
#

Wait i‘m dumb

#

This wouldn‘t require minecraft, only the server. Oops, sorry for the bother

sterile token
#

I have done some unit testing and each proxy with 500mb can run ñerfectly 1.000 players

upper hazel
#

hey how i can stop spawner animation ?

#

and how add armorstand to spawner with block in head

#

i only can set entityType

young shell
#

What's the reason for World#getTicksPerSpawns() returning a long while Server#getTicksPerSpawns() returns an int

rotund ravine
slender elbow
#

that's exactly what unit testing is about 💪

young shell
#

I mean thats more integration / load testing than unit testing

inner mulch
#

hello, are there ressources on how to create fake client side entities?

young shell
molten hearth
young shell
#

Just be aware that Mockbukkit builds upon Paper since 1.18 iirc, so some stuff might not properly work on pure spigot

molten hearth
#

I have a VPS running a microcpu for instance I kinda doubt it would be able to pull off even 500 players without dropping to 400% cpu usage

slender elbow
#

i mean, for a proxy it's not exactly a lot

molten hearth
#

Yeah no i don't trust that server to do shit

#

Anyways do you peeps know of any way to implement custom block hardness without making use of mining fatigue in 1.20+?

young knoll
#

That's the only way I know of

#

You can hack it server side but the client won't get the updated value so it'll break

#

or adventure mode I guess :p

molten hearth
#

hmmm alright thank u

hazy parrot
#

does anyone have idea how to make thymeleaf not ignore @JsonSerialize annotation, @JsonIgnore seems to not be ignored, just serialize is lol

young shell
#

What's the reason for World#getTicksPerSpawns() returning a long while Server#getTicksPerSpawns() returns an int

quiet ice
#

Okay I think I read the message wrong, but in case you have that keyword I'd remove them

sterile token
#

@molten hearth i have done the unit testing with Intel Xeon E5 2697 (16 cores, 32 threads) and 128gb DDR3. Of course to run them i límited each instance to 500Mb

quiet ice
#

500 Megabuckets?

young shell
hazy parrot
sterile token
#

?paste

undone axleBOT
sterile token
#

Please don't send thosens of code on chat, because it's a mess yo help and read

near mason
#

the error is on the run method

sterile token
#

It's imposible yo help

wet breach
#

?paste

undone axleBOT
sterile token
near mason
sterile token
#

Thanks!!!

lost matrix
quiet ice
lost matrix
quiet ice
#

(except if they are final primitives or otherwise immutable objects - but whatever)

sterile token
#

Aldo why your listerner Will be a runnable too

near mason
#

NoClassDefFoundError: could not initialize Minigame

sterile token
#

Bruh

#

Don't paste long code in channel

#

Use paste md5 for everything code sent!!

solar jungle
#

Assistance with Particle Generation in Minecraft Plugin

Hello! I'm facing issues with redstone particle generation in my Minecraft plugin. The code to display particles for a specific duration isn't working as expected. Any expert guidance? Thanks!

quiet ice
#

This isn't that long

lost matrix
quiet ice
#

Also yeah, it be best to show the caused by: statement, if it is present

river oracle
#

using a static approach for a minigame class doesn't really work well might be beneficial for you to re-appraoch this tbh

near mason
quiet ice
#

Though NoClassDefFoundError usually have a caused by

lost matrix
solar jungle
#
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (!(sender instanceof Player)) {
        sender.sendMessage("Este comando solo puede ser ejecutado por un jugador.");
        return true;
    }

    Player jugador = (Player) sender;

    // Generar partículas de redstone con un color rojo durante 10 segundos
    new BukkitRunnable() {
        int ticksPassed = 0;
        int maxTicks = 200; // 10 segundos = 200 ticks (20 ticks = 1 segundo)

        @Override
        public void run() {
            if (ticksPassed >= maxTicks) {
                cancel(); // Cancelar la tarea después de 10 segundos
                return;
            }

            jugador.spawnParticle(org.bukkit.Particle.REDSTONE, jugador.getLocation(), 0, 0, 0, 0, 1,
                    new org.bukkit.Particle.DustOptions(org.bukkit.Color.RED, 1));

            ticksPassed += 5; // Añadir un intervalo de tiempo entre cada aparición de partículas
        }
    }.runTaskTimer(plugin, 0, 5); // Ejecutar cada 5 ticks, sin retraso inicial

    jugador.sendMessage("¡Partículas de redstone rojas generadas por 10 segundos!");

    return true;
}```  The 'runTaskTimer(plugin, 0, 5)' is showing as underlined in red.
near mason
sterile token
#

Please longs code use ?paste

lost matrix
lost matrix
quiet ice
near mason
quiet ice
#

Why the hell does your Ctrl + C, Ctrl + V absorb line breaks?

lost matrix
#

I doubt that a NoClassDefFoundError shows a cause.
He abuses static in the most horrific way possible, and it fks up his entire classloader.

near mason
#

?

quiet ice
river oracle
near mason
#

why should i use instead*

lost matrix
#

Yeah, something throws an exception while the classloader initializes the class.

quiet ice
#

@near mason Are you depending on another plugin at runtime?

river oracle
undone axleBOT
river oracle
#

your abusing the fuck out of static here

river oracle
#

your state is literally everywhere in random public static fields

#

you have 0 control over it

quiet ice
#

So no multi-plugin module code and anything?

near mason
#

😭

#

do i make a class like GameManager?

lost matrix
# near mason

Does your plugin work if you comment out

public static final Minigame[] games = new Minigame[]{new Spleef()};
quiet ice
#

Don't make a GameManager.

lost matrix
near mason
#

no

#

its becuase im using it in randomMinigames()

near mason
#

no static, no manager?

quiet ice
#

Try

try {
        if (Minigame.current==null)return;
        Minigame.current.tick.forEach(Runnable::run);
} catch (Throwable t) {t.printStackTrace();}
#

You'D want to use DI, but static is not the root cause of your issue

#

It just obfuscates it to smitherines

lost matrix
lost matrix
quiet ice
#

Use an empty array instead

lost matrix
#

?paste

undone axleBOT
quiet ice
#

And I love static

near mason
quiet ice
#

But I generally have a strict classloading hierarchy (that is, I am well aware when a class is being loaded and in what order) so I don't bit the dust

lost matrix
#

Yeah but make your purely static classes all final to prevent this ^^

lost matrix
near mason
#

line 22

lost matrix
#

That is not the same field as Minigame.games

sterile token
#

Why do is he static abusing? Isnt that not recommended

quiet ice
lost matrix
#

That is an average verano comment

quiet ice
#

Yes. You are absolutely correct - we already said that

sterile token
quiet ice
#

Because it is much easier to develop for?

lost matrix
quiet ice
#

People generally think in global variables

quiet ice
near mason
lost matrix
# near mason line 22

Ah i see where you are using it...
At the bottom of your Minigame class, but for some reason through a class which extends Minigame

near mason
quiet ice
#

Like the worst thing you can have is something being null as it was not yet initialized

lost matrix
# near mason

Alright this should compile. Now tell us if you have the same exception.

grim hound
quiet ice
#

I strongly believe you can, so make sure to not then depend on the field being initialized

near mason
#

thank you so much 7smile7 its fixed now

#

but i didnt get why it wasnt working

quiet ice
#

Cyclic dependencies: One class depended on the other which depended on the other

lost matrix
shadow night
#

Why are getters and setters so important

#

Isn't that extra boilerplate

rotund ravine
#

Imagine using try laughs in kotlin

lost matrix
#

Because it enables strong encapsulation

shadow night
wet breach
rotund ravine
undone axleBOT
rotund ravine
#

There are so many good resources on it and smile gave you the buzzword

quiet ice
#

For final immutable variables, getters are sometimes superfluous, but generally making stuff private hides away unnecessary implementation details at the relatively small cost of nothing

lost matrix
# shadow night That means?

You want to protect anything which is mutable from leaving your instance.
Write methods which safely modify your objects instead of giving them out for other classes to modify them.

Getters and Setters should only be used by strictly immutable objects. They are the exception to mutators, which
should always be used when possible.

shadow night
#

Hmmm

lost matrix
quiet ice
#

Well I always think of an ABI angle as when I am not writing a library I can just be completely carefree as long as I know what I am doing

lost matrix
wet breach
#

we all are lazy sometimes

lost matrix
wet breach
#

besides, sometimes you simply don't need that efficiency even if its proper

river oracle
#

the taled ManagerManager class which manages all the managers

lost matrix
river oracle
#
ManagerManager firstManagerManager = ManagerManagerManager.getInstance().get("firstManagerManager");
BlockManager blockManager = firstManagerManager.get("blockManager");
CustomBlock block = blockManager.get("customBlock");
sterile token
lost matrix
# river oracle ```java ManagerManager firstManagerManager = ManagerManagerManager.getInstance()...

I made it type safe instead of using Strings as keys.

public class ManagerRegistry {

  private final Map<Class<?>, AbstractManager> registry = new HashMap<>();

  public <T extends AbstractManager> T getManager(Class<T> managerClass) {
    return managerClass.cast(registry.get(managerClass));
  }

  public <T extends AbstractManager> void registerManager(T manager) {
    registry.put(manager.getClass(), manager);
  }
  ...

Usage

GuiManager guiManager = ENPCore.getManagerRegistry().getManager(GuiManager.class);

But it was kinda meh.

river oracle
#

ManagerManager is just blegh

#

I just make my managers singleton

lost matrix
river oracle
lost matrix
#

I wouldnt say fall apart. But it needs an intricate design philosophy.

river oracle
#

a lot of times you'll use those in many places passing it around through a constructor seems primitive tbh

lost matrix
#

There are other strategies than just passing them through every constructor

river oracle
lost matrix
river oracle
#

think it mighta been guava

lost matrix
#

guice

river oracle
#

but like

#

gross

near mason
#

i removed every static thing except this

warm pine
#

Is there a API version for 1.20?

near mason
#

should i remove this too?

dry hazel
#

make sure to quote it, since snakeyaml will parse 1.20 as 1.2 (number)

warm pine
#

Oh

lost matrix
warm pine
#

I was trying to put 1.20

near mason
young knoll
inner mulch
#

hello, can someone help me on how to use protocollib? im trying to spawn a client side entity and interact with it.

torn badge
near mason
#

?

#

why?

river oracle
#

because there is no reason to remake the random object every time

#

its utterly pointless and just unecessesary overhead

near mason
#

ok

slender elbow
#

you are meant to use the same random instance for better random sequencing

#

making a new one each time is misuse

near mason
#

ok thank you

deep herald
#

anyone know how to use instanceof in java 8?

grim hound
deep herald
grim hound
#

variable instanceof SomeGreatClazz

deep herald
grim hound
#

shows

deep herald
grim hound
#

the wrong part

near mason
#

remove "commandSendEvent"

deep herald
#

im trying to define it too

grim hound
#

do you really not see that red line?

young knoll
#

In java 8 you gotta do

grim hound
near mason
#

add CommandSendEvent commandSendEvent = (CommandSendEvent) event; after the if

grim hound
#

in java

young knoll
#

if (x instanceof Y) {
Y y = (Y) x;
}

grim hound
near mason
#

no problem

slender elbow
deep herald
#

then gotta fix that somehow

near mason
#

u have to make ur own method

river oracle
deep herald
#

bro i cant

#

im running an old ver

river oracle
#

then you can't use that API

young knoll
#

Arrays.asList I guess

river oracle
#

legacy software legacy problems

deep herald
near mason
#

doeesnt Arrays.asList exist?

#

oh nvrm

#

he already said it

deep herald
slender elbow
#

clearly

grim hound
#

wat this

valid burrow
grim hound
#

how fix

valid burrow
#

settings

#

there where you select jdk

#

under tht should be

#

language level

#

id go with newest

grim hound
#

but it's default

valid burrow
#

then dont use default

grim hound
#

I tried others

valid burrow
#

use newest

#

oder update ur jdk

grim hound
#

but if I go under 15 I'll have to remake my code

valid burrow
#

it says what ever you are trying to do is only for 17 and above

#

maybe even only 17

#

usally when you hover the error

#

intj will tell you what you need to use and you just need to click it

grim hound
#

but I did other projects on java 17 and it worked

valid burrow
#

theres so many distros

eternal oxide
#

or you set your pom to lower compat

valid burrow
grim hound
#

I don't use maven

valid burrow
#

gradle?

grim hound
#

no

#

I'm on a greater state of being

valid burrow
#

then start using one of them.

grim hound
eternal oxide
#

you will your jars into existence 🙂

valid burrow
#

just use maven please

grim hound
#

no

#

too slow

valid burrow
#

tf u mean to slow

grim hound
#

and I'd need to add all of my libraries by maven

#

too lazy

#

maybe one day

valid burrow
#

how many u got

grim hound
#

but not now

valid burrow
#

if you dont wanna use the propper tools i sadly cant help z

#

thats like 5 imports

grim hound
valid burrow
#

maven does the spigot one automatically if you use the plugin

#

or bungeecord

#

or what ever

#

paper even

sterile token
sterile token
deep herald
#

well its kinda true

sterile token
#

i would give a simple and self explained example

frail crystal
#
if (player.isInvulnerable()) {
                player.setInvulnerable(false);
                player.sendMessage(ChatColor.GREEN + "God Mode enabled");
            }
            else {
                player.setInvulnerable(true);
                player.sendMessage(ChatColor.DARK_RED + "God Mode disabled");
            }```
why does this say "god mode enabled" then making me killable, and the other is reverse
deep herald
eternal night
deep herald
#

and cancel it

eternal night
#
player.setInvulnerable(false);
player.sendMessage(ChatColor.GREEN + "God Mode enabled");
#

does this make sense

#

when you look at it

frail crystal
#

oh

#

im dumb

sterile token
#

Have you seen the game from hypixel where there teams of people and the first team which breaks the 9 blocks in the middle wins? Well the same custom plugin for 1.7 and 1.8 base is between 315-478$. Same custom plugin but 1.13 up price downupgrade atleast at 30-40% compared with the legacy one, there you have a fast argument

rotund ravine
#

?

eternal night
#

the fuck is that argument kekwhyper

sterile token
# rotund ravine ?

Why? Well in 1.13 facilities are better so you need less time to code it

eternal night
#

"See a random plugin maintained by a random person is priced by the random person differently"

#

gotcha

#

I'll make that plugin, publish it for a dollar and now 1.20 is the best version 💪

valid burrow
#

what plugin

sterile token
# valid burrow what plugin

"game from hypixel where there teams of people and the first team which breaks the 9 blocks in the middle wins" not know its name

valid burrow
#

but on drugs

sterile token
#

yeah similar haha

#

but there i can fully explain that prices on none legacy are cheapers rather legacies. Because new things has more facilities

eternal night
#

I mean, that is not a rule is it

valid burrow
#

every single hypixel games seems to be similar to ctf now a days

eternal night
#

You could probably write that plugin against 1.8 API and still run it fine on 1.20

valid burrow
#

in general so many servers got games like that

sterile token
valid burrow
#

time

sterile token
valid burrow
eternal night
#

Yea I doubt that claim is true

sterile token
valid burrow
eternal night
#

what ? no I was talking about the "price of plugins is based on version they were developed against" statement

valid burrow
#

ohhh

#

arl

sterile token
valid burrow
#

but that kinda is „true“ outdated versions wont get purchased as much

sterile token
#

i have seen to many bad plugins for 1.20, expensives around 40$ and they were having hundreds of buy per month 💀

valid burrow
#

hundreds? ive barely ever seen plugins sell for hundreds of times a month

eternal night
#

almost like personal accounts of things are completely useless for discussion xD

#

run latest

#

be happy

#

legacy is legacy, unless you are planning on maintaining a fork yourself or find a maintained fork

#

don't use it

sterile token
#

yeah buts its no good to tell oblise people using newer software. Be free, be happy and let them do what they want and choose md_5

eternal night
#

I mean running spigot 1.8 is a straight up security risk

sterile token
eternal night
#

what do you mean software

#

plugins ?

#

the fact that log4j was patched on 1.8 was at best curtesy

sterile token
eternal night
#

could as well not be patched

#

Yea

#

that is called maintaining a fork

#

the large majority of people do not have the time for that

sterile token
#

oh right, i didnt know about the concept. I will save that, i always learn new things hehe

sterile token
#

If you really care what you do you find time for everything

eternal night
#

doubt it

#

I doubt anyone running 1.8 does not care about server crash exploits or the likes

sterile token
eternal night
#

They don't care until it happens first

worldly ingot
#

But lots of others everywhere else

eternal night
#

suggesting that legacy is remotely acceptable to run is just harmful imo

sterile token
worldly ingot
#

What'cha mean? My job is literally to maintain minigames rn

sterile token
worldly ingot
#

Yeah lol

eternal night
#

I guess their point was the skyblock team is larger than the individuals dedicated to a single other gamemode

sterile token
#

oh i didnt know lmao, thats really nice

worldly ingot
#

:p I assure you that minigames are being worked on

eternal night
#

no one said they aren't

#

like, "as the most popular server gamemode it presumably also recieves the most developer time in total"

worldly ingot
#

Yeah, I mean like I said there's a dedicated team for Skyblock alone

eternal night
#

yea

#

I think that is all that was said 😅

worldly ingot
#

It's 50%+ of the userbase at any given time so no surprise there

eternal night
#

not that no one is working on mini games

river oracle
#

never expected skyblock to be that big

#

anyone know of a reputable plugin that has a GUI lol I need to test my Commodore changes

worldly ingot
#

I mean log on at any time and it’ll be 50% if not more KEKW

echo basalt
#

Choco can you tell them to not instantly reject my applications tyvm

sterile token
river oracle
#

don't need choco to tell you that

#

there is no way they aren't running their own custom software

sterile token
#

yeah, they have such a big team for not doing it

#

@river oracle what do you think they use existent or custom storaging databases?

echo basalt
#

Seaweedfs

#

Mongo

#

Uh

#

Pen and paper idfk

sterile token
#

Also they must use something like a huge Redis, there is no way they not catching in memory dbs

young knoll
#

I know they used a lot of mongo in the past

sullen wharf
young knoll
#

I assume they still do

echo basalt
#

Just one big Object[]

sullen wharf
#

Then they proceed to store that array into one single document in mongo

frail crystal
#

can you change an item material while keeping the same nbt data

rotund ravine
#

?jd-s

undone axleBOT
rotund ravine
#

Hmm

slender elbow
sterile token
haughty idol
#

Hi, I'm making this "WaterArms" ability- basically extensions of your arms that, when you punch, punch with you.

I know how to detect when the player punches, but the thing is, it's hard to send that signal to this cast function- how would I be able to detect when the player punches INSIDE of the cast() function, or how would i make it so that the cast() function detects if the player punches for the duration of the ability?

https://pastes.dev/KndbJ7tlZd

robust helm
#

best way to spawn many particles at once in spigot 1.8.8?

storm crystal
#

for loop

valid burrow
lavish cliff
#

Hi , I want to create squared regions ( no round but irregular ) worldguard style , I thought I’d make them by putting each location ( if the player is content in a hash ) in a list and then I made a "foreach" but i don't think is the right method ... could someone help me ?

rotund ravine
#

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

lavish cliff
#

i can send u the scrach

valid burrow
#

use this ?paste

#

?paste

undone axleBOT
valid burrow
#

paste in the code causing the error, click save and send the link in here

haughty idol
tall dragon
#

wrap the player in your own wrapper, for example "MinervaPlayer", you pass this instance around instead of Player & you can simply store extra fields on each player this way. for example a boolean flag for "isHitting"

minor junco
# lavish cliff Hi , I want to create squared regions ( no round but irregular ) worldguard styl...

Don't do this, a squared region may exceed an excessive number of locations. Having a large hashmap is fine, but having millions of entries on a server that requires performance is not. What you can do instead is make a Set of Areas (we call our Squares like that) that hash both edges so duplicate areas are not unnecessarily added. When a player moves, iterate over each area and check if the player's new location is within bounds of the iterated area. You can make this asynchronously if the size of the areas is large. Me personally I'd make a map that maps by world name, so that you don't have to iterate over too many entries that are unreachable.

minor junco
sterile token
minor junco
#

Nope, a Multimap is an abstraction of a Map with a collection as a value. It makes handling collections and managing a map with a collection as a value much easier ^^

rotund ravine
#

ArrayListMultiMap

sterile token
minor junco
#

in this case I'd recommend using this:

SetMultimap<String, YourArea> squares = Multimaps.newSetMultimap(new ConcurrentHashMap<>(), () -> Collections.synchronizedSet(new HashSet<>()));
#

just as a thought

lavish cliff
#

not a cuboid

minor junco
#

I'd say it is the same principle

tall dragon
#

well then ur not making stuff easy for yourself ;d

minor junco
# minor junco I'd say it is the same principle

i was just targeting the way of how to store the target area, the underlying hashing does not matter too much if you don't care about duplicate areas being added. It is more a question about space & time complexity, which for a Set of areas ofc is O(n), if you were to hash every location one by one you'd end up with O(1) for the simple lookup, but it would eat A TON of memory for big areas (trust me I tried something similar before). And minecraft (more like java lol) in general is really sensitive about memory usage, so in short: I would go with the same principle

#

... unless you only have a maximum defined number of areas that isn't too large AND the complexity of looking up whether a player is in bounds is vastly slower than what I proposed

robust helm
storm crystal
#

wait wasnt there like a way to specify amount of particles

robust helm
#

dont think so for 1.8

minor junco
#

yeah you don't for < 1.12 I think (correct me if I'm wrong)

#

it is really annoying

robust helm
#

i probably could use packets tho…

storm crystal
#

oh damn that sucks

robust helm
#

like with a library that does everything

minor junco
#

yeah but then you'd have to depend on the versions again (or use protocollib)

robust helm
#

yea protocollib will probably be installed either way

#

its just that i dont feel like doing stupid packet stuff

minor junco
#

yeah it is a great library, especially for reflection lookups (e.g. FuzzyReflection, ExactReflection that kind of stuff) really helpful 👍

minor junco
lost matrix
lost matrix
#

Or do you want to create this region yourself

lavish cliff
#

2

lost matrix
#

What does that mean?

lavish cliff
#

i wanna create a region logic from my self

#

so without using worldguard

lost matrix
#

?paste

undone axleBOT
lavish cliff
#

i need to create an extension of polygon in 3d?

lost matrix
short pilot
#

Is it possible to make mythic mobs spawn mobs that are allied to a certain function?

#

api wise

#

for clarification, I know you can spawn existing mobs in the config, but can you create your own?

#

i'd like to create a defender that varries per faction and is only allied to that faction

tall dragon
short pilot
#

on another note

#

what's the best way to go about having a block with hitpoints you can attack?

#

i was thinking falling block

lost matrix
# lavish cliff i need to create an extension of polygon in 3d?

Ive used an extrusion approach

  @Override
  public boolean contains(Vector vector) {
    double y = vector.getY();
    if (y < this.base || y > this.base + this.height) {
      return false;
    }
    double scaledX = vector.getX();
    double scaledZ = vector.getZ();
    return this.polygon.contains(scaledX, scaledZ);
  }

2D Projection of the vector and checking the height

short pilot
#

but mine keeps falling

rotund ravine
short pilot
#

uhhh

#

wow

#

that does open up a lot of new doors what the

#

i forgot it was a thing

bitter rune
#

my currency variable isnt being persistent on relog, or server restart, but if i just quit out of the game it saves correclty to file... here is all the java files associated with it

https://pastebin.com/hBmY9YLL
https://pastebin.com/sJBkH9hW

lavish cliff
lost matrix
rotund ravine
lavish cliff
lost matrix
lost matrix
bitter rune
#

it is, i already put debug messages in it, the value goes back to 0 on restart or when player logs back in

bitter rune
#

the main class?

rotund ravine
#

Yes

bitter rune
lavish cliff
#

thanks man 💜

minor junco
lost matrix
#

Found the problem

minor junco
#
//Currency
fileConfiguration.set("Currency", memory.getCurrency());

//Currency
memory.setCurrency(cfg.getDouble("stats.Currency", 0.0));
#

I'd recommend checking out the ConfigurationSerializable interface, having those fields closer related makes things easier to understand

lost matrix
#

Or create constants for every path

minor junco
#

thats hella lot of constants

#

but legit

lost matrix
#

I personally would just take the field names reflectively and use them as paths.
Hate serializing stuff by hand.

minor junco
#

yup that's exactly what I've done with a package of mine lol

minor junco
sterile token
#

what you dicussing about? Im interested in it

lost matrix
#

Did someone already write a recursive reflection serializer for spigots yml configurations?
I feel like someone would have done that already.

minor junco
#

you iterate through the fields of an object (more so the type) reflectively and filter out config fields you want to be serialized into your configuration

minor junco
#

I might publish it, it's quite good and focuses on inheritance & immediate serialization & deserialization of configurationserializable's

sterile token
#

why they didnt already PR that to spigot? it will make better api tho

minor junco
#

& also adds the ability to comment everything in a nested fashion from 1.7 and onwards

bitter rune
#

tells me map may not contain keys of uuid

inner mulch
#

How do i Set a client side entity as a passenger on a real entity ?

minor junco
#

but UUID's are (like all objects) hashable and have a custom hash method override thus are usable in hashmaps, that's what I've been doing the entire time so I was surprised to see you convert those haha ^^

lost matrix
inner mulch
#

ok thanks

bitter rune
#

changed it to uuid instead of string and serialized it and all a sudden it started saving... thanks for the help, was only 3 days of mesing with it lol

ivory sleet
quaint mantle
#

Do you guys know if an external Java application does something with another Java application

#

Like is a new jvm created for every app

eternal night
#

nothing yet sadly

#

presumably the jump would be for the next major version tho

#

initial 1.20 missed the java 21 release by a couple of days

lofty badge
#

who can help me with rainmeter widget development?

quaint mantle
#

Alr but r u aware of the 1.8 hit delay bug (weird transition ik)

lofty badge
sterile token
quaint mantle
#

Alr prob not

chrome beacon
#

??

#

No

sterile token
chrome beacon
sterile token
chrome beacon
#

Yeah

#

Why would they share

quaint mantle
#

OK well

#

the 1.8 hit delay is where if u click too fast and aren't looking in at ahitbox

#

u stop swinging for a little bit

#

Like a second or 1.5 sec

#

and I made an autoclicker which I rushed through

#

So the implementation is horrible

eternal night
#

can always already use java 21

#

force some users to upgrade 😏

#

I mean

#

Your plugin can compile to java 21

quaint mantle
#

And I was wondering if creating 20+ new threads a second will do anything to other jvms

eternal night
#

server owners just need to run java 21 then

#

to run your plugin

lofty badge
#

ok.. i will go to another server

quaint mantle
#

java native Hook can't tell the different between a java.awt.Robot click and a real click

sterile token
chrome beacon
#

Don't expect too much to change

#

Paper could probably do it

#

Not entirely sure how thread safe things are 🤷‍♂️

knotty aspen
#

virtual threads aren't really that helpful for the kind of workload of a minecraft server

#

Netty probably could benefit from them, but thats pretty much it

warm mica
opal carbon
#

i know they had like 4-6 threads for netty lmao

#

in a big test they did

lofty badge
#

guys, who can help?

chrome beacon
#

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

lofty badge
#

i need make widget on rainmeter, how i can make simple gray gradient bar on screen with rounded borders?

lofty badge
#

ok, guys, no need more

#
Meter=Shape
Shape=Rectangle 0,0,400,40,10,10 | Fill Color 0,0,0,255 | StrokeWidth 0

[Gradient]
Meter=Gradient
Gradient=Vertical | 0,0,0,0 | 200,200,200,255
X=5
Y=5
W=390
H=30``` i maked this
tall dragon
#

i have no idea what you are even using ;dd

warm mica
chrome beacon
#

Looks like a desktop customization thing for Windows

lofty badge
kind hatch
#

Rainmeter has a discord you know.

lofty badge
inner mulch
#

        ProtocolManager manager = ProtocolLibrary.getProtocolManager();

        PacketContainer packet = manager.createPacket(PacketType.Play.Server.SPAWN_ENTITY);

        Location location = player.getLocation();

        packet.getIntegers().write(0, (int) EntityType.ARMOR_STAND.getTypeId());
        packet.getUUIDs().write(0, UUID.randomUUID());
        packet.getDoubles()
                .write(0, location.getX())
                .write(1, location.getY())
                .write(2, location.getZ());

        manager.sendServerPacket(player, packet);

    }```

why doesnt i spawn anything ( i use in a playerjoinevent )
tall dragon
#

try delaying a tick

inner mulch
#

why and how?

tall dragon
#

often in PlayerJoinEvent the player isnt fully initialized and some things will not work

#

player might in this case maybe not receive this packet yet

inner mulch
#

okay

tall dragon
#

?scheduling

undone axleBOT
tall dragon
#

read that to learn about delaying

rotund ravine
inner mulch
#

so the code for spawning it is correct ?

#

only the implementaiton of the spawn is wrong?

tall dragon
#

looks right to me

#

i think u just need to delay the spawn by 1 or more ticks

inner mulch
#

okay

#

it works ! but i spawns an allay instead of an armor stand :(

chrome beacon
#

Wrong id for your game version

inner mulch
#

im playing 1.20.1 and using 5.1.0 protocollib isnt it alr 1.20?

chrome beacon
#

Are you sure you wrote the id to the right field

inner mulch
#

packet.getIntegers().write(0, (int) EntityType.ARMOR_STAND.getTypeId());

chrome beacon
#

Looking at wiki vg the type id is the second int

#

not the first one

inner mulch
#

whats entity id ??

chrome beacon
#

Minecraft keeps an int id for each entity

#

so it can identify them

#

You probably want to put a high value there so you don't accidentally have the same id as an existing entity

inner mulch
#

what if i dont set it at all ?

chrome beacon
#

Then it would probably default to 0

inner mulch
#

packet.getIntegers().write(1, (int) EntityType.ARMOR_STAND.getTypeId());

#

this still doesnt set it to an armorstand ?

chrome beacon
#

Where is EntityType from?

inner mulch
#

entitytype is an enum which contains the entities

chrome beacon
#

so the spigot one?

inner mulch
#

import org.bukkit.entity.EntityType;

chrome beacon
#

I wouldn't rely on that

inner mulch
#

why?

chrome beacon
#

eh I guess you don't have much of a choice

#

Does it still spawn an allay?

inner mulch
#

yes

chrome beacon
#

Try writing the entity id

#

and data

inner mulch
#

what do i write into data?

ebon sparrow
#

Hi, there is any chance that someone can make a fork for an eliminated premium plugin of an 3 year unactive author of spigot?

chrome beacon
#

?services

undone axleBOT
grim hound
#

That ain't

#

How entityId works

inner mulch
#

pls teach me

grim hound
#

entityId is basically something of an entity counter

rotund ravine
#

It’ll probably work

chrome beacon
#

Yeah

rotund ravine
#

Only for one player tho

#

And one entity

chrome beacon
#

Field 0 is entity id

grim hound
#

Ah so that was the entity type code?

chrome beacon
#

Field 1 is entity type

grim hound
#

My bad

inner mulch
#

        ProtocolManager manager = ProtocolLibrary.getProtocolManager();

        PacketContainer packet = manager.createPacket(PacketType.Play.Server.SPAWN_ENTITY);

        Location location = player.getLocation();

        packet.getIntegers().write(0, 2);
        packet.getIntegers().write(1, 2);
        packet.getUUIDs().write(0, UUID.randomUUID());
        packet.getDoubles()
                .write(0, location.getX())
                .write(1, location.getY())
                .write(2, location.getZ());

        manager.sendServerPacket(player, packet);

    }```

this is what i got so far
grim hound
#

But if you want an entity id spoofed packet, create an actual entity and spoof it's id so that it doesn't collide

inner mulch
#

shadow do you know why my code spawns allays?

grim hound
#

Well, you put 2

#

In the MobType

inner mulch
#

it says it is 2

grim hound
#

Did you try the spigot one?

inner mulch
#

what spigot one?

grim hound
#

Also why the int cast?

inner mulch
#

yeah this was an allay too

#

it returns short

#

getTypeId

#

is a short

grim hound
#

Ah

inner mulch
#

i found it

#

packet.getEntityTypeModifier().write(0, type);

#

id isnt varint as stated in the wiki

grim hound
#

One of the reasons I use raw packet spoofing

#

I always know the constructor

chrome beacon
inner mulch
#

@grim hound , now that i got a fake armor stand, do you know how i can manipulate it to a marker, set its custom name, make it invisible and let it mount entities?

chrome beacon
#

It's hard to know at times

grim hound
#

I think

#

And just input it's entity id

inner mulch
#

hmm i will look into this

minor junco
frail crystal
#

with FileConfiguration what happens if i try to get something that doesnt exist?

inner mulch
#

nullpointerexception

frail crystal
#

what is a way to check if it exists

rotund ravine
inner mulch
#

?

frail crystal
#

can i test if its null or will i instantly get an exception?

chrome beacon
#

Just test if it's null

young knoll
#

"If the Object does not exist but a default value has been specified, this will return the default value. If the Object does not exist and no default value was specified, this will return null."

#

No exceptions

frail crystal
#

is there a way to get and use every value in a yml?

chrome beacon
#

Loop the configuration section keys

young knoll
#

getKeys(true)

#

or

#

getValues(true)

#

keys is a collection of strings

#

values is a map<string, object>

chrome beacon
#

oh neat I didn't know getValues existed

frail crystal
#

ok also can i make value names all numbers?

chrome beacon
#

Sure as long as it's a string when you set it

slate tinsel
#

Is it the amplifier that you have to change to a higher number in slow falling to make it go slower? Therefore, there seems to be no difference when I tested

frail crystal
#

alright thanks

lost matrix
young knoll
#

It does

#

Up to an extent

chrome beacon
chrome beacon
#

That might be a bit much

serene sigil
#

do u guys know the .jar file for this?

<dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.8.8-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
young knoll
#

huh it doesn't actually change anything

#

Could have sworn it did

slate tinsel
serene sigil
#

i need the .jar dependency

young knoll
#

all values are the same

#

smh mojang

slate tinsel
#

smh

chrome beacon
serene sigil
#

bruh

#

alright

#

can u gimme link?

chrome beacon
#

?bt

undone axleBOT
serene sigil
#

thx

grim hound
#

I was wondering

serene sigil
#

and thats thge exact same?

#

java -jar BuildTools.jar --rev 1.8.8
this right?

chrome beacon
#

yeah

grim hound
#

If I were to use any translation api I would need to input an api key that anybody could see into my could

#

It also has limitations per day

chrome beacon
#

Let users create their own api keys

grim hound
#

I see

#

G'night y'all

slate tinsel
#

what is meant by icon in potion effect? is it the thing that shows the potion effect in the inventory, therefore it is not affected when I change the icon to false

young knoll
#

icon in the top right

chrome beacon
#

^^

#

outside of the inventory

young knoll
#

^

serene sigil
chrome beacon
#

Let it build

#

It takes a while

slate tinsel
chrome beacon
#

no

young knoll
#

no

serene sigil
#

bruh i didnt get any new jar

young knoll
#

dis one

chrome beacon
serene sigil