#help-development

1 messages Β· Page 680 of 1

opal juniper
#

UUID != uuid

remote swallow
#

oh

opal juniper
#

classic epic moment

remote swallow
#

still returns null with uppercase uuid

opal juniper
#

show your code

#

sounds like you doing dum

remote swallow
wet breach
remote swallow
#

getId returns uuid

opal juniper
#

nothing is screaming at me but i would just attach a debugger or test with sql playground

wet breach
#

its an easy fix as well

remote swallow
#

auto incrememnt is missing an underscore?

wet breach
#

no, what you have is correct for sqlite

#

the issue is very basic though

#

your semicolon should be after the parenthesis not inside the string

opal juniper
#

what?

#

but it’s inside the sql to indicate the end of the statement

slender elbow
#

that's not an issue lol

opal juniper
#

or am i dumb

#

ok good

remote swallow
smoky oak
#

is {} no longer standing for 'empty constructor'?

wet breach
#

because last I recalled java requires this

#

and also in prepared statement auto terminates queries

#

so its not needed

#

in the string

#

and typically causes issues

remote swallow
#

still returns sql null without the semi colon after ?

opal juniper
#

again- debugger and step through

slender elbow
slender elbow
remote swallow
#

okay wtf

#

i just ran this manually in db browser

#

and it returns correct

#

does it not like my apostrohpes

wet breach
#

probably not or maybe an async issue

#

since you know its sqlite

remote swallow
#

apostrophes not the issue

quaint mantle
# remote swallow still returns sql null without the semi colon after ?

