#development

1 messages ยท Page 51 of 1

worn jasper
#

lol

#

might know what it is just not by name

icy shadow
#

no offense but how long have u been learning java for lol

#

yeah hang on ill get an example

#
  record Person(String firstName, String lastName) {
        Person(String firstName) {
            this(firstName, "no last name given");
        }
    }
worn jasper
icy shadow
#

just like method overloading, except with a constructor

worn jasper
#

yeah xd

#

Luxembourg sucks in that sense

#

but ty for the example, will add that term to my dictionary

icy shadow
#

np

#
   class Person {
        final String firstName;
        final String lastName;


        public Person(String firstName, String lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }

        public Person(String firstName) {
            this.firstName = firstName;
            this.lastName = "no last name given";
        }
    }
``` can do it with a normal class too
#

you know what method overloading is?

worn jasper
#

yeah, several methods with same name but different parameters right?

icy shadow
#

yup

#

so constructor overloading is the exact same

worn jasper
#

yeah makes sense

river solstice
tired olive
icy shadow
#

well

tired olive
#

unless you mean like default arguments

glad grotto
#

after running buildtools is there supposed to be nms inside the .m2 folder

icy shadow
#

i think so

#

but if ur using a version above 1.16 then paperweight > buildtools

glad grotto
#

o ok ty for that, whats the difference tho

icy shadow
#

paperweight doesnt take 10 fucking hours & you get deobfuscated source code

#

plus it integrates with your IDE so you dont really have to do anything

tired olive
#

and its a gradle plugin

glad grotto
#

no maven then?

dusty frost
#

hell no

#

gradle is awesome, paperweight is super nice

icy shadow
#

yeah no but maven sucks lol

dusty frost
#

just setup a gradle plugin and one dependency thing, easy peasy

glad grotto
#

thanklord, maven was hell, was hoping there was an easier way

icy shadow
#

so real

dense drift
dusty frost
#

based

torpid raft
#

more so than maven sucks is just xml sucks

glad grotto
#

does gradle have pom.xml

torpid raft
#

it has a build.gradle or whatever it's called when you use kotlin instead

glad grotto
#

o nice

icy shadow
icy shadow
#

xml in 2023

#

๐Ÿ˜ฉ

torpid raft
glad grotto
#

tysm, got way more help here than the spigot server

dense drift
#

Xml is just hell

icy shadow
#

i'd like to think we're better than the hellhole that is the spigot server

glad grotto
#

a lot better

dense drift
torpid raft
#

helpchat is lowkey one of the best help servers for programming in general

icy shadow
torpid raft
#

ofc with the exception of dev den ๐Ÿซฃ๐Ÿ˜ณ

icy shadow
#

kiss kiss

#

but also please do not advertise

warm steppe
#

isnt helpchat more active than dev den?

icy shadow
#

or i will have to get involved

icy shadow
#

different niche

#

we're not direct competitors

#

at least i hope we're not

wheat carbon
#

we are

#

and we're gonna take you down

warm steppe
#

kekw

#

chatchat when

icy shadow
#

โ˜น๏ธ

dusty frost
#

yeah but helpchat is too big and impersonal

#

way too many people talking and stuff, i just want the homies yk

icy shadow
#

thats more what matts server is for lol

dusty frost
#

well yeah but dd is a nice middleground

icy shadow
#

epic

dusty frost
#

where every once in a while some interesting characters pop in, but it's not like massively out of control if some random person interrupts the convo to ask a silly spigot question

icy shadow
#

but silly spigot questions are fun sometimes

#

wouldnโ€™t get conversations like that anywhere else

dense drift
#

Question ab paperweight, I guess it can only be used if you target paper?

dusty frost
#

as far as i know yeah, but to be fair you probably should just be doing that anyways

icy shadow
#

i think in theory it would still work on spigot?

#

depends what ur doing ig

dusty frost
#

yeah is the api binary compatible otherwise?

#

cause the paperDev() thing in your build.gradle is also a compileOnly(papermc.1.20.1-SNAP) or whatever

#

might get a little funky

dense drift
#

Yeah idk exactly what it does, thats why I asked

icy shadow
#

well since it remaps the nms to be the obfuscated version again

#

i gues so?

dusty frost
#

try it and seeโ„ข๏ธ

dense drift
#

Fair xD

worn jasper
#

what's paperweight again?

icy shadow
#

gradle plugin

river solstice
#

typically 80 g/m2 (0.26 oz/sq ft) for office paper, so about 5 grams (18 oz) for A4 sheet

torpid raft
#

no he was obviously asking by the ream

sonic nebula
#

It also didntt work so weird

dusky harness
wind tapir
#

hello, I have a problem, i had a code that was working well, i don't have it anymore, can someone tell me why my code isn't working ? There's no error in the console

#
public void setNametag(Player p, String prefix, String suffix){
        Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
        Team team = scoreboard.getPlayerTeam(p);

        if (team == null) {
            team = scoreboard.registerNewTeam(p.getName());
        }

        team.setPrefix(prefix);
        team.setSuffix(suffix);
        team.addEntry(p.getName());
    }
sonic nebula
#

whats your problem

#

why you do xy problem

wind tapir
sonic nebula
#

yes it wont

#

why should it change

#

its static

#

not dynamic virable

#

achieve it via packets

#

so it can be per user

wind tapir
sonic nebula
#

i dont spoon feed but

#

in general i had same problem

#

because the bukkit one

#

is like u cant make per user prefix and shit

#

or diff prefix and suffix for same group

#

per player

wind tapir
sonic nebula
#

it wont

#

usiing what tu use

#

once few players join in

#

it will be same for all

#

not matter what custom prefix suffix u set to the team

wind tapir
#

ah

sonic nebula
#

so u need packet and send packets to every player

#

make a bulk packet

#

so not sending many in once

odd heron
#

Does someone knows how to check if a section in a yml file exits

#
boolean isConfigurationSection(@NotNull
String path)

``` Cant find a good tutorial about this lol
icy shadow
#

um

#

sounds like you have the answer already lol

#

you just... call that method

odd heron
#

and how to add the path like i see on the javadocs that i need to rename the path to the pathlocation

#

but it will give a redline

#

under it ^^

icy shadow
#

๐Ÿค”

#

show an example

odd heron
#

that is my section location

#

not sure if i make it good tho

dense drift
#

First time writing java?

odd heron
#

first time using this ^^

#

and alr learned alot of java myself & watched alot of tutorials about it but cant find 1 tutorial about this sadly

