#help-development

1 messages ยท Page 303 of 1

midnight shore
#

it probably talks to mojang session servers directly i guess

pseudo hazel
#

yes

midnight shore
#

if it knew the session ids what would be there to block players to make servers to steal accounts?

sterile breach
#

hi, if a plugin is not open source, i can't uncompile, but can i change jar to zip and edit plugin.yml?

quaint mantle
pseudo hazel
#

idk, try it

midnight shore
sterile breach
midnight shore
quaint mantle
sterile breach
pseudo hazel
#

no like a permanent place

midnight shore
pseudo hazel
#

it may be the files in .minecraft/profilekeys

quaint mantle
pseudo hazel
#

oh

#

for me there is a single json in it xD

midnight shore
#

its probably cleared when you close minecraft

pseudo hazel
#

doubtful

#

I just turned on my pc

midnight shore
#

@chrome beacon sorry for the ping, is there a way of using an artifact in another project without uploading it to anywhere? I'm trying to use a plugin named ModelMaker i created which creates models (without texturepacks) and i want to create a new plugin which uses the model one to make pets out of models.

#

or anyone else also actually

#

anyone who could help

pseudo hazel
#

you can probably just add a local dependency

midnight shore
pseudo hazel
pseudo hazel
#

and the first answer adds a dependency from systemPath

chrome beacon
#

That will add it to your local maven repo

chrome beacon
pseudo hazel
#

okay

midnight shore
#

also note that i want to upload this to spigot so that you could use them in combo

#

so that has to work on other computers as well

chrome beacon
#

Spigot doesn't care about your maven setup

midnight shore
#

well but if i use a path that only works on my pc ๐Ÿ˜„

chrome beacon
#

Yes, but you wouldn't upload the source to spigot

#

You'd upload the jar which would work fine

pseudo hazel
#

yeah wouldnt the plugin just compile into a file

#

like the jar file

midnight shore
#

Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project ModelMaker: The packaging for this project did not assign a file to the build artifact

midnight shore
rigid loom
pseudo hazel
#

idk

#

players dont have your rank enum property

#

so you need some kind of map to store what player has what rank

midnight shore
#

How can i add WASD control to an entity that has a passenger matching the passenger movement?

soft viper
#

How can i add comments to config?

chrome beacon
#

What version are you making your plugin for? And are you planning on resaving your config?

quaint mantle
#

are they stored in local files?

chrome beacon
#

Then just add the comments to the config that's stored in the jar

soft viper
#

Didnt understand

#

Some commands to add it?

chrome beacon
#

commands???

#

It's a text file

undone spindle
#

okey so i have this piece of code here

public class FishingRegion implements ConfigurationSerializable {

    private List<FishingItem> items = new ArrayList<>();

    private FishingStage stage;

    public FishingRegion(List<FishingItem> _items, boolean _stage) {
        if(_items != null){
            items = _items;
            stage = FishingStage.ON;
        }else{
            stage = FishingStage.OFF;
        }
    }

    public  FishingRegion(){
        stage = FishingStage.OFF;
        items.add(new FishingItem(new ItemStack(Material.STONE, 1)));
    }

    public FishingRegion(ConfigurationSection _section){
        stage = FishingStage.valueOf(_section.getString("stage"));

        System.out.println(_section.get("items"));

    }

    @Override
    public Map<String, Object> serialize() {
        Map<String, Object> map = new LinkedHashMap<>();
        List<Map<String,Object>> newItems = new ArrayList<>();
        for (FishingItem fi : items) {
            newItems.add(fi.serialize());
            System.out.println(newItems.get(0));
        }
        map.put("items", newItems);
        map.put("stage", stage.toString());
        return map;
    }

i trying to serialize everything containing it

#
public class FishingItem implements ConfigurationSerializable {

    private ItemStack item;
    private List<FishingEnchantCombination> enchantCombinations = new ArrayList<>();

    private float minXp = 0;
    private float maxXp = 0;

    private float dropchance = 0;
    private float procentDropChance = 0;
    @Override
    public Map<String, Object> serialize() {
        Map<String, Object> map = new LinkedHashMap<>();
        map.put("Item", item.serialize());
        map.put("minXp", minXp);
        map.put("maxXp", maxXp);
        map.put("dropChance", dropchance);
        map.put("procentDropChance", procentDropChance);

        List<Map<String, Object>> enchantcombis = new ArrayList<>();
        for(FishingEnchantCombination combi : enchantCombinations){
            enchantcombis.add(combi.serialize());
        }
        map.put("enchantCombinations", enchantcombis);
        return null;
    }