am i need getter for this or i can do make public and do something ?

    private static final Configuration configuration;

    static {
        try {
            configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }```
remote swallow
#

you will need a getter for it

quaint mantle
#

why

remote swallow
#

and it shouldnt be static

wet breach
remote swallow
quaint mantle
#

i mean

#

can i do this ?

remote swallow
#

yeah, except it screams that you dont know java properly

wet breach
#

just setting it as primary does what you want but also lets sqlite use lower id values if they are available IE if you have 10 columns of ids numbered 1-10 and lets say you remove id 4. Instead of making an id 11 it will go ahead and use id 4 since it is now available

quaint mantle
#

can you tell me to learn

remote swallow
#

?learnjava

undone axleBOT
wet breach
#

however using autoincrement will never let it use lower id numbers again and once it hits the largest int value it will error out

quaint mantle
remote swallow
#

all of it

wet breach
#

all of them

slender elbow
#

if you have to ask you should start from the beginning

quaint mantle
#

what does that have to do with anything?

wet breach
#

everything

remote swallow
#

its called learning java, you cant use java to make stuff properly withoutknowing it

unreal quartz
remote swallow
#

as verano would say "You cant bake a cake if you dont learn the recipe"

wet breach
quaint mantle
#

if i don't know java

wet breach
#

I wonder if its a caching issue with compiling

quaint mantle
#

how can i do this ?

remote swallow
quaint mantle
#

i'm not bragging

wet breach
remote swallow
#

cleaned and built again and same issue

#

its not null in db browser but is null in java

tribal quarry
# quaint mantle which one ? tells me

Learn basics first, then get your hands dirty, try making your own small plugins, then head onto mini-game plugins, search for best practices & always read docs.

quaint mantle
remote swallow
#

because that shouldnt be static, it has no reason to be static

wet breach
#

uh

#

why do you call next?

remote swallow
#

move to the first row

wet breach
#

that isn't what its doing

quaint mantle
#

πŸ˜„ idk
if i don't static and get methods like this
doesnt return my config file
im getting nullpointer ex

wet breach
#

its moving after the first row

remote swallow
#

alex lied to me

wet breach
#

you want hasNext()

#

if you want to check if more then one result

#

but if you are sure it should only return a single result, then checkt that ResultSet isn't null

#

if not null start plucking your values

slender elbow
#

the first next call moves to the first result

#

when first returned, the RS is positioned before the first entry

quaint mantle
#

using or more..

#

?

slender elbow
tribal quarry
# quaint mantle why i need do this private and getter method for get? is it okay if I make it pu...

There are few topics about this problem:

  1. People using object oriented languages like java don't like to use static in unusual manners, another words you have to search for a cleaner way and better understandation of what situtaion is, try asking yourself "why i need static?", which in this case is the lack of knowledge about object oriented programming, where instances come into play.
  2. Using getter is best-practice to make your field secure and not access it directly (in some cases, you cannot assign final keyword and you don't want that field to be modified, which getters come to play)
  3. You can use lombok library for much cleaner code to make getters with only an annotation "@Getter" in this case.
#

Its all in your liking at the end, but keep your code simple and neat

silver robin
#

wait why isn't it safe enough to use public final instead of private final + getter for it?

quaint mantle
shadow night
#

Ah nvm, it took me a few words to teach my friend combos in 1.8 (he didn't ever pvp before)

quaint mantle
#

thats cringe

#

female

slender elbow
#

ok male

shadow night
#

Lol

tribal quarry
remote swallow
tribal quarry
shadow night
#

Oh and btw, no need to discriminate people because of their sex/gender

quaint mantle
slender elbow
quaint mantle
#

cringe

shadow night
#

We live in a world where everybody is equal and has equal rights

wet breach
#

o.O

tribal quarry
quaint mantle
quaint mantle
#

she didnt ask my question

shadow night
#

uhh what?

#

Your english is weird

quaint mantle
#

she says learn java to a person she doesn't know

wet breach
#

yeah many say that here

shadow night
#

Uhh but that's what we all would tell ya?

smoky oak
#

so many in fact there's a shortcut

remote swallow
#

if someone doesnt respond, you either ask again or take it as they dont know the answer

wet breach
#

don't feel like you are special just because you came here asking for help

quaint mantle
#

nah only u or epicebic

#

can say this

wet breach
#

no one is obligated to help nor is anyone entitled to help

quaint mantle
#

or if she wanna say

shadow night
#

Can we like, mute this guy or something?

quaint mantle
#

reply my question first

wet breach
remote swallow
slender elbow
#

you asked me after i said that tho

#

πŸ€”

remote swallow
#

seems like a great way to get help

shadow night
wet breach
#

unfortunately

silver robin
#

okay please stop arguing about that

wet breach
#

I have a few people blocked and its just a spam of notifying me that the blocked people have sent messages that I don't care about lmao

tribal quarry
#

Telling someone to learn java is not disrespectful in where people have to ask only about questions of spigot and minecraft-server topic.

shadow night
#

Is there bukkit or craftbukkit for beta 1.7.3?

#

Me and my friends wanna play b1.7.3 and I wanna attempt developing something for those ancient versions

wet breach
shadow night
#

:(

wet breach
#

at least not ones before 1.0

naive loom
#

So, I made a system where you can add a system book with nbt in a slot in an anvil and a item in the other to make it so it "stat traks" the item, the system works fine producing the item, but when I go to retract the item from the inventory it doesn't move. I don't have any code cancelling any event in the entirety of my code, what's happening?

quaint mantle
#

well i got my reply from chatgpt
i saw this when i learned java
but people forget even after a 1 month break, sorry for not being einstein like you
Data Privacy and Access Control: Declaring variables as private within a class indicates that these variables can only be accessed from within the same class. This prevents accidental modification or direct access to the data. Getter and setter methods provide a secure way to access and manipulate these private variables from outside the class.

remote swallow
#

variable modifiers are one of the most basic things in java, if you cant remember that after a month off you didnt learn it properly

quaint mantle
#

I am very happy to know so much in my 6th month in java

wet breach
wet breach
#

there is some beta builds of CB

shadow night
quaint mantle
#

^^

shadow night
#

They got plugins?

wet breach
#

have no idea, but I have all the CB builds lmao

shadow night
#

Yoooo dats really cool

remote swallow
#

the first 2 are super easy to remember

shadow night
#

I wonder where I can download plugins for those ancient versions

#

Was there creative there?

wet breach
#

so I have no idea which one would be for what you want XD

shadow night
quaint mantle
remote swallow
#

if you had been doing it for 5 months, i would hope you manage to remember atleast public and private

quaint mantle
#

i thought getters and setters existed to put conditions on variables

remote swallow
#

the more stuff you say just makes it more obvious you need to go and learn java before making spigot plugins

#

and stop copy pasting code without understanding how it works

shadow night
#

That's how I learnt programming tho

#

I was copy-pasting code, reading it, looking at how it behaves to understand where and what it does and so until I understood and remembered stuff

wet breach
#

its literally build numbers

shadow night
wet breach
#

yeah

shadow night
#

Bruh

remote swallow
shadow night
#

Hmm

#

Ig

wet breach
shadow night
#

number number

#

Very number-y

wet breach
#

I guess I can just randomly give them to you one by one

#

until its the right one

remote swallow
wet breach
#

almost a year

#

2 more months

remote swallow
#

thats british date

#

dd/mm

wet breach
#

oh

quaint mantle
#

nah

#

i started java

shadow night
#

Lol

quaint mantle
#

that year

#

i mean, seriously

remote swallow
quaint mantle
#

I am not so stupid as to lie and show myself superior with such statements.

#

And I thought you'd write them

wet breach
#

o.O

shadow night
#

The build number might be 1092 according to the random reddit post I just found titled Project Poseidon – A fork of Craftbukkit CB1092 (Beta 1.7.3) designed for 2021

remote swallow
#

15 months making spigot plugins, and you still havent remembered public or private? you are either insanely slow at learning and should probably get some help or you havent ever actually learnt java and have just been copy pasting stuff

quaint mantle
#

i started java for learn this year

wet breach
shadow night
#

At first I didn't understand how variables were constant in java so I just assumbed naming the in UPPERCASE with _ instead of spaces would make them constant lol

quaint mantle
#

i used to write code without knowing java

or i was learning and doing variables without going oop

remote swallow
#

you still dont know java properly

shadow night
#

I kinda don't either!

quaint mantle
#

i didn't say i knew

remote swallow
#

i didnt even know java much untill the start of this year and i started making plugins may last year

shadow night
#

We all don't know a bit of the java basic stuff

#

I always forget that for generic methods I gotta do public <T> instead of public T lmao

wet breach
#

welp 1092 launched your way

shadow night
#

Lol

harsh totem
#

How do I remove an item from a player's inventory?
I tried to set it to a new item stack with null as the Material and it didn't work and also tried with air as Material and it didn't work

remote swallow
#

inventory(slot, null)

kind hatch
#

Inventory#remove()??

remote swallow
#

or that

wet breach
# shadow night Lol

I am actually suprised I have the beta builds and that I forgot about them

shadow night
#

Lol

#

I'm mostly surprised they exist

wet breach
#

yeah but like there isn't very many people who have these though

shadow night
#

Soo, how do I get support for those?... lol

wet breach
#

there isn't lmao

harsh totem
# kind hatch Inventory#remove()??

I tried this and it didn't remove the elytra.

            player.getWorld().dropItemNaturally(player.getLocation(), elytra);
            player.getInventory().remove(elytra);```
quaint mantle
#

well i check my old projects and i saw this
i've been trying to do something neat in java for 3 months

wet breach
#

I think md might have the beta builds

quaint mantle
#

I am very clever

tacit drift
#

right?

#

:)))))

wet breach
#

and if I recall there was alpha builds too

#

and I should have those somewhere

shadow night
remote swallow
tacit drift
#

well you would probably want that if it's a static value

shadow night
tacit drift
#

constant*

quaint mantle
#

for 1 year java develope i'm new to using packages πŸ˜„

#

like ur said

harsh totem
quaint mantle
#

I don't need the site to learn java

#

you exist

#

πŸ˜„

tacit drift
#

you may want to read some of this

kind hatch
harsh totem
kind hatch
#

Don't know how considering Material.AIR != null

shadow night
#

I once forgot to recompile my plugin and thought why it ain't working

remote swallow
shadow night
#

Also, AI is bad at coding

quaint mantle
#

i humiliate myself as I stand here
i will come back when i learned the best java (never)
time to leave paper and spigot

remote swallow
#

lmfao

harsh totem
wet breach
#

you exist

remote swallow
#

they join back in like a week or 2 asking for help again

tribal quarry
silver robin
tribal quarry
harsh totem
#

I already tried all 3 of these methods

#

They all make this java.lang.IllegalArgumentException: ItemStack cannot be null happen

