#help-development

1 messages · Page 1141 of 1

blazing ocean
#

what

pseudo hazel
#

what what

blazing ocean
#

this shit requires like a lot of font fuckery and it's sometimes annoying

#

so why not make a way to do it without the whole font fuckery

pliant topaz
#

imagine everything you can do with html5 and css3 but in a window that the server sends to the client in minecraft style

rough drift
#

because I love doing devious stuff

pseudo hazel
#

right, just use modded ui at that point

blazing ocean
#

define modded ui

rough drift
pseudo hazel
#

like plugin dev is like acting as if the server is drawing the client menu, but modded is more like the client draws the ui based on what information the server has

blazing ocean
#

acting as if the server is drawing the client menu
what

rough drift
blazing ocean
#

:Pé

pliant topaz
#

yoooooo

rough drift
#

shut

pliant topaz
#

:DD

rough drift
#

You can link it with a mod to make it better though

pliant topaz
#

interesting

blazing ocean
#

so are you gonna include a resource pack compiler or something

rough drift
#

That's kind of the entire point of my framework, I was just forced to release it too fast and it's broken as shit

rough drift
blazing ocean
#

glhf with cross version compat

rough drift
#

it kinda works but it's the tech demo of the tech demo

pliant topaz
#

whats it called?

pseudo hazel
blazing ocean
#

this is an inventory

rough drift
pseudo hazel
#

yes

#

but why would you want it to be an inventory

#

whats the benefit

rough drift
#

I am reworking the API and loading so that it works on Fabric/Forge/Spigot

blazing ocean
#

??

blazing ocean
#

it is an inventory

pseudo hazel
#

why not just make an actual ui

blazing ocean
#

that is a vanilla client

#

on a modded server

pseudo hazel
#

right

blazing ocean
#

with font fuckery

pseudo hazel
#

are you talking about making a modded client?

rough drift
#

vanilla client

blazing ocean
#

yes

pseudo hazel
#

then what is the point of still using inventories

#

with mods you can draw whatever the fuck you want on the client

blazing ocean
#

when did i say i was gonna use inventories

pseudo hazel
#

?

blazing ocean
pseudo hazel
#

you didnt

#

right

#

but my point is the server wont say draw a box

#

the server says here is a player profile, and the client will be like, okay I can make a menu for this and show it

blazing ocean
pseudo hazel
#

instead of the server being, " hey here is the menu that you use for a client, and these textures should be in those spots etc

rough drift
#

Guys quick design question

pseudo hazel
#

because of peformance probably

#

like the client should be responsible for its own shit, ideally you dont wanna have the server draw everything for its clients too

rough drift
#

Would it be better to do the following:

- the "loadPlugin" method returns a boolean and fires an event
- or does it just fire the event?

#

2nd would force you to not put everything in the same spot

pseudo hazel
#

the only reason we are outhere using inventories for everything is because our userbase has vanilla client

#

but with mods, the possibilities are endless

#

and you should use the client for all visual representation of information

blazing ocean
#

what if the userbase is not just vanilla

rough drift
#

It can be fucked with so hard

pseudo hazel
#

yes

#

im talking about menus

rough drift
#

Yes

pseudo hazel
#

if I was making a mod on the client I would make the ui in the client, not sent from the server basically

#

which is what the inventories are

rough drift
#

You can make mostly working menus without mods

blazing ocean
#

yeah

#

but with mods

#

you can do more

rough drift
#

yes but

#

you are just skill issued if you need mods

pseudo hazel
blazing ocean
#

sometimes i cannot be fucked to do font fuckery

glossy laurel
#

Why doesnt the player's name above head update when I send a packet to update it but the tab name does

pseudo hazel
#

so I was like, if you are going to use mods, might as well do it the best way

blazing ocean
glossy laurel
glossy laurel
#

right

rough drift
#

not to the player

#

PLAYER_REMOVE then PLAYER_ADD

blazing ocean
#

you cannot update the players display name and have it change in the nametag

rough drift
#

to all the other players

#

DO NOT send it to the original player

blazing ocean
#

okay and just use text displays

#

so much easier

rough drift
#

don't use text displays

glossy laurel
blazing ocean
#

than whatever you are doing

glossy laurel
blazing ocean
rough drift
#

Text displays have a weird funky bug if you use them as nametags

blazing ocean
#

?

rough drift
#

they will begin to wander the 9th dimension if you apply a tiny offset to them while they are seated on your head

#

they will transcend God

blazing ocean
#

works for me

rough drift
#

and that's how mojang wants it to be

blazing ocean
#

i can apply a translation

#

while it's seated on a player

rough drift
glossy laurel
blazing ocean
#

ever

rough drift
#

they are placed at a weird offset for me

blazing ocean
#

you just spawn a text display, add a translation of like 0.75 and add it as a passenger to the player

rough drift
#

I also figured out that if you teleport an armorstand every 3 ish ticks it will sync with players

rough drift
blazing ocean
#
val textDisplay =
    lobby.world.spawnEntity(player.location, TEXT_DISPLAY) as TextDisplay
val transformation = textDisplay.transformation
transformation.translation.add(0f, 0.75f, 0f)
textDisplay.transformation = transformation
textDisplay.billboard = CENTER
player.nameTagDisplay = textDisplay
player.addPassenger(textDisplay)
player.hideEntity(GameServerInstance, textDisplay)

works fine

rough drift
# glossy laurel wdym

ArmorStands interpolate over 3 ticks so if you teleport once every 3 ticks the speed will literally match the player's

rough drift
blazing ocean
#

i know

#

it's legacy stuff

rough drift
#

so why don't you do it

blazing ocean
#

have not touched that piece of code in months

rough drift
#

what is this

#

C#?

blazing ocean
#

my plugin is an object

rough drift
#

oh

blazing ocean
#

