#help-development

1 messages ยท Page 670 of 1

eternal night
#

it "flattens" the stream of streams you'd map

#

into a single stream

zealous osprey
#

AHHH

#

very nifty; Thanks :D

#

"Inventory[0]" was just a string, I wanted to show why I had the second regex

quaint mantle
#

are you referring to the SetEntityDataPacket?

echo basalt
#

Ye

quaint mantle
#

don't i already have that?

echo basalt
#

Uhh

#

I'd try packing all values instead of non-default ones

quaint mantle
kindred sentinel
#

Is there any grindstone use event?

remote swallow
kindred sentinel
#

Thanks

wary topaz
#

MYSQL inquiry:

So I'm using mysql in my plugin and I wish to be able to:

set a value if it doesnt exist
update the value if it exists
the value is locarted in Players.PlayerData.uuid & Playerdata.language

Thanks

north nova
#

well you use mysql for that

#

so you need mysql

#

u got the rest dw i believe in u

echo basalt
#

yeah we're not chatgpt

remote swallow
#

INSERT INTO table VALUES() ON CONFLICT UPDATE VALUE ? WHERE uuid = ?

echo basalt
#

it's just a basic query

north nova
#

omg Stop!

echo basalt
remote swallow
#

i couldnt be arsed to type it fully

north nova
#

omg so you dare answer his question and not complete it !!! ! !!

tender shard
remote swallow
#

UrSus

tender shard
#

minecraft should add ursuses

#

well they already got ice ursuses but no other type of ursus

north nova
#

u mean the beer

knotty shell
#

Baby ice ursus

tender shard
#

ursus is such a funny word

chrome beacon
#

IJ Ultimate

north nova
#

this is built in????????????

#

i paid 1 WHOLE euro for SequenceDiagram

quaint mantle
eternal night
#

that is ultimite only iirc

north nova
#

its intellij yea i remember

#

it is

eternal night
#

the class diagrams

north nova
#

it's built into intellij

#

lol

chrome beacon
#

Ultimate only

wary topaz
#

while (resultset.next()) {
return resultset.getString("language");
}
'while' statement does not loop

chrome beacon
north nova
chrome beacon
#

you're returning

#

so it will never loop

wary topaz
#

o crap

#
public CompletableFuture<String> getLang(UUID uuid, String lang) {
        CompletableFuture.supplyAsync(() -> {
            String language = null;
            try (Connection connection = plugin.connectionPool.getConnection();
                 PreparedStatement statement = connection.prepareStatement("SELECT language FROM Players.PlayerData WHERE uuid = '?'")
            ) {
                statement.setString(1, uuid.toString());
                ResultSet resultset = statement.executeQuery();
                while (resultset.next()) {
                    language = resultset.getString("language");
                }
                return language;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        });
        return null;
    }```

How's this?
echo basalt
#

you're returning null

tender shard
north nova
#

look at the rest tho!!!!

tender shard
#

the arrows are fancy

north nova
#

they're great

wary topaz
north nova
#

what

echo basalt
slender elbow
#

you return the CompletableFuture created by supplyAsync

wary topaz
#

ohh

lilac dagger
wary topaz
#

tysm

#

perfecto

echo basalt
#

no clue why you're supplying if there's nothing to return

wary topaz
#

?

#

is there another thing I could do besides supply?

echo basalt
#

also this won't work

wary topaz
#

oh thanks lo

tender shard
echo basalt
#

.

keen charm
#

Hey guys! How can I turn BaseComponent[] to a BaseComponent?

north nova
#

...

wary topaz
#

BaseComponent[1]

keen charm
#

Thanks!

wary topaz
#

wait [0]

keen charm
#

Oh

#

Yeah, makes sense

lilac dagger
#

i'm pretty sure there's a better solution

echo basalt
#

or.. just append them all

tender shard
# tender shard setOrUpdateLang could return a Future<Void>
    // Why not return the future?
    public void doSth1() {
        CompletableFuture.supplyAsync(() -> {
            doSth();
            return null;
        });
    }
    
    // Now the caller can check whether it's done
    public CompletableFuture<Void> doSth2() {
        return CompletableFuture.supplyAsync(() -> {
            doSth();
            return null;
        });
    }
lilac dagger
#

not sure if md has such a method already

tender shard
#

that's like asking "how can I turn mfnalex into a char" and then you just use 'm'

knotty shell
#

Lulz

echo basalt
#

Legend says that the first thing that comes to mind is often the worst possible solution

tender shard
#

unless the array only has one element ofc

wary topaz
#
public CompletableFuture<Void> setOrUpdateLang(UUID uuid, String lang) {
        return CompletableFuture.supplyAsync(() -> {
            try (Connection connection = plugin.connectionPool.getConnection();
                 PreparedStatement statement = connection.prepareStatement("INSERT INTO Players.PlayerData (uuid, language) VALUES (?, ?) ON DUPLICATE KEY UPDATE language = VALUES(language);")
            ) {
                statement.setString(1, uuid.toString());
                statement.setString(1, lang);
                statement.executeQuery();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return null;
        });
    }```

How is this Illusion?
keen charm
austere cove
lilac dagger
echo basalt
#

It's as if you didn't read your own code

keen charm
north nova
#

maybe it's for a reason?

tender shard
#

for a reason

#

yeah lol

knotty shell
tender shard
#

imagine Player#setDisplayName() would only accept a char instead of a string

#

why do you need a BaseComponent instead of a BaseComponent[] ?

zealous osprey
compact zodiac
#

please give him mute

echo basalt
knotty shell
#

Hammer call

cunning osprey
#

this event is made for y costum item but it works with whatever item i right click


import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.sveaty.items.coustumitems.ItemManager;

public class onRightClick  implements Listener {
    @EventHandler
    public void OnRightClick(PlayerInteractEvent e) {
        if (e.getAction() == Action.RIGHT_CLICK_AIR) {
            if (e.getItem() != null) {
                 e.getItem().isSimilar(ItemManager.PotionWand);
                    Player p = e.getPlayer();
                    p.sendMessage(ChatColor.GOLD + "Potion Activated!");
                    p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 50, 50));
                }
            }

        }
    }
quaint mantle
#

