#help-development

1 messages · Page 75 of 1

shadow zinc
#

sigma grindset

misty ingot
#

I like to suffer for months on end

#

its what I do for a living

shadow zinc
#

🤓

ashen quest
#

gigachad

shadow zinc
#

WonkyPigs behind the screen be like

iron glade
#

he lifting with one arm while coding with the other

shadow zinc
#

Working his jaw with his entire setup

ashen quest
#

while cardio

iron glade
#

oh yeah forgot he's on a treadmill

shadow zinc
#

what a legend

iron glade
#

what an inspiration for all of us

coral helm
#

Sharing data across servers (Bungee, spigot)

sage patio
#

if i have 100 players in a List, for (Player player : players) runs 100 times the code at same time or waits first code gets done then next one?

ashen quest
#

waits first

#

to run 100 at same time, use threads

#

multithreading

sage patio
#

how

ashen quest
#

do u want 100 threads

#

or 10 threads with 10 players each

sage patio
#

lemme show u

#

this is a example

ashen quest
#

yea this is not multithreading i m pretty sure

sage patio
#

yes

ashen quest
eternal oxide
#

Working with Hikari, do PreparedStatements need to be manually closed (with resources) or will Hikari deal with all tidy-up once the connection is released back to the pool?

drowsy helm
#

Dont over optimise

#

If you create a new thread for each player you’re gonna end up using more resources and probably time anyway

ashen quest
#

yes

sage patio
#

it runs for 100 players?

drowsy helm
#

Wdym

ashen quest
#

what do u want to do

sage patio
#

lemme explain deeper

drowsy helm
#

It just runs to cancel itself

ashen quest
#

just say your problem

#

not your approach

tender shard
#

the BukkitRunnable javadocs are still broken

drowsy helm
#

Keep in mind- the server runs hundreds of calculations per tick, per player without lag

sage patio
#
List<Player> players = new ArrayList<>();
players.add(player1);
players.add(player2);
players.add(player3);
for (Player player : players) {
  // code in here tooks 5 seconds to execute by a runnable
}
#

for loop waits 5 second to run next players code (player 2 and 3)?

#

or runs 3 players in 3 different codes

drowsy helm
#

Oh like you want it consecutively doing the code in order?

#

Will run 3 at the same time

sage patio
drowsy helm
#

Use a runnable and iterate through a deque

sage patio
#

i'm codding a simple tntrun plugin

#

i just wanted to know it runs for 100 players or waits and ......

drowsy helm
#

Oh yeah nah

shadow zinc
#

🐟

#

So I have managers on my API which need an instance of my plugin. I created a ManagerHandle class which its instance can be retrieved from my API easily to create an instance of my multiple managers with ease, is there any convention or best method to making my multiple managers automatically generate an instance without requiring the client using the api to pass an instance of the main class?

cobalt thorn
#

Hi a question im using an editor in game for the config "plugin.getConfig().set("DisableChat", false);" but doesn't work how i can fix it?

worldly ingot
viral temple
#

is there any documentation what happens if you set a scheduler interval to -1?

young knoll
#

It just defaults to 1 iirc

shadow zinc
#

Na your computer blows up

young knoll
#

Time travel

#

Your server starts to run backwards

shadow zinc
#

I tore a hole in the space time continuum last time I tried that

drowsy helm
shadow zinc
#

shaded

sturdy frigate
#

How do you color your logs?

drowsy helm
#

Eh not really. Might seem like a pain in the ass but letting them pass through the plugin through constructor is tour best option

worldly ingot
#

I actually don't think the period time of -1 is handled. It might just schedule a single task

#

Internally, any repeating task with a period of < -1 is actually just a single scheduled task that won't repeat

#

Any task with a period of 0 will repeat every tick. But it doesn't look like == -1 is covered

young knoll
#

Who needs runTask then

shadow zinc
cobalt thorn
young knoll
#

plugin.saveConfig

young knoll
cobalt thorn
drowsy helm
#

Integer.MAX_VALUE + 1

shadow zinc
worldly ingot
viral temple
viral temple
#

if speed was -1

worldly ingot
#

Then it would probably just run once, yeah

viral temple
#

and def interval is 60 * 20

#

the -1 is min

#

and it goes in the scheduler..

#

fk sake

drowsy helm
#

Simple Math.min

#

Max*

worldly ingot
#

I still fuck those up to this day lol

#

But yeah, a max would help there

modern vigil
#

Quick question about Java libraries

shadow zinc
#

be quick before someone hits you with the +Ask

#

+ask

#

ah shit too late

drowsy helm
#

Lmao

shadow zinc
#

and I typed it wrong smh

young knoll
#

The temptation is real

modern vigil
#

I have used the gradle init task to make a new Java library but when I compile it and use it as an external dependency it doesn't seem to show up

#

I have read the Gradle docs but I don't really understand how to bundle it correctly

#

I just used the build and jar tasks

viral temple
modern vigil
viral temple
#

aaaaan it fucking works

quiet ice
#

The easiest way to do it is to deploy it to MavenLocal through ./gradlew publishToMavenLocal

modern vigil
#

Don't you need to sign up and wait like 2 days to be able to publish the library?

drowsy helm
#

Not for a local dep

quiet ice
#

For OSSRH yes, for others not really

#

Especially since you can publish the jars whereever you want

quiet ice
shadow zinc
#

ffs how do I stop my config maker lib show and use my api, which is shaded in it, when I add my api in my dependencies

sturdy frigate
#

How do you color your logs?

quiet ice
#

And publishing it to only mavenLocal is "good enough" for starters

quiet ice
# sturdy frigate How do you color your logs?

On spigot you can do it through the ChatColor.* color codes, on paper you need to either use ANSI escapes (don't) or use the console command sender (I wouldn't use it to be honest)

young knoll
#

Paper has support for adventure right in console now

#

Either way

#

Don’t color logs

quiet ice
#

Yeah, I second that

shadow zinc
#

Yeah I doubt server owners are going to get hard on over coloured logs, not worth it

quiet ice
#

Colors are reserved for errors and warnings

gray merlin
#

Why do we have to declare the commands in the plugin.yml file? What does it do?

shadow zinc
young knoll
#

Makes spigot actually register them

quiet ice
shadow zinc
quiet ice
#