object GameServerInstance : SuspendingJavaPlugin() {

glossy laurel
#

@rough drift PacketType.Play.Server.PLAYER_INFO_REMOVE?

rough drift
#

then you need the one to add

blazing ocean
#

use text displays i beg you

rough drift
#

this is better

glossy laurel
#

blue line

#

PacketType.Play.Server.PLAYER_INFO_UPDATE?

rough drift
#

Yep look at player actions

glossy laurel
#

it auto adds right?

rough drift
#

Yep

#

Haven't touched it in a while though

blazing ocean
#

it will break a lot of shit

#

it won't only change the name tag but the players name everywhere else

glossy laurel
#

blue line

#

thats it

#

argument over.

blazing ocean
#

mf

#

nobody plays with hitboxes on

glossy laurel
#

i do

#

🗿

blazing ocean
#
  • you have that for the player anyway lol
glossy laurel
#

is confusing af

blazing ocean
#

lol

#

i mean you'll either have:

  • something which will break a lot of other things and is more complicated than it needs to be
    or:
  • one smol blue line
glossy laurel
#

see I was almost team text display

#

but I saw that they went off the player when he died

#

so I changed my mind

blazing ocean
#

then just teleport it back to the player on respawn?

#

lol

glossy laurel
#

I was too lazy to fix it

#

fr

blazing ocean
#

so you're too lazy to write 5 lines of code and instead you write something that will break on some clients and is more complicated than it has to be

#

nice

blazing ocean
#

be prepared for the footguns of packetry

rough ibex
#

Stubborn and stupid, the perfect recipe

blazing ocean
#

real

glossy laurel
blazing ocean
#

oh you'll for sure have fun

glossy laurel
#

I wrote smth

#

I dont even know what it is

#

but it's working

#

so

#

🤷‍♂️

blazing ocean
#

wait until they wanna use colours too

glossy laurel
#

💀

#

am I cooked

#

idk about you

#

but my colors are working

#

🤷‍♂️

blazing ocean
#

wait until you get /msg &rradstevee as tab completion

#

🧌

glossy laurel
#

I already got that

#

actually

#

so

#

🤷‍♂️

rough drift
#

names are components

#

you don't see &rradstevee

blazing ocean
rough drift
#

which is why you edit the display name

blazing ocean
#

they are editing the name however

#

and also, editing a players display name will not change the name tag

#

so

#

yeah

rough drift
#

it.. will?

#

or am I dumb

#

at least it used to work that way

blazing ocean
#

the client renders the name tag as following:

  • {team_prefix}{team_color}username{team_suffix}
kindred sentinel
#

How to create brewing stand recipe?

sly topaz
#

sadly enough, brewing recipes don't have a system like the crafting ones where you can just register recipes (though I think that was being added in the new release? I might be misremembering), so you gotta work it around like this

kindred sentinel
river oracle
#

Unfortunate facts of life

kindred sentinel
#

😔

young knoll
#

Is there some magic API/NMS way to just power a block

#

Without actually placing a power source

chrome beacon
#

That would be hard to get working right

#

Making it powered is the easy part making it stay powered during a block update is going to be hard

#

So what exactly do you want to power? Any block or is there a specific type?

kindred sentinel
tall dragon
#

if u wanted to do any block u'd probably need to check relative blocks to your block and check if they are Powerable

vagrant stratus
#

I'd look into it, but I notice Entity#teleportRandom, so I've been screwing with that lmao

young knoll
#

Sadly the power level of blocks isn’t something maintained by the world

#

It’s just part of block states

kindred sentinel
vagrant stratus
kindred sentinel
vagrant stratus
#

Yea, it is

kindred sentinel
#

they too teleport if they are walking somewhere

vagrant stratus
#

chorus fruit also uses it though

kindred sentinel
#

Ender pearl too used it in one of last snapshots

vagrant stratus
vagrant stratus
#

takes an x, y, z & flag to determine if the chorus fruit particles should show or not

kindred sentinel
#

It just teleported something like (initiate coordinate + pearl coordinate)/2

vagrant stratus
#

I want that method cause it also determines safeness (to an extent)

#

Trying to figure wtf is going on with it though 🤔

vagrant stratus
#

actually, I might know

pseudo hazel
#

im drawing a blank, whats a Function that doesnt return anything, I just wanna run some code

#

is it just a runnable?

river oracle
pseudo hazel
#

oki

#

ty

vagrant stratus
# vagrant stratus actually, I might know

okay

  1. I'm dumb, didn't pass the coords in that specific code iteration
  2. Seems like Async fucks it up, tried it in AsyncPlayerChatEvent for testing & it throws org.bukkit.event.EventException: null Caused by: java.lang.IllegalStateException: Asynchronous Chunk getEntities call!
#

Second's not really an issue though, you just don't run it async KEK

cedar flume
#

Is there an event for when a creeper drops a disc from being killed by a skelly?

young knoll
#

Just the standard death event

cedar flume
#

cool, and loop through the drops, got it

#

thanks

worthy yarrow
vagrant stratus
river oracle
#

Does anone know what TagKeys do, I'm a bit mistified looking at adding some API but I noticed it this stuff was being added to create TagKeys, after a bit of digging I still don't really understand the purpose here

#

okay wait I think I got it now

#

seems like its analogous to spigot's Tag API for items

#

but much more expansive

lilac pendant
#

@valid burrow

vagrant stratus
# vagrant stratus API would probably be something like `Player#randomTeleport(retries, xRange, y, ...

Chourus Fruit:

                double x = entityliving.getX() + (entityliving.getRandom().nextDouble() - 0.5D) * 16.0D;
                double y = MathHelper.clamp(entityliving.getY() + (double) (entityliving.getRandom().nextInt(16) - 8), (double) world.getMinBuildHeight(), (double) (world.getMinBuildHeight() + ((WorldServer) world).getLogicalHeight() - 1));
                double z = entityliving.getZ() + (entityliving.getRandom().nextDouble() - 0.5D) * 16.0D;

Enderman
Random Teleport

            double x = this.getX() + (this.random.nextDouble() - 0.5D) * 64.0D;
            double y = this.getY() + (double) (this.random.nextInt(64) - 32);
            double z = this.getZ() + (this.random.nextDouble() - 0.5D) * 64.0D;

Teleport Close