๐Ÿ’€

wary topaz
#

should I use runAsync?

tender shard
remote swallow
#

supplyAsync

lunar wigeon
wary topaz
#

i jsut want to set it not read it

#

but I dont want it to slow down the server

north nova
#

huh

austere cove
#

Don't.

echo basalt
#

App.getInstance skullWazowski

lilac dagger
wary topaz
#

okay good

compact zodiac
#

Before send message for help please write to chatgpt to fix error

#

is better

north nova
#

???????

compact zodiac
#

fr

#

fr

#

f

#

rf

wary topaz
#

im not getting an output

remote swallow
#

show code

quaint mantle
quaint mantle
#
 public void setOrUpdateLang(UUID uuid, String lang) {
        CompletableFuture.runAsync(() -> {
            try (Connection connection = plugin.connectionPool.getConnection();
                 PreparedStatement statement = connection.prepareStatement("INSERT INTO Players.PlayerData (uuid, language) VALUES (?, ?) ON DUPLICATE KEY UPDATE language = VALUES(language);")
            ) {
                statement.setString(1, uuid.toString());
                statement.setString(1, lang);
                statement.executeQuery();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        });
    }

    public CompletableFuture<String> getLang(UUID uuid) {
        return CompletableFuture.supplyAsync(() -> {
            String language = null;
            try (Connection connection = plugin.connectionPool.getConnection();
                 PreparedStatement statement = connection.prepareStatement("SELECT language FROM Players.PlayerData WHERE uuid = ?")
            ) {
                statement.setString(1, uuid.toString());
                ResultSet resultset = statement.executeQuery();
                while (resultset.next()) {
                    language = resultset.getString("language");
                }
                return language;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        });
    }```
#

omg what did i see

#

rn

echo basalt
#

wallah

quaint mantle
#

statement.setString(1, uuid.toString());
statement.setString(1, lang);

#

xD

remote swallow
#

you dont need to just copy his code and send it here

#

we can see it

outer river
#
public static List<Category> getAllowedCategories(Player player){
        List<Category> list = new ArrayList<>();
        
        for (Category category : getAllCategory()) {
            if (player.hasPermission(category.getPermission())) {
                list.add(category);
            }
        }
        return list;
    }

Hello, i get my permissions from diffrent custom yaml files, but hasPermission() always return true, even if player hasn't the permission, could you help me pls ?

remote swallow
#

but this is probably the issue

#

and if a player should only have 1 language

#

so you dont need a while

echo basalt
#

goofy ahh code

echo basalt
wary topaz
quaint mantle
#

return null;

#

xD

wary topaz
#

omg

north nova
#

?????

#

that's not the problem

quaint mantle
#

thats it

north nova
#

it returns null if it gets past try catch

#

read his code

#

what?

#

if (rs.next()) return rs.getString("language");

echo basalt
#

help my iq is null

compact zodiac
tender shard
#

does anyone know what this "info" thing is for in spiget's author details?

quiet ice
#

I have seen this code at least once before

remote swallow
#

that code sends everyones ip to everyone

#

not always accurate

echo basalt
#

lmfao

hazy parrot
#

isRussanIp ๐Ÿ’€

tender shard
#

imagine using a HttpUrlConnection without try/resources

austere cove
#

That piece of code has so many design flaws ๐Ÿ’€

#

impressive considering it's only a few lines of code

quaint mantle
quiet ice
#

Not even the async one ๐Ÿ’€

remote swallow
#

thats nice

quiet ice
#

Sir, this is beyond repair

tender shard
shadow night
#

Woops wrong channel

outer river
austere cove
north nova
#

ill vomit

#

oh my god

tender shard
austere cove
#

complete guess based on the context ยฏ_(ใƒ„)_/ยฏ

tender shard
#

what's the purpose? everyone in russia uses a VPN anyway

austere cove
#

what value does my profile have mr mfnalex

quiet ice
#

Why does Android not allow to open arbitrary files arbitrarily???

tender shard
quiet ice
#

Phones are such a piece of shit smh

tender shard
shadow night
#

You need an anticheat, not a russian people blocker

quiet ice
austere cove
#

for all I know that could be when I first uploaded a pfp

#

the plot thickens

#

it's relatively close to my account creation date and I have never changed my pfp on spigot

quiet ice
#

Multiple ACs?

tender shard
compact zodiac
#

but use verus and cannot bypass ๐Ÿ˜Ž

tender shard
#

Ursus = best anti cheat

north nova
#

The beer

#

right

tender shard
#

ursus > verus

quiet ice
#

I'd just use manual moderation and firewall IP range blocks

compact zodiac
#

use AI for anticheat

#

and educate

shadow night
#

Imo blocking a certain group of IPs is just assholeism. Losing legit players and getting people to play with vpns

quiet ice
#

VPNs are going to get illegal at some point anyways

#

Regardless of country

shadow night
#

You can't really control that lol

quiet ice
shadow night
#

People are gonna be using darkweb vpns, calling vpns other names to make those allowed, etc.
Also, as long as there are big companies doing vpns, why shouldn't it be a thing. Tax is coming, money is good, why make it worse for everybody

quiet ice
#

Open VPNs/Proxies are harder to regulate though

tender shard
#

does anyone know why mojang uses a Holder<?> for literally every single line in their code even when they never actually change the value?

wary topaz
wary topaz
#

plugin.message.getLang(player.getUniqueId()).whenComplete((language, e) -> {
if (e != null) {
e.printStackTrace();
return;
}
player.sendMessage(language);
});

tender shard
#

noted

river oracle
# tender shard noted

well why do people use Optional? It looks fancy same applys to Mojang's use of holder

tender shard
tender shard
#

oh wait

north nova
#

if (rs.next()) return rs.getString("language");

tender shard
#

i didnt see the return in rs.next

north nova
#

does literally

#

no one

#

see that wtf

tender shard
#

no, because it's on the same line

#

that's why people dont see it lol

compact zodiac
#

git

wary topaz
#

I added {

if (rs.next()) {
return rs.getString("language");
}

tender shard
#

well it seems like rs.next() returns false

compact zodiac
#

not public, sell this anticheat

tender shard
#

to see if it actually returns true

carmine mica
tender shard
carmine mica
#

no it doesnt

#

tags can change whenever

shadow night
#

If anybody needed your code they would maybe

tender shard
#

thx

carmine mica
#

also if they ever hope to allow reloading of worldgen changes without require a restart, holders are vital

#

because then the value will change, and having a wrapper type instead of updating any state fields in the codebase will be way better

wary topaz
#

no debug messages

lilac dagger
#

i've seen your code, don't worry, nobody wants it

shadow night
lilac dagger
#

writing bad code is in its way a drm

wary topaz
remote swallow
wary topaz
#

the command works

#

also why isnt /set setting it

#

its not there but I want it to insert it

shadow night
tender shard
wary topaz
#

I make it return rtue

#

true

lilac dagger
#

oof

shadow night
#

I told them to email 9minecraft asking to take it down and the person later came back saying they did take it down

wary topaz
#

can spigot not do anything about leaking websites?

shadow night
shadow night
wary topaz
#

dmca claim

remote swallow
#

spigot doesnt own the software

shadow night
#

They do not own the plugin or any part of it and most plugins are open source

compact zodiac
#
public class spigotplugin extends JavaPlugin {
   public final String helpMessage1 = "test1";
   public final String helpMessage2 = "test2";

    public void onEnable() {
      new spigotTask().runTaskTimer(this, 20L, 20L);
      getCommand("help").setExecutor(this);
    }
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
      if (sender instanceof CommandSender) {
            sender.sendMessage(helpMessage1);
            sender.sendMessage(helpMessage2);
        }
        return false;
    }
}``` why i have NullPointerException on write /help
shadow night
wary topaz
#

register your command @compact zodiac

#

in plugin.yml

compact zodiac
#

when write /help

wary topaz
#

make it implement CommandExecutor

compact zodiac
#

send on console NullPointerException

remote swallow
#

?paste the error

undone axleBOT
shadow night
remote swallow
#

oh ur missing the @Override

#

that onCommand does nothing

slender elbow
#

override doesn't do anything at runtime

compact zodiac
#

okey

slender elbow
#

it's just a hint to the compiler, if you are trying to override a method that doesn't exist in a superclass/interface then it won't compile

shadow night
#

And you're missing implements CommandExecutor too

tall dragon
#

javaplugin does not need that iirc

remote swallow
#

javaplugin has that

shadow night
#

Really? Didn't know

tall dragon
#

else it would not even compile

#

since he passes it in

shadow night
#

Hmm right

#

But doing that sounds like a bad idea, just make a seperate class

compact zodiac
#

I changed and still error NPE

tall dragon
#

show ur error pls

shadow night
#

I have just one question, if(sender instanceof CommandSender) why

tall dragon
#

thats a big mystery!

compact zodiac
#

AI write this

tall dragon
#

ai did a pretty bang up job then

slender elbow
shadow night
north nova
#

huh

austere cove
#

has anyone ever bothered to properly handle proxiedcommandsender?

tender shard
shadow night
#

lmao

#

Hardcoding fun

tall dragon
tender shard
austere cove
#

exactly

tall dragon
#

so please!

tender shard
#

FurnaceAndDispenser

tall dragon
#

enlighten us!

shadow night
austere cove
#

it's when u do stuff like /execute as

tall dragon
#

ah

shadow night
#

Wait, you can actually handle that?

tender shard
#

I always thought it'd just use the "as" thing as actual sender

shadow night
#

Haha mfs, y'all not sudoing me anymore haha

tender shard
#

usermod -aG sudo

#

sounds like a big german company: UserMod AG

shadow night
#

Lmao true

tender shard
#

stonks down

shadow night
#

We need usermod -GmbH

tender shard
#

i only own a GbR

austere cove
#

the thing is, imagine having a command like

@Override
public boolean onCommand(...) {
    if (sender instanceof Player) {
      // Do stuff
    }
    else {
      sender.sendMessage("You need to be a player");
    }
    return true;
}

This will fail if you do /execute as @p run <command>

tender shard
#

interesting

shadow night
#

OHH WHAT?

tall dragon
#

guess all my command wont work then

#

lmfao

#

on that

tender shard
#

thank god I let ACF handle my "is this a player" checks

tall dragon
#

u can just yell at aikar if shit doesnt work eh

#

smart

tender shard
#

yeah but IIRC aikar hasn't been doing anything in years

austere cove
#
CommandSender root = sender;
while (root instanceof ProxiedCommandSender pcs) {
    root = pcs.getCallee();
}
if (root instanceof Player) {
  // And now you should still use sender.sendMessage("") and not root.sendMessage(""), because a proxied command sender propagates output to the caller, not the callee
}
tender shard
#

while? how many execute as do people use lol

austere cove
#

if you want to make it work in all cases

tender shard
#

/execute as mfnalex execute as mfnalex execute as mfnalex say is this me???

quiet ice
tender shard
#

they must be large

#

otherwise it couldn't be an aktiengesellschaft

quiet ice
slender elbow
quiet ice
austere cove
#

but you can do it through the Spigot API

#

in any case it's so niche noone cares, just a funny edge case to think about

lunar wigeon
#
@EventHandler
public void onjoin(PlayerJoinEvent event) {
  while (player.isOnline()) {
    player.sendMessage("Welcome on pineapplemc.com!");
  }
}

why server crashes when player joins?

north nova
#

Hmm

tall dragon
#

becuz thats an infinite loop

#

untill you leave

#

xd

north nova
#

0ms

#

it just dies

tall dragon
#

yea

tall dragon
lunar wigeon
#

but I want to send it everytime when player is online

north nova
#

yeah?

remote swallow
#

that will

lunar wigeon
#

yes

remote swallow
#

currently it spams it

#

you only need to send it once after a 1 tick delay

tall dragon
#

untill the server goes boomboom

lunar wigeon
#

why boomboom

north nova
#

cause it's a while loop

#

no

#

if(onlinePlayer.getUniqueId().equals(joinedPlayer.getUniqueId() {
return
}

tall dragon
#

well that will send everyone a message. idk if that is what they wanted

#

joinedPlayer.getServer, thats a thing?

lunar wigeon
#

I want to send it all the time when player is online, should I put while inside the loop?

#
 @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        Player joinedPlayer = event.getPlayer();
        String welcomeMessage = "Welcome to pineapplemc.com!";
        
        for (Player onlinePlayer : joinedPlayer.getServer().getOnlinePlayers()) {
            while (onlinePlayer.isOnline()) {
              onlinePlayer.sendMessage(welcomeMessage);
            }
        }
}
remote swallow
tall dragon
#

u want to continuously send the same message while the player is online?

lunar wigeon
#

yes

upper hazel
#

help, I'm making my api to work with mysql, but writing a method to create a table came across problems. How to accept absolutely any data, I donโ€™t know what they are specifically

remote swallow
#

send it once a second

muted dirge
lunar wigeon
#

I want to spam it

north nova
#

while loop is 0tick

lunar wigeon
#

why

#

I want 0 tick

north nova
#

cause it's 0ms

hazy parrot
#

you have to do it in separate thread, while loop will suspend main thread

north nova
#

that will also crash

upper hazel
lunar wigeon
#

what are threads?

north nova
#

he has to be trolling

lunar wigeon
#

new Thread()?

remote swallow
opaque scarab
#

Stupid question, but how can I copy an instance of a chunk and change blocks in it without changing the original chunk?

lunar wigeon
muted dirge
remote swallow
hazy parrot
# lunar wigeon why

i gave you explanation, while loop doesn't allow code to proccess further, hence blocking thread

north nova
#

if u still want to use while u can run it asynchronously and use Thread.sleep(1000)

#

or w/e

lunar wigeon
tall dragon
#
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        for (int i = 0; i < 10; i++) {
            Bukkit.getServer().getScheduler().runTaskTimerAsynchronously(this, () -> {
                while (true) {
                    e.getPlayer().sendMessage(":DD");
                }
            }, 1L, 10L);
        }
        
    }

here u go

#

spam

lunar wigeon
#

and not 1000 seconds but 1

tall dragon
#

๐Ÿ˜„

north nova
#

no

muted dirge
lunar wigeon
#

spam

valid burrow
#

how can i get stuff from thew config as a static

muted dirge
#

Why you are using loops

upper hazel
# north nova ????

I want that when creating a table it was not necessary to write a query, but only write what variables and how they will be called in the table. But the class itself does not know what kind of data it can accept and in what quantities, because there are many types of tables

lunar wigeon
#

to spam

muted dirge
#

To spam what

#

The message??

north nova
#

show ur code

lunar wigeon
#

its lobby plugin

tall dragon
#

but why would u wanna flood someones chat

muted dirge
#

Why you want to spam messages ๐Ÿ˜ญ

lunar wigeon
muted dirge
#

Just send a title

valid burrow
tall dragon
lunar wigeon
upper hazel
muted dirge
#

If youre gonna make sure they'll see it

tall dragon
#

typical lobby plugin's dont do that

lunar wigeon
tall dragon
#

alright that will indeed make it unique

muted dirge
#

Thats not unique

valid burrow
lunar wigeon
#

so will you help me or no

upper hazel
muted dirge
tall dragon
#

but we did..

opaque scarab
north nova
valid burrow
muted dirge
#

Whats the problem

upper hazel
lunar wigeon
hazy parrot
lunar wigeon
#

at least 40 messages per second

compact zodiac
#

[20:17:53 WARN]: Unexpected exception while parsing console command "help"
org.bukkit.command.CommandException: Unhandled exception executing command 'help' in plugin spigotplugin v1.0-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.dispatchCommand(CraftServer.java:1003) ~[paper-1.20.1.jar:git-Paper-47]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.dispatchServerCommand(CraftServer.java:966) ~[paper-1.20.1.jar:git-Paper-47]
at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:501) ~[paper-1.20.1.jar:git-Paper-47]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:448) ~[paper-1.20.1.jar:git-Paper-47]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1394) ~[paper-1.20.1.jar:git-Paper-47]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1171) ~[paper-1.20.1.jar:git-Paper-47]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.1.jar:git-Paper-47]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because "input" is null