C) To link the command to a plugin (which you should know why that is a good idea if you used plugins such as EssX in the past)

worldly ingot
gray merlin
#

I see, thank you.

worldly ingot
#

Bukkit.getConsoleSender().spigot().sendMessage(BaseComponent[])

#

But +1 on not colouring logs. It's annoying

#

lol

drowsy helm
#

Very

quiet ice
shadow zinc
#

I use it and works fine

quiet ice
#

It works fine until it does not

shadow zinc
#

But, I have got a framework, if you only have 10 or so commands just put it in the plugin.yml

shadow zinc
quiet ice
#

Yes, but this thing is destined to blow up

shadow zinc
#

I'll tread with caution then

shadow zinc
misty ingot
#

suggest some good ways to die

#

quick and painless

quiet ice
misty ingot
echo basalt
#

quick and painless you say

#

look in the mirror

#

actually no it's quite painful

quiet ice
#

Go back to #general ya fucks

misty ingot
#

I have been coding for so long I forgot channels other than this one existed

reef brook
#

Can I use my mariadb driver code with hikaricp without changing the code (just the class names)?

misty ingot
#

but why

reef brook
#

Can I use my mariadb driver code with hikaricp without changing the code (just the class names)?

misty ingot
#

so ehm back to the definetly very development related talk yes

shadow zinc
#

👍 all clean, plus java 18 is irrelevant

misty ingot
#

dont you need it for 1.19

young knoll
#

No

shadow zinc
#

do you?

misty ingot
#

or is that java 16/17

young knoll
#

17

misty ingot
#

ah well HECC

quiet ice
#

J18 is nice and all, not very irrelevant

misty ingot
#

I mean

#

It doesnt hurt to stay on the latest version

quiet ice
#

Sure, less relevant than J17 but has it's uses

misty ingot
#

cuz this cosmetics plugin I am making is on J18

#

1.19.2 spigot

shadow zinc
#

And this is why you don't make plugins with java 18>

ancient plank
#

Do it anyways

shadow zinc
#

screw them all

misty ingot
#

I will be the one laughing when minecraft releases an update tomorrow requiring all you plebs to update to J18

quiet ice
#

2.4% J18 usage for me - so good enough

misty ingot
#

where are you guys getting these charts

young knoll
#

I doubt mc will do that

quiet ice
#

bstats

shadow zinc
#

bstats

young knoll
#

J18 isn’t LTS

misty ingot
#

oh they released?

quiet ice
#

They have mandated to J16 in the past iirc

misty ingot
#

I knew about bstats since its inception

#

but I didnt know they finally released

quiet ice
#

Finally? That was like decades ago

#

With the death of mcstats bstats came, so big doubts in my part

misty ingot
#

like 70% of that is hypixel lol

quiet ice
#
  • bstats 3 was released a year ago iirc
young knoll
#

Hypixel doesn’t use bStats

misty ingot
#

why not

shadow zinc
#

how would you know?

misty ingot
#

yeah that too

quiet ice
#

You have no idea what bstats is huh

misty ingot
#

yeah I really dont

shadow zinc
glossy scroll
misty ingot
#

that part I know

quiet ice
#

(or server software)

misty ingot
#

time to register to el bstats

shadow zinc
#

so hypixel would have to use a plugin that uses bstats, or server software, which is unlikely because most or all of their plugins are made by their own devs

wet breach
quiet ice
glossy scroll
#

10 years

#

Bstats has been around for less than a decade lol

wet breach
#

they have plugins that they didn't make 🙂

quiet ice
ancient plank
#

A decade is bigger than 1 year

shadow zinc
#

They better be using my plugins 😉

wet breach
#

I forget who it is, but we do have a person here who is a dev for them here

quiet ice
#

And they use paper iirc (or at least did for their SMP stuff), which also has bstats integrated

shadow zinc
#

so Wonky was right

agile anvil
#

It's easy to switch metrics to false too

quiet ice
#

(So inventivetalent)

shadow zinc
#

oh they made spiget, not surprising

sly surge
#

must stay in java 8 for my plugin for 43 morons

quiet ice
#

I just have 2 morons that are using J8

agile anvil
#

RCE them, be a man (do not reproduce)

shadow zinc
ancient plank
#

I only have 1 plugin with bstats implemented and it's a trash plugin

worldly ingot
#

4% is hardly a reason to keep using J8. They can use an older version of your plugin

#

It’s likely they’re running an older version of the server anyways

shadow zinc
#

people using java 8 can't be trusted anyways

worldly ingot
#

I think I compile against J16 now for VeinMiner but I could have easily done J17, I just had no compelling reason to

quiet ice
#

I also compile aginst J16 ever since paper announced their Java 16 mandate for 1.17 (or 1.18 I do not remember)

ancient plank
#

I used to compile against j8 but now that I've been using j16 for a long time I just can't go back down 💀

worldly ingot
#

imho, compile against the lowest version you need, but don’t be afraid to use new features

#

I use J16 features but I don’t use J17 features so I didn’t jump to it

ancient plank
#

I use a lot of j11+ features, j11 is like the lowest I'll willingly go I think

quiet ice
worldly ingot
#

11 was relatively popular for a while because it was LTS

ancient plank
#

I might make a public server version of a plugin I have sitting for private use on a server adelemThonk hmmm do I want to though

young knoll
#

Is it kewl

worldly ingot
#

Has to be kewl

#

If not kewl, don’t do it

ancient plank
#

it's pretty kewl

worldly ingot
#

No no

#

kewl

shadow zinc
#

whats cool?

ancient plank
#

lemme grab a video from when I first made it

quiet ice
ancient plank
#

ok and

#

I prefer making obscure things over massive systems a bunch of people will use

shadow zinc
#

humble

ancient plank
#

I made a huge system for moderation and worldguard region management on the server I work with and I disliked it in the end

worldly ingot
#

Adelemphii makes my type of plugins aPES_Laugh

#

Things I think are awesome in practice but hardly anybody would realistically use

ancient plank
#

I like making things that'd fit nice on a small smp

quiet ice
#

I always make things that could fit nice on a large smp server but they always end up on a server almost noone plays

ancient plank
#

true

#

I don't like bstats because it just reminds me that the only people who find my plugins are people who run servers like josue who get like 2 people on a good day kekw

#

^ tthis is a joke

#