        double x = this.getX() + (this.random.nextDouble() - 0.5D) * 8.0D - vec3d.x * 16.0D;
        double y = this.getY() + (double) (this.random.nextInt(16) - 8) - vec3d.y * 16.0D;
        double z = this.getZ() + (this.random.nextDouble() - 0.5D) * 8.0D - vec3d.z * 16.0D;

Might have to set the x,y,z outside of the method, not sure on a clean way to handle all three instances in a single api method 🤔

lilac pendant
#

can someon help im trying to make a plugin but when i try to compile it its not working

vagrant stratus
#

what's the error

valid burrow
#

well what does it say

#

what compiler are you using

lilac pendant
#

wait theres like 22

valid burrow
#

give us some details

valid burrow
#

?loh

#

?log

#

wasnt it like this

#

damn

#

?error

#

?errorlog

#

i swear there was a command like this

worthy yarrow
#

?notworking

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

worthy yarrow
#

is that the one?

valid burrow
#

nah theres one explaning what logs are

#

either that or im insanely shizophrenic

remote swallow
#

?stacktrace

undone axleBOT
vagrant stratus
lilac pendant
#

its

#

too long to post

#

and i cant post files

river oracle
#

?paste

undone axleBOT
valid burrow
lilac pendant
#

i do javac [filename] and it says something like symbol: class ItemStack
location: class ParkourListener
ParkourListener.java:31: error: cannot find symbol
ItemStack enchantedGoldenApple = new ItemStack(Material.ENCHANTED_GOLDEN_APPLE, 3);

#

and 21 others

#

idk

remote swallow
#

Use the buildsystem it uses

lilac pendant
#

?

river oracle
#

why are you trying to compile a plugin with raw JavaC

lilac pendant
river oracle
#

every fiber in my body is screaming an AI probably wrote this code

lilac pendant
#

its my first time making plugins

#

idk much

river oracle
#

are you using an IDE?

#

if not please go learn how to use an IDE

#

and learn how to compile with your IDE Of choice

lilac pendant
#

vissual studio is an IDE right?

river oracle
#

are you using VSCode?

#

or Visual Studio

#

if you're using Visual Studio I am unsure if that even supports java

lilac pendant
#

wait what

#

i just wrote it there

river oracle
#

some people get confused between Visual Studio and Visual Studio Code

#

cuz their names are very close

#

one is a C type language IDE and the other is a text editor with a versatile plugin system

lilac pendant
#

it says "Visual Studio Code"

river oracle
#

yeah so that's not Visual Studio

#

which is precisely why I asked

lilac pendant
#

so am i using the wrong one?

river oracle
#

no you are using the correct one

#

Visual Studio is for C languages

#

go learn how to use and compile java projects with maven on VSCode

lilac pendant
#

oh i have maven i just dont know how to use it

#

i searched how to do it and nnothing came up

river oracle
lilac pendant
#

it only showed me javac way

river oracle
#

you can look up stuff on google and youtube

#

you'll get millions of results

lilac pendant
#

i have to read all of that.?.

river oracle
#

dude you aren't going to make it in programming if you don't read

#

turn back now before you just waste your time

lilac pendant
#

its not that im just tired

river oracle
#

believe it or not you'll be required to read and write lots of code read and write docs

#

then go to sleep and get back at it again tomorrow

#

I found this video at the top of google search

#

both of those resources I gave should be perfectly fine for you

lilac pendant
#

so will these teach me how to compile?

river oracle
#

it'll teach you how to setup maven and compile probably

#

if it doesn't teach you how to compile you'll be fine cuz its legit just a button that says "package' after you set up maven

lilac pendant
#

oh alright thanks btw is codecademy good for learning im paying for it rn

river oracle
#

no clue

#

I didn't use any courses

lilac pendant
#

😭

river oracle
#

I just became a google savant

worthy yarrow
#

I read books

river oracle
#

nerd

lilac pendant
#

lol

worthy yarrow
#

D:

#

java bible

river oracle
#

What is the equivalent of NMS IBlockData (BlockState with mojmaps) is in CraftBukkit I really don't get it because it seems like IBlockData is BlockState but BlockState is something completely else with spigot mappings, even mojang mappings don't really make sense because it seems like spigot's BlockData and BlockState are all bundled in IBlockData

lilac pendant
#

😭

#

how old r u guys?

river oracle
#

19

lilac pendant
#

oh damn

worthy yarrow
#

18

lilac pendant
#

damn

remote swallow
#

?learnjava

undone axleBOT
#

For Beginners:

Codecademy - Learn Java: Interactive Java programming course from basics to more advanced concepts. Perfect for absolute beginners.
https://www.codecademy.com/learn/learn-java
JetBrains Academy - Java Developer Track: Learn by doing with projects and challenges. It covers Java fundamentals to advanced topics.
https://www.jetbrains.com/academy/
Udemy - Java Programming Masterclass for Software Developers: Updated courses that cover Java 8 to Java 17 features. Suitable for those who prefer structured learning.
https://www.udemy.com/course/java-the-complete-java-developer-course/

For Intermediate to Advanced Learners:

Oracle Java Tutorials: The official guides by Oracle for Java programming—great for understanding the depth of Java.
https://docs.oracle.com/javase/tutorial/
Baeldung - Learn Java and Spring: Focus on Spring Framework and modern Java technologies. Best for intermediate learners aiming to expand their knowledge.
https://www.baeldung.com/

Practice and Hands-on Learning:

Exercism - Java Track: Solve exercises and get feedback from mentors. Great for practicing coding skills.
https://exercism.io/tracks/java
LeetCode: Practice your coding skills and prepare for technical interviews with Java.
https://leetcode.com/

Free Resources and Documentation:

Java Programming and Documentation: A comprehensive collection of Java programming guides, tutorials, and API documentation.
https://docs.oracle.com/en/java/

Community and Support:

Stack Overflow: A vast community of developers. Great for getting help with specific problems or understanding concepts.
https://stackoverflow.com/questions/tagged/java
r/learnjava on Reddit: Join the community of Java learners and get advice, share resources, and discuss projects.
https://www.reddit.com/r/learnjava/

Remember: Learning to program takes practice and patience. Don't hesitate to experiment with code and participate in community discussions. Happy coding! 🎉

river oracle
#

how dare you burry my question

#

wtfg

#

this calls for an execution

river oracle
remote swallow
#

Data state

young knoll
#

Not really

remote swallow
#

The bukkit block data state stuff is really fucked

young knoll
#

Iirc NMS block data has properties, which are what spigot calls BlockData

remote swallow
#

It's bukkit get it right nerd

river oracle
#

gotch you

remote swallow
#

Is that envoys

river oracle
remote swallow
#

Spigot pr!?!?

river oracle
#

haven't done one of those Before

remote swallow
#

Have you done any spigot prs that modify a cb pr yet

remote swallow
#

Cb

river oracle
#

nope I would never do that

#

that's soooo scarry

remote swallow
#

You should it'll be fun

river oracle
#

also by spigot PR I mean I'm PRing to CraftBukkit

#

jsyk

#

who tf would ever PR to spigot, gross disgusting awful

#

I wouldn't touch those patches in a trillion years

remote swallow
#

Smh

river oracle
#

my kotlin make class hotkey is so ingrined into my brain

#

I press it when I'm doing java

#

and it pops up and I have to exit out in sadness

remote swallow
#

If only you could make an ij plugin to swap it based on module language

#

Oh wait you could

river oracle
#

its too late I have ctrl+shift+k ingrained in my head

young knoll
#

Man both IntelliJ and Eclipse are fighting me today

vagrant stratus
#

Fight them back

#

Delete them, install NetBeans

young knoll
#

Eclipse won’t install updates

#

And IntelliJ… won’t install updates

remote swallow
#

My jb toolbox downloaded an eap randomly earlier

remote swallow
river oracle
#

JB ToolBox 💪

young knoll
#

It had the nerve to say downloading update files for like 20 minutes

remote swallow
#

Not 29?

young knoll
#

And then just say “Lol failed to update 404 not found”

river oracle
#

Coll you're so naughty >:(

young knoll
#

U wot

river oracle
#

on 10/09/23, for your europeans (09/10/23) you PR'd locateNearestBiome

#

but never PR'd locateNearestPoi

young knoll
#

Yeah I looked into that and idk how it really works

river oracle
#

Dw buddy I'll do it for you <3

young knoll
#

There’s no magic internal locateNearestPoi()

remote swallow
river oracle
#

usually in personal projects i do all capitals cuz then I know it stands for something

young knoll
#

I never know how to capitalize acronyms in class names

#

Is it MySQLAdapter

#

MYSQLAdapater?

#

MySqlAdapter??

remote swallow
#

MySql?

#

Who knows

#

Maybe choco

vagrant stratus
#

Mysql

#

That's how everything else does it

lilac pendant
#

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> archetype:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< archetype:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- archetype:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] Archetype repository not defined. Using the one from [org.apache.maven.archetypes:maven-archetype-quickstart:1.5] found in catalog remote
[INFO] Using property: groupId = com.example
[INFO] Using property: artifactId = maven-demo-quickpick
Define value for property 'version' 1.0-SNAPSHOT: :is the "no pom" an issue or am i doing it right