tribal quarry
harsh totem
#
    public void noElytra(EntityToggleGlideEvent event){
        if (!plugin.getConfig().getBoolean("elytra-toggle")){
            Player player  = (Player) event.getEntity();
            player.sendMessage(ChatColor.RED + "You can't use elytras!");
            ItemStack elytra = player.getEquipment().getChestplate();
            player.getWorld().dropItemNaturally(player.getLocation(), elytra);
            elytra.setAmount(0);
            player.updateInventory();
        }
    }```
slender elbow
#

sounds like getChestplate is returning null

harsh totem
slender elbow
#

Β―_(ツ)_/Β―

#

print it out or something to see if it actually is

sleek pond
#

Does the event have a getElytra event or something

harsh totem
#

It printed ItemStack{ELYTRA x 1}

silver robin
#

I'm pretty sure it should be player.getInventory().getChestplate() instead of getEquipment

sleek pond
slender elbow
#

both return the same thing for a player

harsh totem
slender elbow
#

did it drop the item into the world?

harsh totem
slender elbow
#

maybe your compiled jar wasn't updated then

harsh totem
sleek pond
#

Ok yea it's that

harsh totem
sleek pond
#

Also what the stacktrace says

#

Does the player get the message

slender elbow
#

you mean the setAmount(0)? does it throw the exception again when you reintroduce that line?

sleek pond
#

Maybe Elyria.setamount

#

Oh yea lmao

tribal quarry
# harsh totem I recompiled it more than 5 times

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/EntityToggleGlideEvent.html
I think better workaround is to cancel the event, instead of dropping the item manually (which could lead to duplications glitch, and more than that, if you are not experienced with events and when they are called in server).
Or if you unsure about it, then you can verify the compiled files by their checksum.

sleek pond
#

It might cause an error when the object is spawned in

slender elbow
#

that's odd because that line is after dropItem

sleek pond
#

In which case you try set it empty and world object has a reference to original object for some reason

harsh totem
sleek pond
#

Apparently it's the serAmount call that's the problem

harsh totem
tribal quarry
sleek pond
tribal quarry
harsh totem
#

I think I understand now.
I dropped the item on the floor and then I set it to null and the item entity can't be null so it produced an exception.
I dropped a clone of the item and then removed the elytra and it works now without producing exceptions

harsh totem
#

never mind

#

:(

sleek pond
#

Oop

tribal quarry
#

Why minecraft music is lil too intense

harsh totem
#

java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.ItemStack.clone()" because the return value of "org.bukkit.inventory.EntityEquipment.getChestplate()" is null

    public void noElytra(EntityToggleGlideEvent event){
        if (!plugin.getConfig().getBoolean("elytra-toggle")){
            Player player  = (Player) event.getEntity();
            player.sendMessage(ChatColor.RED + "You can't use elytras!");
            ItemStack elytra = player.getEquipment().getChestplate().clone();
            player.getWorld().dropItemNaturally(player.getLocation(), elytra);
            player.getEquipment().setChestplate(null);
        }
    }```
sleek pond
#

Set it null first

#

Before dropping

tribal quarry
sleek pond
#

No cuz he clones it

tribal quarry
#

You can't clone null

sleek pond
#

After yi clone before you drop

harsh totem
tribal quarry
harsh totem
#

The exception says that the getChestplate returns null and it can't be cloned

sleek pond
#

Ncm

#

Can you log the get chest plate

tribal quarry
#

Im sure player.getEquipment().getChestplate() is null, that's a java error

sleek pond
#

Well yes

#

But no make sure

#

To*

harsh totem
tribal quarry
harsh totem
#

I think that the event is executed when the player stops using the elytra and by then it is null

sleek pond
#

Hmmm yes

#

Is there a way to check what the original vs end state is?

#

Ie toggle to flying or toggle to not

#

Yea there is

#

You should check e.isgliding

#

And if yes you should e.cancel

tribal quarry
# harsh totem I think that the event is executed when the player stops using the elytra and by...

I think in that case you have to do a simple null check:

    @EventHandler
    public void noElytra(EntityToggleGlideEvent event){
        if (!plugin.getConfig().getBoolean("elytra-toggle")){
            Player player  = (Player) event.getEntity();
            ItemStack elytra = player.getEquipment().getChestplate();

            if (elytra != null && elytra.getType() != Material.AIR) {
                player.getWorld().dropItemNaturally(player.getLocation(), elytra);
                player.getEquipment().setChestplate(null);
                player.sendMessage(ChatColor.RED + "You can't use elytras!");
            }
        }
    }
sleek pond
#

I feel like adding
if(event.isGliding()) evet.setCancel(true)
else return
Could also work

sleek pond
#

πŸ‘

#

more to kalix than me

#

Lol

harsh totem
#

Thanks to you too ofc

fossil monolith
#

how do i use git lol

unreal quartz
#

man git

#

Or perhaps Google

fossil monolith
#

i mean

#

how u push github

unreal quartz
#

Add your repository as a remote, then push your branch

silver robin
orchid trout
#

ncm

#

nvm

north nova
#

lol

unreal quartz
#

Because only psychopaths do that

orchid trout
#

i do that

north nova
#

and i use it regularly

unreal quartz
#

That’s… interesting

orchid trout
#

i just use github as backup drive

shadow night
shadow night
#

oh gosh this looks exactly like modern bukkit ._.

#

yoo it works, thanks frostalf

mellow pebble
#

has anyone here ever used tabbed tablist api from github ?

orchid trout
#

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

mellow pebble
shadow gazelle
#

How can I create a new loot table for something in my plugin?

#

Do I need to put it in a datapack or something?

undone axleBOT
#

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

mellow pebble
#

like just my tablist class

#

where i write everything or

orchid trout
#

yes

#

where the problem occurs

mellow pebble
#

?paste

undone axleBOT
mellow pebble
#

this is the class

#

errors nowhere to be found

orchid trout
mellow pebble
#

not even in console

#

it just doesnt update

tacit drift
grizzled oasis
#

Hi asking something because im so confused i made on my texture (1.12) on custom fonts this

      {
         "ascent":8,
         "chars":[
            "\ue26b"
         ],
         "file":"chatfeatures/ranks/builder.png",
         "height":8,
         "type":"bitmap"
      },

But using /tellraw "\ue26b" doesn't show but with other character made inside the unicode_page they show up normaly