I just always get addicted to numbers and graphs when I see them

young knoll
#

Lies

worldly ingot
shadow zinc
#

same lol

quiet ice
#

I'm also addicted to I18N-ing everything in my (newer) plugins even though everyone plays with the english locale

#

Meanwhile: me

tender shard
tender shard
worldly ingot
#

See it's weird because VeinMiner has pretty much always had less players than servers. It being popular kind of shoots itself in the foot because people think it looks cool so they'll insta-install it for their new servers, then when their server gains no traction it just sits idle with no players online

tender shard
#

bstats should add some metric like "average amount of players per server" that excludes all servers with no players

quiet ice
#

there are quite a bunch of servers that are only active in the morning/afternoon

sly surge
#

Skoice is mainly used on small survival servers that stay online all the time with not many people on them

worldly ingot
#

WorldEdit suffers this exact same problem

WorldEdit: 66272 servers 61334 players

tender shard
#

wtf I would have thought that worldedit is on waaaay more servers

worldly ingot
#

FAWE kind of skews that number

#

but 66k is still like 20x my plugin aPES_Laugh

#
  • some servers have metrics disabled
sly surge
tender shard
#

yeah I think it's 18 or so lol

#

but 2 of those are not plugins but standalone things

waxen plinth
#

I kind of gave up playing smps with my friends

#

Because I would spend a lot of time building farms and such, but then other people would stop playing

tender shard
#

i think my intellij is drunk today. it's "analyzing code" since 10 minutes now D:

waxen plinth
#

And then eventually the server would shut down and all my builds would be for nothing

#

World download available but nothing to do with it

tender shard
#

also wtf is this again

agile anvil
#

Give him what he wants: errors

quiet ice
quiet ice
tender shard
#

nah I typed this manually like 12 times

#

I ended up copy pasting the above thing and it accepted that. Don't ask, i have no idea

misty ingot
#

is github copilot worth paying for?

tender shard
#

YES

#

well unless it's 50 bucks per months

misty ingot
#

been using it for a long time I feel like I have gotten too used to it

#

looks like ima have to pay up

tender shard
#

i dont know how expensive it is but if it's only like 10€ / months, I'd totally pay for that

#

it saves so much time

misty ingot
#

it is infact 10$/mo

tender shard
#

that's totally worth it

#

i mean if you make 30$ per hour and it saves you only 20 minutes in one months, it's already worth it

iron palm
#

hello after i moved to linux and installing intelij
I'm seeing really weird key bindings like shift + left / right arrow does the same thing that ctrl + left / right arrow does but in the keymap settings its the default one.
anyone knows how can i fix these weird things?

misty ingot
#

imagine only making 30$/hr

iron palm
sly surge
misty ingot
#

les go

#

I dont even have to spend the 10$ then

tender shard
ashen quest
#

how does one actually use bstats

eternal oxide
#

anyone know of a simple SQL browser? I need to view H2

dawn lark
#

hi, I have an error, saying import net.minecraft.server.v1_16_R3.NBTagCompound; saying error packing net.minecraft.server.v1_16_R3 doesn't exist

eternal oxide
#

every one I find is rubbish

ashen quest
eternal oxide
#

Tried DBVisualizer and I can;t even see the tables

tender shard
dawn lark
#

okay, its a plugin that, I am trying to add versions to, I have gone through build tools, it keeps on saying nothing exists

quiet ice
#

Are you depending on org.spigotmc:spigot or org.spigotmc:spigot-api?

iron palm
lost matrix
dawn lark
quiet ice
#

use 1.16.5-R0.1-SNAPSHOT instead

#

Or 1.16.4-R0.1-SNAPSHOT if what I have heard from the other people is indeed correct

dawn lark
#

so take out org.spigotmc right?

quiet ice
#

nonono, just change the version string

#

So it'd be org.spigotmc:spigot:1.16.5-R0.1-SNAPSHOT

quiet ice
iron palm
tender shard
#

1_16_R3 = 1.16.5 and 1.16.4

iron palm
#

idk why shift + left arrow works like ctrl + left arrow

#

what the hell is wrong with it

quiet ice
#

Ah that might be a linux moment

#

Ctrl + alt + left/right arrow for example changes the desktop

iron palm
#

the weird thing is that the keys are working fine for everyone except me

#

yeah

quiet ice
#

Why ctrl + left/right arrow was excluded idk

iron palm
#

it isnt

dawn lark
#

invalid source release: 16 has anyone seen this error before

lost matrix
quiet ice
#

(or better said what version is your JAVA_HOME at?)

lost matrix
#

This is a compile time error iirc

quiet ice
#

Yes

quiet ice
#

If the JDK is missing for that version it won't compile no matter what

#

Ah you mean the IDE settings thing

#

I live too much in CLI world

dawn lark
#

right, my sdk says 16.0.2

#

targetCompatibility = JavaVersion.VERSION_1_8

tender shard
#

oh you're using gradle

dawn lark
#

yeah haha

quiet ice
#

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '16' might do the trick

dawn lark
#

still throwing an error

quiet ice
#

Whle running it through CLI or through the IDE?

dawn lark
#

ide

#

intelij

mighty aurora
#

Quick question. is it possible for me to get to the spigot-api docs for specific versions of the game? say 1.18.1 or 1.19?

eternal oxide
#

SQL is just too annoying to debug 😦

worldly ingot
eternal oxide
#

I want to view teh tables and data, not have to write a query script to view it

misty ingot
iron palm
#

anyone knows how should i fix shift + left / right arrow not working in intelij linux?

#

it is working but its working same as ctrl + left / right does

misty ingot
#

whats a good item to use for a rainbow effect option in a gui?

#

for all the other colors im using the respective dyes

iron palm
#

anyone knows where should i go to reset iintelij settings?
thats the only way that i have i guess

lost matrix
misty ingot
#

HM

