#help-development

1 messages · Page 1123 of 1

quaint mantle
#

i need idea can u give me?

eternal oxide
#

A car that runs on water.

quaint mantle
#

XD

#

rly im making a survival game

#

brb

#

can i get when players right click and left click on blocks in adventure mode?

cosmic elk
#

this is very helpful, i just wish there was a way to store the amount of times a player has been killed with the item lol, so i could know how much max health that player would have

#

unless there is and im missing something

agile anvil
#

quick way of doing it is having two lists (two keys): one for uuid and one for the corresponding number of death

#

You just have to look at the corresponding index to get the value

quaint mantle
#

for 1.21 plugins java 17 or 18 or + ?

agile anvil
#

"Mojang has decided to make Minecraft 1.21 require Java 21 or later"

cosmic elk
# agile anvil You just have to look at the corresponding index to get the value

what can i do to be sure that one amount of deaths one player has taken wont be confused for another? like if Player A dies 1 time by the weapon then Player B dies 3 times I still wanna be sure that Player A only has 1 heart missing and Player B has 3, sorry for so many questions again im pretty new to this and just wanna understand this more lol

agile anvil
#

Just add one death only if the killer of the event is the player A with the given weapon

lost matrix
slate siren
#

?paste

undone axleBOT
rugged plover
#

https://paste.helpch.at/yidobedete.java and

    **RegionContainer** container = worldGuard.**getRegionContainer**();
    return container.**get**(BukkitAdapter.adapt(loc.getWorld()));

//import com.sk89q.worldguard.protection.managers.RegionContainer//;

//import java.util.Iterator//;

Bold = red in the code
between // // = light gray in code

How can i fix thid

lost matrix
agile anvil
#

It means RegionContainer does not exist at the location you provided, nor the method #getRegionContainer

lost matrix
#

But looks to me like there are missing dependencies. Just a first guess.

agile anvil
#

Might be version mismatch between your import and what you want to use

weary zinc
#

Hey guys, im trying to download net.md-5:bungeecord-api:1.20-R0.1-SNAPSHOT.
So I tried this :

repositories {
    mavenCentral()
    maven {
        url = "https://jitpack.io"
    }
}

dependencies {
    compileOnly "net.md-5:bungeecord-api:1.20-R0.1-SNAPSHOT"
    compileOnly "com.github.LoneDev6:API-ItemsAdder:3.6.1"
}

but the error said :

:main:main: Could not find net.md-5:bungeecord-api:1.20-R0.1-SNAPSHOT.
Searched in the following locations:
  - https://repo.maven.apache.org/maven2/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/maven-metadata.xml
  - https://repo.maven.apache.org/maven2/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/bungeecord-api-1.20-R0.1-SNAPSHOT.pom
  - http://59.4.140.144:8081/repository/maven-public/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/maven-metadata.xml
  - http://59.4.140.144:8081/repository/maven-public/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/bungeecord-api-1.20-R0.1-SNAPSHOT.pom
  - https://jitpack.io/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/maven-metadata.xml
  - https://jitpack.io/net/md-5/bungeecord-api/1.20-R0.1-SNAPSHOT/bungeecord-api-1.20-R0.1-SNAPSHOT.pom
Required by:
    project :main

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html


how can I fix this problem?

lost matrix
hybrid turret
#

helo peeps

#

what's poppin

weary zinc
vocal cloud
#

is there like a plugin that makes a website like your.domain.com**:123** and on there you can play on the server if you verify and then you play as a npc but you can still buld/brake etc

pseudo hazel
#

that sounds oddly specific

#

also thats like nearly impossible

young knoll
#

How do you play as an NPC

eternal night
#

make villager noises

pseudo hazel
#

sounds like they just want cloud gaming but on a website

umbral ridge
#

Nice

orchid gazelle
#

It's technically possible

#

If you rewrite half the game in javascript and then rewrite half the game again as a spigot fork

trim socket
#

Anyone able to help with using Protcolib, Trying to make Armor stand glow only for certain player?
error log - https://pastebin.com/vfyb18xE