tall dragon
#

yea thats what i send you

muted dirge
#

WHYY

north nova
#

that sounds like nosql to me

knotty shell
#

You spamming think there some rules ya breaking...

north nova
#

but i have no idea what ur trying to do

upper hazel
north nova
#

i literally don't understand

compact zodiac
#

package polska.polska.spigotplugin;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class spigotPlugin extends JavaPlugin {

public String helpMessage1 = "test1";
public String helpMessage2 = "test2";
@Override
public void onEnable() {
    new spigotTask(this).runTaskTimer(this, 20L, 20L);
    getCommand("help").setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (sender instanceof CommandSender) {
        sender.sendMessage(helpMessage1);
        sender.sendMessage(helpMessage2);
    }
    return false;
}

}

north nova
#

why would u reinvent the wheel

valid burrow
#

does anyone now know how to get a static from the config cause
static List<String> allowPets = getConfig().getStringList("allowPets"); doesnt work "Non-static method 'getConfig()' cannot be referenced from a static context"

hazy parrot
tall dragon
#

so 100 X 20 messages a second

compact zodiac
lunar wigeon
#

noo I really want chat :<

upper hazel
lunar wigeon
tall dragon
#

the time period minecraft servers work with

lunar wigeon
#

why is it 1/20 of second

muted dirge
#