#
        Player player = e.getPlayer();
        PersistentDataContainer pdata = player.getPersistentDataContainer();
        if(!pdata.has(new NamespacedKey(plugin, "active_cosmetic"), PersistentDataType.STRING)) {
            pdata.set(new NamespacedKey(plugin, "active_cosmetic"), PersistentDataType.STRING, "nil");

also btw (I am assuming I have to do this) like in item metadata, once you are done editing it you set it back with #setItemMeta so like, how would I go about doing that for a player?

misty ingot
#

nice

misty ingot
# lost matrix Let the button rotate through all colors

aight so im tryna do this and I created a bukkit runnable loop inside a new class so I can run it when I need to but the thing is, I gotta stop the loop when the player closes the inventory and I cant really figure out a good way to make it work

lost matrix
wet breach
#

sounds like you need a task

#

which you can easily cancel

lost matrix
#

In my current designs i never cancel any runnables.

barren peak
solid cargo
#

How could i disable fireworks doing damage? By giving firework a meta and then checking if damager has that metadata doesnt work

barren peak
lost matrix
solid cargo
#

Is there a cause firework for entity damage event?

barren peak
#

can you link an example?

lost matrix
#

You might need to set the count to 0 like you would need to for setting the direction of a particle

barren peak
barren peak
#

is there like an argument that you can use to set the size

solid cargo
wet breach
#

me I am more of a fan of not letting something run if it doesn't need to

barren peak
barren peak
barren peak
tender shard
tender shard
#

the spawnParticle() method does exactly the same

misty ingot
#

my mind just cant figure it out

barren peak
lost matrix
tardy delta
#

if i wanted to implement chatchannels on my server, should i implement it like or or only save the users or channels on one side

class ChatChannel {
  Set<KingdomsPlayer> joinedPlayers;
}```
```java
class KingdomsPlayer {
  ChatChannel joinedChannel;
}```
rough drift
#

then you'd have

#

ChatChannel - Base
GuildChatChannel
PartyChatChannel

#

then just send the message to that

tardy delta
#

wdym 2nd i mean would i save the joinedplayers and the current channel or only save one of those

rough drift
#

and let polymorphism save the day

rough drift
#

and also save the channel in the user

tardy delta
#

ended up doing this shit in my prev plugin

#

so basically checking twice

barren peak
hushed pawn
#

What is the name of ServerPlayer class in 1.8.8?

tender shard
#

EntityPlayer i guess

barren peak
#

or is that only for explosions that it does size

tender shard
#

i have no idea, all those particles behave very differently

#

all those spawnParticle methods are just a wrapper for the actual NMS packet

#

so what's called "offsetX" might be the actual X offset for some particles, but as you can see, also can be something different in another. it's kinda random lol

#

particles are so annoying

tardy delta
#

what i got so far lmao

barren peak
ivory sleet
#

yeah

#

you can use sth like

#

Instant.now().plus(Duration.ofDays(1)) or sth

#

and then use the appropriate conversion method

#

oh

#

ah

#

well that'd involve some local date stuff since 12am is not globally absolute

quiet ice
#

You could use the temporal accessor to just zero everything lesser than the year

tender shard
#

wow you know what sucks?

quiet ice
#

but yeah, timezones are an issue

tender shard
#
        for (World world : Bukkit.getWorlds().stream().sorted(Comparator.comparing(World::getName)).collect(Collectors.toList())) {
            System.out.println(world.getName());
        }
tender shard
#

i reply to the wrong messagess all the time

tardy delta
#

just do forEach instead of collection them :D

quiet ice
misty ingot
#

hey so I have values in a string like BLUE, CYAN, RED, YELLOW, etc.
and I want to make it so that I can plug these in easily for Material.{String value}_DYE so I dont have to write 8 different if statements, would this be possible? (never tried it so idk)

quiet ice
#

No, I don't understand at all why that would NCDFE

tender shard
#

using a lambda instead works

ivory sleet
#

Id say use LocalTime then morice or sth

tender shard
#

so I have to add a comment to not use the quickfix to turn it into a method ref

ivory sleet
#

else u have LocalDateTime <- ChronoLocalDateTime

#

Ig some other options also, but ye

misty ingot
#

thanks!

ivory sleet
#

🥴

misty ingot
quiet ice
#

But performance!

misty ingot
#

that kind of bullshit is exactly what I wanted to avoid

quiet ice
#

You only need to do it once either way

misty ingot
#

fuck performance, prioritize my mental health

#

its already in very bad condition

quiet ice
#

I haven't looked at the contents of that class for over 2 years now

tender shard
#

first one works on all versions, second one only on 1.17 since World::getName() is actually a reference to WorldInfo::getName(). But intelliJ always wants me to "convert" it to the nonworking version lol D:

quiet ice
#

Why not use WorldInfo::getName()

tender shard
#

because WorldInfo doesnt exist in 1.16

#

that's the whole problem lol

#

in 1.16, getName() is declared in World
in 1.17, getName() is declared in WorldInfo and World extends WorldInfo

tardy delta
quiet ice
#

millis is in millisecond resolution, nano in nanosecond resolution

#

Epoch is either AD or BC

#

(or some really obscure bullshit)

tender shard
#

this is my weird fix to keep intellij from screaming at me

quiet ice
#

LocaleDate.from(Instant.now().plus(Duration.days(1))).atStartOfDay().toInstant().toEpochMilli()

#

EASY

#

Yeah

#

Oh right lol

#

Just some random typo from my side

tardy delta
#

why do you want epoch millis tho?

quiet ice
#

LocalDate.from(Instant.now().plus(Duration.days(1))).atStartOfDay().get(ChronoField.INSTANT_SECONDS) * 1000 would be the next-best thing I can think of

crisp steeple
quiet ice
tardy delta
#

stackoverflow

quiet ice
#

Only issue is that +/- 1000 millis would get skipped

quiet ice
#

at worst you have to add a static method for teh comparision and use that as a lambda

#

What is the caused-by message?

#

Chances are you could do LocalDate.from(LocalDateTime.now()[...] instead

#

I never really understood why Instant does not provide all the temporal fields

#

Ah yeah, then you need to specify a ZoneId

#

At worst just use ZoneId.systemDefault()

#

Nah, basically just LocalDate.from(LocalDateTime.now().plus(Duration.days(1))).atStartOfDay().toInstant(ZoneId.systemDefault()).toEpochMilli()

#

Basically we reuse my original approach, but with added hackery

#

I thought LocalDateTime would store it's ZoneId but apparently it does not

#

🤦‍♂️

hasty fog
#

Is World.getEntities() supposed to load chunks?

tardy delta
#

no

quiet ice
#

Yeah it shows the start of the day for UTC, but whatever

minor garnet
#

some1 know if is possible to make player dont see a particle ? (packets receiveded from the server)

hasty fog
quiet ice
#

Dividing nanoseconds with 1000 gives millis, yes

minor garnet
#

then is possible ok

#

i need use pipeline for that right?

hasty fog
#

ProtocolLib would be the easiest

quiet ice
#

Beware - epoch means something comparable to era (so either BC, AD or Epoch (time since 1970))

minor garnet
frank kettle
minor garnet
quiet ice
#

Yeah, that is based on the milliseconds of the current epoch

tardy delta
#

best thing i came accros today

quiet ice
#

nanos on the other hand are arbitrary

tardy delta
#

stackoverflow moment

misty ingot
#

arrow.getWorld().playEffect(arrow.getLocation(), org.bukkit.Effect.STEP_SOUND, Material.matchMaterial(effect + "_DYE"));

the mistake is probably something dumb but it is what it is

blissful forge
#

Hello, a person is constantly throwing my server when I start, the error that is displayed on the screen is the following.

Has anyone already had this problem with the InventoryClickEvent or knows how to solve it?

Once it generates the problem, it triggers an error with all plugins, and that massive spam causes the server to go down.

https://pastebin.com/t9T1nneu

misty ingot
#

your error message compressed down to this

tender shard
misty ingot
#

so I gotta find a green colored block now?

tender shard
#

how tf can a message be "not secure" if I literally sent it from console?

lost matrix
river oracle
#

also it'd be weird if you could report the console :P

tender shard
#

hm weird. I enabled chat preview and still no message gets signed

misty ingot
#

tired of this shit

tardy delta
#

Bukkit.getScheduler().runtaskTimer().. no..?

misty ingot
#

the task itself works

sturdy frigate
#

I'm making a game where players can leave trails of blocks behind if they want to, everything will go away when the game is over, how do I go about this?
Currently, I just have a public static list in the listener class to store player uuid and materials, and simply listen to playermove at all times and if the player is in the listener, i'll draw the trail. Is there a better more efficient way to do this where I don't listen to players not involved in the game and not listen to anything when there is no game

tender shard
misty ingot
#

theres some problem with the effect

tender shard
#

you pass a Material right?

misty ingot
#

yeah I am

tender shard
#

it should be a BlockFace though

lost matrix
misty ingot
#

how do I deal with this then

#

my mind is just md_5

tender shard
#

check if isOnGround() or !isValid(), then cancel()

#

and use a BlockFace and not a Material for the playEffect

misty ingot
#

ok ok ok I just tested something

#

I put it back to Effect.STEP_SOUND and now it works perfectly

#

but the issue is that I want lesser particles and a less shitty sound

tender shard
#

yeah because STEP_SOUND takes a Material, lol

#

just look at the Effect class and you'll see what data class i needed for which effect

lost matrix
#

Particles should be done by sending particles and not effects

misty ingot
#

I'll try that

#

Im just tryin out all the new stuff I can and learning how to use it as someone told me to

#

alright so particles are a success

#

I just need to color them accordingly now

lost matrix
#

If you want colored particles then you need redstone particles with a DustOption as extra parameter

tender shard
#

BLOCK_MARKER is the best particle ever added

misty ingot
#

yeah I too love barrier blocks

tender shard
#

but it works with ALL blocks :3

misty ingot
#

Im thinkin

#

fake rooms

#

with that shit

#

fake walls

tender shard
#

looks like shit

#

the block marker are just sprites

waxen plinth
#

Wait what

#

What does it do

tender shard
#

it's a 2d sprite of the "base material" of a block

misty ingot
#

whats the name of the particles left by chorus fruit

waxen plinth
#

Oh weird

tender shard
waxen plinth
#

I can't really think of a good use for it

tender shard
#

me neither

lost matrix
tender shard
#

it uses BlockData

#

and only works for materials where isBlock is true

lost matrix
#

Alright. How does it look for a spawner?

#

The content is probably ignored.

tender shard
#

well it looks funny for flowers lol

#

lemme check for spawner

#

its really just the sprite of the base texture a block has

#

e.g. cobblestone stairs is the normal cobblestone texture

#

leaves are the uncolored version of leaves

#

etc

#

and it seems to always use the "bottom" texture

#

wait, no. for logs it shows the sideways texture

sturdy frigate
#

Is there a way to make missing command info in plugin.yml a compile time error?

lost matrix
sturdy frigate
tender shard
#

I prefer ACF

#

many people like Cloud

#

Redempt would probably suggest his own

lost matrix
#

I also use ACF. But its really really hard to master.

tender shard
#

YO EVERYONE

#

I FOUND A USECASE FOR BLOCKMARKER

lost matrix
#

Yeah redempt just recently finished his own. He almost baited me into writing the Brigadier implementation for it.

tender shard
#

giant flowers lol

ancient plank
#

I cannot see it as a giant flower

tender shard
tender shard
ancient plank
#

But as a flower item floating in front of me placed in an orientation to make it appear larger

sturdy frigate
sturdy frigate
#

thanks

lost matrix
#

Have fun figuring out what the hell a context resolver does

#

And why you need annotations in Strings inside an annotation parameter

#

aka

@Values("@SomeThing")
sturdy frigate
#

okay lol

tardy delta
#

acf?

tender shard
#

i love block markers

tender shard
sturdy frigate
#

Is there a reason why my textures get jumbled up randomly? Rain looks like this lol

lost matrix
#

Well static completions really are. But having conditional async completions can be tricky.

tardy delta
#

until the moment acf starts taking a commandcontext as an argument 💀

tender shard
#

why the heck is Material.LEGACY_RECORD_12.isBlock() == true

grim ice
#

i always see shit like that in acf

#

in mixins, they just do for example:

@Inject(at = @At(...), ...)

candid shoal
#

what does this mean

org.bukkit.plugin.InvalidPluginException: Cannot find main class `me.goodgoods.claim.Claim'
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:69) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:393) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:300) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.loadPlugins(CraftServer.java:412) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3544-Spigot-475f600-991aeda]
    at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:224) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3544-Spigot-475f600-991aeda]
    at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:966) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3544-Spigot-475f600-991aeda]
    at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:291) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3544-Spigot-475f600-991aeda]
    at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.ClassNotFoundException: me.goodgoods.claim.Claim
    at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at java.lang.Class.forName0(Native Method) ~[?:?]
    at java.lang.Class.forName(Class.java:467) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:67) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]
    ... 8 more```
tender shard
candid shoal
#

ok

tender shard
#

oh wait

candid shoal
#

how do i fix it

tender shard
#

you used the wrong quotes

#

show your plugin.yml

candid shoal
#

ok

lost matrix
#

-> `me.goodgoods.claim.Claim' <-
Different quotes