shadow gazelle
tacit drift
#

Do you need it for blocks/mobs or chests?

shadow gazelle
#

A chest for loot for a mingame

#

so it wouldn't be replacing something that exists

tacit drift
#

so to generate your own loot in a chest for something like for eg survival games?

shadow gazelle
#

yes

tacit drift
#

i would use a random picker from a weighted list

orchid trout
#

read the github readme

shadow gazelle
orchid trout
#

an array?

shadow gazelle
#

In a datapack or do I add it with the plugin somehow?

orchid trout
#

a set

mellow pebble
tacit drift
#

In a plugin

#

and this is the straight up logic

shadow gazelle
#

Okay

orchid trout
mellow pebble
#

getTabbbed is from lomboks getter annotation and it returns Tabbed tabbed which was initialized in onEnable tabbed = new Tabbed(this);

orchid trout
#

yeah i was just confused with you naming it instance

mellow pebble
orchid trout
#

thats not what i meant

near mason
#

can i load loot table from json file or i have to make a datapack?

mellow pebble
royal hawk
#

Hello guys who can help me :0
I have custom armor stand with passenger i need change yaw without eject player from stand:

I have this code:

    public static void setPosition (ArmorStand armorstand, Location location, double yaw) {
        try {
            CraftArmorStand craftArmorStand = (CraftArmorStand) armorstand;
            craftArmorStand.getHandle().setPos(location.getX(), location.getY(), location.getZ());
            craftArmorStand.getHandle().setYRot((float) yaw); // yaw
            craftArmorStand.getHandle().setXRot(location.getPitch());
        }

        catch (Exception exception) {
            exception.printStackTrace();
        }
    }

But i got error:

[00:59:46 ERROR]: Invalid entity rotation: NaN, discarding
near mason
#

did you do Division by zero?

#

or something lik e that

royal hawk
#

no

#

im a show u code

shadow night
#

uh can I ask beta 1.7.3 questions here?

near mason
#

can you send where did you use setPosition()

royal hawk
#

?paste

undone axleBOT
near mason
smoky oak
#

do you lose infinite potion effects when dying or drinking milk?

near mason
#

sry i have no idea

smoky oak
#

ah ok

upper cypress
#

What are some keybinds I could use to add a custom blocking mechanic? and also some punishments for a poorly timed block

orchid trout
#

swap hands

smoky oak
#

double swap hands

#

i do use f very often

orchid trout
#

360

naive loom
#

anyone have to solution to be able to send titles to players in any version? like is there an external library?

lilac dagger
#

player.sendTitle should work

smoky oak
#

not in 1.8 which is the thing he wants it for

naive loom
#

i want the ability to supply the fade in and fade out aswell

smoky oak
#

My IDE thinks that @EventHandler methods are never used and should be deleted. Is there a per-project way around that?

worldly ice
#

you can add all methods annotated by event handler as an entry point

lilac dagger
#

click the name of a not used variable and a lightbulb would appear

#

there you have multiple choices on how to handle this

worldly ice
lilac dagger
#

i used to do this

#

but you can't beat the light bulb

tender shard
#

is it an energy-saving lightbulb at least?

#

or is it one of those 60 watts things

lilac dagger
#

looks like a 60 watt one

tender shard
#

that explains my huge energy invoice

#

it's caused by intellij

remote swallow
#

u sure its not bc you have an electric car in ur basement you dont know about

rough ibex
#

yeah sorry i just parked it there for the night

#

my bad

fleet dirge
#

Hello!

How/Can I download the (org.mariadb.jdbc.Driver Dependency) into the Spigot library to use it from multiple plugins? Is there already a Interface for it in the Spigot API?

remote swallow
#

use the libraries feature in plugin.yml

fleet dirge
#

This is the word that I needed. Thank you very much. I will read into it!

remote swallow
#
libraries:
  - "org.mariadb.jdbc:mariadb-java-client:3.1.4"
#

then Class.forName it

naive loom
#

how do i send a title in 1.8.8 with fade / stayIn / stayOut?

#

and does it change in later versions?

tender shard
#

in later versions you do player#sendTitle

#

in ancient versions you have to send a packet

#

this is CB code for 1.20.1

#

you'll need ClientboundSetTitlesAnimationPacket and ClientboundSetTitleTextPacket packet

#

(or however that is called in 1.8)

#

probably PacketPlayOutTitle

smoky anchor
#

Does spigot have an API to spawn NPCs or do I still have to use some library or whatever

tender shard
#

either NMS or use Citizens API

smoky anchor
#

aight, ty

tender shard
#

even though there is an interface for NPCS (HumanEntity), there's no way of spawning any in spigot

upper cypress
naive loom
tender shard
#

yes

#

it was added in 1.9

#

if you're using multi module maven project, you can do it like this:

  1. Have an implementation for that in your 1.8 NMS handler implementation (e.g. like sendActionBar here): https://github.com/JEFF-Media-GbR/Spigot-Maven-Modules-Example/blob/master/spigot-1.8.8/src/main/java/com/jeff_media/mymultiversionplugin/nms_1_8_8/NMSHandlerImpl.java
  2. Use a default method in the NMS handler interface that's used on all other versions https://github.com/JEFF-Media-GbR/Spigot-Maven-Modules-Example/blob/master/core/src/main/java/com/jeff_media/mymultiversionplugin/NMSHandler.java#L13
chrome beacon
#

You can use Biome colors

#

Just register a custom biome with the water color you want

quaint mantle
#

how do i store data in an item and retain even if the item is placed and broken?

#

i am using PDCs to store data, what would be the general approach for this?

#

i was going to listen on blockPlace and blockBreak events and check if the item or block had any PDCs why being placed and copy them over, but is there a different way to do this?

#

PDCs and stuff like NBTs don't usually get saved across block placements and item drops, do they?

sullen marlin
#

Bungee config

quaint mantle
#

oh hello md_5.

#

Is it possible to have multiple servers sharing the same getName?

#

I am creating an algorithm into which I am looking for an identifier, so if this is the case I'm done with it πŸ˜ƒ

scenic valve
quaint mantle
#