tidal finch
#

On out server players can get enchant values higher then vanilla (efficiency 7 .. from custom fishing). We don't want them to create these enchants in anvil so I made this plugin to check if result enchants are higher then vanilla ( eff 5 + eff 5 = eff6) and if so set them back to vanilla max value. If palyer puts already stronger enchant like eff 7 + silk touch it should set it to eff 7 + silk touch tool. It works fine but it doesnt refresh the result when I shift click items into anvil slots. When I update it by changing name or grabbing the result it's fine. Can I somehow refresh the result when I shift click the items into the anvil slot so it doesnt create this visual bug?

hexed shale
#

are there any links that would be easy to use block textures that are above 16 x 16 pixels?

private String getBlockImageUrl(Material blockType) {
        // Example image URLs from Minecraft Wiki
    return "https://assets.mcasset.cloud/1.21.1/assets/minecraft/textures/block/{material}.png".replace("{material}", blockType.name().toLowerCase());
}
river oracle
#

why would you need block textures in spigot

#

you can't even change the textures

#

unless you're doing some runtime deployment of a resourcepack

remote swallow
#

You'll probably be rate limited by that you should download and cache

young knoll
hexed shale
#

Im making a discord feature with one of my plugins

#

where I need to set the image of an embed to the block

sly topaz
#

I wouldn't recommend querying mojang for that

hexed shale
#

wdym

remote swallow
#

Download the resource pack and cache it

sly topaz
#

if you need the assets as embeds, host them yourself rather

young knoll
#

mcasset.cloud isn’t Mojang

remote swallow
#

And mcasset is owned by a hypixel dev

hexed shale
#

I just needed the images to be bigger than 16 x 16

slender elbow
#

mcasset is actually a money laundering front

hexed shale
slender elbow
#

trust me

young knoll
#

I knew it

#

Hypixel is also a money laundering front

remote swallow
slender elbow
#

or just resize it?

sly topaz
slender elbow
#

ah

young knoll
#

Time to host them yourself

hexed shale
young knoll
#

Don’t tell Mojang

sly topaz
#

yeah, no way around that really, you'd have to resize them yourself by passing them through a proxy or something

hexed shale
#

oof

young knoll
#

A discord embed for logging every block placed and broken sounds…

#

Excessive

hexed shale
#

ik

sly topaz
#

they might just be testing the thing for a feature, who knows

hexed shale
sly topaz
hexed shale
#

yes

sly topaz
#

I would probably go the summary route if I were you, players do way too much for that to be reliable at all

young knoll
#

I’m coming in with the efficiency 5 shovel

#

Let’s go

sly topaz
hexed shale
#

lol

carmine spoke
#

If not, use InventoryDragEvent, otherwise use player#updateInventory

tidal finch
carmine spoke
#

Try player#updateInvnetory

tidal finch
#

ok thank you I¨ll give it a try

carmine spoke
#

Or try resetting the item in the anvil inventory in the next tick by BukkitScheduler#runTask(...your code here)
If that didn't work (afaik updating inv will work but just in case it didn't)