tardy delta
#

bruh tab completion sucks if i want /cmd [on|off] [player] to work, would have to show on and off in the playerlist 💀

rough drift
tender shard
rough drift
#

ooo

#

that's used for barriers right?

candid shoal
tender shard
#

it even uses the animations of those blocks, e.g. seewead

drowsy cloud
#

hello how do you display the arguments of a command in the chat as:

quaint mantle
rough drift
#

you need a tab completer

quaint mantle
sturdy frigate
quaint mantle
#

client

#

server doesn't control textures

candid shoal
#

@tender shard what do i put

version: '1.0'
main: me.goodgoods.claim.Claim
api-version: 1.19```
tender shard
candid shoal
#

?

#

im very new to coding

tender shard
tender shard
tender shard
candid shoal
#

yes

tender shard
#

?paste it

undone axleBOT
candid shoal
#

itll claim a chunk when u do /claim

#

and send msgs

#

and block block interaction

tender shard
#

so you have a class that extends JavaPlugin

#

what's its name?

tender shard
# drowsy cloud thank

here's a very stupid example. this will just always suggest "add", "delete" and "list" as tabcomplete:

public class ExampleCompleter implements TabCompleter {
    @Override
    public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
        return Arrays.asList("add","delete","list");
    }
}
#

of course you normally wanna either do it contextual, e.g. check what "strings" parameter already is, or if it's this simple, store the List<String> instead of creating it everytime

tender shard
#

but yeah the general idea is that you just implement the onTabComplete method

misty ingot
#

hows the drip lookin bois

#

I completely abandoned the idea of using colors as tbh they looked kinda lame aswell

#

I have adapted to particles

#

and THANKFULLY they all worked first try

candid shoal
tender shard
#

send a screenshot of your claim class

#

or paste it

#

?paste

undone axleBOT
candid shoal
tender shard
#

set "main" to "me.goodgoods.claim.ClaimPlugin"

misty ingot
#

it feels so good when code works first try :3

candid shoal
#

back to the original

tender shard
#

do not change it in your target folder

tardy delta
#

cursed config

tender shard
#

never edit any files inside the target directory

#

above target, there's another resources directory

#

this is where you have to edit it

rough drift
silent wave
#

i have issues running spigot.jar 1.16.5 with java 18

tender shard
#

why do all heads (player_head, zombie_head, ender_dragon_head etc) have soulsand as texture lol

tender shard
tender shard
#

well

#

use java 16

#

or java 8

#

or java 11

#

it literally says "only up to java 16 is supported"

#

18 > 16

silent wave
#

ok

grim ice
#

im bored

wise mesa
#

is there an easy way to make players unlock custom recipes once they get one item in the recipe

tender shard
tender shard
#

normally it should be enough to check for EntityPickupItemEvent, unless you also wanna trigger it for stuff like /give

patent fox
#

how can i register an enchant to enchantment table?

#

custom enchant*

tender shard
#

you normally should identify your custom enchantments using a PDC tag instead

wise mesa
#

i have like 15 recipes

tender shard
#

aaand?

patent fox
wise mesa
#

and i didn't really feel like making a whole formal system 😅

#

alright ill get to work ig

tender shard
# patent fox api name?

https://github.com/JEFF-Media-GbR/JeffLib/blob/master/core/src/main/java/com/jeff_media/jefflib/EnchantmentUtils.java#L30 You need reflection to register custom enchantments. here's how I am doing it, but remember, it's not really intended to do so

GitHub

Avoid writing the same code over and over again - use JeffLib for your Spigot plugins! - JeffLib/EnchantmentUtils.java at master · JEFF-Media-GbR/JeffLib

worldly ingot
#

And I'd opt to avoid doing that as well

#

Ideally you'd just make use of the PDC at this point

tender shard
#

yeah you should rather use a PDC tag.

#

the oooonly thing I think where an actual custom enchantment is really needed is for the glow effect

#

unless there is API for that now

worldly ingot
#

Which is annoying. HasFoil: true when, Mojang? :((

tender shard
#

is Foil the glow thing?

worldly ingot
#

Yeah they call it "foil" internally

tender shard
#

I usually just register one "Glow" enchantment, then add the actual enchantments with PDC

wise mesa
#

LMAO

#

scroll up 10 messages

tender shard
#

not without a custom resource pack

#

the client doesn't have the translation for your custom enchantment

#

erm

#

I meant language pack, not resource pack

#

if you add the enchantment to the EnchantmentOffer in PrepareItemENchantEvent, then it should work for custom enchantments - it simply won't show them in the GUI

#

oh hm

#

then I fear there is no way

#

I've never seen any enchantment plugin that managed to show their custom enchantments in the table GUI

#

and I have like all the major enchantment plugins lol

quiet ice
#

Yeah no that is impossible since you would need to add them to the clients enchantment registry iirc

tender shard
#

someone should edit the wiki.vg to say "it must not be present", and then it will magically work for everyone

quiet ice
#

Well it can be -1

tender shard
#

i still wonder why wiki.vg doesnt use the proper packet names

quiet ice
#

With must be present I meant like somehow the client needs to convert from ID to the enchantment name

quiet ice
#

Although yes it is surprising considering that a few mojang employees maintain(ed) that site

quiet ice
misty ingot
#

but... but a particle named SMOKE exists in minecraft

#

even the fandom agrees

quiet ice
#

?jd-s

undone axleBOT
quiet ice
#

You want SMOKE_NORMAL

#

Or SMOKE_LARGE

misty ingot
#

hekk u minecraft

quiet ice
#

Fandom is not the correct source for bukkit things - the javadocs are

misty ingot
#

brain go BRRRRRRRRRRRRRRRRRRRRRRRRRRR

quiet ice
mighty bane
#

Cannot invoke "org.bukkit.block.Block.getLocation()" because the return value of "org.bukkit.event.player.PlayerInteractEvent.getClickedBlock()" is null

So I'm working on a plugin that is supposed to check if the block you interact with matches the location of a stored block location in a config however I keep getting the above error whenever I interact with any block.

Anyone know what could be causing it?

slate mortar
#

probably because you interact with AIR?

tender shard
#

^

slate mortar
#

when you interact, there's ALWAYS air if you're not stuck inside the block with the upper-body

#

and AIR is afaik not a block. at least not in most events

mighty bane
#

I right clicked the noteblock.

slate mortar
#

yea but

#

there's a block between you and this note block

#

which is null, because it's air

mighty bane
#

Ah so how do I circumnavigate this?

slate mortar
#
if(block =! null){
  //do your stuff   
}
mighty bane
#

Thanks

slate mortar
#

oops

#

!=

#

not =!

mighty bane
#

lol

slate mortar
#

afaik docs should even state that it can be null

mighty bane
#

I see that.

slate mortar
#

well

#

or

mighty bane
#

It's stopped the error, now I just need to figure out why it's not detecting that the location interacted with is the same as the one stored in the config.

slate mortar
#

you can also check if the click action was RIGHT_CLICK_AIR or LEFT_CLICK_AIR

#

that should also work

mighty bane
#

Okay so I'm trying to get the plugin to compare the location of an interacted block and the location stored in the config file. The locations match however it's not recognizing it. The comparison is this:

                    plugin.getConfig().set("direction", "up");```