Wrong reply sorry

lunar wigeon
#

why cant it be 1/100?

north nova
#

that really sounds like a troll

#

to me

#

idk

tall dragon
#

....

north nova
#

dont bother

hazy parrot
#

at this point im sure he is trolling

#

yeah

muted dirge
knotty shell
#

Because it can't deal with it

north nova
#

have u tried to see if it works?

muted dirge
#

?tas

undone axleBOT
upper hazel
manic hamlet
#

Hey, is there a way to upload / update a ressource on the spigotmc website via a API? For example on every github release, it automatically updates and uploads a ressource on spigotmc?

lunar wigeon
#

can I boost tick to 1/100 seconds?

#

or 50+

tall dragon
north nova
lunar wigeon
#

to boost performance

north nova
#

but you still need to know the types like

#

i doubt anyone will understand what you really mean by that

knotty shell
#

Rewrite the whole server bubye

muted dirge
tall dragon
#

pretty sure there actually is a plugin that will allow u to change tickspeed to whatever u want

#

but still. whyyy

muted dirge
#

๐Ÿคฏ

north nova
tall dragon
#

mightve been a mod

#

no clue

hazy parrot
#

if you want to have void foo(q,w,e,r,t,y,u,...), yeah, those are called varargs as geol said

upper hazel
lunar wigeon
#