tidal finch
#

I tryed that but it didnt work. At the end I went a different route and just created a new Itemstack in result slot. Had to make check for tool type and incompatible enchants but it looks like it's working.

carmine spoke
#

Did ChatGPT do that?

tidal finch
#

you know it. Its too late 😄

carmine spoke
#

Fyi it won't be compatible with custom items or tracked items by other plugins

#

Unless you NMS copied that item, rather than remaking a new one with the type only

tidal finch
#

yeah this will be on the server just until slimefun 1.21 is out

carmine spoke
#

Ahh ok

worldly ingot
young knoll
#

That counts as an admission of guilt

#

I’m calling the IRS!

river oracle
#

@young knoll I figured out that POI thing

#

its not bad tbh

buoyant viper
#

Fortnite poi?

vagrant stratus
#

Thoughts on API suggestion

cedar saffron
#

hit that shit optic!!

#

WOAHH

silent tendon
grim hound
#

What's like, the best email library?

#

(For sending emails)

quaint mantle
#

#general

sullen marlin
vagrant stratus
#

send mail

pure dagger
#

why does config.getConfigurationSection("ranks").getKeys(false)
return empty set when there are no values in "vip" ?

#

is it invalid ?

pure dagger
#

what do you mean

grim hound
#

Add a tab

pure dagger
#

before the vip?

pseudo hazel
#

it cant have no value

#

try putting null and see if that changes anything

#

long live yaml

#

or if its a list put []

grave mango
#

Looking for a programmer willing to help me with a server I started. Dm me if you willing to help.

undone axleBOT
upper hazel
#

PDC can store multiple data of the same type with different keys?

pseudo hazel
#

sure

#

you can store the same data with different keys if you wanted

#

a single key can hold any type of data

pure dagger
pseudo hazel
#

its null

#

unless you add quotes, then its a string with the text "null"

pure dagger
#

okay

pseudo hazel
#

but if its supposed to be a list you should be using [] to say its an empty list

pure dagger
#

ranks:
vip: [element, element2, element3]

#

this?

#

i mean yeah empty in this case

pseudo hazel
#

yes

pure dagger
#

vip: []

pseudo hazel
#

thats a list

#

them you can still use getList and get an empty list

pure dagger
#

but

#

what if my "ranks" is empty, because user is gonna type in what they want

#

themselves

#

so its just "ranks:"

pseudo hazel
#

well that should be invalid

pure dagger
#

umm

#

so i dont know

pseudo hazel
#

I think snakeyml doesnt see the difference between indentation if you dont assign a value

pure dagger
#

because ranks: is a map not a list, can i make like empty map

pseudo hazel
#

ranks and vip are then both considered emtpy objects, on the same level

#

well that's just null

pure dagger
#

i dont get it, what do i do in this case

#

?

#

maybe

pseudo hazel
#

but like its been a bit since I had to work with this kinda config

chrome beacon
#

An empty map/section is

Map: {}
pure dagger
#

oh

eternal oxide
#

if you want a map and your get returns null, return a new map

pure dagger
#

oh

chrome beacon
pure dagger
#

but then there is no difference between map being empty -> null and map not existing

pseudo hazel
#

yes

#

which is true right?

pure dagger
#

you asking me?

pseudo hazel
#

yes

pure dagger
#

i mean talking to me

#

i mena

#

i dont kno

pseudo hazel
#

like to your code there is no difference

#

if the map is empty or null

pure dagger
#

i probably have to test it to get it

pseudo hazel
#

they will both return an empty map

pure dagger
#

imma try it and think if that makes sense

pure dagger
#

does Bukkit.getPlayerExact work only for online players? or only the ones that have been on the server?

eternal oxide
#

a Player object only exists for online players

pure dagger
#

oh, so if there is no player with that name currently online it wil return null

eternal oxide
#

yes

pure dagger
#

thats good

#

getPlayer(UUID id) and getPlayer(String name) is the same/

#

?

eternal oxide
#

almost, (if I remember) one can perform a lookup to mojang so can cause lag

pure dagger
#

yeah but i mean if it also returns null if player is not on the server

eternal oxide
#

all getPlayer methods will return null if there is no online player

#

Player can only exist if they are online

pure dagger
#

okay okay thanks

carmine spoke
#

just write spigot javadocs <class name here> class in google

#

all of that are documented properly on the javadocs

#

or spigot <version> javadocs for example spigot 1.20 javadocs

torn shuttle
#
validBordersFromNeighbours.put(buildBorderChunkDataEntry.getKey(),chunkData.pastableModulesContainer.modulesContainer().getProcessedBorderMap().get(ModulesContainer.transformDirection(buildBorder.getOpposite(), rotation)));

aw yeah we love programming

fading drift
#

anyone here familiar with jackson?

#

the json lib

slender elbow
#

what about it

fading drift
#

I've added the library but it doesn't seem to recoginise the ObjectMapper class

#

the package com.fasterxml.jackson.databind cant be found

#

but com.fasterxml.jackson and other stuff can be found

slender elbow
#

did you add the databind dependency?

fading drift
#
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.17.2</version>
        </dependency>```
slender elbow
#

does it compile via the terminal or is your ide just tripping balls?

fading drift
#

doesn't build

#

ill reload project tho to make sure

slender elbow
#

what does maven say?

fading drift
#

yeah not sure

#

maven loads the dependency fine

#

wait wtf

#

it was intellij it works now after reload

slender elbow
#

epic

#

yeah it sometimes needs a nudge when you change your pom and such

fading drift
#

ty

#

is there a method for getting plugin folder directory

eternal oxide
#

yes

fading drift
#

ty

icy monolith
#
    private fun startBreakingStages(block: Block) {
        val blockLocation = block.location
        var stage = 0

        object : BukkitRunnable() {
            override fun run() {
                if (stage >= 11) {
                    block.type = Material.AIR
                    cancel()
                    return
                }

                sendBlockDamageToNearbyPlayers(blockLocation, stage / 10.0f, 40.0)

                stage++
            }
        }.runTaskTimer(RTKB.plugin, 20, 20)
    }

    private fun sendBlockDamageToNearbyPlayers(blockLocation: Location, damage: Float, radius: Double) {
        val nearbyPlayers = blockLocation.world?.getNearbyEntities(blockLocation, radius, radius, radius)
            ?.filterIsInstance<Player>() ?: return

        val transactionId = Random.nextInt(0, 100000)

        for (player in nearbyPlayers) {
            Bukkit.broadcastMessage(player.toString())
            player.sendBlockDamage(blockLocation, damage, transactionId)
        }
    }```