The config location name matches and the loc is stored correctly as well. Any ideas?
#

Thanks

#

We're about to find out.

#

It works now thanks.

misty ingot
#

what event is it to get know when a player is killed by another player? (and be able to get the killer and victim player objects)

#

EntityDeathEvent exists

#

doesnt exist

#

cant even #getPlayer

#

I AM using PlayerDeathEvent

#

but that doesnt exist..

#

#getEntity#getPlayer exists

#

thanks

#

yeah I got it now

#

oh yeah I gotta make sure its instanceof player

#

just remembered lol

#

so the event will only run when a player is killed by a player?

tender shard
#
  1. get the PlayerDeathEvent
  2. get the player
  3. get their killer and check if it's null
  4. if no -> player killed a player
    or what are you trying to do?
echo basalt
#

Hey, is there any hacky way to remove that "hand swing up" animation when switching items?

tender shard
#

if you also wanna know how the player was killed (with a sword, with an axe, with a potion, how much damage, etc), get the dead player's last damage cause and cast it to EntityDamageByEntityEvent

echo basalt
#

I kinda want to make animations with custommodeldata, wonder if it's possible

#

I can't seem to get it to work with negative mining fatigue potions

tender shard
echo basalt
#

Only difference is that like

#

mining fatigue can make it slower