servers
Code (Text):

  address: localhost:25565
  restricted: false
  motd: '&1Just another BungeeCord - Forced Host'```
lobby would be getName?
vital void
#

I’m getting a null point exception when loading my plugin, it depends on protocollib

#

It’s listed as a dependency

north nova
#

what is null

vital void
#

The dependency is listed as provided

#

I’ll show

#
    ProtocolManager manager = ProtocolLibrary.getProtocolManager();

    public ProtocolManager getManager() {
        return manager;
    }

    @Override
    public void onEnable() {
        robots = this;
        getServer().getPluginManager().registerEvents(this,this);

        manager = ProtocolLibrary.getProtocolManager();


       manager.addPacketListener(
                new PacketAdapter(this, ListenerPriority.NORMAL,
                        PacketType.Play.Client.BLOCK_DIG) {
                    @Override
                    public void onPacketSending(PacketEvent event) {
                        // Item packets (id: 0x29)
                        if (event.getPacketType() ==
                                PacketType.Play.Client.BLOCK_DIG) {
                            Bukkit.broadcastMessage( event.getPacketType().toString());
                        }
                    }
                });



    }
#

manager is bull

#

Null

north nova
#

ProtocolManager manager = ProtocolLibrary.getProtocolManager();

#

ur initializing it on runtime

vital void
#

It’s initialising it on enable

north nova
#

    public ProtocolManager getManager() {
        if(manager == null) {
            manager = ProtocolLibrary.getProtocolManager();
        }
        return manager;
    }

    @Override
    public void onEnable() {
        robots = this;
        getServer().getPluginManager().registerEvents(this,this);



       manager.addPacketListener(
                new PacketAdapter(this, ListenerPriority.NORMAL,
                        PacketType.Play.Client.BLOCK_DIG) {
                    @Override
                    public void onPacketSending(PacketEvent event) {
                        // Item packets (id: 0x29)
                        if (event.getPacketType() ==
                                PacketType.Play.Client.BLOCK_DIG) {
                            Bukkit.broadcastMessage( event.getPacketType().toString());
                        }
                    }
                });



    }```
#

it's not

#

you're initializing it in the field as well as onenable

vital void
#

Oh

#

I’m dumb

#

I see what I’ve done

quaint mantle
#

i have not really used PDCs before for any spigot projects, sort of learning them right now.

vital void
#

Your a legend mate, some of the best devs I know couldn’t even tell me that

north nova
#

what

#

its basic java im not a legend

vital void
#

Proper

#

Nah mate

#

No one else noticed but you

#

This thing has been a pain in my rear end for 3 hours

#

I was ready to go buy a new pc

north nova
#

haha lol

quaint mantle
#

you'd buy a new pc because your minecraft server does not run?

vital void
#

Yep

quaint mantle
#

ok.

echo basalt
#

getProtocolManager is a plain getter, doesn't initialize anything

vital void
#

It’s not supposed to

#

It gets the instance that is set on onenable

echo basalt
#

No I mean

scenic valve
quaint mantle
#

are all blocks not instances of Tilespace?

young knoll
#

No

vital void
#