Can anyone help me figure this out? Im trying to make the block break with breaking stages, but for some reason it saves teh breaking stage. It dosnt reset it back to a lower break stage.
minor shore
#

Is there a plugin that supports giving players items with command blocks for example through essentialsx but still being able to use "@s" "@p" etc

grim hound
#

To send emails with java, you need to provide your password and email, right?

#

But doesn't that allow anyone viewing your github to simply hijack your account?

remote swallow
#

stick it in env vars

grim hound
#

How?

#

Not sure what you mean

remote swallow
#

create an env var on your pc, use System.getenv

#

use the key you set for the env var on ur pc

#

only you will know the email and pass and people in github will know what you named it

#

but not the content

#

because its on ur pc

minor shore
wet breach
grim hound
grim hound
wet breach
#

well typically you either use sendmail or smtp

#

in either case, you would just use a config file to pull the credentials from

#

this way you are not hardcoding anything

#

optionally you could just implement smtp yourself I suppose into your application

#

then no credentials are needed just an email

grim hound
#

"implement smtp yourself"

#

This part

eternal oxide
#

smtp is just a protocol on a specific port

echo basalt
#

we've used mailchimp to send emails in the past

#

was some goofy ass code

wet breach
#

smtp is a protocol for sending mail. It involves looking up MX records(mail exchange) and the sorts to know where you need to send the message. If SMTP is implemented yourself there isn't like a logging in that needs to be done, just an email that is attached to the message. How Mail servers know you are authorized to use that email is by contacting the server of the domain you used in your email address. Example, if you used your gmail email, it would contact gmail to see if your server is in an allowed list. If it isn't its auto rejected. If such a list is not implemented they generally consider it as spam unless you prove its trust worthy.

sand hollow
#

Someone knows what i should do when the programm doesn't recognize the class "Material"?

chrome beacon
#

Update Intellij

sand hollow
#

already did

chrome beacon
#

Make sure you have the project jdk set to Java 21

sand hollow
#

weird, ig it doesnt automatically update to newest version

chrome beacon
#

Update it again ig

sand hollow
#

version already at 1.21, hope it works

#

1.22*

river oracle
#

java 22 is very... unstable

#

especially on windows I'd avoid it

proper cobalt
#

does anyone know how i can make an item display bigger by like 110%/ 1.1x bigger

blazing ocean
#

change its scale component

proper cobalt
#

how do i do that

sand hollow
#

Ourgh chaning version didnt work and i have trouble updating intellij.. well time to waste more time

blazing ocean
proper cobalt
#

kk

blazing ocean
#