private void setGlowingForPlayer(ArmorStand armorStand, Player player, boolean glow) {
        int entityId = armorStand.getEntityId();

        PacketContainer metadataPacket = protocolManager.createPacket(PacketType.Play.Server.ENTITY_METADATA);
        metadataPacket.getIntegers().write(0, entityId);

        WrappedDataWatcher watcher = new WrappedDataWatcher(armorStand); // Initialize watcher with the armor stand
        WrappedDataWatcherObject glowObject = new WrappedDataWatcherObject(0, WrappedDataWatcher.Registry.get(Byte.class));

        byte glowingBitMask = (byte) (glow ? 0x40 : 0x00); // Use the correct bitmask for glowing
        watcher.setObject(glowObject, glowingBitMask);

        // Make sure to clear previous metadata to avoid conflicts
        metadataPacket.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects());

        try {
            protocolManager.sendServerPacket(player, metadataPacket);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

pseudo hazel
#

what version

#

oh, 1.21.1

#

iirc they updated that packet

#

thats why I prefer packet events haha

vocal cloud
pseudo hazel
#

right

#

thats essentially what that would be

#

but this kinda requires the website to be a minecraft client

#

which isnt gonna happen xD

trim socket
pseudo hazel
#

im not too sure

#

are you using minecraft protocol wiki?

vocal cloud
pseudo hazel
#

sounds a lot like offline mode

#

unless you wanna like authenticate users with the minecraft account

#

but idk any plugin that has anything remotely close to this

rugged plover
lost matrix
#

Send your errors

rugged plover
#

no suitable method found for getApplicableRegions(com.sk89q.worldedit.util.Location)

eternal night
#

why do you have two different versions of WE

lost matrix
rugged plover
eternal night
#

Yea but you have four in total

rugged plover
#

4?

lost matrix
eternal night
#

7.0.8 and 7.2.15

rugged plover
#

guard and edit

eternal night
#

oh

#

reading is rough

#

mb

rugged plover
#

ahah

lost matrix
ebon hawk
rugged plover
lost matrix
#

From where did you copy your code?

rugged plover
grim ice
#

I'm ngl WE's developer api is pretty shit to use

#

just finding the repo was annoying

slender elbow
#

what are you talking about lmao

#

the very second sentence of their api docs tell you the repo

tardy delta
#

rad alive confirmed

blazing ocean
grim ice
#

wait no

#

I'm braindead

#

they're on the same repo 🙏🏻

rugged plover
# lost matrix https://worldguard.enginehub.org/en/latest/developer/

got it kinda working still got 2 error's java: cannot find symbol
symbol: method getRegionContainer()
location: variable worldGuard of type com.sk89q.worldguard.bukkit.WorldGuardPlugin

and

java: no suitable method found for getApplicableRegions(com.sk89q.worldedit.util.Location)
method com.sk89q.worldguard.protection.managers.RegionManager.getApplicableRegions(com.sk89q.worldedit.math.BlockVector3) is not applicable
(argument mismatch; com.sk89q.worldedit.util.Location cannot be converted to com.sk89q.worldedit.math.BlockVector3)
method com.sk89q.worldguard.protection.managers.RegionManager.getApplicableRegions(com.sk89q.worldguard.protection.regions.ProtectedRegion) is not applicable
(argument mismatch; com.sk89q.worldedit.util.Location cannot be converted to com.sk89q.worldguard.protection.regions.ProtectedRegion)

This one 6 times

brazen badge
#

to create a section with some fields inside I have to do this?

tardy delta
#
BukkitWiki

The Configuration API is a set of tools to help developers quickly parse and emit configuration files that are human readable and editable. Despite the name, the API can easily be used to store plugin data in addition to plugin configuration. Presently only YAML configurations can be used. The API however was designed to be extensible and allow ...

lost matrix
tardy delta
#

just implement it and see what methods it has, then come back

lost matrix
# brazen badge can you send an example?
public class Thing implements ConfigurationSerializable {

  private final String name;
  private final int age;

  public Thing(String name, int age) {
    this.name = name;
    this.age = age;
  }

  @Override
  public @NotNull Map<String, Object> serialize() {
    return Map.of(
        "name", this.name,
        "age", this.age
    );
  }
  
  public static Thing deserialize(Map<String, Object> map) {
    return new Thing((String) map.get("name"), (int) map.get("age"));
  }
  
}
    FileConfiguration configuration = ...;
    Thing thing = new Thing("Peter", 20);
    configuration.set("some.cool.path", thing);
    // later on
    Thing loadedThing = (Thing) configuration.get("some.cool.path");
bronze pelican
#

does anyone know how to make custom swords with skripts

#

I need help

#

I asked chatgpt but It doesnt work

lost matrix
#

This channel is for plugin development. Nobody here skripts.

bronze pelican
#

oh

bronze pelican
lost matrix
halcyon hemlock
tardy delta
#

what else would it be

slender elbow
#

bukkit juice

late sonnet
undone axleBOT
tardy delta
#

yall dont have that url in the browser?

vast ledge
vast ledge
#

?tias

#

Rip

#

Try it and see

halcyon hemlock
#

just type it out fr

blazing ocean
#

hi

halcyon hemlock
#

idle ram is 4 MB

#

with chunks its 13.7 MB

blazing ocean
#

damn

halcyon hemlock
#

changed db

#

sled is so garbage

#

it was using 20mb idle

chrome beacon
#

?tas

undone axleBOT
blazing ocean
#

nooooo

#

poor guy

shadow night
blazing ocean
#

real

halcyon hemlock
#

tf

blazing ocean
#

lmao it is from there

halcyon hemlock
#

exact literal exact game

#

oh

#

makes sense

#

i also submitted my project

blazing ocean
#

wait you did that stuff too

halcyon hemlock
#

yea

blazing ocean
#

@alpine urchin @onyx fjord !!

halcyon hemlock
#

got like 100 hours

#

wanted to get a 3d printer :(

#

was 30 hours short

blazing ocean
#

kacper got one

halcyon hemlock
#

what round is it right now

blazing ocean
#

idk

halcyon hemlock
#

how do i survive

onyx fjord
halcyon hemlock
#

how much is it

onyx fjord
#

like top 60

halcyon hemlock
#

yea

onyx fjord
#

ive got the bambu

halcyon hemlock
#

next round would make it just 8

halcyon hemlock
#

500$?

#

i just got a domain instead

onyx fjord
#

350

halcyon hemlock
#

dang

#

i got a domain and just wasted my tickets on a fucking keyboard

onyx fjord
#

also a sprig, yubi key, raspberry pi

#

and still 39 left

halcyon hemlock
#

i live in korea, nothing ships here according to them

#

wanted a keychron

halcyon hemlock
onyx fjord
#

all my projects already lost

#

i just did plugins

halcyon hemlock
#

bro how did my make it to top 50

#

literally

#

the read me is fucking shit

#

the best readme was for the plugin but it lost

shadow night
#

YetAnotherUselessReimplMC

halcyon hemlock
#

sh

#

ut

#

im just doing it for fun tbh idc

#

made everything myself

#

nbt, ecs, packets, all

onyx fjord
#

like top 2

halcyon hemlock
onyx fjord
#

yes

halcyon hemlock
#

yooo thanks ma guy

#

why though? i saw some crazy projects

obtuse hedge
#

whats a ferrum

halcyon hemlock
#

iron in latin

fallow crag
#

Someone can explain to me why is it recommended to reset server instead of reloding the plugin, when changes to code has been made?

obtuse hedge
#

why doesn't spigot implement a reload handler & allow plugins to implement their own reloading system instead of doing whatever broken thing they're currently doing

#

i mean most plugins already include a reload command

halcyon hemlock
#

cuz its spigot

obtuse hedge
#

boo

#

the homies use paper/purpur /j

halcyon hemlock
#

I use purpur

#

purpur is good

onyx fjord
#

reloading a java program is rarely a good idea

#

you are asking for memory leaks

blazing ocean
#

reloading classes is cool

onyx fjord
#

only for debugging

fallow crag
#

valid point, however does it even matter during the plugin development?

obtuse hedge
#

I meant a proper reload handler for Spigot

young knoll
#

Potentially

obtuse hedge
#

to allow plugins to do what they need on reload

young knoll
#

Sometimes people reload, encounter an issue, and then come here for help

#

And it turns out the issue was reloading

fallow crag
#

I see

young knoll
#

Also there is an event that fires on reload

#

ServerLoadEvent

#

But your entire plugin will be unloaded and reloaded first, so you can’t easily pass data to it

novel kite
halcyon hemlock
halcyon hemlock
#

i didnt do anything on the domain

fallow crag
blazing ocean
#

damn 20 stars

#

gj

novel kite
young knoll
#

University of Michigan hates rust

#

Confirmed

blazing ocean
novel kite
halcyon hemlock
obtuse hedge
halcyon hemlock
#

it was at 9 a few days ago :p

halcyon hemlock
young knoll
#

I mean I don’t think a full reload should exist anymore anyway

#

Outside of dev environments I guess

obtuse hedge
#

A proper reload handler should be provided by plugins

#

And spigot call those

#

Not unload and load plugins

young knoll
#

Well, spigot is open source

#

Make a PR

novel kite
dry hazel
obtuse hedge
#

Oo

#

Yes

#

This is perfect

young knoll
#

You can’t hotswap with mojmap NMS sadly

blazing ocean
#

or can you

dry hazel
#

if you have a mojmapped server and plugin

blazing ocean
#

paper Clueless

young knoll
#

True I guess I could just run the server mojmapped

shadow night
#

I once ran an intermediary mapped spigot server

#

Everything is possible

blazing ocean
#

mcp mapped spigot when

shadow night
#

Fuck no

blazing ocean
#

voldemap

dry hazel
#

hate alternative mappings, love mojmap

obtuse hedge
#

lol

shadow night
blazing ocean
#

yarn ftw

dry hazel
#

yarn sux

shadow night
blazing ocean
#

no u

obtuse hedge
#

I’m gonna add it to my server

shadow night
obtuse hedge
#

I’m a spigot user

blazing ocean
#

you suck

shadow night
blazing ocean
#

😳

young knoll
#

I mean that plugin requires other plugins actually add support for it

#

Idk if many do

halcyon hemlock
#

i leave for one second, and now everyone is sucking

blazing ocean
#

pluginremapper for yarn when

tardy delta
#

hmm coll is cute too

shadow night
#

Or spigot yarnable?

blazing ocean
#

W

shadow night
#

I can do it if you want

river oracle
#

most useless project NA

obtuse hedge
#

To support it

blazing ocean
blazing ocean
#

paperweight is great

shadow night
#

But only for plugins, not developing paper itself

obtuse hedge
#

Purpur

blazing ocean
#

the merge conflicts 💀

torn shuttle
#

ok hear me out

#

a inventory menu system where the backend is created such that you're passing classes that implement an abstract run(player) method which is overriden per item

#

genius or jank

#

I'm thinking every genius was a little bit crazy

tardy delta
#

and run handles clicks?

torn shuttle
#

yes

gleaming grove
tardy delta
#

simple stuff

torn shuttle
#

I know it's simple

tardy delta
#

i do that too

torn shuttle
#

there's a million ways to make an inventory backend

#

I'm just trying to pick one

#

and I feel like this one might kinda be cooking

tardy delta
#

illusion did smth with layers, static layer, dynamic layer based on the page, etc

#

cant rememeber

torn shuttle
#

yeah but @echo basalt is kinda cringe ngl

young knoll
#

?gui

tardy delta
#

dunno what i should say

torn shuttle
# young knoll ?gui

wow I can't believe @lost matrix stole my code that I was about to write and then wrote and backdated a spigot post about it

#

is there a spigot resource post on how to sue someone for stealing your future code

tardy delta
#

would probably be more efficient to bring him a visit

obtuse hedge
#

Wow that’s some clean code

tardy delta
#

still default ij theme :|

halcyon hemlock
#

@blazing ocean help dude

blazing ocean
#

everypony

#

i'll vote for ferrumc

halcyon hemlock
blazing ocean
#

where do i vote

halcyon hemlock
#

/showcase

tardy delta
#

my little pony quest?

halcyon hemlock
#

wait a fucking minute

#

top 19?

blazing ocean
#

it only shows mine

#

(i have none)

halcyon hemlock
#

how the fuck this made it through

blazing ocean
#

send link

#

i wanna vote

rough drift
halcyon hemlock
#

im fucking cooked bro

blazing ocean
halcyon hemlock
blazing ocean
#

wtf

tardy delta
#

💀

halcyon hemlock
#

im not fucking winning bro

tardy delta
#

thats cool

blazing ocean
#

retropoopers actualyl

halcyon hemlock
#

bro made a drone

#

bro im NOT winning

blazing ocean
#

damn

halcyon hemlock
#

im not even placing top 10

#

19 projects and i have to vote out of 18

#

am i like actually actually cooked

#

im not fucking winning bro

#

fuck it im bumping my readme

tardy delta
#

what did you make?

blazing ocean
#

he made mc server from scratch

#

in rsut

rough drift
#

Hey chat

tardy delta
#

i quite like that font

rough drift
#

it's Gaegu

blazing ocean
#

okay but what about

shadow night
#

Looks cyberpunk

#

And also looks like you changed my code

tardy delta
#

looks fucked

blazing ocean
#

we could use it with our game

blazing ocean
paper viper
#

its too compressed for my eyes

lost matrix
#

Is guns a map? Its not, right

blazing ocean
#

okay but what about this kekwhyper

shadow night
blazing ocean
lost matrix
#

-.-

blazing ocean
shadow night
blazing ocean
#

blame raydan

shadow night
#

I myself made that map

blazing ocean
#

i did not write that code

tardy delta
#

smile found something, ruuun

shadow night
#

with my own hands I summoned it

blazing ocean
#

BEAUTIFUL

shadow night
#

what the fuck

tardy delta
#

use a non monospaced one

shadow night
blazing ocean
#

that is actually kinda cool

shadow night
#

no please

blazing ocean
#

LOVE BUG IN INTELLIJ

shadow night
blazing ocean
#

this better

#

"Virtue Extra Large Black Bold"

shadow night
#

can you please just use some default font

blazing ocean
#

i usually use zed mono bold

#

okay but hear me out

shadow night
#

WINGDINGS???

blazing ocean
#

who doesn't love openoffice ubuntu communism redhat communism firefox postgres mandriva xfce ...

blazing ocean
shadow night
blazing ocean
blazing ocean
tardy delta
#
@EventHandler
fun onPlayerToggleSneak(event: PlayerToggleSneakEvent) = event.apply {
  if (player.isFlying) return@apply
  guns[player.inventory.itemInMainHand]?.type?.showScope(isSneaking, player)
}```
shadow night
blazing ocean
#

hehe

blazing ocean
#

why would you apply

wet breach
shadow night
wet breach
#

one way to find out

shadow night
#

I don't have a barcode scanner

wet breach
#

be so hilarious you get a barcode scanner to only find out it is a price and nothing more

#

also your phone can scan barcodes just fyi

knotty meteor
#

What

halcyon hemlock
#

@blazing ocean sos

#

help me improve readme

#

what do i add

#

i cant lose this man

blazing ocean
#

send link rq

halcyon hemlock
#

i added some diagrams

halcyon hemlock
blazing ocean
#

i don't think you can improve that any further

halcyon hemlock
#

wdym

#

its trash rn

#

compared to others

#

i need to add more visualize things

#

no one reads

blazing ocean
#

it's not trash

#

it's great

halcyon hemlock
#

hahjkadhf

#

should i add yt video

#

showing chunkns

blazing ocean
#

sure

halcyon hemlock
blazing ocean
#

average

rough drift
halcyon hemlock
#

gg

rough drift
halcyon hemlock
rough drift
#

None of the existing plugins will work tbh

#

and it's harder to get into rust dev than java dev imho

halcyon hemlock
#

to create something fast

zealous osprey
# blazing ocean 10/10

Now buy a barcode scanner, write some code that will add all the scanned messages sequentially and then compiles the project

blazing ocean
halcyon hemlock
#

I'm not in final

#

😥

blazing ocean
#

😔

halcyon hemlock
#

Maybe next time

#

Man damn it

#

Itz cuz the Readme was boring ss fuck

primal mica
#

in this AsyncStructureGenerateEvent what is this getBlockTransformers, and why is it always returning empty?

chrome beacon
#

It's empty because you haven't added any

eternal oxide
#

Transformers allow you to modify the structure or its entities

chrome beacon
#

^^ entity transformers exist too

primal mica
#

how do I get the blocks of the structure?

chrome beacon
#

What do you want to do with them

primal mica
#

I have a rarity system (common, rare, legendary), and it is applied to blocks. I want to have a chance of a structure have all blocks rarity set to rare for example

eternal oxide
#

get the Structure from teh StructureManager, then getPalette

primal mica
#

in the AsyncStructureGenerateEvent? could you explain more please?

eternal oxide
#

Bukkit.getStructureManager()getStructure(event.getStructure()).getPalette()

primal mica
#

ok will try

#

but this pallet will just retrieve the pallet of blocks, not the block itself, I need the location

eternal oxide
#

the location is relative to the event BoundingBox

primal mica
#

bounding box returns an imense location (all y axis), I need just the blocks of the structure

eternal oxide
#

blocks are in the palette

safe furnace
#

Anyone that knows a bit something about custom models (npcs in my opinion). dm me. or ping me here. like resource pack or smth..

eternal oxide
#

you may need to use event.getStructure().getKey() with the StructureManager

#

play around and see

primal mica
#

but maybe there some impostor blocks affected, not related to structure

eternal oxide
#

impostor?

primal mica
#

like a block that is in pallete, but does not belong to structure

eternal oxide
#

A Structure has a defined size. The palette is an array of Blocks which are used in order (I think) y,x,z

#

impossible

#

if its in the palette its a part of the Structure

primal mica
#

ok I'll test it

eternal oxide
#

iterate the Palette and create a BlockTransformer for any Blocks you want to change

lost matrix
#

What i really need right now is a method which lets me get a Structure at a certain Location. 🫤

eternal oxide
#

yeah vanilla has a locate

#

Pretty sure that can find structures

#

it can also crash the server 😦

lost matrix
#

Yeah, but those dont have a BoundingBox, at least not in the api. And locateNearestStructure is expensive.

eternal oxide
#

very

#

and yeah only way I found to get a BB is to read it from teh StructureManager

#

Not so good for multipart

#

BB seems to be placed during generation

#

I dug through the internals but never found where

novel kite
primal mica
#

plugin.getServer().getStructureManager().getStructure(event.getStructure().getKey());
is returning null

eternal oxide
#

for what structure?

primal mica
#

tested for desert pyramid and end city

#

with /place, and a mineshaft generated from world

eternal oxide
#

see what the key is

primal mica
#

[16:31:46 INFO]: minecraft:mineshaft KEY

#
@EventHandler
public void debug(AsyncStructureGenerateEvent event)
{
    Bukkit.broadcastMessage(event.getStructure().getKey() + " KEY");
    Structure structure = plugin.getServer().getStructureManager().getStructure(event.getStructure().getKey());
    BlockDataFiler blockDataFiler = plugin.getBlockDataFiler();
    
    for(Palette palette : structure.getPalettes())
    {
        for(BlockState blockState : palette.getBlocks())
        {
            //...
        }
    }
}
eternal oxide
#

key is fine

#

um try getKey().getKey()

#

as you want teh Namespaced not teh Keyed

#

if not, no clue

#

the structure is valid and registered as its vanilla

primal mica
#

NamespacedKey key = event.getStructure().getStructureType().getKey();

grim hound
#

"Too expensive" in anvils shows up when the operation requires 40 or more levels. Can this be changed to show an operation that costs more than 40 levels or is it hardcoded into the client's code?

primal mica
#

when you are in lack of xp

tardy delta
#

mojank

rough drift
jovial pine
#

is there a post join event?

tender shard
#

ugh anyone knows what the issue is? it compiles fine. invalidating caches didnt help. "Repair IDE" also didnt help

tender shard
#

compiles fine

late sonnet
#

(if not you can just remove the gradlew directory for remake maybe...) im not a gradle certified :c

slender elbow
#

close intellij
rm -r .idea
open intellij
profit

tender shard
#

no change

eternal night
#

latest IDEA version?

tender shard
#

Build #IU-242.21829.142, built on August 28, 2024

tardy delta
#

its intellij being buggy

tender shard
#

yes but I want that fixed lol

#

it's annoying

tardy delta
#

usually helps when restarting a few times no?

eternal night
#

maybe a plugin dying on you?

tardy delta
#

time to become a vimmer 😔

eternal night
#

could be one of the bundled ones, e.g. java bytecode plugins

remote swallow
#

lynx has earth computer fixed vineflower plugin yet

eternal night
#

I don't use vineflower IJ plugin

remote swallow
#

smh

#

why not

eternal night
#

idk, my dependencies have their sources published

slender elbow
#

it quite literally errs every single second

remote swallow
#

yeah

slender elbow
#

i have no idea how they possibly published their latest update

slender elbow
eternal night
#

salty emily

#

tastes worse than usual

remote swallow
#

it used to work, then it was too out of date and refused to work, and now thats fixed it errors constantly because its trying to non null some intellij thing

tardy delta
#

time to write my own decompiler

tender shard
eternal night
slender elbow
#

nah the decompiler is not the issue

#

it's very solid

#

it's the intellij plugin that's hot garbage

tardy delta
#

side quest for me

slender elbow
#

make it a usable decompiler intellij plugin

tardy delta
#

a man needs something to keep himself busy with

pure dagger
#

_<

tardy delta
#

it will be written in native code if it ever happens so dunno about ij

#

kotlin ffi moment probably

slate siren
#

I created a kit system and added a self-drops listnerr, how can I keep the kit item separate from other items?

agile anvil
#

You can add some persitant data container to the item showing it as a kit

hexed kettle
#

The animated java plugin for blockbench was meant to export for datapacks but it appears to have a .json export feature for plugin solutions. Yet looking through this channel, I got the impression that no complete rendering engine exists for those animation.json files. Does that mean I have to create my own interpreter for the animation.json or call functions of a datapack export?

young knoll
#

ModelEngine and whatnot just use a normal bbmodel

#

No animated java needed

hexed kettle
#

hmm, ic. Ty

young knoll
#

There’s also FreeMinecraftModels and Aquatic model engine

hexed kettle
#

from skimming over their spigot pages they appear to be more alike with what I was looking for, nothing super abstracted just some interpreter for any kind of animated blockbench files. tysm

quaint mantle
#

There is any way to get a player uuid with the username? Mojang api seems to not work without no cors mode and not sending data

brazen badge
#

Off topic: now I need an answer lol. I have to understand how some programmers manage to release so many plugins in a short time. That is, you have to practically think about creating a plugin that is fully customizable for the end user, so a lot of stuff to write. Please tell me how they do it 🙂

worthy yarrow
# brazen badge Off topic: now I need an answer lol. I have to understand how some programmers m...

Honestly the speed of which some programmers can go at just comes from experience and practice, say you've written several minigame systems... that being said if you are tasked with another it probably won't take all that long considering you already know the fundamentals of said system, this is pretty much the same with every project but for the most part the programmer has just been doing it for so long that they know what these plugins are going to require and have done it enough to genuienly implement it in such a speedy way

#

There's no shame in having to take a couple days or whatever to plan your implementation, like I said that speed will come with experience

hexed kettle
young knoll
#

Bukkit.getOfflinePlayer(name)

#

Then get the uuid of said offline player

quaint mantle
quaint mantle
young knoll
#

That’s what it does

#

If necessary

#

If you need it for something outside of spigot presumably you can just check the impl

humble tulip
#

Can getOfflinePlayer be called async?

ivory sleet
#

i think yea

#

do u mean the uuid one or the name one?

young knoll
#

The name one definitely can

#

I think the other one can too? Idk

slender elbow
#

none of the two overloads are thread safe

young knoll
#

Guh

#

I always run the name one async since yknow

#

Web request

#

At least I recall doing so in the past

slender elbow
#

i mean yea you can do that

#

doesn't make it any less thread safe pepelaugh

young knoll
#

Does it make it more thread safe :D

slender elbow
#

oh

#

yeah that's what I meant

#

it doesn't

#

I sleep

young knoll
#

What if I cope harder

umbral flint
#

Does the getOfflinePlayer method cache the result?

#

I remember in the past that the first call is always slower than the next calls

young knoll
#

I believe so

umbral flint
#

Maybe that's why it is not thread safe?

brisk estuary
#

hey, has anybody here had problems while testing plugins that use kotlin-reflect? For some reason I'm getting this error whenever a method from this lib is executed: kotlin.jvm.KotlinReflectionNotSupportedError: Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath.
I checked my resulting jar and kotlin-reflect is there :/

#

here's my dependencies section from build.gradle

dependencies {
    library(kotlin("stdlib"))
    library(kotlin("reflect"))

    compileOnly("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT")
    compileOnly("com.github.Slimefun:Slimefun4:RC-37")

    implementation("org.bstats:bstats-bukkit:3.0.2")
    implementation("co.aikar:acf-paper:0.5.1-SNAPSHOT")

    implementation("io.github.seggan:sf4k:0.4.1")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC2")
}
cosmic elk
#

in a PDC in an item, how can i store an array (or just more that one string, whatever works really) of strings under the same key? i cant find much info online about this lol

young knoll
#

Pdc has lists now

cosmic elk
#

yeah i seen that, i had a hard time finding info online to use it though, i suck at reading docs

young knoll
#

PersistentDataType.LIST.strings()

drowsy helm
#

oh dang it does too

young knoll
#

Works with any type, including custom ones

#

Thank lynx for that

wet breach
#

@eternal night thank you

drowsy helm
#

Isn't Plugin#getConfig() supposed to be NotNull?

rough ibex
#

indeed it is supposed

drowsy helm
#

I've fucked something up royally

remote swallow
#

Did you save it

drowsy helm
#

yeah, it was working perfectly fine then it just stopped working lmao

kind granite
#

good day all

blazing ocean
lethal coral
drowsy helm
#

indeed

blazing ocean
#

idk it just feels like having pixel fonts your ide fonts

#

it feels weird

#

i have a lotta monospace pixel fonts but they don't really work in ides

lethal coral
#

maybe I wouldn't like it long-term but it's a cool gimmick

drowsy helm
#

tbh it makes some things a lot easier to read

blazing ocean
#

i'm a big fan of zed mono bold

drowsy helm
#

just looks like default to me

#

maybe im blind

blazing ocean
#

i just don't like JBM anymore tbh

#

i will ALWAYS be arguing about fonts tho can't say no to that

blazing ocean
blazing ocean
halcyon hemlock
#

Hi everyone

mellow edge
drowsy helm
#

yeah it's called monocraft

mellow edge
#

Nice

echo basalt
#

you're just jealous of my great code

torn shuttle
#

how's your pizza

echo basalt
#

what pizza

torn shuttle
#

the one that made the stain on your shirt

echo basalt
#

what pizza

#

what stain

#

the fuck are you on about

torn shuttle
#

you've probably had more pizza in the last 24h than I have in the last year

echo basalt
#

haven't had pizza in a while

torn shuttle
#

are you in withdrawal?

echo basalt
#

no

torn shuttle
#

have you finally stopped eating junk food or are you just back to eating rotisserie chicken for every meal

echo basalt
#

haven't had chicken in a while too

torn shuttle
#

so you're just saying you've not eaten in a while

echo basalt
#

no

torn shuttle
#

I was not aware you were physically capable of eating something not in these two categories

echo basalt
#

ok

torn shuttle
#

so what are you eating

echo basalt
#

food

torn shuttle
#

this deflection makes me think you might just be going to burger king or some equally degenerate thing

echo basalt
#

had a sandwich like an hour ago

torn shuttle
#

ok so you're not actually eating healthy food yet either

#

had me worried for a second there

#

actually fun fact my cut stops today

#

I'm already at my target weight and I'm switching meal plans

#

first change since february

quaint mantle
#

Twitch streamer ahh lifestyle

umbral ridge
#

its not the food that makes you fat

#

you need to exercise and not sit on your ass all day

#

burn calories

#

work

echo basalt
#

you burn a surprising amount of calories just being alive

#

While with exercise you tend to get hungry and end up consuming some of the few calories you burned

#

Now, the key is to burn A LOT of calories and not consume that many

#

So exercise helps but eating less also helps

lost matrix
#

Its not the exercise per sé. Its building muscle mass so your base energy consumption rises, even if you do nothing.

agile anvil
#

if you burn more calories than what you eat, you will lose weight but mainly lose your muscles

lost matrix
echo basalt
#

it's a lot easier to eat 100 calories less than to burn 100 calories let's just say

umbral ridge
#

yes its easier to eat than work

echo basalt
#

anyone with modern cardio equipment will tell you

umbral ridge
#

it all also depends on your metabolism

#

some people eat 1 hamburger and shit for 3 days

#

some dont shit at all

echo basalt
#

you can also only absorb a certain amount of calories at a given moment

#

as in, if you eat uranium you will NOT gain like 20 million calories

#

At most a couple thousand

#

unless your body dies before

drowsy helm
echo basalt
#

did he become morbidly obese

lost matrix
#

It was definetly enough calories for the rest of his life

deft elm
#

Hello, im trying to set the skin layers for my npc in 1.21.1

        SynchedEntityData synchedEntityData = npc.getEntityData();
        byte b = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40;
        synchedEntityData.set(EntityDataSerializers.BYTE.createAccessor(17), b);
```

This is the code i looked at and it's for 1.17
I'd like to ask if anyone knows the code changes needed for 1.21.1
lost matrix
echo basalt
#

creating data accessors instead of accessing the existing ones :(

#

might break stuff with version updates

deft elm
#

Thanks for the help but im still a little confused as to how this works

chrome beacon
#

That sets the entity datas skinlayer (id 17) to 127 which will make everything show

#

127 in this case is the result of a bitmask

#

which you sent above

echo basalt
#

0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40; is 127

#

here's a funky ass trick

#

just add the tens together and multiply by 16

#

or whatever

#

10 + 20 + 40 = 70, /10 = 7
01 + 02 + 04 + 08 = 15

7*16 + 15 = 127

#

crazy how numbers make math

deft elm
#
        SynchedEntityData synchedEntityData = npc.getEntityData();
        EntityDataAccessor<Byte> accessor = new EntityDataAccessor<>(17, EntityDataSerializers.BYTE);
        synchedEntityData.set(accessor, (byte) 127);

I tried this and the skin layers still dont show. Sorry im still pretty new to this so i'll prolly need a more full explaination.

chrome beacon
#

Are you sending the entity data

agile anvil
#

What don't you understand? The bitmask, or the actual EntityData?

deft elm
#

entitydata

deft elm
chrome beacon
#

yes

deft elm
#

ah ill try that then 💀

#

i did not do that

chrome beacon
#

if you've never worked with packets before you should just use Citizens

deft elm
chrome beacon
#

no

deft elm
#

Alright thanks for the help i managed to get the packet working with

If this is a bad or non ideal way to create the packet please do let me know

tardy delta
#

😂

ivory sleet
#

real

umbral flint
#

Are there any things that I shouldn't do on a virtual thread?

eternal oxide
#

dance?

umbral flint
mortal vortex
#

Hello. Is there a native method for retrieving playerSkin information? I just need to get a bitmap array from a players skin, I see a lot of plugins using a HTTP API for this.

lost matrix
lost matrix
umbral flint
#

There has to be a downside to using a virtual thread to a platform thread

#

I mean I can probably Google that quickly

mortal vortex
#

There is one downside I can think of? And that's the assuming thread identity.

#

Don't rely on thread identity or assuming a specific thread will execute a particular task. JVM's scheduler decides which virtual thread gets assigned to an available platform thread at any given time, so it's non-determinilistic. Don't write code that assumes a particular thread will do a task.

#

But where you'd ever actually assume threads in Spgiot dev? idk

pliant topaz
#

a virtualthread is nothing more than the vm deciding on what platform thread to use

#

virtualthreads are more scalable

#

(iirc)

lost matrix
#

Hm, that sparks the question how ThreadLocal references are handled in virtual threads...

umbral flint
#

I'm more talking about the behavior

pliant topaz
#

not different from normal threads except their tasks are being executed by an actual thread which is decided by the vm on which to use

umbral flint
#

If 10 virtual threads with blocking operations ran on the same platform thread (by chance), are they technically blocking each other in a way?

lost matrix
#

Pretty much the same. However you can be more lenient with virtual threads. Blocking them or waiting for some IO ops in a virtual thread
is preferred to doing this on a kernel thread. You cant break it as easily because the vm can just free kernel threads from virtual threads if they
block forever.

So for IO i would give you the go. Just use VThreads.

#

PS: ThreadLocal is not suitable for virtual threads and the alternative (ScopedValue) is still in incubation.

#

But that should be irrelevant to you

umbral flint
#

So whenever a Java VThread is scheduled, the Java runtime "mounts" the VThread to a platform thread

#

Let's say, supposedly there was only one platform thread

#

because of whatever

lost matrix
#

Right

umbral flint
#

If VThreadA is scheduled before VThreadB, and VThreadA blocks for 10 seconds, does this cause VThreadB to wait 10 seconds as well?

lost matrix
#

No a virtual thread does not block the underlying OS thread

umbral flint
#

How

tardy delta
#

scheduling 🪄

umbral flint
#

I don't understand how two tasks can run in parallel if there is only one thread

tardy delta
#

(they actually dont)

#

its all an illusion created by multitasking oses

lost matrix
#

The other thread steals the OS thread when its free.

#

There is a scheduling strategy underneath virtual threads which ensures that all threads have the opportunity to use the OS thread if its just a single one.

#

You could take a look at real time operating systems if you are interested in the different scheduling strategies and how you can work on multiple parallel stacks at hand.

umbral flint
#

Alright

#

I'll definitely look into it

#

Thanks

lost matrix
#

Im not 100% certain how the vm detects when a vthread is unscheduled, but there is some sort of strategy that ensures a fair distribution of the OS threads between all virtual threads.

halcyon hemlock
#

good morning everyone

#

(its 8pm)

echo basalt
#

god wtf is mojang on

halcyon hemlock
#

theres a codec for a codec?

#

💀

#

how do serialize bytes

blazing ocean
remote swallow
#

RecordCodecBuilderCodec and RecordCodecBuilderCodecBuilder

halcyon hemlock
#

RecordCodecBuilderCodecBuilderCodec frfr

young knoll
#

Waiter there’s a codec in my codec

halcyon hemlock
#

nah but like literally how do you serialize raw bytes

blazing ocean
#

codecs!

#

dfu!

echo basalt
#

I'm going over kyori vs vanilla code rn and this is so unreadable

#

for some reason minimessage -> vanilla components leaves a lot of junk data

#

Like a gradient turns into just a "bold": false, "strikethrough": false spam

#

and I can't tell if there's a way to fix it

#

but I suspect it's in the conversion of Kyori's Styles to nms styles or whatever

blazing ocean
#

prob just defaults

echo basalt
#

no because defaults are null

#

There are 3 states: NOT_SET, FALSE, TRUE

#

and NOT_SET should just.. not set it

#

Instead of constantly assume it's false

#

It could also be a minimessage thing with gradients

#

component compacting is a thing

tardy delta
#

they forgot to make variables final

young knoll
#

Let’s make our own adventure!

echo basalt
#

no let's not

blazing ocean
blazing ocean
#

as well as ike

young knoll
#

Make it support spigot and I’m in

#

Well, support spigot better

onyx fjord
#

It supports any platform if you make an adapter

onyx fjord
#

Well not even an adapter

tardy delta
#

adapter adapter

onyx fjord
#

You will be able to precompile messages and send them directly

halcyon hemlock
#

onyx fjord
#

Message#send(Commands ender)

young knoll
#

I just want components for items without jank

onyx fjord
#

Possible but I don't see an ude

#

Use

young knoll
#

And by jank I mean NMS

tardy delta
#

i just want strings, anyone?

echo basalt
young knoll
echo basalt
#
messages.loadMessage("invalid-target")
  .withPlaceholder("target", targetName)
  .send(sender);
onyx fjord
#

I have my placeholder library too

echo basalt
#

immutable builders go brr

tardy delta
#

i just have a CommandSender.sendMessage(LangKey, Object... args) extension method

young knoll
#

I started using minimessage for that

onyx fjord
#

Supports different prefixed and suffixes

young knoll
#

Since it handles placeholders for me :p

echo basalt
#

uh

#

placeholderapi support if the plugin is loaded

onyx fjord
#

As well as parameters for example

#

My placeholder:var1:var2

#

Supports things other than strings

blazing ocean
young knoll
#

Meh

echo basalt
#

supports sounds if you make the message a config section instead of a string

young knoll
#

I’d prefer not to shade all that stuff :(

echo basalt
#
invalid-target: "Invalid target: %target%"
invalid-target:
  message: "Invalid target: %target%"
  sound:
    key: ...
    volume: 1
    pitch: 0.5
#

still working on slowly modernizing my utilities but this is.. better

young knoll
#

Share code

#

:)

echo basalt
#

write your own it ain't that hard

#

just like 25 interfaces and a solid 53 classes

ivory sleet
young knoll
#

:(

echo basalt
#

solid bro

young knoll
#

I don’t know a nice way to do placeholders

#

I’ve done it with regex but ehhh

echo basalt
#

I wrote a shitty lil parser on my old uh

#

thing

drowsy helm
#

were transfer packets 1.21 or 1.21.1?

ivory sleet
echo basalt
#

1.20.5

drowsy helm
#

oh fr

#

nice

echo basalt
#

or .4

#

not sure

blazing ocean
#

.5

ivory sleet
#

if u occupy a virtual thread forever its basically a platform thread

young knoll
#

I still gotta make that decentralized minehut

#

That connects a ton of servers via transfer packets

ivory sleet
#

the point was to allow virtual threads to change its underlying thread during blocking operations allowing for higher throughput

tardy delta
#

how does that make sense

#

oh well that way

#

sounds like thats just part of the jvm scheduler

wet breach
# pliant topaz a virtualthread is nothing more than the vm deciding on what platform thread to ...

this is not quite correct. Normal threads are managed and scheduled by the OS. Virtual threads are managed and scheduled by the VM. This is the main difference. Both are scalable because it really depends on the OS and hardware you are working with, just because something takes a slight bit more resources doesn't mean it can't scale since we been scaling java applications before the existence of virtual threads. One of the drawbacks of a normal thread is that it can be a costly operation to create a new thread as well as you have context switching and blocking. Virtual threads are cheaper in terms of creation and is free of the system context switching as well as not blocking.

ivory sleet
#

i mean while a vthread is blocked it wont hold its carrier thread hostage

wet breach
#

^

tardy delta
#

just lightweight tasks at this point

ivory sleet
#

which is like, the entire point why its so useful depending on what u're doing

#

yea

#

kotlin coroutines?

blazing ocean
tardy delta
#

fun fact: everyone calls it coroutines and have no idea what it means

ivory sleet
#

yea, well there's the formal definition of a coroutine

echo basalt
#

if you turn your brain off coroutines kinda make sense

#

until you think ab how they work and then you cry

blazing ocean
blazing ocean
wet breach
#

kind of like concurrency but not quite the same

echo basalt
#

coroutines being compiled into a state machine

echo basalt
tardy delta
#

someone write a coroutine lib in java

#

(impossible) (kinda)

wet breach
#

its not impossible

echo basalt
#

lombok moment

tardy delta
#

thing is that youd have to insert await points in running code

blazing ocean
#

someone add js' async/await to java

tardy delta
#

thats just syntax sugar

wet breach
tardy delta
#

gonna have a hard time where to insert those yields

chrome beacon
slender elbow
chrome beacon
#

sort of

blazing ocean
#

what

chrome beacon
drowsy helm
tardy delta
#

why are they using java in the first place..

#

ig they needed a gc lang cuz they have skill issues

sullen belfry
#

is it possible to get an offline players skull?

#

I have all my players UUID's stored in a database

#

I was wondering if I could get the skull from the UUID

glossy laurel
#

Guys can someone tell me what are command frameworks and how to use them

umbral ridge
#

yes

#

you can do that by PlayerProfile class

#

or something like that

sullen belfry
#

ah okay

umbral ridge
sullen belfry
#

thanks

brisk estuary
sullen belfry
#

shows as alex

chrome beacon
#

?paste

undone axleBOT
sullen belfry
chrome beacon
#

Well that's some useless code

sullen belfry
#

how lol

chrome beacon
#

It's 3 lines

#

We cannot read minds

sullen belfry
chrome beacon
#

You're not using the class that was linked to you

hushed spindle
#

does anyone happen to know which SpawnReason applies to the ender dragon respawning

#

if theres any special one

sullen belfry
#

what are the options?

#

because it will depend on how you want to spawn the dragon

#

first time?
or a respawn

hushed spindle
#

thats not what im asking

sullen belfry
#

what are you asking

hushed spindle
#

when the ender dragon respawns, what is its SpawnReason enum type

#

im not looking to respawn the dragon

sullen belfry
#

oh

lost matrix
sullen belfry
hushed spindle
#

the spawn reason was the first assumption but im just gonna test further

chrome beacon
sullen belfry
#

so just update it afer i've grabbed it from the profile?

trim raft
#

Hello everyone, Is there any good way to store items? Like en ender chest clone with only 9 slots? So far I've been storing it using PersistentDataContainer but it kinda takes long using an unique Integer for each of my items and it bugs out sometimes

tender shard
#

wdym using a unique integer?

trim raft
drowsy helm
#

Just serialize the contents array

trim raft
#

I dont usually work with serialization and deserialazition

tender shard
tardy delta
#

"could not serialization" lol

mellow edge
#

hello, I haven't been able to get it working to summon my custom ender dragon with custom ai. For now I want to spawn a default implementation of the dragon, but with the code I will provide it spawns a dragon I can hear, but cannot see? Can you just from this code see the issue? (I am using nms for very specific reasons)

    @Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
        if(!(commandSender instanceof Player)) return true;
        Player player = (Player) commandSender;
        World world = ((CraftWorld) player.getWorld()).getHandle();
        EntityEnderDragon dragon = new EntityEnderDragon(world);
        world.addEntity(dragon);
        return true;
    }
#

I looked at spigot's impl. of the addEntity and they do it somewhat like that (but their function just supports every mob)

tardy delta
#

world.spawnEntity?

mellow edge
#

nms world spawn entity doesn't exist

tardy delta
#

why nms

mellow edge
#

I specifically mentioned why in my message; to add custom pathfinder goals

tardy delta
#

cant you do that with the api?

mellow edge
#

spigot only registers my custom ender dragon after I spawn it with nms

#

I think not because ofc you cannot just pass nms classes into native spigot functions

blazing ocean
#

90% of the dragon api is hardcoded

#

you'll have fun with that

mellow edge
sullen belfry
# chrome beacon You need to fetch the textures with the update method

so i found this, but it uses url's is there away not to use URL's?

https://blog.jeff-media.com/creating-custom-heads-in-spigot-1-18-1/

Spigot 1.18.1 added the new PlayerProfiles class, which finally allows us to use custom heads without needing any reflection! You can obtain them as normal items, or actually place them down into the world. I’ll show you how both works: Creating a new PlayerProfile First, we gotta create a new PlayerProfile object. To do so,...

chrome beacon
#

also what's wrong with using the update method

sullen belfry
#

it didn't seem to do anything

#

not sure what im doing wrong

#

?paste

undone axleBOT
sullen belfry
chrome beacon
#

You're updating the profile after setting the head meta

sullen belfry
#

so do it before

        playerSkullMeta.setOwnerProfile(playerSkullProfile);
chrome beacon
#

and make sure it completes

#

It returns a future

sullen belfry
#

how would i make sure it completes?

tardy delta
#

its a future

#

add a callback or join it

sullen belfry
#

doesn't seem to change the outcome at all

upper hazel
#

how to get into foreign projects for work like freelance ?(English, etc.)

blazing ocean
#

#general message

upper hazel
#

who knows of any sites like "hhru" ))?

tardy delta
#

i cant read that site, its in russian

#

🤣

#

?services maybe

undone axleBOT
grim hound
#

What does ChunkGenerator#getFixedSpawnLocation determine?

blazing ocean
#

if you set this within your world generator it massively speeds up world loading times

trim raft
#

Does anyone know how I can use and send packets? I'm using IntellijIDEA and Classes like "Player...Packet" don't exist and I can't access them, I'm using Version 1.21 Spigot

lost matrix
trim raft
#

I want to make a player glow, only for one player

#

I'm guessing packets are needed for that

lost matrix
#

?nms

halcyon hemlock
#

morning good one of every

#

its 12am though almost

tawdry echo
#

5pm lol

trim raft
#

6pm for me

blazing ocean
#

iirc at some point during world creation

trim raft
# lost matrix ?nms

I have ran BukkitTools on my project main directory (not in src), what now? Still cant see anything

pure dagger
#

if i have a HashMap of <Player, BukkitRunnable>, and the BukkitRunnables have acces to this map and make some changes, do i have to make it thread safe? Im kinda noob in threads, maybe dumb question, should i just use synchronized word in the field declaration? (hashmap)

lost matrix
onyx fjord
#

any good frameworks for creating LLMs in java?

#

no trash that requires openai keys

lost matrix
#

Doesnt Torch have a java library?

#

Ah never mind, TensorFlow has one

blazing ocean
#

why would you want to do that in java tho 😭

pure dagger
onyx fjord