hazy nimbus
#

nah

#

you're apparently using java for like first time

dusky harness
# odd heron https://imgur.com/a/2A7gE4N
boolean isConfigurationSection(@NotNull String path)
```this is just saying info about the method
`boolean` = **return value**, feel free to google that for more info since online prob has better explanations
`isConfigurationSection` = method name
`@NotNull` - don't worry about this, it's completely optional
`String path` = a parameter named `path` of type `String` (text)

So, if you want to *use* this method, you have to call this method on whatever class you found this on, then you can use the parameter to fill in the value (ex `"Reload_Files"` as the `path` parameter)

For more info, check out https://www.w3schools.com/java/java_methods_param.asp (also covers return values)
odd heron
#

ohh thanks, found out haha

dire flint
#

how to make url links clickable in normal chat

#

so if chats has 2 links it will be seperate

dark garnet
#

im using PlaceholderAPI#setPlaceholders(Player, String) in my plugin but since i have the player expansion, using %player% as my own placeholder will just cause it to parse to nothing

#

nvm i was just using my own api incorrectly ๐Ÿ™ƒ

vagrant yoke
#

Thanks mate, That sounds promising could you elaborate on how I could achieve that?

shy canopy
#

Hi!

How I can unload from player server resourepack?

shell moon
#

is that possible?

sonic nebula
#

u can only override.

vagrant yoke
sonic nebula
#

then it should be pretty simple

#

u rewrite all damage events

#

and re calculate accordng to existing mc formulas

vagrant yoke
#

Ah yeah I considered that

sonic nebula
#

its not alot to do

vagrant yoke
#

But to rewrite EVERY enchantment is really not a good way about this

#

its a lot to do

sonic nebula
#

u dont need every enchantment lol

#

in sword u legit got like 4

#

sharpness , knockback , fireaspect , unbreaking

#

rest are C+V

#

also other effects are C+V

#

the armor

vagrant yoke
#

its not just sword though?

sonic nebula
#

its easy code

vagrant yoke
#

how would blast protection be c+v?

#

for instance

sonic nebula
#

u write protection

#

and then the rest

#

by c+v

#

and later to listen to event where entity get damage

#

and do switch case

#

of damagecause

#

and calculate the final result

vagrant yoke
#

knockback is difficult to replicate I've tried before

#

and I don't know of where to get the exact values and methods for each enchant

sonic nebula
#

its easy

#

i replicated kb

vagrant yoke
#

then you have to think about how the blast prot and regular prot all coalesce together

sonic nebula
#

whats the problem

vagrant yoke
sonic nebula
#

1==1

vagrant yoke
#

it's just a lot to do

sonic nebula
#

u want complex tax

#

else send packets

#

but player will always see his item enchanted

#

and its even more heavy task on system also

#

many packets to send

#

on every tck

#

and connecting the server pipe line is probably something u wont be able to do if u think option A is hard

#

since player with server pipe to modify packets before they are send is a really complex thing to do

vagrant yoke
#

It's not hard but it's long and tedious

sonic nebula
#

and there no tutorials or chat gpt that can help wiith iit lol

#

so what did you think you just write sharp=1 smith=2

#

and boom it works

#

nah those are the options

#

else its client side to display item as enchanted

#

u can try disable it via nms i dont think such option exists how ever

sonic nebula
dusky harness
#

you could prob just remove the enchants via packets

#

i feel like that'd be simpler than rewriting the whole damage system...

dusky harness
#

it'd still be some work since you have to remove it from all of the packets that contain items but

sonic nebula
dusky harness
sonic nebula
#

and modify it

#

what s protocolLib?

dusky harness
#

it's a library for sending/receiving packets

sonic nebula
#

why would u use library for it lol wtf

dusky harness
#

and you can look at PacketWrapper to see examples of all of the packets

dusky harness
sonic nebula
#

well u can depend on an library as dkm suggested

vagrant yoke
#

yeah I've been playing with the protocollib method but it's still a bit of a roundabout way

sonic nebula
#

I Would rewrite damage system and even customize the game

dusky harness
#

that risks changing other vanilla stuff

sonic nebula
#

like?

dusky harness
#

anything related to damage

sonic nebula
#

i have rewrote damage system

dusky harness
#

whereas protocollib literally lets you do it in a couple lines since it also has get/setItemModifier

#

rewriting vanilla stuff - especially for one thing like this is not good

sonic nebula
#

i rewrote it to work diff

dusky harness
#

because it creates lots of places to mess up

sonic nebula
#

mc vanilla pvp mechanism isnt perfect

#

also movement

#

ew

#

too simple

dusky harness
#

ye but he doesn't want to change that stuff

#

he wants to keep everything else

sonic nebula
#

ik i gived him both options

#

modify the server packet / rewrite

#

also not sure maybe there option to make enchant not disable

#

like the texture

#

but u have to preset an nbt compound

#

not sure 100% i just remember there was such a compound

dusky harness
#

wait

#

ItemFlag

#

how'd i forget about that

#

you were right TonyFalk

#

although it's built-in to the spigot api

#

ItemFlag.HIDE_ENCHANTS or smth

sonic nebula
#

oh yeah but u have to preset for everyitem

dusky harness
#

yeah true

sonic nebula
#

so on enchant modify t

#

to output item with flag

#

also on anvil

#

should be short and efficent

dusky harness
#

but at least if you're using packets it's even simpler

vagrant yoke
#

that only hides the lore doesnt hide the glint

dusky harness
#

Oh

sonic nebula
#

it hides

#

the enchant

dusky harness
#

what

#

uh

#

oh wait yeah

sonic nebula
#

it hides the glint

dusky harness
#

nvm then

dusky harness
#

im not sure about that

vagrant yoke
#

No it doesnt

sonic nebula
#

did u try?

vagrant yoke
#

in the past I've used it

dusky harness
#

@vagrant yoke do u know what packets u need yet
besides set slot packet

sonic nebula
#

he want it for both players..

#

packets only.

dusky harness
#

wdym

sonic nebula
#

he want so no one see them glint

dusky harness
#

yea

sonic nebula
#

i think bettter rewrite damage system

#

tton of packets

dusky harness
#

I mean

#

if you make a util method

sonic nebula
#

and always sendng packet like the item is default with lore of enchant

dusky harness
#

like modifyItem(ItemStack) it's very easy with the help of PacketWrapper

sonic nebula
#

headache.

vagrant yoke
dusky harness
#

the hardest part is figuring out what packets you need

vagrant yoke
#

I've not editedd packets before

sonic nebula
#

EDIT:
it will be better and easier to simulate the enchantments
#3cris1343, May 22, 2020 Last edited: May 25, 2020

#

HAHAHA

#

lol

#

anyway told u the best option in first place

#

gl

vagrant yoke
dusky harness
#

feel free to do that, but I would recommend packets, but maybe that's just because I have a bit more experience with it

vagrant yoke
#

yeah I'd do packets too

sonic nebula
#

would reccomend to rewrite damage system packets are too heavy task for server

leaden sinew
#

Lol

sonic nebula
#

imagine he have around 100 players near each other

#

server cpu goes nuts

leaden sinew
#

Those packets are getting sent anyways

dusky harness
#

ye I don't mean adding any new packets

sonic nebula
#

u can modify tthem before

#

if connecting to server network pipe

dusky harness
#

just modifying outgoing/clientbound packets

vagrant yoke
#

yeah thats what protocllib does

sonic nebula
#

but its client side

#

the enchant

#

anyway

#

gl

dusky harness
#

yeah you'd have to change the item to remove enchant but keep lore

#

by adding lore manually

sonic nebula
#

yeah sending packet of item

#

holy shit heavy task

dusky harness
#

theres much more heavier tasks going on in the server

#

this would probably take like <1ms

sonic nebula
#

sending packet for every item in invenory

#

everytime item drops

dusky harness
#

which are already sent

sonic nebula
#

modify them everytime

#

and check every packet goes out

dusky harness
#

maps/lists are pretty efficient

sonic nebula
#

^ good point

vagrant yoke
dusky harness
icy shadow
dusky harness
#

let the thread wake up

dusky harness
#

like set equipment maybe

vagrant yoke
#

how do I know what each of these do?

dusky harness
#

also plib calls it Server but wiki.vg calls it Clientbound

#

both meaning server -> client packets

glad grotto
#

is kotlin good for plugin developement?

icy shadow
#

yes

glad grotto
#

do many people use it

shy canopy
icy shadow
#

also yes

glad grotto
#

1 last question, would copying the paperweight test project and using it as a base project be an easy way to get nms

dark garnet
#

altho i feel like there's a more proper way

shy canopy
#

I found same solution but it feels sketchy ๐Ÿ˜„

dark garnet
dark garnet
#

is it a big nono to make my plugin's logger static? ๐Ÿ™ƒ

icy shadow
#

not necessarily

dark garnet
#

good cause its really annoying me having to supply my plugin class when i just want to log an error if there even is one ๐Ÿ˜ฉ

lyric gyro
icy shadow
dire flint
#

how to create multiverse core world with datapack?

forest jay
#

what is the equivelent of ChatColor.translateAlternateColorCodes for Fabric? I want to give a message formatting but I am not sure how to do so. Couldnt find anything in the docs.

forest jay
lyric gyro
# forest jay its possible, but very difficult

I've looked on google and spigot pages but I can't find anything about it, they just got replies saying its forge only but I need it for every player who joins the server, the server isn't forge its papermc

forest jay
#

use unicode image replacement stuff

#

it takes a ton of experiance though

#

there isnt any documentation on how to do it

#

you just have to know

#

there are some experienced people here like !SilentTail who could probably achieve the result you are looking for (for a hefty price).

dark garnet
#

anyone know of a library or just code that has the equivalent functionality as DurationFormatUtils#formatDuration(long, String, boolean)? if code, must be MIT
i'd just implement commons-lang, but i literally only need this one method, so i think it'd be silly to package the entire library (and i cant just use it's code cause its not MIT, i'd have to use their license)

dark garnet
forest jay
# dark garnet anyone know of a library or just code that has the equivalent functionality as `...