#

but not faster

#

imagine if we completely ditched the client and made custom models with font characters

#

and emulate bobbing and such

lost matrix
# echo basalt and emulate bobbing and such

Interesting idea. You could actually make the player invisible and mount him with an armorstand which has this custom model as a helmet or something like that.
Actually doable in theory.

echo basalt
#

unless we can do some stupid shit like grabbing all the movement inputs and emulating movement

lost matrix
#

But you would have to do a LOT of work to include all animations like swimming

echo basalt
#

but that looks janky

#

I mean

tender shard
lost matrix
#

Yeah we lose client side predictive computing. So all animations have to be made by using animated models

echo basalt
#

I just want to make a gun with muzzle flash

#

:/

#

and reload animations

#

but fine

lost matrix
#

Pls format this

#

ctrl + alt + L

echo basalt
#

nesting,..........

#

grr

echo basalt
#

Mining fatigue affects it

#

so there must be a janky way

#

same way how people add negative mining fatigue to prevent client-side block breaking anim

lost matrix
#

Where else would you live at 18? On the street?

echo basalt
#

I'd probably be living in the streets if I was 18 honestly

quaint mantle
#

bro why is getItemInMainHand() NonNull but getItem(EquipmentSlot) Nullable

#

how would you know if getItemInMainHand had no item?

echo basalt
#

gotta be hacky

#

might just decompile the client

tender shard
#

the main hand could also be empty though

lost matrix
#

I have no idea how many jobs you would have to work in order to afford a broom closet with < 25 here.

echo basalt
#

housing is 2 wages

quaint mantle
tender shard
#

yeah its random

#

makes no sense

echo basalt
#

and maybe potentially multiple mental breakdowns

quaint mantle
#

lolz

lost matrix
#

I mean when i got my final degrees and get a good job in munich then i will probably be able to afford it. But prices here are currently insane.

echo basalt
#

if you make more than like 12$/hr here you pay about 48% income tax

#

👍

lost matrix
#

nullability is not a minecraft thing

echo basalt
#

income tax percentages here are categorized by annual income

tender shard
quaint mantle
#

Having to null check is better than checking against a random new instance created by the getter

echo basalt
tender shard
#

i mean if you only work 1 hour per year

#

...

#

😄

echo basalt
#

saying full time more like

#

it's like

#

if you make more than 20k/year you pay like 36% income tax

#

make more than 30k/year and you pay about 48% income tax

#
  • 4% tax for your employer
#

make more than like 60k/year and you max out around 60% tax

#

which it's why it's easier to just tax evade

#

I'm not in the us

tender shard
#

41k€ in germany would be 8500€ income tax so about 21%

quaint mantle
#

uses this

lost matrix
#

And free college

echo basalt
#

oh wow the free healthcare I haven't benefitted in the past 8 years

#

I went there once like a couple months ago

tender shard
#

yeah exactly lol

echo basalt
#

"yo I haven't seen the doc since like 2010, am I good?"

#

lady just looked at me

#

"ye you're good"

#

and we left it at that

#

I mean it's good for those edge cases

#

like when I went to get my covid vaccine and the kid next to me passed out and smashed his face into the floor

#

right after getting jabbed

#

then like 20 people started calling their mommas

lost matrix
#

Thats a joke, right? If you are poor then you just die if nobody pays your bills.

tender shard
#

my father has to "remargin" 70k€ of taxes for last year RIP lol

#

no idea if thats the proper word

wet breach
#

free doesn't necessarily mean the best

echo basalt
#

my family is in permanent debt because they ran a business for a year and their accountant fucked up and got us like 80k in dept

tender shard
#

F