So you could e.g. do ```java
var display = world.spawnEntity(location, ItemDisplay.class);
var transformation = display.getTransformation();
transformation.scale.mul(1.1f);
display.setTransformation(transformation);

proper cobalt
#

thanks g

#

if i wanted to reset it after can i just multiply 1.0?

blazing ocean
#

no, just set it to 1.0

proper cobalt
#

kk

blazing ocean
#

If you multiply 1.1 by 1.0 you obviously get 1.1 lmao

proper cobalt
#

LOL

karmic mural
#

You could multiply it by zero and add 1.0

proper cobalt
#

why

karmic mural
#

To get 1.0

proper cobalt
#

yeah but why when i can just set it

karmic mural
#

I'm making a joke

proper cobalt
#

ah

quaint mantle
#

has NMS become insanely hard to update from like 4 patches ago

sand hollow
# chrome beacon Update it again ig

thx for your help, didn't work though so i just copied an old project where Material still worked, changed its version and copied the code in

#

rly weird but prob the best solution

proper cobalt
#

sometimes only like half are there

pseudo hazel
#

are those BlockDisplays?

quaint mantle
#

idk why but i cant import org.bukkit.block.Material

#

i ran buildtools twice

peak depot
#

Did you put it in your pom / gradle file?

proper cobalt
eternal oxide
#

your InteliJ is out of date

quaint mantle
# peak depot Did you put it in your pom / gradle file?

yeah

        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.21.1-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.21.1-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
            <classifier>remapped-mojang</classifier>
        </dependency>
quaint mantle
#

menndokusai

#

brb

quaint mantle
#

lmfao insntalled 26/4/2023 yep.

eternal oxide
#

its a common issue since 1.20.5

quaint mantle
#

can i even update intnellij

#

or do i need to reinsntall

#

lets c

eternal oxide
#

IJ toolbox or something

#

I don;t use IJ

quaint mantle
#

what do u use senpai

eternal oxide
#

Eclipse, but this issue is an IJ specific

proper cobalt
#

elgar strikes me as a netbeans kinda guy

quaint mantle
#

there was like

#

PathType.Water

#

in my old pathfinder code

#

i wonder if this will fix that too

eternal oxide
#

I've done nothing with goals

quaint mantle
#

iirc i looked at it and the constructor was private

#

fair

eternal oxide
#

the issue you have is just IJ with java 21 and Enums

quaint mantle
#

i was using 22 oops

eternal oxide
#

yeah 22 is bad at the moment

quaint mantle
#

ok ill install 21

#

bro idk like i probs soundn like a dumbass coming in with my opinionns 20 minutes into being in the sever

#

but like

#

istg beta + launch to like 1.8 was peak dev time

#

no bullshit

#

or not as much...

#

bring back pumpkin stem 104

#

hard to say

#

could be an engine thing

#

sum1 with way more wizard knowledge would know

proper cobalt
#

hm thats super annoying

worldly ingot
#

The half rendering of some of those makes me feel like it's a weird culling issue. Not sure why it's culling, but yeah

proper cobalt
#

maybe its lunar client being weird

worldly ingot
#

That sounds like it could be

proper cobalt
#

ill test on vanilla

rough drift
#

make their height infinite

proper cobalt
#

how do i pass infinite

rough drift
#

just a really fucking large number

proper cobalt
#

Float.MAX_VALUE?

#

ok display height right

rough drift
#

uh

#

I forgot which one it is

quaint mantle
#

are you constantly spawning new ones

proper cobalt
#

thats the only one i can do tbf

proper cobalt
rough drift
#

try it

quaint mantle
#

or just editing the existing ones

proper cobalt
#

editing existing

quaint mantle
#

ok well if theyre still there hmm

#

id say its a rendering issue with MC in genneral bc they do re appear

proper cobalt
#

ima try what voodoo said

quaint mantle
#

Lunar client

proper cobalt
#

ok ill test on vanilla after

#

setting max height fixed it

#

thats really weird how did u know that was the fix @rough drift lmao

sly topaz
#

bro's making a casino in minecraft 💀

#

get them addicted young I guess

proper cobalt
#

yerp, 50 bucks a spin

river oracle
proper cobalt
#

real bucks*

sly topaz
rough drift
#

The culling of display entities (display entities in general tbf) is absolutely batshit insane

#

It will mess up the calculation to check if the bounding box is inside the view if the height of the display entity is less than something like half the screen? at least that's what it feels like

#

Setting the entity to max height means that you can always see it, because it will be forced to always be inside the bounds of the screen

#

meaning that it can never disappear

#

What was happening before is that it was getting culled out due to funky (probably intern written™️) code

quaint mantle
#

holy i wish i never switched to intellij

#

what is this 2024 version

#

looks nothing like th eold

rough drift
#

oh

#

skill issue get good

sly topaz
#

what were you using before IJ

rough drift
#

NetBeans™️

sly topaz
#

crazy

blazing ocean
#

neovim

rough drift
#

nah jk I was using Eclipse

sly topaz
blazing ocean
#

no

#

I used it for a while for plugin dev with java

sly topaz
#

Java support outside IDE is already bad enough

blazing ocean
#

?

quaint mantle
#

but like

blazing ocean
#

it isn't

quaint mantle
#

things werent this bad

sly topaz
#

it is lol

quaint mantle
#

a few years ago

sly topaz
#

the LSP crashes all the time

blazing ocean
#

Java + Neovim works great, btw

river oracle
quaint mantle
#

BRO

#

POTION DATA

#

DEPRECATED??/

#

WHYU

blazing ocean
#

Never had any issues with jdtls

river oracle
sly topaz
quaint mantle
#

and its late at night

#

too many changes

river oracle
#

you're 9 years out of date

#

so ofc their are a lot of changes

#

🤦‍♂️

sly topaz
rough drift
#

Guys I just added networking latency to method calls and I don't know how to feel about that

sly topaz
#

they're separated between POTION, SPLASH_POTION and LINGERING_POTION

quaint mantle
#

yeah

#
        if(mat == Material.POTION){
            PotionMeta pmeta = (PotionMeta) im;
            PotionData pdata = new PotionData(PotionType.WATER);
            pmeta.setBasePotionData(pdata);
        }
river oracle
quaint mantle
#

this is what i was doing

sly topaz
#

though I don't know what the point of setting the base type to water is

quaint mantle
#

ye just did that haha

#

um

#

there was a reasonn

#

a few years ago

#

dont remember why nnow

#

so much has changed

#

i think im just gonna get iut compilable

#

and then tweak it later...

sly topaz
#

famous last words

quaint mantle
#

:D

sly topaz
#

that plugin isn't gonna get touched again

quaint mantle
#

nah

#

i love it

#

i always updoate it

#

and never release my server

#

wow particles changed AGAINN

#

GRRR

quaint mantle
#

cheers for that

#

will b very helpful

sly topaz
#

or if you know the name of the vanilla particle, they match now so it is that

quaint mantle
#

potioneffecttype.slow -> slowness

#

🤣

sly topaz
#

that one wasn't too bad

quaint mantle
#

atp tho id keep it for legacy/coolness

#

heritage tag

sly topaz
#

SLOW_DIGGING though...

quaint mantle
#

what is it

sly topaz
#

slow digging is the spigot name

#

mining fatigue is the vanilla one

#

slow digging to match with fast digging I guess, which is haste in vanilla

vital sandal
#

any idea how the number in this is made ?

echo basalt
#

custom fonts

#

ezpz

vital sandal
#

so you will need to create custom char for every single cases ?

echo basalt
#

You have one font

vital sandal
#

like from 0->100k

echo basalt
#

You create 0-9

#

and then a-z

vital sandal
#

hmmm

echo basalt
sly topaz
#

lmao, imagine having to create the font for every single number in existence

vital sandal
#

so how about the red bar behind

sly topaz
#

that'd be almost like creating a chinese font teef

echo basalt
#

You can, for example, make a 1x1 pixel .png

#

and then stretch it to like 1x9

#

and make another variant that's like 2x9

sly topaz
#

you just modify one of the glyphs to make it look like a bar

echo basalt
#

and one that's 4x9

#

text color it red, do some binary matching thing to have any size bar

vital sandal
#

hmmm

#

that sound doable

#

cool tks

#

but kinda painfull tobe honest

#

wynncraft now is kinda insane in term of graphic tbh

quaint mantle
#

Error creating remapped jar: Unsupported class file major version 65

#

anyone seen this

#
Failed to execute goal net.md-5:specialsource-maven-plugin:1.2.2:remap (remap-obf) on project XXXXX: Error creating remapped jar: Unsupported class file major version 65 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal net.md-5:specialsource-maven-plugin:1.2.2:remap (remap-obf) on project XXXX: Error creating remapped jar: Unsupported class file major version 65
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
   
sly topaz
#

the concept is pretty much the same for anywhere else you might want to display it

eternal oxide
quaint mantle
sly topaz
#

some people also make cool UI by sending action bar messages as well like this

quaint mantle
#
                <groupId>net.md-5</groupId>
                <artifactId>specialsource-maven-plugin</artifactId>
                <version>1.2.2</version>
                <executions>

-> 1.11.5

#

?

vital sandal
#

hmmm

eternal oxide
#

also java versaion 65 is java 1.8

#

probably 1.11.5-SNAPSHOT

slender elbow
#

it's not lol

#

65 is 21

quaint mantle
quaint mantle
#

nah neither of those

#

uh

sly topaz
eternal oxide
#

yep I just looked it up

quaint mantle
#

is it v 2.0.3

#

on speicalsource

sly topaz
quaint mantle
#

lets c

quaint mantle
#

do u have a tutorial for it

eternal oxide
#

so use current specialsource and be sure you are running maven under java 21

quaint mantle
#

i am determined to farm this before i sleep

#

build....

#

build...

#

SUCCESS!

slender elbow
#

Class file version 100 corresponds to Java 29. If you’d like more information on the features or enhancements in that version, just let me know!

eternal oxide
#

lol no

quaint mantle
#

chatgpt responsne

remote swallow
#

Are java versions version + 44

quaint mantle
#

haha

quaint mantle
#

or what its called

#

i legit have never seen that possible in vannilla evecr

#

or is it like a lunaclient trick

remote swallow
#

It just needs a resource pack

sly topaz
#

it is completely vanilla with resource pack

#

but that one is kinda outdated now ig, not sure it works anymore

quaint mantle
#

are resource packs safe/legit nnowadays

proper cobalt
#

theyre just pngs how can they be unsafe

sly topaz
#

every server that is worth its money uses resourcepacks nowadays

quaint mantle
#

damn

#

ok i gotta learn how to do that too now

sly topaz
#

they just allow a lot of things that weren't possible before

quaint mantle
#

any other hot buzz stuff that i should know about

sly topaz
#

not only changing the look of blocks, is what I mean

quaint mantle
#

what u were doing before with the roulette seemed really out there

#

for like boomer standards

sly topaz
#

playing around with display entities ig, people make really cool stuff with them

#

like that roulette

quaint mantle
#

does it override vanilla or can u have resource packs like only edit "tagged" mobs

#

so like can u choose between having some normal mobs spawn and some "super buffed up" ones

#
  • im 99% sure this doesnt change the collision boxes right
rough drift
#

Do you need help? 😭

proper cobalt
rough drift
#

Also it seems as if you're missing backjumping

torn shuttle
#

no I just got it to sort of start working again

torn shuttle
#

it's a really tricky implementation because it's supporting rotations natively

proper cobalt
#

nah im new to developing on this version myself, i was surprised too

#

i used to be a legacy dev

torn shuttle
#

and uses a tag system

rough drift
#

you're just skill issued

torn shuttle
#

ok buddy you go make your own then

rough drift
#

and then optimized the shit out of it

unique shuttle
#

Hello! Is there any way to detect when an entity is removed? Or when an item is deleted after nobody has picked it up? Spigot +1.19.4

torn shuttle
#

good for you

rough drift
#

and then added back jumping

torn shuttle
#

I have rollbacks the house detection just didn't trigger it yet

fair rock
#

Uh can i see a video of that too :o?

rough drift
fair rock
#

of IkeVoodoos Implementation

rough drift
#

but I guess it's like his

#

lemme find it

#

got it

fair rock
torn shuttle
#

I set it to be real small

fair rock
#

For testing purpose i would say?

torn shuttle
#

yeah

#

I'll get a bigger one

fair rock
#

I like it btw :)!

torn shuttle
#

damn

#

discord is completely rate limiting me

#

they don't like me uploading videos

rough drift
#

@fair rock I'm optimizing it slightly because I want to make it big but it's slightly too slow

torn shuttle
#

btw it's still generating but I'm not sure a video of 10 minutes of it generating to view distance would do well in discord

unique shuttle
torn shuttle
#

still have to add the new more vertical buildings, voronoi noise for the target height, biomes for region-based architecture, actually implement rotations, add the repetition penalty system... and I think that's it

#

my initial goal here is to actually make a warhammer 40k-style hive city

#

oh and weight system

#

that too

fair rock
#

To be honest, looking already good

torn shuttle
#

nah these are the placeholder graybox builds

#

it's a hot mess

#

already working on canals, walkways, bridges and modular builds with the builder, I just need to configure their tags correctly

#

hm also I'm now pretty sure I flipped one of the axis here and it's causing problems

#

good

quaint mantle
#

?bt

undone axleBOT
remote swallow
#

that isnt offical and shouldnt be used

quaint mantle
#

What is the official one?

slender elbow
undone axleBOT
quaint mantle
#

Thx

quaint mantle
#

so much cool stuff

vagrant stratus
#

Aight, so a variety of NMS classes implement a form of a "addParticlesAroundSelf" method (or just don't use a method and call the code directly). These classes being EntityDolphin, EntityAnimal, EntityAbstractHorse, EntityOcelot, EntityTameableAnimal, EntityAbstractVillager, and EntityLiving. Thoughts on bumping "addParticlesAroundSelf" to "Entity", rewriting the above classes to use it, and also making it a Bukkit API method?

The following contains a rough (incomplete, might have slight incorrections) spigot only implementation showing similar each of the methods are (plus a generic method for general purpose): https://paste.md-5.net/oqucixineb.cpp.

While I could update this to support every mob, it would be much more useful to have an Entity#addParticlesAroundSelf method so that I'm not duplicating vanilla code and not having to update it every version either

Used for things like taming failed/succeeded, when the dolphin is fed and locating a structure, when an animal is in love mode, villager mating, angry, happy and the villager splash particles, among others

slender elbow
#

that's a lot of text

#

good luck

remote swallow
#

yeah thats a lot optic

vagrant stratus
# remote swallow yeah thats a lot optic

api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api api

slender elbow
#

yeah i like that

#

much api

vagrant stratus
remote swallow
#

so ur a nerd then

#

got it

vagrant stratus
#

Nah, I was messing around looking for stuff to add to a project. Noticed stuff in NMS which would be a nice to have as a public method lol

remote swallow
#

so pr it

#

md already has all ur info probably