found this: ```java
public static String formatDuration(long duration, String format, boolean padWithZeros) {
StringBuilder formattedDuration = new StringBuilder();

    // Extracting the duration components
    long days = TimeUnit.MILLISECONDS.toDays(duration);
    duration -= TimeUnit.DAYS.toMillis(days);
    long hours = TimeUnit.MILLISECONDS.toHours(duration);
    duration -= TimeUnit.HOURS.toMillis(hours);
    long minutes = TimeUnit.MILLISECONDS.toMinutes(duration);
    duration -= TimeUnit.MINUTES.toMillis(minutes);
    long seconds = TimeUnit.MILLISECONDS.toSeconds(duration);
    duration -= TimeUnit.SECONDS.toMillis(seconds);
    long milliseconds = duration;

    // Formatting the components based on the format string
    boolean containsDays = format.contains("d");
    boolean containsHours = format.contains("H");
    boolean containsMinutes = format.contains("m");
    boolean containsSeconds = format.contains("s");
    boolean containsMilliseconds = format.contains("S");

    if (containsDays)
        formattedDuration.append(padWithZeros ? String.format("%02d", days) : days).append("d ");
    if (containsHours)
        formattedDuration.append(padWithZeros ? String.format("%02d", hours) : hours).append("h ");
    if (containsMinutes)
        formattedDuration.append(padWithZeros ? String.format("%02d", minutes) : minutes).append("m ");
    if (containsSeconds)
        formattedDuration.append(padWithZeros ? String.format("%02d", seconds) : seconds).append("s ");
    if (containsMilliseconds)
        formattedDuration.append(padWithZeros ? String.format("%03d", milliseconds) : milliseconds).append("ms");

    return formattedDuration.toString().trim();
}
#

Implemented like this: ```java
public static void main(String[] args) {
long duration = 1234567890L;
String format = "HH:mm:ss.SSS";
boolean padWithZeros = true;

    String formattedDuration = formatDuration(duration, format, padWithZeros);
    System.out.println(formattedDuration);  // Output: 10:17:36.790
}
dark garnet
# forest jay found this: ```java public static String formatDuration(long duration, Strin...

i like DurationFormatUtils's ability to have custom words in it, ex:

public static void main(String[] args) {
    long duration = 1234567890L;
    String format = "H 'hours' m 'minutes' s 'seconds' S 'milliseconds'";
    boolean padWithZeros = true;

    String formattedDuration = formatDuration(duration, format, padWithZeros);
    System.out.println(formattedDuration);  // Output: 10 hours 17 minutes 36 seconds 790 milliseconds
}
forest jay
#

ah

dark garnet
#

i might just end up packaging commons ๐Ÿ™ƒ

minor summit
#

for that matter just copy the formatter class?

dark garnet
minor summit
#