echo basalt
#

combined household income is around 20k/year

wet breach
#

sure, doesn't mean your level of care is.

tender shard
#

this is germany's income tax. it's outdated but still kinda accurate

wet breach
#

yeah this is kind of the definition of free. If you were billed then obviously it wasn't free to you

#

but free doesn't mean the best

echo basalt
#

goofy ahh stuff

wet breach
#

its better then nothing that is for certain

echo basalt
#

we got potholes older than our people here

#

I mean

#

I personally don't hate taxes

lost matrix
#

But if the rich guys that own the hospitals suddenly stop giving a damn then nobody is going to help you.
The government is not inclined to provide you with basic medical care. Worst case you just die.

echo basalt
#

my family comes from a shitty village in the middle of nowhere, close to russia

wet breach
#

don't care how big they are, they don't make money off providing free health care therefore you are not always priority unless you are in a critical state

echo basalt
#

they only got paved roads like 2 years ago

#

so it's fun to see evolution

#

also free healthcare here is kinda meh

#

like

#

We had a kitchen fire and my dad had to be flown to the central hospital

#

they charged him 2k for the helicopter ride

#

I'm european

#

so what's the point of all of this tax stuff

tender shard
#

i love how the US asks you "have you participated in the 9/11 terrorist attack?" when applying for a VISA

sly surge
#

#general maybe?

echo basalt
#

we're developing our uhh

tender shard
echo basalt
#

social skills

tender shard
#

yes, I filled that form out on the plane

#

it's really one of the questions

#

at least it was back in 2008/2009/2010

wet breach
#

paramedics in general are expensive to pay. Not everyone is a paramedic, but most people can be EMT's. But only paramedics and flight nurses can be in the helicopters

tender shard
#

I mean who the fuck would say "yes, sure"

wet breach
#

paramedics in most cases are not employed with hospitals as most hospitals do not own their own helicopters

echo basalt
#

I remember reading the term "paramedic" and "paratrooper" when I was young and like

#

"medics dropping into the field on parachutes?" was my first thought

wet breach
vivid cave
#

As a European I'm very little tempted by going to the US
The culture there is just so unattractive when you see all these young people eating fat, "working" all day long but in reality filled with cigarette/coffee breaks, and the AVG low IQ of random people there

tender shard
#

a friend of mine once was denied entry to the US when he was already at the airport in US. They asked him "do you plan to work here?" (he wanted to stay one year for exhange student stuff) and he said "no". then they showed him facebook posts of himself where he said "I already got a part time job secured, yaaay" and then he had to fly home again

wet breach
#

albeit we don't need to airdrop them anymore

tender shard
wet breach
#

but they are still called paramedics

echo basalt
#

smh my head

#

I'm planning on visiting the states next year

#

thing is you're making the visa process look scary

echo basalt
vivid cave
#

Been once for vacation yes

tender shard
lost matrix
wet breach
echo basalt
#

my employer is gonna sponsor the trip so I have no reason to deny

tender shard
#

I still have it somewhere

vivid cave
echo basalt
wet breach
# vivid cave Been once for vacation yes

Well not everyone works all day, and not everyone who has breaks smokes or drinks coffee. Not all of us eat out either. The majority of those in the US are not unhealthy obese people

echo basalt
#

I eat out every day and I'm not american

#

idk how I feel about it

tender shard
echo basalt
#

my friend's mom

tender shard
#

GERD?

#

who the fuck is gerd

wet breach
#

its a condition

#

with the colon

lost matrix
#

I have an uncle named gerd...

tender shard
#

aaah

#

reflux thing

echo basalt
#

o

tender shard
lost matrix
#

lol...

echo basalt
#

gerd is an odd name

wet breach
#

sounds like that is a yeas @tender shard

tender shard
#

it's short for Gerhard i think

lost matrix
#

I mean techically gerhard

echo basalt
#

most of my uncles are just called "vanya" or "kolya" or "nicolai" or something russian

wet breach
vivid cave
#

I just mean I don't like the lifestyle there, what i said was for sure over exaggerated
For me it's important to sit at meals and not eat at random hours, just like it's important to have efficient work with timetables and good enough salary
The education system over there is pretty shit too though, it clearly favours the wealthy kids

tender shard
#

7smile's uncle doxxed

echo basalt
#

my uncle has a wikipedia page so I'm not ever gonna list my surname

vivid cave
#

^^

wet breach
echo basalt
#

school here just favors the dumb

tender shard
#

i once had a funny discussion with someone on wikipedia because he critized by example java "stack" implementation

echo basalt
#

If you fail school often, they put you in some special program that pays you to go to school

#

If you're a bright mf, the teachers will try to cripple you

wet breach
#

Public school has been and always will be for those that can't afford to pay for personalized education. It was the original intent

lost matrix
tender shard
#

this Herbert dude is a jerk

tender shard
echo basalt
#

I once got kicked out of class for saying "good morning teacher" and forced the board to host a 2 hour meeting about me because of it

vivid cave
#

Oof

echo basalt
#

All teachers voted against the bastard

wet breach
#

I never really went to highschool and still passed my highschool exit exam 😄

echo basalt
#

I once got late to a science test because my dad crashed the van on the way there

#

teacher decided to be a bad cop and tried stopping me from leaving the classroom

#

to lecture me or some shit

#

so I jumped out the 2nd floor window and went home

#

that school was wack

wet breach
#

its ironic that teachers want to discipline the child for being late when in most cases it isn't their fault.

#

if you are like a junior or senior in highschool it would be a bit different since you know you are close to being an adult

echo basalt
#

highschool is chill

#

specially towards the holidays

#

teachers are like

#

"the cafeteria opened, y'all can go have fun, I'm craving a coffee" and dismiss class like an hour early

#

the further in, the less effort people give

echo basalt
#

in reality the other kids had been making deodorant bombs for years

#

exploding packets of milk in class

#

even just spinning / crushing bottles to shoot bottle caps with pure pressure

grim ice
#

what happens if u order a shit ton of coffee and then

#

pour it all over the place

#

and run

echo basalt
#

you probably get to clean it with your tongue

grim ice
#

why

#

they wont catch u

wet breach
charred blaze
#

is there any event of rename on anvil?

echo basalt
#

it's why I've failed chem for the entirety of this year

wet breach
echo basalt