    public FishingItem(ItemStack item){
        System.out.println(item.toString());
        this.item = item;
    }

this is the item
Okay so for context in the console the null is the whole class after it has ben serialized into a list of map<String, Object>

#

but when i initialize it it is something but when i serialize it it will show this(the next screenshot i sent lol)

soft viper
chrome beacon
#

?configs

undone axleBOT
undone spindle
soft viper
chrome beacon
undone spindle
#

omg

#

im blind today

chrome beacon
#

eh it happens

undone spindle
#

thx tho!

undone spindle
# chrome beacon eh it happens

if i may ask why do you have nitro but you have not customized your profile yet nitro has some amazing features right?

chrome beacon
worldly ingot
#

That's their customization of choice haha

undone spindle
#

XD

soft viper
#

Sorry, should i create my config.yml near plugin.yml, in resources folder?

worldly ingot
#

Yes. Same folder

soft viper
#

thanks

undone spindle
chrome beacon
#

Yes

worldly ingot
#

Any non-compilable file you want exported with your project should be under resources, yes

undone spindle
#

is that a maven thingy?

chrome beacon
#

Yes

undone spindle
#

or gradle

worldly ingot
#

Both

undone spindle
#

i did not know that i thought it was just to make it better readable XD

worldly ingot
#

It's a good habit to get into regardless

#

Separation of source code and resources

fervent gale
#

Probably a super dumb question how would I check a players inventory and count how many of a specific item they have

#

return to an int

chrome beacon
#

Loop the items and count?

fervent gale
#

wah

remote swallow
#

?learnjava

undone axleBOT
fervent gale
#

?learnkotlin

#

ahaha

remote swallow
#

screw kotlin

quaint mantle
#

Kotlins decent

remote swallow
#

it looks weird

#

i did see that

#

lucky enough i couldnt give a shit

fervent gale
#

lol

quaint mantle
#

Saw what

hybrid spoke
quaint mantle
remote swallow
quaint mantle
#

Ah lol

#

His bio says kotlin developer but he doesnt know what a for loop is

tender shard
hybrid spoke
#

corrupted gradle

tender shard
#

and how do I fix that? ๐Ÿ˜„

hybrid spoke
#

you could try to delete the caches

remote swallow
#

god i hate that format

tender shard
remote swallow
#
build { 
    dependsOn shadowJar
}
buoyant viper
remote swallow
#

you on dinwos

buoyant viper
remote swallow
#

windows

#

i can spell

#

my brain works

hybrid spoke
tender shard
chrome beacon
#

?learngroovy

remote swallow
#

find the equivalent of that

buoyant viper
#

rm -rf ~/.gradle/ AbsoluteHalal

remote swallow
#

dont delete the gradle folder

#

smh

tender shard
#

the fix was to update the shadowJar plugin, thanks anyway

hushed spindle
#

is it a bug that, as far as i know, all item metas are instanceof Damageable

#

seems inappropriate

#

like i justed tested this on lapis lazuli and its damageable

buoyant viper
#

probably something to do with metadata

#

idk

maiden thicket
#

all damageables are itemmetas not the other way around

hushed spindle
#

no

#

check if the item meta of a piece of lapis is damageable and it will be true

maiden thicket
#

the javadoc is lying to me then

chrome beacon
#

Probably has to do with legacy support

maiden thicket
#

oh

#

ic

hushed spindle
#

oh its probably that

#

yea makes sense

chrome beacon
#

Try with another item

maiden thicket
#

try with a block item

hushed spindle
#

was lapis known as dye a while ago or did it have its own id

chrome beacon
#

Yeah I looked it up

#

It was a dye before

#

Which is why it's damagable

tender shard
#

is there a gradle equivalent to the maven exec plugin where can I just throw in a shell script that runs AFTER my build completed?

chrome beacon
#

Looks like you don't need a plugin

austere cove
#

CraftMetaItem implements Damagable

#

so every meta is damagable

tender shard
austere cove
#

this is intended btw

tardy delta
#

Damagable is a meme

austere cove
#

that's why #hasDamage() exists

tender shard
#

i basically just wana start atestserver after building

chrome beacon
#

oh there's a runServer plugin for that

remote swallow
#

i just foundt hat

tender shard
#

so no clue what to build in. the build file D:

chrome beacon
#

^ Only runs Paper

remote swallow
#

was just about to send that

dry yacht
# austere cove that's why #hasDamage() exists

Would be pretty hard doing it any other way, because there would have to be a specific meta implementation for each material otherwise. I think the API for that is actually quite good.

remote swallow
#

jpenilla has made a load of gradle plguins

#

i think its special source

#

but no paper

#

for gradle

pseudo hazel
remote swallow
remote swallow
pseudo hazel
#

oh oof

tender shard
hybrid spoke
#

lets groove pepegroove

tender shard
#

I just wana execute a shell script D:

remote swallow
#

this or something

tender shard
remote swallow
#

task.runs/runAfter build

tender shard
#

oki thx I'll try

remote swallow
#

one sec

chrome beacon
remote swallow
#

myPrebuildTask.shouldRunAfter build

#

if you have a build section

#

which i hope you do

tardy delta
#

gradle ๐Ÿ’€

remote swallow
#

shat ap

tender shard
chrome beacon
#

Waterfall is a fork

#

It runs Bungeecord plugins

tender shard
#

yeah, it's not bungeecord

#

paper often adds their own bugs

#

I wanna test it on spigot/bungeecord. e.g. in paper 323 there was a bug sending messages to players, on spigot it worked fine

#

D:

remote swallow
#

you have runShellScript which would be the task name in the exec stuff

#

task runShellScript(type: Exec)

tender shard
#

oh yeah

#

thx

pseudo hazel
#

and it still doesnt load my plugin even if I restart the debugger

soft viper
#

can i disable playerData saving with plugin?

rotund ravine
#

@soft viper Why?

soft viper
#

I need the world dir not to change

tender shard
remote swallow
#

no idea

rotund ravine
remote swallow
#

idk

rotund ravine
remote swallow
#

he dont use kotlin

tender shard
rotund ravine
#

Wait no

#

Looks kinda like it tho

tender shard
remote swallow
#

that is infact not kotlin

soft viper
rotund ravine
soft viper
#

Sounds nice

remote swallow
# tender shard

if you need to pass args that arent changing just i think add it as a new thingin quotes

#

like commandLine 'bash', 'run.sh', 'args args args'

#

maybe

tender shard
#

I dont wanna pass any args, I want to attach bash's stdin to gradle's stdin

remote swallow
#

oh that

#

i would just use a debug task

#

it probably easier

tender shard
tender shard
rotund ravine
#

I got silicone lube all over ffs

remote swallow
#

errrrrrr yeah

#

give me a minute

remote swallow
#

just opening the old project i had iton

#

so confused

#

its gone

tender shard
#

that's about the output and I dont really get it. how can a string be an outputstream

remote swallow
#

magic

tender shard
#

also where does "ext" come from o0

remote swallow
quaint mantle
#

so, I have a 1.8 server and I want to adapt it to let 1.5.2 players join. But, I don't want to use protocolLib because I basically want a different UI for 1.5.2

#

I'm trying to figure out how to intercept outgoing packets and then getting a player's connection and sending a different packet entirely, anyone know how to do this?

#

I heard on the bukkit forums that I could proxy the packets but I'm sorta dumb so

river oracle
#

What's with the influx of weirdos tryna support 1.5.2 lately

remote swallow
#

eagerlcraft or something probably

river oracle
#

Oh what is that some free thing?

remote swallow
#

mc in browser

river oracle
#

Lol

#

Ofc

tender shard
#

I found out that this doesnt work:

#

but this does work

#

however intelliJ wants to change it back to tasks.register() which throws the above errors...

remote swallow
#

i fuckin hate cmi and them changing how commands work

tender shard
remote swallow
#

i just wanted to tp to a location and i had to /minecraft:tp x y z

tender shard
#

lol

remote swallow
#

i removing a chunk of the world, do you think removing a million blocks will crash the server

tender shard
#

a million should be fine

remote swallow
#

it was instant

#

what how

tender shard
#

dedicated ryzen 9 ๐Ÿ˜›

onyx fjord
#

proprietary essentials

glossy venture
#

looks pretty sick

remote swallow
#

it is not

#

it is bull shit

#

they have an api but dont host it

#

the docs are on another staff members github

glossy venture
#

bruh

remote swallow
#

it took 13 months for alex to get a response on an issue

#

the discord is shit

#

the staff are dumb

#

they change so much shit that just makes it not a replacement for essx

ivory sleet
#

This is not the channel to shit talk a plugin.

pseudo hazel
#

iirc there is no channel for that

onyx fjord
#

#general

ivory sleet
#

?kick @sonic goblet trolling

undone axleBOT
#

Done. That felt good.

acoustic widget
#

Hi, how can i get NMS name class of remmaped class ? Like Mob class How can I get the non-remmaped name ?

river oracle
#

Screaming sandals

#

Forget the link I can give it out once I get on my pc but that's the website name

echo basalt
#

?nms

echo basalt
#

not that onw

#

?mappings

#

we should have a bot just let us ?nms 1.19 EntityPlayer

acoustic widget
#

?nms 1.19 EntityCreature

acoustic widget
#

thank you guys

lethal knoll
#

Hey everyone, quick question, is my statement correct if I say that using
if(Bukkit.getPluginManager().getPlugin("MythicMobs") != null){ is no longer safe? Or never might have been at all.

#

so basically getPlugin != null will eveluate to true even if the plugin gets disabled for wathever reason

remote swallow
#

if its null the plugin isnt enable or doesnt exist

lethal knoll
#

Well I found the alternative
Bukkit.getPluginManager().isPluginEnabled("SomePlugin")

#

Which made me thinking, and it seems at least for now, that != null doesn't work if the plugin gets disabled

#

Someone reported an error and it seemed that MM was crashing and my plugin was trying to use it's API

tardy delta
#

JavaPlugin#isEnabled

lethal knoll
#

Yes, so it is indeed correct that null check is not correct

#

great, thanks

wet breach
#

a plugin isn't null just because it is disabled, which is why the isPluginEnabled() method exists

#

you should use both checks

#

first one to see if it even exists, second to check if it does exist is it enabled

tardy delta
wet breach
#

anyways, there is your answer ๐Ÿ™‚

lethal knoll
#

so PluginEnabled works, great thanks ๐Ÿ™‚

acoustic widget
#

Can you explain me how Screaming sandals works ?
For exemple, i'm looking an old video, and the man extends EntityCreature from 1.16_R2
So i'm looking on Screaming sandals and go in 1.16, but I don't see any NMS entityCreature class

remote swallow
#

does he just mojang mappings or spigot mappings

acoustic widget
#

he's not using mapping, that why i wanted to see what is NMS EntityCreature in mojang remmap

remote swallow
acoustic widget
#

Maybe i'm missing something ??

#

a screenshot from his video

remote swallow
#

send the video

acoustic widget
#

can i here ?

remote swallow
#

yeah

acoustic widget
#

6:30

remote swallow
#

looks like he probably isnt using the correct stuff

undone axleBOT
acoustic widget
#

Its for me ?

torn badge
#

I'm having a problem that when I call setItem() in BlockDispenseEvent and add meta to the item, the item isn't removed from the Dispenser inventory anymore

acoustic widget
#

I know that but I should see this class on screaming scandal no ?

torn badge
trim lake
#

Why Im getting false?
player.sendMessage("is conf?: " + RoleEngine.chars.getConfig().isConfigurationSection("chars. 0-688df4f5-1dd4-3554-bf78-7b490244c6f3.inventory") );

chars:
  last-id: 3
  0-688df4f5-1dd4-3554-bf78-7b490244c6f3:
    name: Marek
    secondName: Novรกk
    bDay: 02-08-1998
    gender: male
    health: 20.0
    foodLevel: 20
    location:
      ==: org.bukkit.Location
      world: world
      x: -31.36650962958529
      y: 63.0
      z: -99.15901686825798
      pitch: 43.949226
      yaw: -84.2796
    inventory:
      4:
        ==: org.bukkit.inventory.ItemStack
        v: 3120
        type: OAK_PLANKS
        amount: 64
remote swallow
#

probably the space

trim lake
#

what space? ๐Ÿ˜„ Im not sure what do you mean

remote swallow
trim lake
#

ou, there is no space. there is variable in my code

#

I just put the string there to make the code more understandable

tender shard
#

anyone know why intellij complains about missing try-with-resources alhough it clearly is inside try-with-resources?

trim lake
# trim lake Why Im getting false? ``player.sendMessage("is conf?: " + RoleEngine.chars.getCo...

mby bcs Im saving hashMap to yml? ๐Ÿค”

public static void saveInventory(Player player) {
        HashMap <Integer, ItemStack> inventory = new HashMap <Integer, ItemStack>();
        for (int i = 0; i < 36; i++) {
            ItemStack item = player.getInventory().getItem(i);
            if (item == null) continue;
            inventory.put(i, item);
        }
        RoleEngine.chars.getConfig().set("chars." + activeChar.get(player) + ".inventory", inventory);
    }
quaint mantle
#

i just feel like pushing an old ass version of mc to its limits by basically changing bukkit in its core

#

i had to screw around with nms so much more than i usually do cuz half the things people take for granted in modern spigot just doesnt exust in such an old version

obsidian drift
obsidian drift
#

You donโ€™t have an opening curly brace on the end

tender shard
#

yes

#

that's the point

#

still it complains about not using try-with-resources

drowsy helm
#

maybe it wants datasource as another variable

austere cove
#

cos you can close that

#

and you didn't put that in the try with resources

quaint mantle
#

If Iโ€™m developing a plug-in does anyone have tips for testing performance

tender shard
#

hm weird, because it doesnt complain about the data source where I declared it

buoyant viper
# tender shard

cos technically the try-with-resources is for the getConnection i think

#
try (var dataSource = plugin.getDataSource();
     var connection = dataSource.getConnection();
     var statement = connection.createStatement()) {
}``` :v
#

OH I FINALLY GET TO SEE THE NEW CODE BLOCK COLORS

remote swallow
#

ye

wet breach
#

that would be the only other thing other then the datasource

rigid loom
#

is there a way to store permissions to a hashmap?

remote swallow
#

Map<String, String> first is the identifier, 2nd is the permissison

wet breach
#

are you wanting to store permissions that is used for your plugin

rigid loom
#

ye

wet breach
#

you don't need a hashmap for this

#

I will show you a better way

wet breach
#

even handles dynamic permissions that you don't know before hand ๐Ÿ™‚

rigid loom
#

how does the hierarchy thing work? @wet breach

wet breach
#

Allows you to loop through the enums as can be seen in one of the methods named hasPerm

river oracle
#

Anyone know of any Hologram APIs that already exist that support latest version?

remote swallow
#

api? decentholograms as a plugin is decent havent checked their api thouh

worldly ingot
#

They also implement the HolographicDisplays API iirc, which is neat

warm mica
#

Don't put the statements into a closing block, just doing it for your connections is enough. Closing that one also closes all statements that it has created

eternal oxide
#

I prefer try with resources on connection and PreparedStatement

quaint mantle
#

Why is Player#hidePlayer deprectated

jagged monolith
#

It's because the normal hide(player) is deprecated. You need to use the hidePlayer(Plugin, Player) now.

buoyant viper
#

it gets compiled into something like

Closeable yourCloseable = null;
try {
  yourCloseable = getYourCloseableIdk();
} finally {
  if (yourCloseable != null) {
    yourCloseable.close();
  }
}
worldly ingot
river oracle
#

What's Hikari

worldly ingot
#

A connection pool library

#

A must-have for frequent connections to SQL

river oracle
#

What's wrong with maintaining one connection

#

I suppose it clogs up nvm

#

Would it be worth it for something like sqlite or should you only use it with MySQL since it's not local

remote swallow
#

i used it with sqlite but frostalf says that its not needed because sqlite doesnt have connection poool

river oracle
#

A server I did a plugin for is having data loss with my plugin using sqlite and I'm stumped tbh. I need to ask here tomorrow

#

Could be my cache maybe. But I doubt it

remote swallow
#

let me guess, they arent stopping the server they just kill the proccess

river oracle
#

I can't replicate it locally

remote swallow
#

where you storing the db

#

is it just in the folder

river oracle
#

Just the plugins data folder

remote swallow
#

thats so weird

#

i used sqlite before and never had issues with it like that

river oracle
#

I mean I combed the code over and nothing makes sense all my queries are perfect

remote swallow
#

"uh yeah i decompiled it to change something and i found on google i had to add DROP to the statements"

river oracle
#

I don't see why else it'd fail

remote swallow
#

probably

river oracle
#

I save under every circumstance

remote swallow
#

deffo there host

river oracle
#

Its PebbleHost so never know

remote swallow
#

fuck pebble host

#

bloom better

river oracle
#

Epic you think you could double check with me tomorrow lol I'll send some stuff

#

I'm in bed so can't tonight

remote swallow
#

i rarely do sql but ill try

river oracle
#

The queries are fine it's a data leak somewhere

remote swallow
#

you use hikari for it?

river oracle
#

No

#

I use jdbc driver

remote swallow
#

ah, ive got no clue about that part

#

i just use hikari lol

#

makes it easier

river oracle
#

Whats the difference even

remote swallow
#

hikari wraps it probably

river oracle
#

I still use statements and such

#

That's just base java sql

remote swallow
#

yeah

#

one sec

#

?bootstrap

undone axleBOT
#

Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.

Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163

remote swallow
#

mk

#

just needed to check that path

worldly ingot
#

Having multiple connections at once means you can make multiple queries or execute multiple statements in different parts of your code without having to wait for a connection to be available

#

Same reason you'd use a thread pool, but for a database. Imagine if every time you ran a task through the BukkitScheduler you would have to wait for like 5 other tasks to complete first?

remote swallow
#

did item enchantments used to get stored on the item not the meta? im just looking at the itemstack deserialize method and its got a containsKey check for enchantments

worldly ingot
#

No they're just there for convenience

remote swallow
#

so how come that it checks for enchantments on the actual item

worldly ingot
#

Use ItemMeta where possible though because those methods call getItemMeta() every time which makes a clone

remote swallow
#

yeah, im just checking how this worked again and spotted it and thought it looked off

worldly ingot
#

Oh I'm lying. It operates on meta directly

remote swallow
#

but the config would get outputted as

worldly ingot
#

Enchants are just part of base item meta is all

remote swallow
#

ah

worldly ingot
#

All items can be enchanted

remote swallow
#

is amount part of meta or is amount part of item

river oracle
#

It's gotta be part of item otherwise the name ItemStack wouldn't make sense and I'd lose my shit

remote swallow
#

i just looked at the class

#

if it wasnt how else would there be a get amount method

warm dagger
#

Hello So i created a plugin for paper like the so will it work with spigot

#

like the maven import is of paper

remote swallow
#

probably not

#

if you use any method which uses a component it wont work on spigot

warm dagger
#

spigot components are only in use

remote swallow
#

do you use a setMethod or just method

robust zenith
#

hey there, I am trying to hook placeholderapi but i have couple errors in my pom.xml
I want to say also this is the first time I do it, some help gently?

remote swallow
#

did you reload maven after adding it

warm dagger
robust zenith
#

The problem is adding it

remote swallow
remote swallow
robust zenith
#

No, i think i just did it well, I inserted the file also in the Project Structure (intellij) and it was like you were saying... so I reloaded maven and everything is ok now, It was red before

remote swallow
#

dont do that

robust zenith
#

So now basically is possible to use every other placeholder in other plugins also?

remote swallow
#

that would only work if you use the intellij build system

remote swallow
robust zenith
#

Ok so I have to delete the jar i added? I already pasted repository and depency

remote swallow
#

yeah

#

?paste your pom if you get any errors

undone axleBOT
robust zenith
#

Ok bro, thank you so much this community is Epic, let you know about it

#

Love spigot help-development section guys thank you everybody

#

So now my question is (i had to create this plugin to check if a placeholder is bigger than another so do this///////)
I suppose i want to do a command it does the check, I can do something like
if (%otherpluginfirstplaceholder < %otherpluginsecondplaceholder) {
ta daaaaaaaaa;

?????

remote swallow
#
if (PlaceholderAPI.set(Player, "%myPlaceholder1%") > PlaceholderAPI.set(Player, "%myPlaceholder2%") {
    do stuff;
}
#

might need to cast them

robust zenith
#

I want to specify again i don't have to create my own placeholders i just have to do a check between those with a command

#

So I'll test this stuff again thank you

remote swallow
#

just set the placeholder to what placeholder you want to check

#

that was just an example

robust zenith
#

perfect, thanks

#

I have problems with the "Player" you wrote, it says me i have provide a Boolean, not a string so i create another variable type named Player?

remote swallow
#

the player should be a player instance

#

if thats on a command cast sender to player

quaint mantle
#

anyone know how to get 'com.github.ProtocolSupport:ProtocolSupport

remote swallow
quaint mantle
#

Nope

remote swallow
quaint mantle
#

cause it doesnt for me

remote swallow
quaint mantle
#

oh shi

#

facts

wet breach
#

Also you should have your method setup in such a way to restablish a valid instance if one is missing

#

Same with your connection object

wet breach
summer scroll
#

Does Attribute persist through server restart/player leave?

#

GENERIC_MAX_HEALTH attribute specifically.

wet breach
#

Tey it out

#

Not hard to set attrtibute and then restart

#

See if its still there

#

Pretty sure they dont but i dont remember

remote swallow
#

if i create a file where would its base location be

wet breach
#

Where is creating it

#

If its a plugin. Plugin datafolder

remote swallow
#

if its just a new File() in a lib

wet breach
#

Where ever that lib is at

remote swallow
#

so would it just default to the plugins data folde

wet breach
#

If its shaded in or is a plugin itself

#

Yes

remote swallow
#

that makes my life easier

wet breach
#

Thank the class loader ๐Ÿ™‚

summer scroll
#

yeah it persist

wet breach
summer scroll
#

yeah, just too lazy to test it xd

kindred valley
#

Ask

#

Just ask

#

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

remote swallow
kindred valley
#

I told everyone

warm dagger
#

hello so how can i set the name of a item to be bold and red in color

hybrid spoke
remote swallow
#

item.getItemMeta().setDisplayName(ChatColor.RED.toString() + ChatColor.BOLD + "name")

warm dagger
#

ohh okay

remote swallow
#

why not

#

other than meta would need to be re-set

hybrid spoke
#

because getItemMeta always returns a new instance of the itemmeta

#

so you basically just create a deadstore

#

also the toString() is probably redundant and/or will break it

jagged monolith
#

You don't need the toString()

hybrid spoke
#

ยง ftw

remote swallow
#

its ChatColor + ChatColor

#

it wouldnt work

frank mist
#

hello

#

how do audiences work?

remote swallow
#

wrong place

frank mist
#

really?

#

but it says development help

jagged monolith
remote swallow
remote swallow
frank mist
#

This is serious

#

I need help

remote swallow
#

its not spigot though

frank mist
#

???

#

Its not?

remote swallow
#

no

#

thats adventure

frank mist
#

Ok

#

but like

#

I can ask the same question

#

on the forums

#

and get an answer

jagged monolith
#

?whereami

remote swallow
frank mist
#

noooooooooooooooooo

remote swallow
#

theres were you ask

frank mist
#

just say you don't know ๐Ÿ™„

remote swallow
#

we dont support adventure

hybrid spoke
#

whats audiences

jagged monolith
#

This is spigot Development. Spigot does not support adventure.

frank mist
#

waaaaaaaaaaaaaaaaaaa

remote swallow
hybrid spoke
#

and whats adventure

remote swallow
#

have you heard of minimessages

hybrid spoke
#

no

jagged monolith
remote swallow
#

its mostly used in paper

jagged monolith
#

Or plugins that implement it directly.

remote swallow
#

i said it been as their api methods use components not strings so it would be most commonly used in paper plguins

remote swallow
#

it does?

#

damn

fluid river
#

?paste

undone axleBOT
summer scroll
remote swallow
#

get the item click event

#

or check a shift click event

#

i dont remember its name

summer scroll
#

I use InventoryClickEvent

remote swallow
#

store the inventory on the first click, then check it a tick/a few ticks later and check whats changed

#

check what the craft result was and then see how many was added

summer scroll
#

I'm not sure what you mean.

#

Like store the inventory of the player?

remote swallow
#

on a var

#

Inventory preCheck = player.getInventory()

#

then like 5 ticks later loop over there inv again and check the count of the item they crafted

#

i would say theres a better way but i cant think of it

summer scroll
#

Right, I'll try your solution.

sharp kayak
#

BlockBreakEvent Gets triggered when a player breaks the block, which event triggers when the block above the broken block gets removed automatically? For ex: Breaking farmland block will also break the seeds planted above it

remote swallow
#

interact event

#

check if its phyiscal

sharp kayak
worn tundra
#

Might be block physics

#

Or you could try a generic event

remote swallow
#

its weird ik

remote swallow
summer scroll
#

@remote swallow works perfectly, thank you so much!

worn tundra
#

Note block updates trigger block physics event

remote swallow
#

that does not make sense

worn tundra
jagged monolith
#
if(Bukkit.getBukkitVersion().contains("1.13")) {
  // DO SOME THING
}
earnest forum
#

what about all the other versions

jagged monolith
#
String serverVersionRaw = Bukkit.getBukkitVersion().substring(0, 4);

if (serverVersion >= 1.16) {
  // Do something
}

Sorry, read it wrong :p

signal atlas
#

Hello guys how can i make tnt mechanics like this ? (cubecraft tnt cannon mechanic)
https://www.youtube.com/watch?v=eL0S7P6Qo0w&t=17s&ab_channel=ItsNinjaa

My Last video of 2020 !
I hope you enjoy

โญLinks And Information โญ

๐ŸŽฎ IGN : ItsNinjaa

๐Ÿ“ž Join Our Discord Server : https://discord.gg/k2bgZQjtc5

โš”๏ธ Server ip : play.cubecraft.net

๐ŸŽต Song: ETERNUM - Crazy In My Mind (feat. Marina Lin)

๐Ÿ“‚ Mod : Labymod

โžก๏ธ Cubecraft Forum : https://www.cubecraft.net/members/itsninjaa.568199/

๐Ÿ‘ Like if You...

โ–ถ Play video
remote swallow
#

isnt that just default minecraft

#

its just timing

earnest forum
#

i think he means like

#

where it doesnt do block damage

signal atlas
#

I cant make cannons on my 1.11.2 server. I tried it on 1.16.5 still same i cant make tnt cannons.

remote swallow
#

are you timing it correctly

#

also its probably block toughness

signal atlas
#

Yes but first tnt didnt push the other one

remote swallow
#

or just listening to explode events

remote swallow
#

both would need to be lit for it to work

signal atlas
#

yeah i made auto ignate already

#

can i send a video ?

#

of my server

remote swallow
#

they might be modifying explode times

remote swallow
signal atlas
remote swallow
#

they might be changing velocity then

hybrid spoke
pseudo hazel
#

iirc you just need to put the tnt closer together

signal atlas
# pseudo hazel iirc you just need to put the tnt closer together

My Last video of 2020 !
I hope you enjoy

โญLinks And Information โญ

๐ŸŽฎ IGN : ItsNinjaa

๐Ÿ“ž Join Our Discord Server : https://discord.gg/k2bgZQjtc5

โš”๏ธ Server ip : play.cubecraft.net

๐ŸŽต Song: ETERNUM - Crazy In My Mind (feat. Marina Lin)

๐Ÿ“‚ Mod : Labymod

โžก๏ธ Cubecraft Forum : https://www.cubecraft.net/members/itsninjaa.568199/

๐Ÿ‘ Like if You...

โ–ถ Play video
pseudo hazel
#

hmm nvm, they probably did mess with the explosion velocity

molten hearth
#

I'm pretty lazy and had to code some explosions recently so I just spawned a big particle and damaged everyone near it lol

#

Probably scuffed

#

I think explosion damage is supposed to scale

quaint mantle
#

how do i use the tabcompleter?

#

how do i register it?

scenic grail
#

I have a big problem staff, i buy the plugin 1.8 - 1.19.3 โญ• AdvancedEnchantments โญ 450+ Custom Enchants โญCreate Custom Enchantments โœ… 25% SALE few mounths ago and now i dont have the plugin now on my account what i need to do now? i have a ss whith the payment.

#

nvm i-m so so sorry

hybrid spoke
undone axleBOT
green tapir
#

also i think u can re-download it

quaint mantle
#
    @EventHandler
    public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String args[]) {
        List<String> tabCompleteList = new ArrayList<String>();
        if (args.length == 0) {
            return tabCompleteList;
        }

        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");
        tabCompleteList.add("");

        return tabCompleteList;
    }```
#

how do i register this?

#

nvm.

spice shoal
#

New

rotund ravine
#

Eventhandler what?

fluid river
#
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String args[]) {
    if (args.length == 0) return Collections.emptyList();
    return List.of("one", "two", "three");
}```
green tapir
#

is wrong?

ivory sleet
#

Well

#

What exactly are you doing

#

That aint valid java syntax

green tapir
#

idk

#

this is my first time

#

๐Ÿ’€

chrome beacon
ivory sleet
#

Ah okey

green tapir
#

idrk they tell me to do System.out.println

#

i did it they say wrong syntax

chrome beacon
#

The system out println needs to be inside the method

ivory sleet
#

Well I suppose they wanted you to write
class Someclass {
static void main(String[] args){
System.out.println("Hello Samhero!");
}
}

green tapir
#

oh .-.

ivory sleet
#

the italic is the method, and the bold is the code within the method

green tapir
#

i thought string was useless

#

ohhh

#

thx guys

twin venture
ivory sleet
#

You cant listen to Event

#

Because it has no HandlerList singleton

twin venture
#

ok so what should i do?

#

bcz each perk have diffrent event

ivory sleet
#

Youโ€™ll have to listen to each event

chrome beacon
#

Time for some reflection or make your listeners manually

twin venture
#

like playerDeathEvent .. etc etc?

ivory sleet
#

One way

twin venture
#

what is the best way?

chrome beacon
#

Depends on the goal

twin venture
#

well register perk events , without over complicting things

#

and make it readable + performance friendly

chrome beacon
#

Then just make the listeners like normal

#

@EventHandler
... etc

#

for each event you need

twin venture
#

i know , but would'nt i need to register events for every perk manully?

chrome beacon
#

Yes

twin venture
#

well i had a problem

#

if 2 perks have same event

#

aka PlayerDeathEvent

twin venture
#

it will only register first one

quaint mantle
#

ok.

chrome beacon
twin venture
#

listens for events in skypvp and if a perk that is registered with that event is called, the perk will be triggered

#

this is what iam trying to do .. is it possible?

quaint mantle
#

How can I update a lore in gui without closing out? I'm using remove and setting of item and it isn't updating automatically I still have to close out of said gui

subtle folio
#

Make sure you're calling gui#update();

junior ridge
warm light
#

is there anyway to check if chunk is loaded by players or not?

#

from ChunkLoadEvent

rotund ravine
warm light
#

can't active redstone or anything else load chunk?

#

or loaded by other plugins

rotund ravine
#

^

#

Not sure about the redstone part

hasty prawn
#

It shouldn't afaik, thats the reason a lot of farms are built in spawn chunks

twin venture
rotund ravine
#

Give us the code thatโ€™s causing the fault and weโ€™ll tell you why.

quaint mantle
#

I can't work out why i'm getting recursion when initialising these, the class i'm initialising in isn't initialised in each of these

chrome beacon
#

We won't be able to figure it out either if you don't share your code

hasty prawn
#

Or the error ^

quaint mantle
#

That's a lot of reading, what do you need to see

#

I was just getting the error.

tardy delta
#

simple stackoverflow

buoyant viper
#

?paste EssenceUpgrading

undone axleBOT
buoyant viper
#

and Hoe classes

chrome beacon
#

Might as well just send all 3 classes

quaint mantle
#

Yeah sec

tardy delta
#

might aswell put it in a gist

buoyant viper
#

might as well make it OSS

tardy delta
#

oss?

quaint mantle
warm light
# rotund ravine ^

Look like chunk getting auto load. my plugin removed all loaded chunk by world.unloadChunk() but chunk get loaded again in 2 minute

chrome beacon
warm light
#

bruh

quaint mantle
#

shit lol

buoyant viper
quaint mantle
buoyant viper
#

now send HoeMenu ๐Ÿ”ช

tardy delta
#

debugger best thing

quaint mantle
buoyant viper
#

EnchantProfile

quaint mantle
chrome beacon
#

Uh we needed the HoeMenuHandler

buoyant viper
#

HoeMenuHandler? we'll find this eventually

quaint mantle
#

ahah 2 secs

buoyant viper
#

ah

quaint mantle
#

You found?

#

It's something to do with the 3 upgrading classes

#

I don't get why tho

buoyant viper
#

instantiating an UpgradingHandler instantiates a HoeMenu which instantiates a HoeMenuHandler which instantiates an UpgradeHandler

quaint mantle
#

ahhhh

buoyant viper
#

alternatively as the stacktrace actually shows and i think we all overlooked

#

EssenceUpgrading -> UpgradingHandler -> HoeMenu -> HoeMenuHandler -> UpgradingHandler

quaint mantle
#

Yeah I was following it but couldn't see why, thanks for clearing that up mate

buoyant viper
#

np, another set of eyes always helps

quaint mantle
#

Definitely

buoyant viper
#

recently ive actually invested in trying out the rubber duck strategy

quaint mantle
#

Best way to store an int thats needed in another class?

#

Rubber duck?

buoyant viper
#

only instead of a rubber duck, its a toy donkey kong from a mcdonalds happy meal.

buoyant viper
# quaint mantle Rubber duck?

something something explain what you want to happen to a rubber duck (or even a person) and as you start explaining what youre doing, youll see the problem

#

idk

chrome beacon
quaint mantle
#

ahh ahha

buoyant viper
#

expectation vs reality stuff

quaint mantle
#

Well, I'm needing a value from a variable but it's returning 0 and I'm not sure of a working way to get this value from another class, so how could I store the value

chrome beacon
#

?di

undone axleBOT
chrome beacon
#

That's one way of passing it

quaint mantle
#

I'd need to store as primitive though right

#

Never done di for a int variable damn

#

Can't lie that ?di link just shows injecting classes not a variable with a value if that can be done?

hybrid spoke
#

its the same, only the interpretion is different

hybrid spoke
#

since with objects you pass the reference

buoyant viper
hybrid spoke
#

with primitives the actual value

buoyant viper
#

just test a bunch of stuff idk

quaint mantle
hybrid spoke
#

what do you expect to be different?

quaint mantle
#

Am I overthinking it?

hybrid spoke
#

yes

quaint mantle
rotund ravine
#

You can even ask chatgpt

#

This regular expression is looking for text that is enclosed in tags called "rainbow" and has some numbers in between the opening and closing tags. The numbers can be one to three digits long.

Here are a few examples of input that would match this regular expression:

<rainbow255>This text would be colored with a rainbow</rainbow>
<rainbow100>Rainbow text</rainbow>
<rainbow50>This text would have a weaker rainbow effect</rainbow>
The input should start with the opening tag <rainbow, followed by one to three digits from 0 to 9, followed by '>', in between this opening and closing tag we can have any text, and the input should end with the closing tag </rainbow>

It's worth noting that this regular expression will not check if the number inside the opening tag is a valid RGB value or not, it only validate that the input contains the the number with one to three digits in between the rainbow tags.

hybrid spoke
#

then ask copilot

next stratus
#

Hey, is there a reason why ServiceLoader loads fine in the java main method but on spigot no hope? :/
It feels like spigot is messing with the service loader somewhere or something

rotund ravine
#

what kind of service are you loading

acoustic widget
#

Hello how can i output remmaped file into were I want ?
here my pom, before using remapped plugin i used outputFile from maven compiler shader but now i'm using remap I can't still use it

eternal oxide
#

your AbstractPerk doesn't have a handlerList

#
    private static final HandlerList handlers = new HandlerList();

    @Override
    public @NotNull HandlerList getHandlers() {

        return handlers;
    }

    public static HandlerList getHandlerList() {

        return handlers;
    }```
twin venture
eternal oxide
#

does it have a getter?

twin venture
#

should it have one?

#

still getting the same problem :

fluid river
#

?paste

undone axleBOT
ivory garden
#

Hello, im basically very new at spigot developement (very new just dont know anything about it), and i would like to know where can i start?

pseudo hazel
#

you also need public static void gethandlerlist()

twin venture
pseudo hazel
#

nvm

quaint mantle
#

I tend to avoid using static, I only really use it if I need something to be constantly running throughout (like a player count for example) is this correct as I see a ton of people use static all the time

pseudo hazel
#

static is used for things that there are only one of, like a constant for example could be static

#

like my plugin name is a static const

#

so I can use it in all other classes

ivory garden
#

@fluid river the thread you pinged me in is for Eclipse? i have IntelliJ installed?

pseudo hazel
#

thats the other thing, you can call/get static methods/variables from everywhere

quaint mantle
#

Yeah so what about with maps and array lists, different usage surely because if its static it would be using memory all the time no?

pseudo hazel
#

yes

fluid river
#

call me for free java lessons

quaint mantle
#

and wb static methods? Similar to variables Im guessing?

pseudo hazel
#

it would use memory for the duration of the program from when the class was initialized

#

wb static?

#

yes

fluid river
#

for jree fava lessons*

pseudo hazel
#

its the same thing

quaint mantle
#

cool ๐Ÿ™‚

ivory garden
twin venture
pseudo hazel
#

static methods are usually helper methods or stuff like singleton constructors

undone axleBOT
twin venture
fluid river
twin venture
twin venture
#

still getting the error :()

pseudo hazel
#

because they also dont have object state, a static method is a normal method with no reference to the instance

twin venture
#

anyone have any idea why ?

#

this is the code ..

twin venture
#

acctully i added it in the Abstarct didn't work , added it in the perk that extend AbstarctPerk still didn't work ..

eternal oxide
#

You don;t have a handler list nor a getter for it in that paste

twin venture
#

that's the old one xd

eternal oxide
#

you just posted it

twin venture
#

i have this now .

#

but still not working ..

#

maybe bcz of this ?

eternal oxide
#

if have the HandlerList and the getter you will not be getting that error anymore

quaint mantle
#

?paste

undone axleBOT
twin venture
#

Oky i will try it .

#

Nop still getting the problem ..

quaint mantle
pseudo hazel
#

so abstractper is an Event?

twin venture
fluid river
#

why is your method starting from uppercase

#

no constructivity today

#

just code style shaming

twin venture
#

are you talking about me?

twin venture
fluid river
pseudo hazel
#

is the code compiling correctly?

#

like this error should go away if you have those functions and they are exactly the same as what I have so that should not be the issue

twin venture
#

Bukkit.getPluginManager().registerEvents(perkEventHandler,SkyPvP.getInstance());

#

iam registering packetEventHandler

pseudo hazel
#

the event listener is irrelevant to making the event

#

you just need the methods on the class that extends Event

twin venture
#

but i will need to register events twice

pseudo hazel
#

why

twin venture
#

if they have both Event

#

PlayerDeathEvent for example

fluid river
#

why don't you use one event to work different perks

pseudo hazel
#

what do you mean

#

if they both what event

tardy delta
#

whats the class map for

twin venture
tardy delta
#

and could use an identityhashmap too

fluid river
#

๐Ÿ˜‰

twin venture
#

this is inside FireArrow

tardy delta
#

reflections moment

pseudo hazel
#

or an AbstractPerk

twin venture
#

if an event gets triggered, it will get the value of the Event class that got triggered
then you can trigger all the list of perks
The list of perks will be triggered because the List of Perks share the same events in the Map.
Map<Class<? extends Event>, List<Perk>>

tardy delta
#

๐Ÿค”

pseudo hazel
#

silly question

twin venture
#

iam trying to make a great system , not a spaggety system

pseudo hazel
#

but what does a perk do in your plugin

twin venture
#

my plugin is skypvp plugin , so there is perks

#

like FireArrow , etc etc

#

getting double coins

#

,-,

pseudo hazel
#

okay so like powerups

twin venture
#

yes

tardy delta
#

sounds like pay to win

pseudo hazel
#

lmao

twin venture
#

not exactly

#

there is prestiege

#

kits

#

allot of stuff

pseudo hazel
#

I would just create a perkevent

twin venture
#

iam almost finish it , the perks part is just complex to do the i want it

pseudo hazel
#

and have some kind of enum to denote the type of perk

#

or create a separate event class for each perk

#

I dont see a need for this Map of classes

twin venture
#

hmm alright

pseudo hazel
#

like do you want to send multiple perks in one event?

#

then make the perk itself not the event

#

but build an event that has a list of perks

twin venture
#

well what if 2 or more perks share the same event

pseudo hazel
#

which would just be a list of AbstractPerks in your case

#

in what case is that

fluid river
#

well just loop through perks in the event

#

make event eat list of perks each time

#

if list is null or size 0 then no perks are involved

twin venture
#

eat xd?

pseudo hazel
#

but how can 2 perks share the same event

#

that doesnt make sense to me

ivory sleet
fluid river
#

voila

twin venture
pseudo hazel
#

oh so a perk is an eventlistener

twin venture
#

for example :
this is perk-1

tardy delta
#

HandleEvent

fluid river
#

yes

tardy delta
#

go back to c# you

fluid river
#

already said that

twin venture
#

and this is perk-2

pseudo hazel
#

well first of all you shouldnt just blindly cast your events

tardy delta
#

why creating an itembuilding for that

#

builder

twin venture
tardy delta
#

many things are not the problem but hurt my feelings

worldly ingot
#

Yeah, listening for Event just will not work

twin venture
#

sorry to make you see that :L

tardy delta
#

heeheehee java wtf, can i atleast get a ValueHoldingNode<T>

twin venture
#

any other way that i can make an alternative?

worldly ingot
#

You can't listen to Event. You have to listen for one that actually has a handler list

#

Yeah. Just listening for a PlayerDeathEvent instead ;p

twin venture
#

but i will need to registers every Perk event

#

each time ..

chrome beacon
#

... we told you this earlier

#

and what to do

twin venture
#

registerEvents(perk-1)
registerEvents(perk-2)
registerEvents(perk-3)

worldly ingot
#

Oh you're passing these through to a class

twin venture
#

yes

#

i want to make a stable system for it

#

this is inside the Perk interface :

tardy delta
#

public class AbstractPerk<E extends Event> { void handle(E instance) {} }

#

still wondering what you even are trying to do

buoyant viper
#

if it pains u that much, make a master class that just listens to every possible event in the bukkit/spigot api and then just copy/paste HandlePerk() in all of the voids

tardy delta
#

whats whit the naming conventions

#

its like minestom

worldly ingot
tardy delta
#

uh oh

#

with some luck you can use an event that acts as a base for other events too

twin venture
#

i think i will just do @EventHandler .. inside the perk that extend AbstarctPerk ..

#

worked for me , but i wanted to make better system

pseudo hazel
#

why is that not a good system

chrome beacon
#

^^

#

You don't need anything else

twin venture
#

bcz i dont want to do this :

tardy delta
#

why not having one event handler and you just pass the event to the right perk instances?

chrome beacon
twin venture
chrome beacon
#

Just use the registerEvents method

#

and it will detect the event listeners for you

#

Yeah nvm I can't read

tardy delta
#

atleast one thing we have in common

chrome beacon
#

Run the register events in the constructor or make a register method

#

(in your perk)

#

I'm not sure what the problem you're having is

pastel fulcrum
#

why plugin dont be loaded?

twin venture
#

i do have a register / create method :

rough drift
#

can I process a chunk snapshot async?

twin venture
#

this is inside PerkManager class .

chrome beacon
rough drift
#

that's wonderful

vast raven
#

In this case, why do I get ConcurrentModificationException, I mean this codes doesn't change the iterated list, also sometimes works, some times no

chrome beacon
#

?paste

undone axleBOT
pastel fulcrum
chrome beacon
#

?paste

undone axleBOT
chrome beacon
#

^^ use it

#

Don't screenshot

rotund ravine
#

We need more info

pastel fulcrum
#

ok

vast raven