can I boost ticks to around 50?

tall dragon
#

no

lunar wigeon
#

so 1 second = 50 ticks

#

why not?

muted dirge
#

Why yes?

tall dragon
#

because the entire server is built to run at 20 ticks per second

north nova
#

what are you trying to store

manic hamlet
#

Hey, is there a way to upload / update a ressource on the spigotmc website via a API? For example on every github release, it automatically updates and uploads a ressource on spigotmc? ^^

lunar wigeon
tall dragon
#

sure

#

go ahead

lunar wigeon
#

how to do it

muted dirge
#

you are crazy man

tall dragon
#

fork paper and have fun

quiet ice
muted dirge
#

๐Ÿ’€

knotty shell
#

This pleb prob never even played the game once or ever touched redstone

lunar wigeon
#

what does it do

lunar wigeon
muted dirge
undone axleBOT
tall dragon
#

here u can fork spigot!

quiet ice
lunar wigeon
#

and?

upper hazel
# north nova that makes no sense man

there is a method for creating a table in mysql api, but as an api, I canโ€™t know exactly what data will come to the input, what variables and in what quantities

manic hamlet
#

(Upload) / Update a ressource via a API?

tall dragon
#

thats randomtickspeed

#

not tickspeed

muted dirge
#

๐Ÿ”ฅ๐Ÿ”ฅ

north nova
#

you need to know the type of input and output

#

it's just how it works

muted dirge
#

Any good mysql lib?

upper hazel
#

how spring do this?

tranquil dome
#

So I want to shoot an arrow with lead attached to it. Did some research and decided to go with an invisible living entity that is the arrow's passenger and has the lead attached to it. What living entity would be the best to use for this?

north nova
#

so why not wait until you can test it, and test it?

tall dragon
#

since when does an egg live

tranquil dome
#

egg is inherits LivingEntity??

muted dirge
#

its an entity

#

Right?

knotty shell
#

^

tall dragon
#

but not living

#

id say at least

muted dirge
#

aww

#

those little gray things

#

In strongholds

tranquil dome
muted dirge
#

What are these named

tranquil dome
#

egg is not a living entity

north nova
#

silverfish

knotty shell
#

Was gonna say it's a throwavle

muted dirge
#

Yes silverfish

#

Silverfish isnt throwable

upper hazel
knotty shell
#

Try asking in a client modding place?

north nova
#

huh

tall dragon
#

huh2

muted dirge
#

TabCompleteEvent

muted dirge
manic hamlet
muted dirge
#

no

upper hazel
#

oh bro demm right

quaint mantle
#

mellstroy

upper hazel
#

1 btc this math?

#

in dollars

#

this dev?

tall dragon
#

but why do all of us need to know

#

in a help development channel

upper hazel
#

2 941 732,91 RUB
oh demm

#

give me money i need this)

#

where did he get the bitcoins lol

#

Why should he give you?

cobalt thorn
#

Why not giving it to me

tranquil dome
#

Does anyone know why this would happen?
Caused by: java.lang.NoSuchMethodError: 'boolean org.bukkit.entity.Arrow.addPassenger(org.bukkit.entity.Entity)
Code:

    @EventHandler
    fun onPlayerToggleSneak(event: PlayerToggleSneakEvent) {
        if (!event.isSneaking) return

        val player = event.player
        val location = player.location
        val world = location.world ?: return

        val entity: LivingEntity = world.spawn(location, Silverfish::class.java)
        val arrow: Arrow = player.launchProjectile(Arrow::class.java)

//        entity.isInvisible = true
        entity.setLeashHolder(player)
        arrow.addPassenger(entity)

        event.player.sendMessage("sneak")
    }

I get a similar exception with entity.setInvisible(true).

sullen wharf
#

I think those methods are exclusive to paper

#

not sure

echo basalt
tranquil dome
#

Oh wait

echo basalt
#

P sure that multiple passengers is either 1.10 or 1.12

tranquil dome
#

Copied structure from another project which is 1.16

#

while this one is for 1.8

echo basalt
#

?1.8

undone axleBOT
tranquil dome
#

i know i know

#

i dont like it either

cobalt thorn
cobalt thorn
north nova
echo basalt
tranquil dome
#

Wait is it even possible to make an entity invisble with the 1.8 api?

upper hazel
#

9 yers dev spigot๐Ÿฅถ

echo basalt
cobalt thorn
tranquil dome
#

nms? ๐Ÿ˜”

north nova
echo basalt
#

I started making plugins at like 11-12

#

started coding at 6 flooshed

cobalt thorn
north nova
#

i was coding the second i was born bro

upper hazel
#

I'm bored give some realties for development in bukkit api

north nova
#

literally didnt even breathe i did psvm first

echo basalt
#

you're still asking for help with beginner issues

north nova
cobalt thorn
upper hazel
echo basalt
north nova
#

it makes sense we just wont get it

cobalt thorn
echo basalt
#

message just like bitches

#

we just don't get it

north nova
#

yes

upper hazel
north nova
echo basalt
#

when you're bored

upper hazel
echo basalt
#

ughmhm

#

make nms

#

:)

sullen wharf
upper hazel
#

oh demm yuo right

sullen wharf
#

it's the one and only

upper hazel
#

do stack buf potion

cobalt thorn
#

It describe my daily routine

valid burrow
echo basalt
#

sounds like static abuse to me

valid burrow
#

what

#

but i do cause i need it in a function that requires it to be static xd

echo basalt
#

pass it as a param then

#

why is your function static

austere cove
#

nothing needs to be static

ivory sleet
#