now i just get this ```java
java.lang.NoClassDefFoundError: com/comphenix/protocol/events/PacketListener

scenic valve
#

TileState I meant

young knoll
#

?blockpdc

undone axleBOT
scenic valve
#

^

scenic valve
echo basalt
#

Is plib in the server

vital void
#

yes it is

echo basalt
#

Did you add a depend

vital void
#

the scope is provided

#

yes

quaint mantle
#

like pistons and chests.

vital void
#

unless 1.19.3 paper has a different way of using depend:

echo basalt
#

Fun fact: an anvil is not a tile entity

quaint mantle
#

pistons would store state like being powered or not powered with redstone.

#

again, i am not an expert.

#

i just know some stuff.

young knoll
#

That’s just a state

#

Pistons store what they are pushing

quaint mantle
#

are TileEntities not primarily for storing state or perhaps one of the reasons they are used?

young knoll
#

Most for complex data

#

States are just stored as well, states

quaint mantle
#

how else would one store states if not TileEntities though?

scenic valve
# quaint mantle so like tileEntities?

Kinda, its more repesents the block state at the given location. I believe in the Spigot Doc its refered to as a block state that also hosts a tile entity at the given location

quaint mantle
young knoll
#

Blocks have states

vital void
#

hey pule would this be correct for 1.19.3 paper

name: Robots
version: '${project.version}'
main: org.deserialize.robots.Robots
depend: [ProtocolLib]
api-version: '1.19'
young knoll
#

Look at a log in F3 and you’ll see the states

echo basalt
#

I wonder what Bukkit.getName does

#

or whatever that was

tender shard
quaint mantle
#

so like if the top part gets broken, it wont invalidate the state or perhaps it is not access from the top part?

vital void
#
[08:34:51 ERROR]: [ModernPluginLoadingStrategy] Could not load plugin 'Robots.jar' in folder 'plugins'
java.lang.NoClassDefFoundError: com/comphenix/protocol/events/PacketListener
        at java.lang.Class.forName0(Native Method) ~[?:?]
        at java.lang.Class.forName(Class.java:467) ~[?:?]
#

what would cause this

tender shard
vital void
#

but its installed on the server

tender shard
#

then you didn't depend on it in plugin.yml

vital void
#

but i noticed my plugin loads before it

tender shard
#

so your plugin gets enabled before PLib

vital void
#

i did

#

yes

tender shard
#

show your plugin.yml

vital void
#
name: Robots
version: '${project.version}'
main: org.deserialize.robots.Robots
depend: [ProtocolLib]
api-version: '1.19'
tender shard
echo basalt
#

make sure to decompile your jar and make sure things match

tender shard
undone axleBOT
echo basalt
#

and make sure you're yeeting it on the right folder

vital void
#

i have

#

and it does

tender shard
#

"Paper" on paper

echo basalt
#

aw I thought it was going to be something cool

#

Like a server instance id

quaint mantle
#

ok that is one problem solved, storing data within blocks, but how about moving it across blockPlacements, blockBreaks and itemDrops?

tender shard
quaint mantle
#

should i use event listeners to move data?

#

or what is the standard way for doing this?

tender shard
vital void
tender shard
# vital void

are you actually using plugin.yml or this weird paper-plugin.yml?

vital void
#

its paper-plugin.yml

tender shard
#

there you go

#

don't use that

#

use a normal plugin.yml

vital void
#

so re name it?

tender shard
#

yes

vital void
#

i am using paper spigot

tender shard
river oracle
tender shard
#

use a plugin.yml

#

their new "modern plugin loading strategy" is pretty bugged and doesn't even have all the features that bukkit has

#

e.g. the library loader

#

and apparently the depends thing also doesn't work, or works differently

vital void
#

yeah that fixed it

#

@tender shard

tender shard
#

yeah I know. you should only ever use paper-plugin.yml if you do plugins for paper only. and in that case, you should ask on their discord πŸ˜›

vital void
#

ah

#

i noticed as well

#

paper-plugin.yml

#

wanted to me use dependencies:

tender shard
#

yeah but if you use paper-plugin.yml, your plugin won't run on spigot

#

the paper-plugin.yml doesn't really add any benefits, it only causes trouble

quaint mantle
#

?paste

undone axleBOT
tender shard
#

@quaint mantle you can update maven-shade-plugin to 3.5.0

quaint mantle
tender shard
#

and as said, you can update maven shade plugin from 3.2.4 to 3.5.0

quaint mantle
#

i just used the intellij minecraft development module thing to create the project.

#

seems to work fine but i will update it.

tender shard
#

yeah the minecraft-dev plugin is pretty shitty tbh

smoky oak
#

i dont trust it as far as i can throw it

#

all i remember is it not working

tender shard
#

it causes many problems and doesn't really add any benefit

quaint mantle
#

but there is another thing that uses shade plugin, should i change that too?

tender shard
#

you must only declare the shade plugin once

quaint mantle
#

its for Inventory Framework.

tender shard
#

show your whole pom

smoky oak
#

?paste

undone axleBOT
smoky oak
#

preferrably not in this chat lol

quaint mantle
tender shard
#

you can just merge both

quaint mantle
#

how would i do that?

tender shard
#
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <relocations>
                                <relocation>
                                    <pattern>com.jeff_media.customblockdata</pattern>
                                    <shadedPattern>me.pulsesapphire.mainscript.customblockdata</shadedPattern>
                                </relocation>
                                <relocation>
                                    <pattern>com.github.stefvanschie.inventoryframework</pattern>
                                    <shadedPattern>me.pulsesapphire.mainscript.inventoryframework</shadedPattern>
                                </relocation>
                            </relocations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
quaint mantle
#

so just replace the two with that?

tender shard
#

exactly

quaint mantle
#

okay.

#

i really appreciate all the help!

tender shard
#

np

quaint mantle
#

πŸ˜„

smoky oak
tender shard
echo basalt
tender shard
smoky oak
#

something something project settings?

tender shard
smoky oak
#

uh wheres that settings window again

tender shard
#

add EventHandler as annotation there

smoky oak
#

it wasnt ctrl shift alt s

tender shard
#

File -> Settings

#

or Cmd+, on mac

smoky oak
#

im on win10

tender shard
#

then File -> Settings

torn shuttle
#

quick q because I've never tried to spoof mc enchantments: do plugins that spoof mc enchantments leave residual keys in the jar file as a norm such that even if the plugin is gone the things the plugin registered into the server remain saved in the jar or something?

tender shard
#

should look like this @smoky oak

smoky oak
#

its not giving me the tab you have open

torn shuttle
#

and I don't mean leaving custom pdc data, I mean they registered enchantments as mc enchantments and now they're just there forever

tender shard
torn shuttle
#

yeah but that's pdc right

#

not keys

tender shard
#

go to java

smoky oak
#

ah

tender shard
smoky oak
#

yea that did it thanks

tender shard
#

even if the plugin that added this enchantment isn't loaded

torn shuttle
#

because I am getting the list of enchantment keys from a server and a user of mine is getting enchantment keys from a plugin that supposedly is no longer on the server

smoky oak
#

that a project or global thing now?

torn shuttle
#

because it gets stored in the pdc

young knoll
#

It gets stored in NBT

torn shuttle
#

would that affect the enchantment keys registered to the server under normal conditions?

young knoll
#

No

#

The registry is created at startup before plugins even load

#

And you need to do some jank to modify it with a plugin

torn shuttle
#

ok so if someone somehow managed to make a plugin that registers enchantments, spoofs these enchantments as mc enchantments and then somehow managed to store them in mc beyond the lifetime of their plugin (i.e. the keys persist despite the plugin no longer being in the server) that's atypical behavior, right?

young knoll
#

Yes

echo basalt
#

It's malware, yeah

torn shuttle
#

yeah that's also what I was thinking

#

that's basically malware behavior

smoky oak
#

what kind of keys?

torn shuttle
#

I'll double check

smoky oak
#

dont PDC keys stay no matter if the plugin is active or not?

echo basalt
#

They do

#

Residual data is fine

#

keeping functionality regardless of whether it's allowed or not is.. not

smoky oak
#

fair

#

oh actually how much data is fine to write to player PDC?

#

iirc theres some limit where it crashes

young knoll
#

Yes you can overload the players data

#

But it takes quite a bit

echo basalt
#

Ideally you just store an id and use the data elsewhere

torn shuttle
#

pdc doesn't matter

smoky oak
#

well, as long as my keys are longer than my data i should be fine lol

torn shuttle
#

if the plugin is out the data is inert

#

the problem is when you're fucking up the keys and removing the plugin doesn't fix it

smoky oak
#

?

#

im pretty sure that if i get rid of the plugin the key and the data stays

young knoll
#

Yes

#

PDC data is, well, persistent

smoky oak
#

only reason im not making separate config files is coz its so little data

vagrant stratus
#

So I'm trying to do a malware cleaner, which on its own isn't really a difficult task. The problem I'm facing is trying to support multiple different malware at once
https://paste.md-5.net/ememubinet.cs

The issue is code changes require the following to be able to save to a new jar:

ZipEntry newEntry = new ZipEntry(entry.getName());
out.putNextEntry(newEntry);
System.out.println("Writing '" + entry.getName() + "' to cracked jar");
writeToFile(out, new ByteArrayInputStream(classWriter.toByteArray()));

where as zip entries just need

ZipEntry entry;
// skip if malicious, otherwise output to ZipOutputStream
out.putNextEntry(entry);
writeToFile(out, zipFile.getInputStream(entry));

Not entirely sure how I'd go about supporting both πŸ€”

echo basalt
#

uhh

#

writeInt(amount)

#

and then for each

#

writeInt(byte array length)

#

and store the entire array

quaint mantle
echo basalt
#

Basically you want to store multiple files per whatever

#

or you can use a nested zip

smoky oak
#

actually, is there a documentation of the malware scanner anywhere? Or a way to run it to test it? If anyone know it its you, I wanted to look into it

tender shard
tender shard
#

you would have to listen to BlockBreakEvent manually and add the data to the dropped item

quaint mantle
#

okay.

smoky oak
vagrant stratus
#

Malware Cleaner

torn shuttle
torn shuttle
#

well the mc spoofing part is right, the persistence isn't so it's just your average annoying enchant plugin

tender shard
#

enchantment plugins all suck

#

they ALL do weird things

torn shuttle
#

guys just use your own keys

#

you don't get charged to do it

tender shard
#

there's 3 types of enchantment plugins:

  1. Those using minecraft keys (bad)
  2. Those using their own keys but still extend Enchantment (bad)
  3. The proper ones that don't use any actual MC enchantments but only PDC data, but I don't think any of those exist
smoky oak
#

pretty sure it's not that difficult?

torn shuttle
#

my enchants are like the last one

tender shard
#

yeah that is good

torn shuttle
#

but they're just a small part of EM

tender shard
#

only thing where extending Enchantment is ok imho is to create the glow effect

torn shuttle
#

yeah never cared that much about that in the first place

smoky oak
#

wait

#

can't you apply an enchantment that doesnt do anything and tell it to hide itself

tender shard
#

yes but it'd also hide other enchantments

smoky oak
#

im pretty sure you can set an enchantment to not display itself to get the glow

#

wouldn't lore solve that issue?

tender shard
#

maybe someone would have unbreaking AND your custom enchantment

tender shard
#

also it wouldnt be translated then to their locale

smoky oak
#

ah

tender shard
#

because ItemMeta does only support Strings, no translatable components

smoky oak
#

my brain is 'english is the only language that is a thing' so i tend to forget that

tender shard
torn shuttle
tender shard
#

they always use google translate "If I eat the machine then the item is not produced, what is the problem"

smoky oak
#

i fuckin hate fortnite

torn shuttle
#

we love fortnite we love fortnite

echo basalt
tender shard
#

fortnite is a very boring game

torn shuttle
#

I love fornite and roblox, it keeps all the kids out of the games I actually want to play

#

god bless them

#

never played them

#

but they're great

smoky oak
#

all i play is harvest sniper in tf2 lol

#

im just reading bad fanfic online otherwise

torn shuttle
#

you're reading plugin documentation in your free time?

smoky oak
#

documentation, unfortunately, is not ficional

echo basalt
#

yo magma you usually order shit from our country's tech stores?

#

deal of the day is miserable

torn shuttle
#

lmao

#

what am I, some kind of poor loser?

echo basalt
#

they selling this laptop they claim costs 1.7k because it has a 12th gen intel cpu and ddr5 ram

#

integrated graphics

smoky oak
#

bleh

#

whats ur currency

torn shuttle
#

sucks to be you I got a lenovo yoga 7 for 900 because it was prime day, msrp 1500-1600

echo basalt
#

euro

smoky oak
#

yea no

torn shuttle
#

great little laptop btw

#

very neat

echo basalt
#

but hey it's a 2560x1800 screen !!

torn shuttle
#

fnac wanted to sell it to me for 1800

smoky oak
echo basalt
#

I bought an identical lg gram for like 1k

smoky oak
#

60 fps feels so damn laggy

#

i relaly prefer 144

echo basalt
torn shuttle
#

I don't think he's buying a laptop for the fps

echo basalt
#

bit hypocritical coming from me

torn shuttle
#

or else he wouldn't even be looking at integrated graphics

echo basalt
#

whose discord monitor runs at 165hz

torn shuttle
#

I got rid of all my high framerate monitors

smoky oak
#

i mean, i use this monitor for everything so im seeing discord in 144 hz

torn shuttle
#

they're all 60hz now

smoky oak
#

but yea minecraft at 60 fps feels slower than at 144

#

i know it runs at 20ups but still

echo basalt
#

my dude

#

who even opens minecraft to have fun

torn shuttle
#

true

#

and real

#

and based

vagrant stratus
torn shuttle
#

wait you made me agree with illusion

echo basalt
#

it's work

smoky oak
#

i opened it for work but it's still bad on the eyes

torn shuttle
#

you suck moterius

vagrant stratus
#

I play heavily modded MC though lmao

smoky oak
echo basalt
#

yo magma you should apply for web summit dev tickets

#

I'm going there, let's brawl

torn shuttle
#

the fuck is a web summit dev ticket

echo basalt
#

web summit is this tech convention

#

they're giving free tickets to devs

smoky oak
#

im a shitty dev

#

how low is the skill ceiling

#

*bar

torn shuttle
#

lisbon? I would rather have my toes eaten by rats than be caught going to lisbon, especially to be in your proximity

echo basalt
#

P sure they're using AI to judge people

#

my and my 30 stars got a ticket

torn shuttle
smoky oak
#

ah so the good people get kicked out coz it looks like the data ai is trained on and spits back out

echo basalt
smoky oak
#

gotcha

torn shuttle
#

ok had to go double check my stars

#

yeah I def get to say that

smoky oak
#

i stg if i have more than 1 star

echo basalt
#

I think I got maybe 45 across all my projects

smoky oak
#

alright good i have 0

torn shuttle
#

I had no clue but looks like I have over 100 on em

echo basalt
#

which is decent for someone who has never released an actual decent plugin

smoky oak
#

do you mean yourself or magma

echo basalt
#

myself

#

and magma too

#

nothing's decent

torn shuttle
#

huff my shorts illusion

#

I don't see your free open source gplv3 in-game model displaying software

echo basalt
#

I don't see clean code

smoky oak
#

also by the way i dont believe you saying youre broke, youre paying to have a purple name

quaint mantle
torn shuttle
smoky oak
#

cant you apply the enchantment normally?

smoky oak
echo basalt
#

so?

smoky oak
#

alright you broke me

echo basalt
#

I get paid every week

#

I just happened to have a ton of expenses this month

torn shuttle
#

discord actually does accept exposure as payment

echo basalt
#

yea

torn shuttle
#

also how are you broke, weren't you the one asking me how to dodge taxes just a few months back

echo basalt
#

well

torn shuttle
#

did they catch you and you're paying it back

echo basalt
#

Let's just say I did have quite a few expenses

smoky oak
#

write your computer off as work expenses

#

so fuckin annoying you cant do that with food

torn shuttle
#

he can't write off any expenses since he's dodging taxes

tender shard
quaint mantle
#

making it work

tender shard
#

sad

quaint mantle
#

or are u talking about fully custom enchants?

tender shard
smoky oak
torn shuttle
#

yeah but germany is a country with a real economy

#

so get lost loser

tender shard
torn shuttle
#

it just has to be in the right context

smoky oak
#

explain

torn shuttle
#

if you take your team out for lunch the business can pay for that

#

if you have a cafeteria for your staff the business can pay for that

#

if you have a lounge area with snacks the business can pay for that

smoky oak
#

yea heres the thing, no matter how much i puff myself up im not a business lol

torn shuttle
#

and so on

#

yeah well maybe you should begin identifying as a business

smoky oak
#

are you saying to make a GMBH or whatever?

echo basalt
#

welp time to send an invoice

smoky oak
#

oh right

#

illusion

torn shuttle
#

I have one

smoky oak
#

what do you use for that?

torn shuttle
#

but that's because I'm a baller

smoky oak
#

Stripe?

echo basalt
#

paypal

smoky oak
#

ah

#

yea i dont trust paypal

#

they closed my dad's account twice without apparent reason

remote swallow
#

illusion probably does

torn shuttle
#

paypal is my homie, I have no clue why but they always take my side

#

even when I said on chargebacks that I was fine with refunding the person

echo basalt
#

I have a paypal account with good standing

#

got their business debit card n shit

torn shuttle
#

don't have that, don't want it

echo basalt
#

better than transfering all my money to the bank and having them ask questions

torn shuttle
#

and thus we reveal the tax dodging troubles of illusion

smoky oak
#

im keeping a stack of cash at home cuz its not traceable

#

or would

#

if i had any money

torn shuttle
#

also illusion you think you have expenses? I'm doing two elective surgeries and putting on braces

echo basalt
#

and money in wasn't that good either because everything's coming at once

torn shuttle
#

I got 10k outgoing right now for the surgeries

remote swallow
#

what surgeries

smoky oak
#

man yall are scaring me

#

i have to survive on 950/month

echo basalt
tender shard
#

who has to pay for surgeries

#

isn't that what insurances are for

torn shuttle
#

elective surgeries

echo basalt
#

I broke my keyboard a couple weeks back

remote swallow
echo basalt
#

paid like 180 on a new one

torn shuttle
#

they are not covered by anyone

echo basalt
#

bought my phone on credit

#

also spent like 100 bucks at the dentist

torn shuttle
#

loser behavior

smoky oak
#

i have my late uncle's phone

remote swallow
torn shuttle
#

let your teeth rot and pay for the phone, cash, in full

smoky oak
#

luckily it wasn't part of his assets

#

cuz there were massive debts attached to those

torn shuttle
echo basalt
#

imagine being self conscious about your nose

torn shuttle
#

5k for the rhinoplasty, 4.5k for the teeth

echo basalt
#

just be naturally cute smh

young knoll
#

Just be a girl

smoky oak
echo basalt
#

you don't leave the house anyways so who cares

smoky oak
#

that is true

#

somehow im still underweight

#

like i dont move my ass except to buy food

#

wtf

tender shard
echo basalt
#

hm should I go to the beach tomorrow

torn shuttle
tender shard
torn shuttle
#

the inside of my nose looks like a halfpipe

smoky oak
#

looks like a low quality CAT scan slice

remote swallow
torn shuttle
#

yeah no shit sherlock

smoky oak
#

man your throat must feel terrible

#

i got a similar issue lmc what im taking

echo basalt
#

looks like a sad dude with a mohawk

tender shard
#

did somebody mention macgyver

smoky oak
#

really helps with that sore throat feeling after not drinking anything for 10 hours

torn shuttle
#

so yeah that's why I'm getting a rhinoplasty, I actually already had one surgery that took some flesh out so I could breathe at all

#

but I'm just going to rebuild this thing once and for all

#

better

#

stronger

#

less like a tony hawk pro skaters 2 map

smoky oak
#

actually i just got an idea

#

why dont we take a cat scan, take a random slice out of it, and make some video game map from it

#

gonna look organic but if its angled right u cant tell why

torn shuttle
#

knowing japan someone over there already did it

smoky oak
#

japan is ...preoccupied with other projects in that sector

hybrid spoke
smoky oak
#

welcome to medicine

torn shuttle
smoky oak
#

thats a woodcarver

#

a butcher uses bigger tools

hybrid spoke
#

its about the technique

smoky anchor
#

back to pink name babyyy

torn shuttle
#

I fundamentally don't understand online vanity

smoky oak
#

πŸ³οΈβ€πŸŒˆ

#

there

#

explanation given

tender shard
#

rainbow flags are fancy

torn shuttle
#

by that logic the fanciest avatar pfp imaginable is just a color wheel

young knoll
#

Now we’re talkin

smoky oak
#

i dont need to color my pfp to be unidentifiable lol

#

imma be surprised if any of yall can guess where it is from

smoky anchor
#

This is all the error tells me, how tf am I supposed to tell what pattern does this

smoky oak
#

did you check your regex?

#

might have some loopback in it

smoky anchor
#

I I think I know which one it is, but the error doesn't specify it

smoky oak
#

i mean

#

just paste them into regexer one by one

#

and look which one is flagged

smoky anchor
#

I'm gonna assume the java regex engine is not built for large strings

#

Testing essentially this, but larger

pseudo hazel
#

can I like stop 9minecraft from doing a little identity theft on the side?

tender shard
#

email them?

pseudo hazel
#

yeah I guess

young knoll
#

Apparently the listen to removal requests

#

Which is surprising

smoky anchor
#

they take down the things for a while then they put them back

#

or so I heard

tender shard
#

at least they give credit lol

pseudo hazel
#

they liek posted my plugin on their site with like a changed descritption and tehn claim I am the author

young knoll
#

I hear they listen to ICBMs