a) why would that be against the license?
b) how is distributing the whole library any different than distributing a portion of the library?

dark garnet
minor summit
#

does it say that tho?

dark garnet
#

yes

#

You must give any other recipients of the Work or Derivative Works a copy of this License; and

minor summit
#

that does not say your project has to use the same license

dark garnet
#

huhhhh

minor summit
#

in fact, if you keep reading, it says you can keep using any license you want in your project

#

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

dark garnet
#

i hate licenses

#

so it should just be fine to do?

#

if not, i dont think apache will care tbh (if they do ill just remove it rolf)

minor summit
#

whether it should be fine or not is up to you to decide

#

but, most likely yes

dark garnet
#

alr imma do it and if something goes wrong im blaming u and making u pay for the legal fees :D

minor summit
#

mm nah

#

i'm not doing that

#

not legal advice yada yada

dark garnet
#

:(((

stuck hearth
#

Do not pay your taxes
This is legal advice

drifting raven
#

Will folia support be added for DeluxeMenus?

sonic nebula
dark garnet
sonic nebula
#

๐Ÿ’€

#

~edit the msg was no sense...

cerulean birch
#

i noticed u can now change fonts on text in mc, does that require texture packs or are there extra default fonts built into vanilla?

serene cairn
#

(has multiple classes just so you know what each class does including the util ones)

I've been troubleshooting this and can't figure the issue. Whenever you RTP, in world "desert" or "sandbox" it does nothing but send you the "generating safe location" message. It just stops there. Whenever you try to do /rtp stop it says you aren't RTPing.

I need the root cause of the issue, I can implement the fix easily myself.

https://paste.helpch.at/upeyonazet.java

#

I feel like the issue is the RTPCommand class, however I can't tell.

river solstice
#

is the world loaded

serene cairn
#

it is on the server and it's loaded

#

desert, sandbox, world, world_the_end, world_nether

serene cairn
mossy shard
serene cairn
#

lemme check

hoary scarab
serene cairn
hoary scarab
#

isInAllowedWorld(), getRandomSafeLocationAsync()

serene cairn
#

ty

serene cairn
#

all that happens when I do /rtp is sends me a "Searching for a safe location" in chat and action bar (which is intended)

#

but nothing else

river solstice
#

maybe its not finding a location ๐Ÿฅด

#

try hard setting the return value of getRandomSafeLocation to like X0 Y100 Z0 and see if that does anything

serene cairn
#

could it be the callback?

#

Maybe I should try using bukkit task scheduler instead

river solstice
#

this should also be &&

#

because if it's desert, it's not sandbox => returns, and vise-versa
if it's anything, it's not desert and not sandbox => returns

serene cairn
#

alr

#

aha I know the issue

#

i've changed to the bukkit task scheduler

#

it's definitely something with my use of completable future

#

@river solstice

#

i've fixed it

#

lemme show u just in case anyone else encounters the issue

ocean jasper
#

where on earth is the doccumentation for actions types in deluxe menus?

river solstice
#

I have a multi-module project

Parent (root)
| - src
| build.gradle
| settings.gradle
| - Child
| - - src
| - build.gradle
| - settings.gradle

When I build the Child project with shadowJar, dependencies are shaded correctly (shaded from Child.build.gradle dependencies), but when I run shadowJar for the parent, it only compiles the sources in its src and no dependencies are shaded. Anyone knows why is that a case?

lyric gyro
dense drift
forest jay
neon bear
#

i wanted something similar but we're on our own with that sort of thing, there is no definitive instructions on how to do it

dense drift
#

I thought it has native support?

#

Or kyori has just made an implementation for it, like for bukkit?

minor summit
#

adventure-platform-fabric, yes

dense drift
#

ahh

sonic nebula
#

im back

sonic nebula
#

get world via integar pos / player world

#

since via string it not always works

sharp hemlock
neon bear
#

theres no way to cancel hand movement break block animation right?

sharp hemlock
#

uh if u give haste like 9999

#

for a second

#

then i think u can but

#

the client plays the animation before the server actually gets the packet i believe

neon bear
#

ahh hm

#

255 wont work?

sharp hemlock
#

no doesn't matter, the client still plays the animation before the server i believe

neon bear
#

oh ok

sharp hemlock
#

i might be wrong tho u can try

neon bear
#

i tried haste 255 and it still is visible

#

could one change it in resourcepack

sharp hemlock
#

instead of doing break u can do the BlockDamageEvent

#

so thats when they start to hit the block

#

not actually break it

tiny dew
#

I'm making a plugin which randomises block drops, but I want containers to still drop their original contents. However, I'm finding that if I do InventoryHolder.getContents() on an InventoryHolder from BlockDropItemEvent.getBlockState() then the slots with items show as a stack of 0 air and the empty slots show as a stack of 1 air (so I can see which slots had items, but not what those items are). How can I get the contents from a BlockDropItemEvent?

tiny dew
sharp hemlock
#

But like I said the client does it before the server. But maybe you can do something to then stop the animation

tiny dew
#

Yes, but the sooner you respond to it the less likely the client is to have already started the animation

glad grotto
#

how to get EntityZombie class in java plugin

#

i got nms

tight junco
#

what are you trying to do

proud pebble
#

if you already have nms working then just call new EntityZombie()

lyric gyro
#

in 1.8.9 how do i go about doing somthing like .help that will toggle somthing but wont send it in chat or server side(this is mod wise)

mellow pond
forest jay
#

It's supposed to be server side

#

Not exactly sure what happy hud is, will look into it

sonic nebula
#

Hecky way how ever

neon bear
#

i do not care how hacky it is i am DESPERATEEE

sonic nebula
#

U set player on ga on specific condition u get then u connect server pipeline and listen to the packets using them u know if player is trying to break the block so you can send him back an breaking block animation (block cracking for example) from here everything is very understandable and simple

#

Easy.

#

U get it?

#

100% will work

neon bear
#

this will change the block itself breaking but not the hand movement

sonic nebula
#

Player wonโ€™t be able to break blocks

#

U just listen to his packets so u know he is trying

#

But letโ€™s say it will require u sort of rewrite survival game mode from scratch lol

#

Implement all rules manually

#

If that animation is so important for u

neon bear
#

i do not mind having to rewrite survival, i am making a minigame

sonic nebula
#

So I told what u to do

neon bear
#

alright

leaden sinew
#

No matter what you need a mod for that

sonic nebula
#

No

leaden sinew
#

You can't just rewrite survival

#

That's clientside

sonic nebula
#

False

#

He uses ga u dummy what

leaden sinew
#

What?

sonic nebula
#

Read what I said and then say

#

Possible easily on vanilla

leaden sinew
#

I did

#

You said to edit packets right?

sonic nebula
#

No

sonic nebula
#

Adventure game mode

neon bear
#

what is ga

sonic nebula
#

U dumb fuck why u donโ€™t read what I said

neon bear
#

๐Ÿ˜ณ

sonic nebula
#

Is game mode adventure

#

Player canโ€™t break blocks

#

But still sends packets to server

leaden sinew
#

What

#

That makes no sense

#

How is the player supposed to mine at all then

sonic nebula
#

In adventure

leaden sinew
#

You can't break blocks in adventure

sonic nebula
#

Correct but u still send interact packets

leaden sinew
#

Ok?

#

How does that let the player break blocks

#

You can't hold down the button to mine

sonic nebula
#

He recreates the break

leaden sinew
#

That isn't possible

sonic nebula
#

He can on interact vector to get block player looking at

#

Itโ€™s possible

leaden sinew
#

And how will he know the player is holding down their mouse?

sonic nebula
#

Packet

#

Please learn the game and donโ€™t help if u canโ€™t

leaden sinew
#

Lol

#

No packet is sent for holding down the left click and not mining

neon bear
sonic nebula
leaden sinew
leaden sinew
sonic nebula
#

U just talk bullshit

#

Hit

#

He make blocks break insta anyway

#

If u didnโ€™t get it

leaden sinew
#

That doesn't make anything you said correct

sonic nebula
#

Ur low level so stop embracing ur self

#

All I said was correct

leaden sinew
#

If you have to insult someone to defend yourself, you're definitely not winning the argument

sonic nebula
#

I have made something similar

#

Breaking blocks

leaden sinew
#

Can you show it to me?

sonic nebula
#

Without any animation

leaden sinew
#

And you realize the animation is sent when punching even in adventure

sonic nebula
#

Yeah via gif when I open my laptop

#

Is not

leaden sinew
#

Is so

sonic nebula
#

Put ur self adventure

#

Wtf

leaden sinew
#

I'm literally on Hypixel right now

#

Punching in a lobby

leaden sinew
tight tide
sonic nebula
#

k back on my laptop give me like 20 miin to code i

#

it

dusky harness
#

it should automatically set you to it but if not then go to ~32s

sonic nebula
#

sec imma code what i said

leaden sinew
sonic nebula
#

second test

#

if my manipulation to client works

#

lets see

#

if it does eat light bulb.

leaden sinew
#

What do you mean by manipulation to client

#

Are you talking about editing the client that the player is using? Because that's a completely different argument

dusky harness
#

hey do your /daily everyone

#

๐Ÿ˜ƒ

leaden sinew
#

slash daily

#

It didn't work ๐Ÿ˜ 

dusky harness
sonic nebula
#

nah no player side effects

#

no 3rd mods for player

#

should be handled via server .

#

now ill test

#

took long to compile that server jar

leaden sinew
dusky harness
sonic nebula
#

ibb is free pcture hosting

dusky harness
#

40s build time tho ๐Ÿ’€

sonic nebula
#

i got i i7-10700

#

a good cpu

dusky harness
#

how long do cached builds take

#

i just opened up intellij, and on gradle it took me 20s for a clean build and then 455ms for the next

#

I know maven's a bit slower but I didn't think it was that much slower..

sonic nebula
#

its not the first one...

#

depends on project size

dusky harness
#

that's even worse then
40s for each build?

sonic nebula
#

yeah

dusky harness
#

I'm not trying to start a whole argument or anything but I'd consider looking into gradle sometime soon

sonic nebula
#

give me more 2 mini

#

dont work

#

;/

leaden sinew
leaden sinew
dusky harness
#

just giving a suggestion

#

since I had just learned that maven is slower than I thought

hoary scarab
#

Could always use buildpath ๐Ÿ˜‰

sonic nebula
#

Fisher wait

leaden sinew
sonic nebula
#

now it should work

#

100%

#

i dont argue if i dontt know

#

i know its possiible

leaden sinew
#

I look forward to seeing it

sonic nebula
#

waitt compiling again

#

going send gif now if works

#

k test time

#

works

#

lol yikes on u

#

dontt be afraid to join my links also IPv4 is nohing special

#

like ;l pretty sure u r still a child then that also considers him self senior level java dev

#

;o

hoary scarab
#

???

leaden sinew
#

And the code

dusky harness
sonic nebula
#

i also can disable other animation lool

#

but its a packet send to user when item updattes so itt plays animation

#

sec gyazo uploading

hoary scarab
sonic nebula
#

completely vanilla can join here

#

done

#

@leaden sinew

#

u see u was wrong

dusky harness
#

you all forgot the whole point of this

#

there was someone requesting help

sonic nebula
#

he already did it on how i told him

#

just that junky fisher come and said that im fool and its impossible

dusky harness
#

._.
you're not being much better right now
I guess this argument resulted in this being completed? but not in a nice way

hoary scarab
#

Can't see the embed

dusky harness
#

1 sec

#

ok

#

yay

sonic nebula
#

how u do that lol?

dusky harness
#

tier 2+ perks :))

sonic nebula
#

he thinks im gonna grab his IPv4 via gyazo link like ;/ thanks aloot dkim โค๏ธ

#

for giving a trust in me

#

i can make an block crack too but i mean to proof other thing fisher

hoary scarab
#

Nah I'm just to lazy to open it

sonic nebula
#

u dont have to open itt

dusky harness
#

i mean tbf gyazo would just gonna be getting discord's ip if i post it in chat

sonic nebula
#

took me in total 28min to code it

#

not little lol

dusky harness
dusky harness
#

discord runs it through cdn, no?

hoary scarab
#

I can't say here

sonic nebula
#

it uses my utility..

#

so code is pretty much garbage without the utlity

#

i do shortcuts using my utility to save all headache on boilterplate code that i have to rewrite everytime

dusky harness
#

I'd assume it's similar though
And I'm also assuming you're using packets, so if they have some ProtocolLib experience, they should be able to convert the code

#

if no experience then uh

#

๐Ÿฅฒ

leaden sinew
sonic nebula
#

it will work on anyway

#

dont continue arguing please.. i just wanted to proof u that its possible

#

yeah sometimes we are teached else

leaden sinew
#

Lol

#

Just show me it working with an empty hand and explain how it works, and I'll say you're right

#

You're the one who's been uncivil this whole time

sonic nebula
#

what the difference?

leaden sinew
#

Wdym what's the difference

sonic nebula
#

hand and an item

#

what difference

leaden sinew
#

One is with an item and one is without

sonic nebula
#

dkim is this guy is even serious?

#

u r troll now

leaden sinew
#

It will literally take 5 seconds to record and send it

sonic nebula
#

i think ur github page is full of other people resources wtf lol

leaden sinew
#

And explain how it works

leaden sinew
sonic nebula
#

nah im not gonna reopen game and server

#

thats not serious

leaden sinew
#

Okay explain to me how it works

sonic nebula
#

i explained many times

leaden sinew
#

No you didn't

sonic nebula
#

sorry not wasting time on u anymore

minor summit
dusky harness
#

idk what that is but I agree with Emily

leaden sinew
#

It can't take more than a minute to reopen the server

minor summit
sonic nebula
#

game updates always

#

its like 4 min to open mc

leaden sinew
#

Then explain how you did it in 1 minute

sonic nebula
#

what?

minor summit
dusky harness
sonic nebula
#

i assume you are an troll now on ill ignore u

dusky harness
leaden sinew
#

Sure because I'm asking for an explanation

sonic nebula
#

i gived u already

minor summit
sonic nebula
#

xy problem

#

u never read anything

#

complete idiot teacher would kick someone that rude after 10 min i explan you and you say nah impossble

#

cant re write ur brain

leaden sinew
#

Lol

sonic nebula
#

suddenly out of hype error

#

when i try to rewrite soemthinig there

leaden sinew
#

You're spending more time arguing than it would take to just explain it

sonic nebula
#

~out , learn to lose

#

ill send opensource towards the guy who needed it

#

but not for u

#

specially beecause u said im an idiot

leaden sinew
#

I never said that

sonic nebula
#

in different words

#

u said that

leaden sinew
#

You're the only one who has called anyone names

sonic nebula
#

u said what i said is impossible

#

it means im idiot

#

in different words

#

so

leaden sinew
#

Will you pretty please explain to me how it works?

#

You're a genius

leaden sinew
dusky harness
#

or can you still post the code, even without the utility stuff? (although that would be a bonus ๐Ÿ˜‰)
Could prob still figure a lot out from that

leaden sinew
#

Exactly

leaden sinew
#

https://i.imgur.com/ziBlTar.mp4
@sonic nebula I'm very interested in how you did it, I tried cancelling the animation packet (the only packet sent) and that didn't seem to work?
If you can explain to me how you did it I'll pay you $5 because I want to know, and you apparently aren't willing to just explain it.

dusky harness
#

this knowledge should be distributed out for free to all ๐Ÿ˜”

leaden sinew
#

I agree

#

The only logical conclusion that I can come up with for you not explaining is that you faked it and you're actually right clicking.
So you can get two things out of posting an explanation, you can prove me wrong and help everyone who wants to do this.

hoary scarab
leaden sinew
#

How to cancel a punch animation clientside for the player who punched

hoary scarab
leaden sinew
#

Wdym?

dusky harness
hoary scarab
#

Send the swing arm packet then send a use item packet

dusky harness
#

he wants to cancel the animation entirely

hoary scarab
#

Only thing I can think of is forcing the player to do a different animation, if that's possible
Yeah use item should cancel the swing

dusky harness
#

ah is that what u meant?

leaden sinew
dusky harness
#

although in his local test server he has 0ms ping

#

but with someone with higher ping it might look weird

#

I don't think there's any clean way of doing this

leaden sinew
#

Even with resource packs I doubt it

hoary scarab
leaden sinew
#

I'm trying right now

#

I just got kicked from the server lol

#

I don't even know the packet to send

hoary scarab
#

I'll look into it later

serene cairn
versed carbon
#

I'm trying to create an 'ability' so when the entity is attacked they produce particles in a set location. While this is happening, the entity would remove air bubbles (in land or water) for the players within 20 blocks and while this was happening it would damage the players half a heart. every 5 ticks. (2 hearts every second (5 Hearts total))

        int number = random.nextInt(100) + 1;
        if (number <= 5) {
            Location location = event.getEntity().getLocation();
            for (Entity entity : event.getEntity().getNearbyEntities(20, 20, 20)) {
                Player player = (Player) entity;
                player.sendMessage(ChatColor.GRAY + "Get out of the way! Your starting to drown!");
                if (entity instanceof Player) {
                    for (int i = 0; i < 10; i++) {
                        new DelayedTask(() -> {
                            location.getWorld().spawnParticle(Particle.WATER_BUBBLE, location, 1000, 20, 20, 20);
                            player.setRemainingAir(player.getRemainingAir() - 30);
                            player.damage(player.getHealth() - 1);
                            Bukkit.broadcastMessage(String.valueOf(player.getHealth()));
                        }, 5);
                    }
                }
            }
        }```
Am I using the remaining air wrong? I couldn't find much on it at all.
I'm 90% sure I'm using the player.damage() wrong as well. 
Anyone able to point me in the right direction?
nimble vale
proud pebble
#

so that code would technically set the player's health to half a heart

#

also i dont see that youve actually scheduled the task

versed carbon
versed carbon
proud pebble
#

also i dont see the point in creating the delayed task object when you can just use runTaskLater and lambda

versed carbon
#

Itโ€™s been working for everything Iโ€™ve used it on so far so I havenโ€™t branched out into different solutions yet ๐Ÿ™‚ Iโ€™ll look into them ways though

nimble vale
#

you may want to use for readability or reducing boilerplate

proud pebble
#

also whats the for loop for?

#

your scheduling 10 tasks that probably run on the exact same tick

#

or atleast thats how it looks

versed carbon
#

The particles are short lived and from googling I couldnโ€™t find a way of make them live longer. So I decided to just spam it a few times.

nimble vale
#

but you are spamming the whole code in there

versed carbon
#

Oh yeah ;-; I had it working when I was trying it out. I just wanted to get the โ€˜drowningโ€™ part done for now. I was going to rewrite it after getting that part down

proud pebble
#

if your trying to show the drowning bubbles in the hud i dont believe you can trigger them clientside without the player being in water

versed carbon
#

When using the set remaining air it does trigger them. It shows them at least but all it does is add bubbles for some reason

#

What the code was trying to do was repeat setremaining air (what airs left - 30 (which is 1 bubble)) 10 times

nimble vale
#

i believe it worths to check this

proud pebble
#

tbh id use runTaskTimer, and create a bukkit task object instead of lambda and store the current ticks and max ticks for it to occur then cancel it after it hits that

versed carbon
proud pebble
#

something like this

Bukkit.getScheduler().runTaskTimer(this, new BukkitRunnable() {
            int counter = 0;
            int maxTicks = 10;
            Player player = ...
            Location pLoc = player.getLocation();
            @Override
            public void run() {
                counter++;
                if (counter > maxTicks) cancel();
                pLoc.getWorld().spawnParticle(Particle.WATER_BUBBLE,pLoc,1,20,20,20);
                player.setRemainingAir(player.getRemainingAir()-30);
                player.damage(1);
                Bukkit.broadcast(Component.text(player.getHealth()));
            }
        },0,5);
#

tho im not sure why the runtasktimer using BukkitRunnable is deprecated, not entirely sure how to go about doing it with the consumer method

#

since im not sure if you can define variables outside of the loop

#

ohhh im a bit dense

minor summit
#

it's not deprecated tho

proud pebble
#

'runTaskTimer(org.bukkit.plugin.@org.jetbrains.annotations.NotNull Plugin, org.bukkit.scheduler.@org.jetbrains.annotations.NotNull BukkitRunnable, long, long)' is deprecated

minor summit
#

ah you mean inside runTaskTimer

#

because it is meant to be used by calling the methods directly in the bukkitrunnable rather than passing it to the scheduler; or if you're using the scheduler you'd use the consumer methods

proud pebble
#

yeah i just figured that out when i googled it

#

it would actually be

new BukkitRunnable() {
            int counter = 0;
            int maxTicks = 10;
            Player player = ...
            Location pLoc = player.getLocation();
            @Override
            public void run() {
                counter++;
                if (counter > maxTicks) cancel();
                pLoc.getWorld().spawnParticle(Particle.WATER_BUBBLE,pLoc,1,20,20,20);
                player.setRemainingAir(player.getRemainingAir()-30);
                player.damage(1);
                Bukkit.broadcast(Component.text(player.getHealth()));
            }
        }.runTaskTimer(this,0,5);
#

ofcourse when it comes to this runnable i dont expect to be completely right but id say im on the right track, getting the particles to stay awhile is a clientside problem rather then server side, also the offset for the particle doesnt really make much senmse

#

why would you want it 20 blocks away

sonic nebula
#

also

#

wtf is that terriable code u made

#

learn java

spiral prairie
#

What the heck Tony?

#

Why are you always such a bitch saying rude stuff and putting yourself above everybody?

frank ore
#

Sorry I realized it was the wrong chat

spiral prairie
#

Put in depends: PlaceholderAPI in your plugin.yml

leaden sinew
river solstice
#

Lmao blud learn java big L

sonic nebula
# spiral prairie Why are you always such a bitch saying rude stuff and putting yourself above eve...

did you see his code? ~edit: is code was like we took different codes and mixed them up into 1 piece its not about using poor performance or something it just look like gpt code i often encounter those gpt guys who ask for help with the bad code the gpt provoided them im not here to spoon feed people im very happy to help people and suggest them the best ways to solve their problems but nott when someone sends a non working code and he gives an explanattion of what code should be and was the cod does is not the same so. ~~edit2: tthat was legit XYProblem what do you expect me to oh man sec ill recode you the entire thing from scratch just paste it and later he will ask why it dont work when he dont int the class in main class ;/

sonic nebula
dusky harness
spiral prairie
#

Exactly

dusky harness
#

this is HelpChat, not MakeOthersFeelBadChat

leaden sinew
#

All they know how to do is insult people

spiral prairie
#

Must be a painful sad and lonely life tbh

#

Nobody was supposed to rewrite that

#

Just you weren't supposed to absolutely insult other people?

#

Do you have like a public repository I could look at to prove that you have the qualifications to even say that it's bad code?

leaden sinew
#

Heโ€™s ignoring my message again

neon bear
#

what have i done

spiral prairie
sonic nebula
leaden sinew
#

Why aren't you responding to me?

dusky harness
#

if that is true then I don't mind, but you didn't even ask him, you just assumed immediately, and so if he didn't use AI, it's not very nice

sonic nebula
#

now tell me its not an Al code

sonic nebula
dusky harness
sonic nebula
#

look i cant assume human wrote it ok? tbh

dusky harness
#

yes
if you wanna make an AI comment like that, ask first

sonic nebula
#

im always giving lightt for the people who take rightt path

#

its an Al they never admit those are xy problem guys

sonic nebula
#

manipulation also.

dusky harness
leaden sinew
#

What?

dusky harness
#

wat

dusky harness
sonic nebula
#

dkim we are here to help correct? you want to help the guy who tries to take shortcuts in life?

leaden sinew
sonic nebula
leaden sinew
#

Lol how am I taking shortcust in life

sonic nebula
#

not u

#

i speak about the guy who send the ugly code here and i was angry because its an al written or someone who never learn java

#

and asked for help

leaden sinew
#

An xy problem is asking for a solution that doesn't fit the actual problem

sonic nebula
#

sorry for the misundersttading Fisher u r greatt witth java... i ttatlk abou someone else

dusky harness
#

also ur t key is a bit uh

#

interesting

#

๐Ÿฅฒ

sonic nebula
#

its like listen hobo sits outside will you give him a fish everyday or once you will teach him to fish?

dusky harness
sonic nebula
#

he wont learn to fish he will lie he knows how the lazy guy

leaden sinew
#

Why don't you just explain how you cancelled the punch animation? Because I have never seen anyone able to do that, so if you actually figured it out that would be helpful for a lot of people

sonic nebula
#

there always first time

dusky harness
#

send the message link

leaden sinew
#

No you didn't

sonic nebula
#

what message

dusky harness
#

your answer on that

sonic nebula
#

that kid code?

dusky harness
#

i already gived u an answer on that ...
send the message link where you gave the answer

#

on the explanation on how you cancelled the punch animation

sonic nebula
#

its some where up it was because he called me an idiot not directly ii just told guy how to cancel it , and he saidimpossble and i had to waste 40 min coding it to proof

dusky harness
#

send the message link though, because we cannot find it

sonic nebula
#

i remember i explained in few words what he had to do

#

i dont remember it was 12 hours ago

#

or more

leaden sinew
#

If it's only a few words, explain it again or send your code

sonic nebula
#

my code uses my utility

leaden sinew
#

Then send the code without the utility

#

I'm sure we will be able to figure it out

#

just send it in a paste

dusky harness
sonic nebula
dusky harness
#

IntelliJ has a Local History feature where it saves the file changes including deletions

sonic nebula
#

i dont have extra memory to waste

dusky harness
#

unless you deleted your whole utility project...?

sonic nebula
#

there no file because i deleted the self project from the computer its not deletion via the software

#

nah the project

dusky harness
#

still

#

you can recover it

sonic nebula
#

utility is sperate

dusky harness
#

it detects it as External Change or smth

sonic nebula
#

why should i waste my time on it

dusky harness
sonic nebula
#

i always delete useless things

#

nah man i just wont send anything here because the guy called me monkey

dusky harness
#

I gave you the benefit of the doubt before but now you're just sounding like a troll

sonic nebula
#

also i deleted it already..

leaden sinew
#

Ok link a message where I called you any name

dusky harness
#

won't even give an explanation, something like that is hard to completely forget

leaden sinew
#

At this point it's obvious you just faked your video because you couldn't figure it out

dusky harness
#

I'm starting to agree with Fisher now

#

I was hoping it was false tho

worn jasper
#

why is it that whenever I see Tony say something, it's always related to hate

#

lmao

sonic nebula
#

you was wrong

#

now deal with it

#

i did all of it to just proof thatt u was wrong

leaden sinew
#

You didn't prove anything

sonic nebula
#

i dont have any point to go backwards

#

i did

#

and i prooved

leaden sinew
#

No you didn't

sonic nebula
#

u can keep asking for code because u r not able to achieve it

#

u even dont know the names of packets probably

dusky harness
leaden sinew
#

All you did was print a message saying that you left clicked, but without code and/or an explanation, you didn't prove anything

sonic nebula
#

its just a debug

sonic nebula
#

he dont know

#

he legit asked the guy who wanted to help him on how to do it

#

lmao

dusky harness
#

other ppl know

#

if you post it publicly

leaden sinew
#

Yep I know nothing about packets

dusky harness
#

then you share knowledge to the public

sonic nebula
#

nah its uselss stuff

leaden sinew
#

It's only useless if you faked it

sonic nebula
#

i dont know why someone would want to make the animation to not work

leaden sinew
#

Really

sonic nebula
#

faked how lmao i legit send u an video

dusky harness
#

you could've faked it by right clicking

leaden sinew
#

Because yesterday you were saying how you had made it before and used it

dusky harness
#

...

#

hi adam

leaden sinew
leaden plume
#

@sonic nebula I am going to have to ask you to stop

sonic nebula
#

i made somehing simillar

#

that disable item update animation

#

k gonna leave ~out

leaden plume
#

๐Ÿ‘

worn jasper
#

anyways back to the topic

worn jasper
#

Anyone knows about this "Fairy" library?

#

never used it but looks quite interesting, unsure if I should use it though.

dusky harness
#

ยฏ_(ใƒ„)_/ยฏ

#

so far doesn't seem to have a whole bunch

#

wait

#

what is this for

#

is this a bukkit framework?

#

ah

#

it mainly built for minecraft server plugins in mind.
I skippsed over this part

worn jasper
#

yeah xD

#

Well, overall it is nice to have a centralized framework instead of using like ACF, Configurate, then some sql or mongo library, then triumph-guis, and whatever

#

PS: would use triumph-cmds if it wasn't in alpha.

dense drift
dark garnet
#

how can i make mobs "follow" a player? not target, but follow

#

i want them to kinda trail behind the player, sorta like a pet (wolf/cat/etc...)

minor summit
#
  1. spawn a wolf server-side and make the player its owner
  2. hijack the spawn packet and replace entity type with desired mob
  3. ???
  4. profit
sonic nebula
minor summit
#

it is not wrong lol

#

wolfs can't fly

sonic nebula
#

yeah how is pet blaze wll follow him on ground?

#

he asked how to make mobs

minor summit
#

it depends on the mob

#

you can create custom goals with the api anyway

#

could do that

sonic nebula
#

also

dark garnet
sonic nebula
#

custom path finder and goals.

dark garnet
sonic nebula
#

what i just told u what to do

#

there no other way

minor summit
#

there are other ways

sonic nebula
#

spawning projectile in air

#

common wtf is this

#

also charge animation on those mobs fingerguns

#

๐Ÿ’€

dark garnet
#

i seriously cant tell if ur a troll or not

leaden sinew
#

They are

minor summit
#

goals api will probably suffice, just, gotta write your own

leaden sinew
#

Paper has a pretty nice path finder API

dark garnet
#

i hate paper api, it makes me use audience thing and adventure

#

maybe an api/library already exists for it ๐Ÿ™ƒ i hope so

leaden sinew
#

Why would you hate adventure lol

dark garnet
#

i just wanna be able to go ChatColor.translateAlternateColorCodes('&', &a&lbold green)

icy shadow
#

boy have i got just the thing for you

minor summit
#

i mean you can still do that

#

lol

icy shadow
#

a little thing called LegacyComponentSerializer

dark garnet
minor summit
#

but also &x&f&f&0&0&0&0i &x&f&f&3&3&0&0l&x&f&f&6&6&0&0o&x&f&f&9&9&0&0v&x&f&f&c&c&0&0e &x&f&f&f&f&0&0r&x&9&9&f&f&0&0a&x&3&3&f&f&0&0i&x&0&0&c&c&3&3n&x&0&0&6&6&9&9b&x&0&0&0&0&f&fo&x&1&e&0&0&c&dw &x&3&c&0&0&9&bt&x&5&a&0&0&9&2e&x&7&7&0&0&b&3x&x&9&4&0&0&d&3t

icy shadow
#

equally annoying as having to call translateAlternateColorCodes every 2 lines

#

but also ^^

lyric gyro
#

me when I &x&f&f&0&0&0&0i &x&f&f&3&3&0&0l&x&f&f&6&6&0&0o&x&f&f&9&9&0&0v&x&f&f&c&c&0&0e &x&f&f&f&f&0&0r&x&9&9&f&f&0&0a&x&3&3&f&f&0&0i&x&0&0&c&c&3&3n&x&0&0&6&6&9&9b&x&0&0&0&0&f&fo&x&1&e&0&0&c&dw &x&3&c&0&0&9&bt&x&5&a&0&0&9&2e&x&7&7&0&0&b&3x&x&9&4&0&0&d&3t

dark garnet