yeah well except the main method (altho i believe that is gonna be changed if it didnt alr happen with some JEP) (:

unreal quartz
#

Fuck OOP ๐Ÿ‘
Haskell plugins when?

river oracle
#

Whenever you want

#

Does java and haskell have any easy Interop?

austere cove
#

haskell <3

flint coyote
#

I had to write compilers using Haskell. Never again

kindred sentinel
#

If team.addPlayer is depricated then how to add player to the team?

austere cove
#

Team#addEntry(...)

kindred sentinel
#

oh ok thx

austere cove
remote swallow
#

?jd-s

undone axleBOT
kindred sentinel
# remote swallow ?jd-s

Yeah i know but i wasn't sure how to add entity using addEntry because it receives only String, but because I don't want to sound stupid for this question, I'll just keep trying to figure it out myself

chrome beacon
#

uuid

kindred sentinel
#

oh

chrome beacon
#

or player name

kindred sentinel
#

thx

chrome beacon
#

Probably

#

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

yes

#

why not

#

no it isnt

river oracle
#

bro legit asked something just to pick a fight lol

quaint mantle
#

lombok is virus

north nova
#

ah tes

#

the lombok virus incident

remote swallow
north nova
#

u wouldnt get it

quaint mantle
#

yes it is

remote swallow
#

it isnt

lunar wigeon
#

it is virus

remote swallow
#

proof?

quaint mantle
#

lombok = virus

lunar wigeon
remote swallow
#

send the link

north nova
#

what the fuck

lunar wigeon
#

google it yourself

remote swallow
#

you were saying?

lunar wigeon
#

no

north nova
#

bro dont bother

lunar wigeon
#

its virus

north nova
#

they're trolling

lunar wigeon
#

no

#

no one uses lombok in jdk 11+

wary topaz
flint coyote
#
             try {
                field.setAccessible(true);
                defaultValue = field.get(event);
            } catch (IllegalAccessException e) {
                // not sure if this can be reached due to setAccessible(true);
                e.printStackTrace();
                return null;
            }
``` Can the catch ever happen?
north nova
#

SecurityException i think its called

wicked remnant
#

setAccessible throws SecurityException if the request is denied

flint coyote
#

When would that be denied?

chrome beacon
#

When someone doesn't want you to modify a value

flint coyote
#

I see. Alright I'll catch all Exceptions then

#

Thx

chrome beacon
#

Or better just use trySetAccessible

flint coyote
#

I think a stacktrace would be helpful in that case so I'll stick with a try-catch. Shouldn't happen anyway

wicked remnant
#

note that SecurityManager is deprecated for removal

chrome beacon
north nova
#

just write skript u dont need to know this java bullshit accessible reflection generics abstraction u dont need that shit

young knoll
#

kek

flint coyote
#

I'm pretty sure what I'm currently developing is not even possible with script.
Can scripts even have an api for other scripts?

north nova
#

yes for sure

flint coyote
#

Well. Still it's a very abstract implementation. I don't know script but I doubt it would work

twin venture
#

Hi , if i use getInventory().setContents , will this set the correct slot of the item?

wary topaz
#
@EventHandler
    public void onJoin(PlayerJoinEvent event) {
        plugin.message.getLang(event.getPlayer().getUniqueId()).whenComplete((language, e) -> {
            if (e != null) {
                e.printStackTrace();
                return;
            }
            Bukkit.getConsoleSender().sendMessage("debug1");
            if (language.isEmpty()) {
                Bukkit.getConsoleSender().sendMessage("debug2");
                plugin.message.setOrUpdateLang(event.getPlayer().getUniqueId(), "en");
            }
        });
    }

Why is "Debug2" Never getting reached?

#

and yes it is mysql

flint coyote
flint coyote
wary topaz
#

good idea

#

it doesnt print anything

quaint mantle
flint coyote
wary topaz
#

ill try it

#

but whats the differenece?

flint coyote
#

IsBlank is true when your string is " " while isEmpty would return true only for ""

wary topaz
#
@EventHandler
    public void onJoin(PlayerJoinEvent event) {
        plugin.message.getLang(event.getPlayer().getUniqueId()).whenComplete((language, e) -> {
            if (e != null) {
                e.printStackTrace();
                return;
            }
            Bukkit.getConsoleSender().sendMessage("debug1");
            if (language.isBlank()) {
                Bukkit.getConsoleSender().sendMessage("debug2");
                plugin.message.setOrUpdateLang(event.getPlayer().getUniqueId(), "en");
            }
        });```

Still am not getting debug2
#

[21:23:00 INFO]: [com.zaxxer.hikari.HikariDataSource] Players-Connection-Pool - Start completed.
[21:23:00 INFO]: debug1

flint coyote
#

Try printing language.length()

wary topaz
#

still didnt print anything

#

wtg

#

wtf

#

Bukkit.getConsoleSender().sendMessage(language.length() + "");

flint coyote
#

Directly after your debug1?

#

Not within the if obviously

wary topaz
#

nothing after debug1

#

Bukkit.getConsoleSender().sendMessage("debug1"); if (language.isBlank()) { Bukkit.getConsoleSender().sendMessage("debug2"); plugin.message.setOrUpdateLang(event.getPlayer().getUniqueId(), "en"); } Bukkit.getConsoleSender().sendMessage(language.length() + "");

flint coyote
#

It should not matter but try to add it after debug1 but before the if

wary topaz
#

wait ill show you my code for the thing

#
public CompletableFuture<String> getLang(UUID uuid) {
        return CompletableFuture.supplyAsync(() -> {
            try (
                    Connection connection = plugin.connectionPool.getConnection();
                    PreparedStatement statement = connection.prepareStatement("SELECT language FROM Players.PlayerData WHERE uuid = ?")
            ) {
                statement.setString(1, uuid.toString());
                ResultSet rs = statement.executeQuery();
                if (rs.next()) {
                    return rs.getString("language");
                }

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return null;
        });
    }
}```
slender elbow
#

if there is no entry, it will return null as value

quaint mantle
#

Anyone know what the new networkmanager is in new versions?

flint coyote
#

Wouldn't that end up in a nullpointer when running if(language.isEmpty()) though?

slender elbow
#

it does

remote swallow
flint coyote
#

I would have expected him to see that then lol

slender elbow
#

but the CompletableFuture is storing it for the continuation

flint coyote
#

Ohh

ivory sleet
#

?ban @quaint mantle flame bait + trolling

undone axleBOT
#

Done. That felt good.

flint coyote
#

What's a flame bait?

slender elbow
#

so either don't return null in there, or handle null inside the whenComplete function

austere cove
onyx fjord
#

dont know who that is or what he done

flint coyote
#

Oh, never heard of that

onyx fjord
#

but that aint look good

ivory sleet
remote swallow
#

lmfao

#

huge chatgpt vibes

lunar wigeon
remote swallow
#

no package, no build system, Called Main

lunar wigeon
#

XD

river oracle
#

oh lord

#

new GammaTask(this).runTaskTimer(this, 0, interval);

ivory sleet
#

They clearly know something we don't :>

timid hedge
#

How do i check if a arg is a player that have played before?

onyx fjord
#

wait where is even plugin.yml

remote swallow
#

doesnt have one

onyx fjord
#

๐Ÿ’€

onyx fjord
#

bro just packs shit up manually in the jar

lunar wigeon
#

Bukkit.getOfflinePlayer

onyx fjord
remote swallow
#

id recommened using Bukkit.getOfflinePlayers instead

#

if you use Bukkit.getofflineplayer you will query the mojang db

ivory sleet
#

since there is no getOfflinePlayerIfCached on spigot yeah I agree with epic

lunar wigeon
onyx fjord
flint coyote
lunar wigeon
remote swallow
#

changed yesterday

quaint mantle
onyx fjord
#

?

#

im just asking

ivory sleet
#

quite hard to run a server then id say

remote swallow
flint coyote
#

well a localhost server doesn't require internet

onyx fjord
#

yeah

lunar wigeon
onyx fjord
#

does offline mode still query mojang?

onyx fjord
#

ofc people can join it

#

just thru local network

lunar wigeon
#

no, it queries world

onyx fjord
#

server doesnt need internet to run

#

if you run offline mode

#

thats why its called offline mode

ivory sleet
#

๐Ÿ’€

onyx fjord
#

im just wondering what getOfflinePlayer does in such scenario

lunar wigeon
#

didnt getOfflinePlayer query world?

austere cove
onyx fjord
#

@ivory sleet idk if you saw that but dude told me to kill myself

#

can you check logs

remote swallow
#

i bet @quaint mantle is that person

onyx fjord
#

yep

#

staff has logs

#

๐Ÿง 

#
  • translators exist
#

uhh staff

remote swallow
#

lmfao

flint coyote
#

@ivory sleet

onyx fjord
#

@austere cove

north nova
#

what the fuck is wrong with people

onyx fjord
#

๐Ÿ˜‚

remote swallow
#

they continue to send gifs

onyx fjord
#

famous last words

remote swallow
#

with no embed perms

ivory sleet
#

I was trying to route freshmeat accounts but seems like that feature is gone from cafebabbe

remote swallow
#

what did it do

ivory sleet
#

?cleanup

undone axleBOT
#
CafeBabe Help Menu
Syntax: ?cleanup 
Base command for deleting messages.

โ€‹

**__Subcommands:__**

after Delete all messages after a specified message.
before Deletes X messages before the specified message.
between Delete the messages between Message One and Message Two...
bot Clean up command messages and messages from the bot in the...
duplicates Deletes duplicate messages in the channel from the l...
messages Delete the last X messages in the current channel.
self Clean up messages owned by the bot in the current channel.

**__Subcommands:__** (continued)

text Delete the last X messages matching the specified text in...
user Delete the last X messages from a specified user in the cu...

onyx fjord
#

we shouldnt have challenged his programming skills

flint coyote
#

Can we have a message cooldown of like 3-5 seconds for unverified people?

ivory sleet
#

honestly idk how to use the cleanup command I will just manually delete

remote swallow
#

conclure cant you just ban them and it purges their cache

ivory sleet
#

I banned them

onyx fjord
ancient plank
#

Its

ivory sleet
#

but idk, I bet this wont be the last time we deal with them

#

Adele can u help me delete these messages :>

#

oh did u alr do it?, or someone did at least

ancient plank
#

cleanup user (userid) after (messageid)

ivory sleet
#

ah ty

onyx fjord
#

๐Ÿ™ famous last words

ivory sleet
#

yes

lunar wigeon
ivory sleet
#

well they have equivalent perms

lunar wigeon
#

it seems like you want to talk with him

onyx fjord
#

with what he sent me

quaint mantle
#

xDDDD

#

WHAT

sullen marlin
#

Wtf is going on lol

remote swallow
#

trolls

ivory sleet
#

some guy is harassing kacper

sullen marlin
#

Block

onyx fjord
ivory sleet
#

also md5, maybe we can get the logs channel back working :,)

onyx fjord
#

i suspect why

lunar wigeon
#

hello @sullen marlin

ivory sleet
austere cove
#

always fun

ivory sleet
#

yea never gets old :>

onyx fjord
#

uhm guys

austere cove
#

what happened leading up to this?

onyx fjord
#

recheck his repo

#

for the gamma thing

#

he left a message ๐Ÿ’€

remote swallow
ivory sleet
remote swallow
#

oh flame baiting is just wanting to start a fight

#

makes sense

austere cove
#

fairly certain he's been doing dumb stuff long before the lombok stuff

remote swallow
#

he says lombok is bad as he proceeds to then use it

remote swallow
#

oh nice

sullen marlin
#

?ban @lost turtle

undone axleBOT
#

User with ID 964117617487003698 is already banned.

austere cove
#

wasn't he verified? can we ban him on forums too

ivory sleet
#

interestingly enough these accounts they use are verified

remote swallow
#

yeah

#

bad opsec

ivory sleet
onyx fjord
#

death wishes for criticizing code ๐Ÿ˜ฆ

sullen marlin
#

just drop it now, the more you discuss it the more reaction you give and the more they will want to continue

onyx fjord
#

yeah i guess so

austere cove
#

time for bedge then ig

ivory sleet
#

@timid hedge did u solve it?

ancient plank
timid hedge
austere cove
#

gngn <3

ivory sleet
#

gnight :]

timid hedge
#

I have this, im trying to remove money from the player

            } else if (args[0].equalsIgnoreCase("remove")) {
                System.out.println("5");
                if (sender.hasPermission("money.remove")) {
                    System.out.println("6");
                    OfflinePlayer[] target = Bukkit.getOfflinePlayers();
                    if (target != null) {
                        Balance.get().removeBalance(target, Double.parseDouble(args[2]));
                        return true;
ivory sleet
#

ah okay, Id say you could use Server#getOfflinePlayer(name) but u do that on another thread

#

maybe even use BukkitScheduler#runTaskAsync since that will append it to the cached thread pool of the scheduler

sullen marlin
#

make removeBalance take something other than an offline player

ivory sleet
#

I believe they use Vault API, which uses OfflinePlayer stupidly enough

sullen marlin
#

actually I suppose that doesnt solve getting the name

ivory sleet
#

yea

glad prawn
#

args[0] and args[2] what's args[1]

timid hedge
#

I dont know what i did wrong, but right before it worked with using @Getter but it isnt anymore it just cant resolve lombok, how do i add that or what its called?

north nova
#

Balance.get().removeBalance(target, Double.parseDouble(args[2]));

ivory sleet
#

I mean if I were u Id yeet lombok, but thats just me

north nova
#

your removeBalance takes an array?

#

of offlineplayer?

glad prawn
#

Show that method code pls

timid hedge
# ivory sleet I mean if I were u Id yeet lombok, but thats just me

Have you a other method to do this without lombok?

    public boolean removeBalance(OfflinePlayer[] p, double amount) {
        if(economy.hasAccount(p)){
            if (economy.getBalance(p) >= amount) {
                economy.withdrawPlayer(p, amount);
                return true;
            }
        }
        return false;
    }
```Its used at economy.hasAccount, getBalance and withdrawPlayer
sullen marlin
#

why is it an array

timid hedge
#

But i just dont know how do it on other methods

glad prawn
#

public EconomyResponse withdrawPlayer(OfflinePlayer player, double amount); from Vault API

north nova
#

and the author has disappeared into the wild

quaint mantle
#

plyr2.connection.send(new ClientboundSetEntityDataPacket(plyr.getId(), List.of(new SynchedEntityData.DataItem<>(new EntityDataAccessor<>(17, EntityDataSerializers.BYTE), (byte) 0x40).value())));
trying to show the outer layer of a player's skin. not sure what's wrong and why it's not updating the hat?

timid hedge
north nova
#

please learn java

eternal oxide
quaint mantle
eternal oxide
#
new ClientboundSetEntityDataPacket(serverPlayer.getId(), serverPlayer.getEntityData().getNonDefaultValues());```
quaint mantle
eternal oxide
#

is your player an actual player or a fake one?

quaint mantle
#

real

eternal oxide
#

should work fine then

quaint mantle
kindred sentinel
#

How to display something in player's action bar?

young knoll
#

Player#spigot()#sendMessage

quaint mantle
kindred sentinel
remote swallow
#

that also goes to action bar

#

you jsut set the type

young knoll
#

ChatMessageType.ACTION_BAR

kindred sentinel
kindred sentinel
wary topaz
#
if (player.getInventory().getItem(8) == null) {
            ItemStack lobbySelector = plugin.customItemAPI.createCustomItem(new ItemStack(Material.NETHER_STAR), "lobbySelector");
            lobbySelector.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
            ItemMeta lobbySelectorItemMeta = lobbySelector.getItemMeta();
            lobbySelectorItemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
            plugin.message.getMessage(player.getUniqueId(), "lobbySelectorName").whenComplete((language, e) -> lobbySelectorItemMeta.setDisplayName(language));
            plugin.message.getMessage(player.getUniqueId(), "lobbySelectorLore").whenComplete((language, e) -> lobbySelectorItemMeta.setLore(Collections.singletonList(language)));
            lobbySelector.setItemMeta(lobbySelectorItemMeta);
            player.getInventory().setItem(8, lobbySelector);
        }
eternal oxide
wary topaz
#

whys it not setting the lore

#

WTF

lunar wigeon
glad prawn
#

yo

wary topaz
#

OMG

knotty shell
#

ban

remote swallow
#

@ivory sleet @ancient plank @sullen marlin

glad prawn
#

yo

#

wtf

#

wtf

#

ayo

remote swallow
#

@tender forge @austere cove

kindred sentinel
#

WTF

knotty shell
#

@ivory sleet wakie help help

young knoll
#

@ancient plank @ivory sleet @worldly ingot pp alert

glad prawn
#

wtf

#

help

#

my eyes

remote swallow
ivory sleet
#

Bru

north nova
#

this used to happen when i was 14

#

jesus christ

#

awkward kids on the internet

knotty shell
#

ty Conclube

quaint mantle
wary topaz
remote swallow
wary topaz
#

WTF

knotty shell
#

I wish I was recording that cuz I seen multiple names but the oddball names msg disappeared before anyone did anything like they removed them selves to hide

remote swallow
#

@ivory sleet come back

wary topaz
#

BRO

remote swallow
#

oh cool

knotty shell
#

as I was saying...

remote swallow
#

conclure can you get md or something

ancient plank
#

mans got all the alts

knotty shell
#

lol adele

eternal oxide
#

kids found the bots

ancient plank
#

im always afk when I get pinged

young knoll
#

Spigot discord is cancelled

knotty shell
#

that or remote bots

lunar wigeon
wary topaz
#

itembuilder?

flint coyote
#

It never stops to surprise me how dumb certain individuals of humankind can be

lunar wigeon
wary topaz
#

is ait an api?

remote swallow
#

no

knotty shell
#

like that person saying I wanna spam faster then 20 fps?

remote swallow
#

its a class

lunar wigeon
#

you can make it in 1 class

remote swallow
#

@onyx fjord the guy came back and he posted a spigot resource with the download linking to a gay porn site

kindred sentinel
#

If player.sendMessage is depricated, then how to use player.spigot().sendMessage, how to get the BaseComponent?

ancient plank
#

?whereami

knotty shell
#

?whenami

ancient plank
#

it's only deprecated in paper & paper forks

slender elbow
wary topaz
#

?1.8

undone axleBOT
lunar wigeon
young knoll
#

Oh boy and the resource is still up