#help-development

1 messages · Page 67 of 1

tardy delta
#

shall we disown kacpers turtle?

reef lagoon
#

how about we disown you for being off topic

tardy delta
#

i shouldve asked md for a :bonk: emote

reef lagoon
tardy delta
#

im out

#

anyways saving stuff in a sqlite database is reflected to the file immediately right?

reef lagoon
#

isn't there a cache

tardy delta
#

thats what im wondering

worldly ingot
#

It's pretty much immediate

#

Things are auto committed by default

boreal sparrow
#

Getting this weird error when I try to enable my plugin

public class RunnerVSHunter extends JavaPlugin {
public static GameManager gameManager;
    @Override
    public void onEnable() {
      //STUFF
      GameManager gameManager = new GameManager(this);
    }

    public static GameManager getGameManager() {
        return gameManager;
    }
}

Cannot invoke "com.sinden.runnervshunter.manager.GameManager.getCommandManager()" because the return value of "com.sinden.runnervshunter.RunnerVSHunter.getGameManager()" is null

undone axleBOT
boreal sparrow
#

how did I miss this

#

thanks

tender shard
#

fuck this shit, I'll get the 16 inch macbook

#

i'll just buy it and stop thinking aobut it

worldly ingot
#

Yeah, neither should be static, but the error is that you're probably calling getCommandManager() in the constructor of GameManager but it hasn't been initialized yet

reef lagoon
#

how do I make a while loop without it running 20000 times a second

rough basin
#

How to find who killed Entity?

tender shard
#

sounds like you'd rather want to use the scheduler instead

reef lagoon
#

checking for while a player wears a certain armor piece

while(String.valueOf(event.getPlayer().getInventory().getItem(slot)).equals(String.valueOf(itemStack))) {
                    broadcast("How crash server tm");
                }``` current code
rough basin
#

I can find who killed Player, but What should i do to find who killed entity like zombie?

tall dragon
reef lagoon
agile anvil
#

And then get last damager

tall dragon
#

u cant detect stuff like this

#

in a while loop

rough basin
tall dragon
#

and for some reason ur making strings of everything

rough basin
agile anvil
reef lagoon
#

because checking as an itemstack didn't work

quaint mantle
#

.isSimilar

reef lagoon
#

and they were teh same as strings

#

oh?

quaint mantle
#

ItemStack#isSimilar(ItemStack)

fiery prairie
#

is there an event for opening a chest or something similiar?

tall dragon
#

InventoryOpenEvent

reef lagoon
#

but that's not my problem, how do I make a while loop that runs only once per second

fiery prairie
#

cause if(e.getInventory().getType() == InventoryType.CHEST) in inventoryopenevent might break some other plugins

undone axleBOT
quaint mantle
#

I seem to have an issue with my UserInfo loader. I'm now running Database operations Async, but it seems they aren't running at all, for whatever reason. to avoid clogging this channel more please DM me with help.

grim ice
#

does /reload reload player data files?

fiery prairie
grim ice
reef lagoon
grim ice
#

im coding a library

quaint mantle
grim ice
#

lmao

tall dragon
grim ice
#

and im not using reload for plugins data

quaint mantle
tardy delta
#

create a thread

fiery prairie
grim ice
#

no its not

tardy delta
#

not a java thread pls

quaint mantle
#

Database Async Stuff not running

#

😄

tardy delta
#

?paste

undone axleBOT
reef lagoon
#

thread.stop();

boreal sparrow
#

But how do I call getGameManager() from other classes without creating a new object of the main class every time?

undone axleBOT
grim ice
#

How to make backups that include a copy of the server's memory and storage, and use them only fly

hushed pawn
#

how to write data to packet with "Chat" type?, i cant even find examples,

grim ice
#

on fly* btw

boreal sparrow
#

this makes my head explode

#

but i will try

#

thanks

reef lagoon
tall dragon
#

yea you can call cancel on BukkitRunnable

reef lagoon
#

and on a bukkit scheduler?

#

alr bukkitrunnable it is

grim ice
#

you gotta not do what intellij tells u to btw

#

intellij suggests using a lambda

reef lagoon
#

lambdas are slow aren't they

grim ice
#

premature optimization, and i dont think theyre slow

tall dragon
#

in some cases they could use more resources tho

reef lagoon
#

why do I feel like this should be red xD

grim ice
tardy delta
#

people instantiating bukkitrunnables :(

brave goblet
#

what's the advantage of using bukkit scheduler over the default one?

reef lagoon
#

alright got it to work ty

tardy delta
#

default one?

brave goblet
#

java one?

#

Executor service

tardy delta
#

executor one does not work in ticks

brave goblet
#

ah got it

tardy delta
#

bukkit one does and why use another one if the api already gives you one

brave goblet
#

except for the last part

tardy delta
#

depends on your needs

brave goblet
#

Why use the bukkit one (if ticks weren't included)

tender shard
#

because it already has a thread pool craeted for you

tardy delta
#

cuz you shouldnt be thinking about the impl

outer river
#
    if (Main.instance.lever == true) {
            for (String cmdname : Main.instance.args.equalsIgnoreCase(Main.instance.rewardname)) {

                        //stuff i want to do
            }```

hello, i'm searching for a way to verify if  an args of my command is the same as a string defined in my main, but i dont find it, can you help me pls?
tender shard
#

you dont find what?

golden turret
outer river
golden turret
outer river
#

error as well

lost matrix
tender shard
#

very useful error description

#

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

outer river
tender shard
#

wtf

#

please learn basic java

#

?learnjava

undone axleBOT
opal juniper
#

I have a Map<Class<?>, List<String>>, how do i add to the map if one is present, otherwise init with a value

#

i thought there was a nice line

tardy delta
#

whaa

#

lol

tender shard
#

erm

opal juniper
#

like computeIfAbsent or sonething

tender shard
#

computeIfAbsent

drowsy helm
#

Like add to the list or?

tender shard
#

is what I meant

#

yeah

outer river
#

very useful👌

tender shard
#

map.computeIfAbsent("mykey", () -> new ArrayList<>());

tardy delta
#

dont you mean add to the list?

tardy delta
#

ah mb

tender shard
#

yeah I edited it

lost matrix
#
map.computeIfAbsent("mykey", (key) -> new ArrayList<>()).add("word");
tardy delta
#

ArrayList::new 😏

#

ah wait

lost matrix
#

yeah

tardy delta
#

nvm me trying to be fancy

opal juniper
#

ok thanks thumbsup

tardy delta
#

lets go back to debugging smh

tender shard
tardy delta
#

ye stupid

lost matrix
reef lagoon
#

Cry some more

tardy delta
#

and it was a Map<class, list<string>> lol

#

since when is printing out a map with sysout printing it like this tho :/

hushed pawn
#
            PacketContainer pkt = pm.createPacket(PacketType.Play.Server.SET_TITLE_TEXT);
            WrappedChatComponent msg = WrappedChatComponent.fromText("123");
            pkt.getChatComponents().write(0,msg);
            try {
                pm.sendServerPacket(p,pkt);
            } catch (InvocationTargetException e) {
                throw new RuntimeException(e);
            }```
golden turret
#

use the api

#

thank you 👍

lost matrix
tardy delta
#

smells like an actionbar or smth

#

or title

golden turret
#

no

#

SET_TITLE

tardy delta
#

title smh

golden turret
#

player.sendTitle

tardy delta
#

actionbar title bruh

golden turret
#

even if it was actionbar

#

just use the player.spigot().sendMessage

opal juniper
#

ok now i never used generics with class types. The goal here is that you have a handler of type <String> and then that makes the object an instanceof string:

@FunctionalInterface
public interface Handler<? extends T> {

    void handle(Player player, Object<T> object);
}

Can i get some help please lol

#

this isnt valid syntax btw

tender shard
#

void <T> handle ...

hushed pawn
lost matrix
tender shard
#

also ? extenfsd T makes no sense

tardy delta
#

Object<T>

opal juniper
#

oh yeah lol

tardy delta
#

theres no way to do smth like <T extends Generic> void (T<Smth> param) right?

worldly ingot
#

You would just use T instead of Object<T>

#

T is your type

tender shard
#

@opal juniper ```java
@FunctionalInterface
public interface Handler<T> {

<T> void handle(Player player, T object);

}

opal juniper
tardy delta
#

BiConsumer<Player, T> hehe

tender shard
tardy delta
#

dunno where the T would come from but ye

tender shard
#

I know it's not needed but I like it for clarification

tardy delta
#

i hate how java does not have the ThrowingConsumer<T, E extends Exception> and functions and stuff

lost matrix
#

For the same reason you didnt put public abstract before the method. Its already implied

golden turret
#

yo, did someone already worked with the sound system from minecraft?
i would like to know how could i emulate a sound by code without actually playing them

lost matrix
tardy delta
#

so like implementing your own sound nms?

dense pine
#

I want to enable flight for players in claims.
What event do i use instead of PlayerMoveEvent to not cause lag?

golden turret
tender shard
#

either the move event, or use a runnable and check every X ticks

tardy delta
#

only way ig, just do very much early returns lol

golden turret
#

basically i would like to mix a lot of sounds to create another sound

lost matrix
lost matrix
golden turret
#

yes but lets say

tender shard
#

i mean, checking if X is inside region Y is like 6 math checks, you could do that hundreds of thousands of times per tick without problems

golden turret
#

i want to play a music on minecraft

tardy delta
#

hmm im saving an user to the database but i deleted the database file before, where it it saved then? (sqlite)

lost matrix
golden turret
#

i would like to mix existing sounds on minecraft on different pitch and yaw to create a sound near to the music

#

nearest possible

tender shard
#

he wants to do this oscillating thing like piezo buzzers do

golden turret
#

it would use all sounds

#

not only noteblocks

opal juniper
lost matrix
golden turret
#

and with different pitch and volume

#

yaw lol

tender shard
dense pine
#
    @Override
    public void onEnable() {
        Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
            @Override
            public void run() {
                Bukkit.getOnlinePlayers().forEach(player -> {
                    if (player.hasPermission("crashclaim.fly")) {
                        player.setAllowFlight(CrashClaim.getPlugin().getApi().getClaim(player.getLocation()) != null);
                    }
                });
            }
        }, 0L, 20L);
    }
tender shard
crude charm
#

Whats the way to broadcast a message to the whole server on newer spigots?

Bukkit.broadcastMessage();

Is decrypted

tender shard
#

wdym "is decrypted"?

opal juniper
dense pine
#

maybe depreciated

crude charm
crude charm
#

Cant type

eternal oxide
#

You are using Paper

kind hatch
#

Bukkit#broadcastMessage() isn't deprecated.

crude charm
#

Ah forgot I was on purpur, which is obv a fork of paper

lost matrix
# golden turret any ideas?

To get each frequency from a signal you need to transform it. Possibly with a fourier transform or a laplace transform.
You might get faster results if you transform in a discrete space. For that i would suggest a Z-transform.

dense pine
tender shard
#

in paper, everything is deprecated because they hate strings for no good reason

opal juniper
#

adventure is cool tho

dense pine
#

a function which turns string to text component

golden turret
crude charm
tender shard
dense pine
#

so you would
Bukkit.broadcastMessage(color("Here you put your string"));

#

in my function you can use &

golden turret
#

§ supremacy

crude charm
drowsy helm
dense pine
#

alt + 2 + 1 = §

tardy delta
#

import static Utils.color;

dense pine
tardy delta
#

same effort to do ChatColor.RED then lol

drowsy helm
#

Another reason for java to have extension methods

tardy delta
#

what are extension method again?

lost matrix
tardy delta
#

like injecting your methods into another class?

drowsy helm
#

Yeah

golden turret
#

when i work with &, i like to use the ChatColor.translateAlternateColorCodes('&', "");

#

it is cool

drowsy helm
#

Would love to make player.sendmessage translate colour codes

dense pine
#
    public void onEnable() {
        Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
            @Override
            public void run() {
                Bukkit.getOnlinePlayers().forEach(player -> {
                    if (player.hasPermission("crashclaim.fly")) {
                        player.setAllowFlight(CrashClaim.getPlugin().getApi().getClaim(player.getLocation()) != null);
                    }
                });
            }
        }, 0L, 20L);
    }

Does this method look efficient enough to not cause lag?

tardy delta
#

ah lol no wonder why my database wasnt working, its creating a new user object every time

#

uhh

#

its in onEnable so probably doesnt need to be async

#

ah its started then

#

i'd do it sync

dense pine
#

scheduleSync

tardy delta
#

runTaskTimer

drowsy helm
#

Isnt that deprecated now

dense pine
#

nah

drowsy helm
#

Schedule sync that is

tardy delta
#

probs

drowsy helm
#

I mean it wont cause any lag but theres probably more efficient ways

#

It’s only every second anyway

lost matrix
quiet ice
#

The schedule async task one is deprecated

tardy delta
#

lol and next() is returning false every time

#

its present in the db but it says it isnt :/

kind hatch
#

Maybe you are connecting to the wrong db?

tardy delta
#

i just quit the game and saw an entry inserted into the table so no it isnt

#

lets try to print the preparedstatement::tostring

#

this is table setup, dont see anything wrong with that

spare marsh
#

If I want to make a custom model. Do I have to give up an item for it?

#

For custom items I mean

kind hatch
#

No, you can assign custom model data to any item so long as your resource pack has that attribute tied to your custom item.

tardy delta
#

you can bind custom items to normal items with custom model data ^^

spare marsh
#

So like a certain enchantment to bind the model to that item?

kind hatch
#

For instance, you can have a normal stick and a stick with the CustomModelData:1 tag and it will look different if you have your resource pack setup correctly.

spare marsh
#

Nice

quaint mantle
spare marsh
#

That’s lit I thought I had to give up an item. Thanks for your help

quaint mantle
eternal needle
#

hi is it som way i can hide a plyer body and not remove from tab and other players still can see otnhers and that player, tag me?

spare marsh
#

I appreciate it thanks @quaint mantle

eternal needle
#

but no other way?

drowsy helm
#

Invis potion ig

eternal needle
#

no

eternal needle
tardy delta
kind hatch
#

I wonder if Player#hideEntity() would work for your case.

tardy delta
#

giggles im in danger

noble crown
kind hatch
#

Hmm, I thought that was the purpose of Player#hidePlayer()

noble crown
drowsy helm
eternal needle
eternal needle
reef lagoon
#

give invisibility without particles ;)

eternal needle
#

nah

noble crown
#

too easy

reef lagoon
#

must complicate everything yk

drowsy helm
#

Can still interact woth them

eternal needle
#

no other players can't see you

drowsy helm
#

Packets just dont get sent if you send remove packets

#

Saves headache in the future

quaint mantle
eternal needle
#

do i need a nother plugin for packets?

noble crown
#

You can import whole spigot to your plugin

#

Not just api

eternal needle
#

ok

noble crown
#

Then you'll be able to use packets without protocollib

eternal needle
#

oh

noble crown
#

But spigot uses spigot mappings

chrome beacon
#

It will also make your plugin version specific

eternal needle
#

but how do i import hole spigot?

chrome beacon
#

and listening to packets might be too hard for you

drowsy helm
#

Get the mojang mappings jar from buildtools

noble crown
chrome beacon
#

It will

drowsy helm
#

It’s better than spigot defaylt

kind hatch
tardy delta
#

reminds me of buffer overflow wtf

noble crown
#

Without server version

chrome beacon
noble crown
#

Very rarely

chrome beacon
#

It's less common but it may change at any point

quaint mantle
chrome beacon
#

so it's effectively version specific

noble crown
#

If it'll change you can use reflections

#

That are very easy to use

chrome beacon
#

You can't use reflection if the name changes

#

It won't magically fix the issue

noble crown
#

Yes, i mean with plugin update

kind hatch
noble crown
#

Or just use protocollib

#

If spigot'll ever use mojang mappings, it'll be much easier to use packets

#

Without protocollib

kind hatch
#

They can't provide them by default for legal reasons.

quiet ice
#

It does use it afaik

crude charm
#
    @EventHandler
    public void onLeave(PlayerQuitEvent event) {
        Player player = event.getPlayer();

        try {
            invUtil.saveInventory(player);

            for (Player staff : Bukkit.getOnlinePlayers()) {
                if (staff.hasPermission("survival.staff")) {
                    staff.sendMessage(CC.RED + "[Staff] " + CC.GREEN + player.getName() + " has logged out and their inventory was saved!");
                }
            }
        } catch (Exception e) {
            
            e.printStackTrace();
            
            for (Player staff : Bukkit.getOnlinePlayers()) {
                if (staff.hasPermission("survival.staff")) {
                    staff.sendMessage(CC.DARK_RED + "[Staff] " + CC.RED + player.getName() + "'s has not been saved due to an error!");
                }
            }
            
        }

How would I clean this up where I can reuse the loop and the if statement?

kind hatch
#

Use a finally block?

crude charm
#

How would that fix it?

#

Ill change it to finally tho

kind hatch
#
try {
 // Try code
} catch (Exception e) {
  // exception handling
} finally {
 // Do something after try block.
}
crude charm
#

Yeah ik but if anything, that would make it messier

kind hatch
#

Or just put your code outside the try catch

drowsy helm
#

Make a method to get all staff as a collection first off

kind hatch
#

If your code doesn't throw errors, then there is no reason to include it in the try-catch blocks.

crude charm
drowsy helm
#

Could also make invutil.saveinventory have a try catch

#

Instead

#

And return a boolean whether it succeeded

crude charm
#

Ah good idea

#

I might just have the one working message and trust that it works

drowsy helm
#

Lmao

crude charm
#

I doubt it'll throw an error

drowsy helm
#

Still good to have the try

crude charm
#

Maybe, but it's for a small server so it only stores it to as config, not a db so nothing can really go wrong

#

It'll be like 5 lines if I do db later tho

drowsy helm
#

Yeah fair enough

rare flicker
#

Is it possible to have a written book that doesnt have the enchantment effect?

drowsy helm
rare flicker
#

#ItemFlag ?

kind hatch
#

I don't think ItemFlags can remove enchantment glint.

#

It also looks like it applies to empty written books, so it might be a hard coded feature.

reef lagoon
#

:troll:

rare flicker
#

i'll try and see where that leads me

kind hatch
drowsy helm
#

There is no use for that many nests

reef lagoon
#

it is just thought it was funny that intellij suggests that I add more and more nests

drowsy helm
#

It’s not

#

It’s telling you the opposite

#

You have one too many

#

Oh the bottom

reef lagoon
#

ye it just dies

tardy delta
#

farmer enjoying thhe place

narrow pine
#

Just wanted to let u know that, i found a plugin that does this thanks to my dev being a fucking spigot search rat

rare flicker
bronze night
#

Hello, I am making a plugin for my server, and I want to get each entry from stringList and send it to a player in form of single strings. Can someone help me? Any help is appreciated thanks.

rare flicker
#

for loop

kind hatch
#

Iterate over your string list and use Player#sendMessage()

tardy delta
#

for loop or stringbuiler or send multiple mesages

#

creating multiple message packets aaa

grim ice
#

ahhh i still dont get how neural networks work

eternal night
reef lagoon
#

Check ur brain

drowsy helm
#

Computer get cookie when good, when more good, more cookie. Computer remember what more cookie and do again

grim ice
#

lol everyone can get that basic idea

#

but how do they actually work

eternal night
#

some pretty straight forward math kekw

grim ice
#

in need of serious answers

rare flicker
#

well

#

you have a network

eternal night
#

I mean, the math actually isn't toooo hard

rare flicker
#

usually its starts with random weights

eternal night
#

i think 3b1b has a video on it

grim ice
opal juniper
#

it explained the calculus as well

rare flicker
#

you make multiple copies of it with very slight differences and make them run

#

you measure their performance

opal juniper
#

although if you dont already understand the calc, you might not get it

rare flicker
#

and only keep the one that performs best and make copies of thoses

grim ice
rare flicker
#

repeat and they'll slowly get better and better

grim ice
#

"make them run" what do they do

rare flicker
eternal night
#

and only keep the one that performs best and make copies of thoses

#

that is generational learning

eternal night
#

not really a basic nn

drowsy helm
#

Basically mutate steps for the best outcome

rare flicker
grim ice
#

my problem is

eternal night
#

Those are all not really a basic neural network tho. Generational learning is one approach but def not the default

grim ice
#

"make them run" what do they do

rare flicker
tardy delta
#

is there a way this might not match? i do the query manually on the database and i get a result

grim ice
#

e.g predict if a shape is a circle

rare flicker
#

for a car racing neural network you just let it drive and see how far the car gets

grim ice
#

or another shape

eternal night
#

just watch a video on the topic xD

grim ice
opal juniper
#

Exploring how neural networks learn by programming one from scratch in C#, and then attempting to teach it to recognize various doodles and images.

If you'd like to see if the neural network can recognize your doodles or digits, you can download the demo here (windows/linux): https://sebastian.itch.io/neural-network-experiment

Source code:
The...

▶ Play video
eternal night
#

asking in a discord if you have no idea at all

rare flicker
eternal night
#

isn't a good idea

rare flicker
#

^^

dawn spire
#

Hey

rare flicker
#

Oh

grim ice
#

i watched the first 4 vids in yt

dawn spire
#

How can I verify?

grim ice
#

still got no idea

rare flicker
#

a sec

kind hatch
eternal night
#

give the 3b1b videos a try

grim ice
#

i did

eternal night
#

I mean

#

if you didn#t get it from that ehhh

#

fresh up on your calculus

dawn spire
#

Does anybody here know how I can remove this?

rare flicker
#

add the hideattributes flag

tardy delta
#

got a very weird problem where PreparedStatement#next returns false when the data is present

dawn spire
#

I don't want it hidden, I just want it to look like the normal one

rare flicker
#

well you applied it to every slot

#

you need to only aply it to the main hand

kind hatch
dawn spire
#

I used sMeta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, new AttributeModifier(uuid, "generic.attackDamage", 10D, AttributeModifier.Operation.ADD_NUMBER));, Where can you set the slot used?

rare flicker
#

otherwise if you have on in your main hand and one in the offhand you get double the amount of damage

dawn spire
#

is it in the UUID?

rare flicker
#

not sure

near night
#

sooo i have this code ```java
Zombie bot = (Zombie) botentity.getBukkitEntity();
bot.setCustomName(p1.getDisplayName()+" vs "+p2.getDisplayName());
AttributeInstance dmgAttribute = bot.getAttribute(Attribute.GENERIC_ATTACK_DAMAGE);
dmgAttribute.setBaseValue(p1damge);

    bot.setMaxHealth(p1defence);
    bot.setHealth(p1defence);

    battle_bot botentity2 = new battle_bot( new Location(world, arena2x, arena2y, arena2z), new BotData(p2damge, p2defence));

    wrld.tryAddFreshEntityWithPassengers(botentity2);

    Zombie bot2 = (Zombie) botentity.getBukkitEntity();
    bot2.setCustomName(p2.getDisplayName()+" vs "+p1.getDisplayName());
    AttributeInstance dmgAttribute2 = bot2.getAttribute(Attribute.GENERIC_ATTACK_DAMAGE);
    dmgAttribute2.setBaseValue(p2damge);

    bot2.setMaxHealth(p2defence);
    bot2.setHealth(p2defence);```
#

bot is named the right name but bot 2 is named Zombie why is that?

dim bronze
near night
#

oh im dumb tysm

dim bronze
#

Just as a side note, you might want to look at java naming conventions because class names should start with capitals

near night
#

yeah i know its the only class with lower case start

tardy delta
#

how do i spawn tnt which explodes immediatly?

rare flicker
#

fuse:0b

#

wait i'm stupid that's with commands

tardy delta
rare flicker
#

that should work

#

if not try 1 ticks

tardy delta
#

trying to make a nuke of myself

rare flicker
#

and if you need just an explosion and not the tnt use world.spawnExplosion

tardy delta
#

im bored lol

brave goblet
rare flicker
#

use a bukkitrunnable to make it synchronous again

grim ice
#

ok im 2 minute farther than last time

#

in that vid

brave goblet
#

can't remember

#

but ok

grim ice
#

now what i dont get i

#

is

#

Only activates meaningfully when the weighted sum is bigger than 10

rare flicker
#

oh hey an actual good math youtuber

#

essentiall a boolean function that checks if the sum of the nodes in the previous rown goes above a threshold

#

here 10

grim ice
#

weighted sum

#

what is that

eternal night
#

your inputs times your weights

rare flicker
glossy venture
#

sum of input nodes times the connections weights

rare flicker
#

same thing

grim ice
#

yeah got it

tardy delta
rare flicker
#

just why

tardy delta
#

cuz im bored

#

other stuff not working

#

database hates me

grim ice
#

so the sum of each node multiplied by each weight has to be bigger than 10

rare flicker
#

think of it as an average then

#

see how some grades are worth twice as much as others? well theses have a weight of two

grim ice
#

yeah got that

rare flicker
#

well some nodes have a larger weight in the average

grim ice
#

oh this makes perfect sense

tardy delta
#

hehehe

rare flicker
#

well if the final average is above 10, then it "triggers"

#

usually a trigger is connected to a binary action

#

like "turn left"

kind hatch
grim ice
#

and all is that

#

is calculated

#

inside the activation function

rare flicker
#

ye

small current
#

guys how can i pull a player to a location like the fishing rod

grim ice
#

that decides the value from 0 to 1, if that node should be activated or not

small current
rare flicker
#

think to note

grim ice
#

probably a double

#

isnt it?

rare flicker
#

this node specifically is a boolean node

tardy delta
rare flicker
#

usually most nodes are just doubles

grim ice
#

but like

#

wait a min

brave goblet
tardy delta
#

sec

#

5 tnt now

brave goblet
#

ok

#

5 tnt or 5 explosion power?

tardy delta
#

i dont want my raspberry pi to start producing smoke lol

brave goblet
#

fair

tardy delta
#

how to increase explosionpower btw?

brave goblet
#

can't remember

#

#setExplosionPower?

#

idk

tardy delta
#

nice lmao

grim ice
#

dont neural networks work on probablities

brave goblet
grim ice
#

so theres usually a probability, not true or false?

rough basin
#

What is Main hand?
is it ItemStack? Item?

grim ice
#

no

#

its MainHand

rough basin
#

Can i change it to ItemStack?

obsidian drift
#

getItemInMainHand?

rough basin
#

should i just use getinv.getiteminmainhand?

obsidian drift
#

Yes

rough basin
#

ok thanks

azure hawk
#

how can i create a random item?

#

i wanna code a random mizer

tardy delta
#

Random

brave goblet
#

yes black screen

lost sky
#

Not sure if this is the right channel for this, but I want to start developing plugins my own server, but I am not sure where to get started. Any ideas?

shy rock
brave goblet
tardy delta
#

why are the holes rectangular lol

shy rock
azure hawk
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.

azure hawk
#

i think

boreal sparrow
#

is there a damage cause for void damage?

brave goblet
shy rock
brave goblet
#

may i see your villager class?

tardy delta
#

init

boreal sparrow
#

cant find it?

grim ice
#

anyone knows

#

how to make backups and revert to them

#

on the fly

brave goblet
boreal sparrow
brave goblet
grim ice
#

@tardy delta u got an idea?

tardy delta
grim ice
#

of how to make backups and revert to them on the fly

#

im making a time travelling machine, sort of thing

brave goblet
#

i am blind to errors kinda

tawdry python
#
String userid = config.getString("chat-channel-id");
        if(userid != null) {
            user = jda.getUserById(userid);
            System.out.println("The user has the name " + user.getName());
        }

Why user return null?

tardy delta
#

uhh what im not really lisytening

brave goblet
#

but it looks ok

shy rock
#

alright

brave goblet
#

ye :/ was wondering that aswell

tardy delta
#

mission succeeded lmao

#

lets make a nuke entity now

brave goblet
#

:D

tardy delta
#

nah

#

too lazy atm

brave goblet
tardy delta
#

my database still isnt working

eternal night
#

just fix the db

grim ice
#

been days while looking

#

still no luck

#

yikes

azure hawk
#

How can i choose a random item from minecraft?

grim ice
#
Material randomMaterial = Material.values()[ThreadLocalRandom.current().nextInt(0, Material.values().length)];
tardy delta
eternal night
#

👀 maybe wrong setX call

grim ice
#

??

#
                if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
                    Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);

                    Calendar deadline = Calendar.getInstance();
                    deadline.add(Calendar.DAY_OF_YEAR, -7);
                    if (buildDate.before(deadline.getTime())) {
                        System.err.println("*** Error, this build is outdated ***");
                        System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***");
                        System.err.println("*** Server will start in 20 seconds ***");
                        Thread.sleep(TimeUnit.SECONDS.toMillis(20));
                    }
                }```
#

ahhh i llove thiss

hushed pawn
#

Is it possible to catch Velocity packet when player hit another player?

tardy delta
#

that id is parameter is set with ps.setString(i, id.toString())

#

and its never matching

eternal night
#

what

#

you don't ever set the parameter do you ?

#

or am I blind

sturdy frigate
#

How is it that people build these custom block/entities?

eternal night
#

armorstands

sturdy frigate
#

Oh I see, is there a specific name for doing things like these?

tardy delta
#

well uhh.. die..

sturdy frigate
#

BTW are they resource intensive?

tardy delta
#

and then we have this kekw

eternal night
#

you store uuid as string ??

tardy delta
#

ah sqlite doesnt seem to recognize UUID as datatype

#

if thats what you mean

eternal night
#

well no, you do binary[16]

tardy delta
#

something s saying me that you just solved my problem

eternal night
#

but w/e. I mean, now you gotta make sure capitalisation is correct

#

I didn't

#

more of a "please don't store uuids as strings"

tardy delta
eternal night
#

nah should be a blob on sqlite I guess

glass mauve
#

which wiki.vg Protocol should I use to spawn invisible blocks?

#

and which to remove them after

dire marsh
#

Player#sendBlockChange barrier

#

no need for nms packet stuff

echo basalt
#

ehh I have a whole infra for this

glass mauve
echo basalt
glass mauve
#

sorry updated

dire marsh
#

wdym shouldn't?

#

you mean server-side?

#

sendBlockChange only affects the client world

#

not the server world

glass mauve
#

nice thats what I want

dire marsh
#

you'll have to ensure the player doesnt update the block though

#

as right clicking a block causes it to update

#

so you'll have to re-send if that happens

glass mauve
#

ok

tardy delta
#

uhh no idea how to create a blob by code lol

#

its an interface

glass mauve
dire marsh
#

Yes

glass mauve
#

👍

river oracle
#

Good for you chap

brave goblet
#

💀

dire marsh
#

SpoigtMC

river oracle
#

Use maven or gradlew lmao

brave goblet
#

did you add the dependency?

river oracle
#

Problem solved

brave goblet
#

ah dang yk beat me

brave goblet
#

best way to add libraries

#

jk jk

#

do u use maven or gradle?

#

Your build tool

#

💀

#

not Ide

#

yes

#

I gtg

#

gl

boreal sparrow
#

What default value should I pass in for a list in a constructor? Null?

quaint mantle
#

Is there a way to make hashmaps persist through reloads?

near night
#

can i have a pointer on how to make a web api for my server

river oracle
#

And pass it in

boreal sparrow
#

but isn't that just null?

tardy delta
#

whats the question

river oracle
#

Trust me man just use an empty list instead of null

#

Don't hyper optimize so much it will fuck your code one empty array list object has negligible impact on your overall program

boreal sparrow
# tardy delta whats the question
public class CreateMap {
private List<Player> players;

    public CreateMap(List<Player> players){
        this.players = players;
    }
}
public static CreateMap Map= new Map(//default value here)
boreal sparrow
river oracle
#

Wtf is that shitty ass class

boreal sparrow
#

Yea I made it really wonky

river oracle
#

Don't use that your asking for memory leaks

#

Player objects in a collection are like memory leak creator #1

boreal sparrow
#

store uuids instead?

tardy delta
#

i dont think CreateMap is very suitable as a class name

iron glade
river oracle
#

Yes or weak reference lol

tardy delta
#

Set<UUID>

#

unless you need get()

boreal sparrow
#

no I dont think so

zealous osprey
#

is List more memory intensive than Set for storing values?

tardy delta
#

nah ig not

#

assuming you mean arraylist

zealous osprey
#

ye

#

well, it won't make any significant difference when only dealing with like a max of 16 or maybe 32 stored values anyways

tardy delta
#

set uses a map internally

tulip nimbus
tardy delta
#

you should really be caring about memory overhead at collections but just choose what type of collection you need for a specific purpose

zealous osprey
tardy delta
#

damn running paper is hot, got so many thread dumps in the last 20 mins

crimson scarab
#
  List<Entity> nearbyEntities = arrow.getNearbyEntities(50, 50, 50);

        if (nearbyEntities.size() == 0) {
            setTarget();
        }


        Optional<Entity> optionalEntity = nearbyEntities.stream()
                .filter(entity -> entity instanceof LivingEntity && ((Projectile) arrow).getShooter() != entity)
                .filter(entity -> ((LivingEntity) entity).hasLineOfSight(arrow))
                .min(Comparator.comparing(entity -> entity.getLocation().distanceSquared(arrow.getLocation())));


        target = optionalEntity.get();

hey i have this issue

#

where optional is noelementexecption error

#

in console

tardy delta
#

dont get it

#

but call orElse(null) or smth

crimson scarab
#

nah

worldly ingot
#

Well, that's your issue. get() will throw an exception if the optional is empty

crimson scarab
#

no because i want to run this multiple times so that a target can be found even if not on the first attempt

tardy delta
#

choco beat me

crimson scarab
#

if (optionalEntity.isPresent()) {
target = optionalEntity.get();
}

#

would tyhis work

iron glade
#

try it

small lynx
#

ItemStack stats = new ItemStack(Main.getInstance().getConfig().getItemStack("StatsItem")); ItemMeta stats2 = kits.getItemMeta(); stats2.setDisplayName(Main.messages.getString("StatsItemName").replace("&", "§")); stats.setItemMeta(stats2); p.getInventory().setItem(3, stats);

worldly ingot
#

Sure, or you could do orElse(null) lol

#

Like FourteenBrush suggested

small lynx
#

how i get a item stack changeable in config?

iron glade
#

Main.getInstance() 🤮

tardy delta
#

?

crimson scarab
#
    public HomingArrowRunnable(Entity arrow, Player shooter) {
        this.arrow = arrow;
        this.player = shooter;
    }

    @Override
    public void run() {
        Projectile proj = (Projectile) arrow;

        if (target == null || player.hasLineOfSight(target)) {
            setTarget();
            ParticleBeam.spawn(arrow.getLocation(), target.getBoundingBox().getMax().toLocation(target.getWorld()), Particle.FIREWORKS_SPARK, 1, 60, 0, 0, 0, 0, null, true, null);
        }


        if (arrow.isDead() || target.getLocation().distance(arrow.getLocation()) <= 2) {
            cancel();
            return;
        }


        Vector newVector = target.getBoundingBox().getMax().subtract(arrow.getLocation().toVector()).normalize();

        arrow.setVelocity(newVector);
    }


    private void setTarget() {
        List<Entity> nearbyEntities = arrow.getNearbyEntities(50, 50, 50);

        if (nearbyEntities.size() == 0) {
            setTarget();
        }


        Optional<Entity> optionalEntity = nearbyEntities.stream()
                .filter(entity -> entity instanceof LivingEntity && ((Projectile) arrow).getShooter() != entity)
                .filter(entity -> ((LivingEntity) entity).hasLineOfSight(arrow))
                .min(Comparator.comparing(entity -> entity.getLocation().distanceSquared(arrow.getLocation())));


        if (optionalEntity.isPresent()) {
            target = optionalEntity.get();
        }
    }
}
small lynx
#

i want to change the material and name

crimson scarab
#

do i need to do get target in a loop of some kind

echo basalt
#

recursive

#

👀

#

you're asking to die

crimson scarab
#

i dont know a better way atm

echo basalt
#

you're asking to crash the server

#

Does it have any entities?
Let me check..
..
..
No

DOES IT HAVE ANY ENTITIES

tardy delta
#

🤡me rn

iron glade
#

Stack overflow joined the game

crimson scarab
#

well i dont want to cancel the task immediately as i want to continuously search for targets

#

as the arrow is moving

#

i know i am a clown

#

but how become less clownish

echo basalt
#

return instead of calling the method recursively

#

it will retarget on the next accept

crimson scarab
#

but wont returning just continue the run function

echo basalt
#

it will

crimson scarab
#

in which case the target.getboundingbox will be invalid

echo basalt
#

well

crimson scarab
#

so i have to if else that

echo basalt
#

you can add an if statement

#

whatever

small lynx
#

ItemStack stats = new ItemStack(Main.getInstance().getConfig().getItemStack("StatsItem")); ItemMeta stats2 = kits.getItemMeta(); stats2.setDisplayName(Main.messages.getString("StatsItemName").replace("&", "§")); stats.setItemMeta(stats2); p.getInventory().setItem(3, stats);

#

it gives me

#

a null pointer exception

#

i have put the statsitem section in config

undone axleBOT
grim ice
#

can i cancel all player events

#

actually

#

bruh

#

i actually wanna cancel every event

tender shard
#

one can listen to generic events but e.g. PlayerEvent is abstract, hence you cannot listen to this directly

grim ice
#

generic events?

#

wdym

#

WAIT

#

how about

#

listening for Cancellable

#

????

#

or will that not work

#

yeah

echo basalt
grim ice
#

HOW

#

TELL ME

#

HOW

echo basalt
#

by using PluginManager#registerEvent(class, whatever)

grim ice
#

PLEASE

#

oooo

#

wait

#

does Event extend Event

echo basalt
#
Bukkit.getPluginManager().registerEvent(Event.class, new Listener() {}, EventPriority.HIGHEST, (listener, event) -> {
  ...
}, plugin);
#

I used it for my client-side tutorial event chain

#

like a year ago

echo basalt
#

the plugin

grim ice
#

no

#

the one before it

#

i meant

tardy delta
#

callback

echo basalt
#

EventExecutor

#

It's an anon class

#

callback

#

whatever

grim ice
#

what am i supposed to put in it

echo basalt
#

your processing code

ivory sleet
echo basalt
#

listener param is kinda garbage but the event param has your event

ivory sleet
#

All listenable event classes must still have a handler list

#

Which PlayerEvent doesnt, and most abstract events do not

echo basalt
#

this works tho

grim ice
#

what is clazz

echo basalt
#

the event class

#

Event.class works

grim ice
#

POG

echo basalt
#

or Cancellable.class

#

or whatever the hell you want

grim ice
#

the reason i want this is

#

to make a time stop thing

ivory sleet
#

Ugh last time I did that it threw me an exception

echo basalt
#

I might've seen a commission for this

echo basalt
grim ice
#

lol on what server

echo basalt
#

but this method in specific bypasses the annotation stuff and just calls the callback directly

ivory sleet
#

No, but passing Event.class to registerEvent for instance

#

Or PlayerEvent

echo basalt
#

uhh

#

PlayerEvent works perfectly fine

ivory sleet
#

Thats odd

#

But Ig then

grim ice
#

odd, but convenient!

echo basalt
#

I even made a class specific to fetching players from any event

#

that caches stuff

ivory sleet
#

Myeah, well odd in terms of what Ive read

grim ice
#

if this works its gonna be extremely cool

echo basalt
#

this was funny to write

#

probably leaks as well

keen obsidian
#

Hi there

I am currently trying to detect when a player is damaged from the explosion of a respawn anchor, and to get that anchors location.

The EntityDamageByBlockEvent is called, however #getDamager returns null, so I cannot get the location.

Is there any reliable way around this? Thanks

kind hatch
#

I think that event is only caused by certain blocks. Things like Cactus or Magma Blocks. You may want to listen for the BlockExplodeEvent or the EntityExplodeEvent and see if the player was damaged by that instead.

keen obsidian
river oracle
#

is it possible to cancel player collisions for specific players (I'm open to the use of packets and nms for this)

#

I basically have a spectator player that I don't want clients to beable to tell exists

glass mauve
#

I have an ItemStack map and want to give it some uniqueness so I can later check if it's that exact ItemStack,
I always used PDC to store smth like this, but this time it doen't need to be persistent so is there any other way?
or just stick to PDC cause it works?

river oracle
#

but like thats basically just pdc lol

#

and you'd need another API for that

glass mauve
#

then I will stick to pdc

kind hatch
keen obsidian
kind hatch
#

Probably going to have to use another event to listen for. Not 100% sure which one would be the best though. Trying to test some of that out as well.

glass mauve
#

and how can I give a placed block uniqueness?
I use player.sendBlockChange so it takes BlockData
how can I set pdc to that and whats the correct way to get this BlockData?
Material.BARRIER.createBlockData?

iron glade
#

The one time i need head database this sh*t is down ffs

frail swan
#

hey, I'd like to request some guidance about an error I've encountered for the first time, I failed to find a relevant answer on the forums so I'm looking here

 java.lang.ClassCastException: class roeidev1.collectablecreatures.Entities.CollectableCreature cannot be cast to class roeidev1.collectablecreatures.Entities.CollectableCreature (roeidev1.collectablecreatures.Entities.CollectableCreature is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @2489af81; roeidev1.collectablecreatures.Entities.CollectableCreature is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @43192e4d)

as you can see, my plugin throws an error that suggests a cast failed because the instance of the casted class is of different origin or "ClassLoader"
I'd like to mention I'm not using any dependencies and that spigot scope is marked "provided" in my maven config

Side note: the plugin works fine when the server launches, it only produces this error when trying to cast an entity to an nms entity after reloading the server

kind hatch
#

Well, you really shouldn't be using the /reload command on a production server. It's been known to cause issues for a long time now.

frail swan
#

My plan is to release this plugin

#

so I want to make sure it's stable for most people

#

and most normal spigot users use /reload

glass mauve
#

I would just ignore these people, their problem if they use /reload tbh

frail swan
#

I'd feel bad if their server will crash because of my resource, it's kind of unprofessional

river oracle
frail swan
#

well, because it seems like a common opinion here I'll have to agree

kind hatch
#

Using the /reload command is fine for development purposes, but some things can't be solved within a reload. NMS especially since it's behavior is still not well documented.

frail swan
#

but on the other hand, whats the fix?

river oracle
frail swan
#

alright, thx

kind hatch
#

To be fair though, most plugins handle /reload pretty well.

#

Even if it's not intentional.

river oracle
echo basalt
#

I mean you can have a static boolean indicating if the jar is initialized

river oracle
#

that too

echo basalt
#

and check for that onEnable

echo basalt
#

Unfortunately blocks dont store pdc

glass mauve
#

how can I provide uniqueness?

echo basalt
#

@tender shard has a util for that

#

chunk pdc is a thing

frail swan
echo basalt
glass mauve
echo basalt
#

squid

#

I already linked you a proper fake block api

glass mauve
#

whats wrong with sendBlockChange?

grim ice
#

so basically

#

neural networks

#

are just

#

m a t h

echo basalt
#

sends 1 packet per block

#

and the blocks disappear when you click on them

grim ice
#

so someone with no knowledge of coding, can make one if he somehow has an idea of how to automate the learning

frail swan
#

2Hex, Neural networks are extremely simple, the more difficult parts of them are activation functions and back propagation, those two are not mandatory tho

#

you can use linear activation for most simple cases

river oracle
# echo basalt sends 1 packet per block

ImIllusion you are smart with packet fuckery right now so I might as well ask. I'm making a spectator player for my game, but currently I'm only using the spigot API which means the spectators can push around and block actual players in the games action. I want access to survival mode for the spec due to custom gui's and such so I'm wondering if its possible to stop the spectator from interfering with people in the game. I'm pretty unsure what packets to send I looked at wiki.vg for a bit but still was a tad confused with it

frail swan
#

and a static learning rate instead of back propagation

grim ice
eternal night
#

linear activation is pretty useless o.O

grim ice
#

it basically multiplies each node with each of its weights

frail swan
echo basalt
#

I'd suggest you mess around with the api for the most part

eternal night
#

I mean, yea I guess ?

river oracle
grim ice
#

then sums all of that up and substract a bias from it

echo basalt
#

It's too hacky to set the target to spectator and send packets for gms and all

#

you can use scoreboards to mitigate collisions

#

Player#hidePlayer should take care of most particles and such

river oracle
frail swan
#

2Hex you should watch Sebastian Lague newest vid, he explains extremely well most things you need to know about nns

sturdy frigate
#

Any tips on chuck downgrading guys? I loaded a world in 1.19.2 but i need to use it in 1.19

river oracle
#

can you use the scoreboard to allow mining through the spectator

echo basalt
#

yeah

#

hidePlayer should handle that

#

invis potions don't

#

if the client isn't aware of the player anymore, it won't consider it

river oracle
#

hmmmm okay i'll check out scoreboard shit if need be

#

I hate that API though lol

echo basalt
#

so do I

#

haven't really learned how to use it during these past 5 years

river oracle
#

FastBoard is my carry with all things scoreboard usually

#

Teams I just don't bother I have most of my own API but it doesn't include like collissions and such

#

since I'm managing everything thorugh events

echo basalt
#

yeh

#

hidePlayer should take care of sending destroy packets tho

echo basalt
vocal cloud
#

If you're doing scoreboard for the love of God fetch it from the player instead of making a new one every tick. Thanks

echo basalt
#

my stupidass decided that comparing myself to 7smile7 was a good idea and now I'm getting depressed

sturdy frigate
#

Any tips on chuck downgrading guys? I loaded a world in 1.19.2 but i need to use it in 1.19

echo basalt
#

I mean

echo basalt
#

I've been messing with code for the past like

#

11 years? maybe?

#

but I was like 6-7 when I started

river oracle
#

I first touched code like 2 years ago xD

echo basalt
#

¯_(ツ)_/¯

river oracle
#

I started java ~14 months ago

#

I've always been a computer guy though

echo basalt
#

same

river oracle
#

I been playing video games since 2 :P

echo basalt
#

same

#

my parents neglected me but flash games didn't

river oracle
#

I didn't get a pc until 2017 though

#

I played minecraft on my brothers shitty laptop when he got it in 2010

echo basalt
#

I used a shitty laptop to make plugins, get commissions

#

and after a few months of saving, I built my rig

#

it was like my dad's laptop or something idk

river oracle
echo basalt
#

well

river oracle
#

I've made it all back

echo basalt
#

making it all back is what matters

river oracle
#

I'm actually up on my original investment

echo basalt
#

I'm still not old enough to work at some specific companies

river oracle
#

I use most of my income on stocks and crypto though

echo basalt
#

I think I paid like 700$ overall to build my pc

#

then made like 15k with it in a year

river oracle
#

I payed 1500

#

My internet is shit so I have to locally host everything

#

so I need a nice rig

echo basalt
#

I overclocked my ram

#

for that extra speed

#

32gb ram 3200 -> 3600mhz

river oracle
#

I got 32 gigs haven't evne considered touching my ram

echo basalt
#

I had 16 but it wasn't enough

#

I actually need 32gb grr

river oracle
#

my old pc was rocking a shitty i5-7400 and a 1050ti with 16 gigs of ram

echo basalt
#

nah that's too good

#

I made all my cash on a laptop with a i3-4005u, 4gb ram and a 500gb hdd

#

graphics? integrated

river oracle
quiet ice
#

Integrated graphics are nice

echo basalt
#

127.0.0.1 found your ip

#

busted

river oracle
#

😭 '

#

I doxed myself

river oracle
sturdy frigate
#

ah okay

echo basalt
river oracle
#

i used to dual boot but I just wiped my windows drive seeing as I barely used it

#

now I use that for game storage

echo basalt
#

There's a considerable amount of people here that use linux idk why

#

win10 is solid for development

#

I wasted like 4 hours reverse-engineering sound files for a game that doesn't run on linux

river oracle
#

I still use it for testing malware and such but outside of that not really using it

eternal night
#

windows and large git repos just work so well together kekw

opal juniper
#

i have to use LFS nowadays as one of my projects had a 100MB data file

#

otherwise it refused to clone lmao

echo basalt
#

oh god, not like this

opal juniper
buoyant viper
#

MCP projects be like

echo basalt
#

paper forks

tender shard
#

docker containers

echo basalt
#

I'm thinking on working on a server deployment solution

#

that grabs templates from a folder and creates instances

#

should I use docker or just ubuntu screens

#

hm

quiet ice
tender shard
#

i dont like docker. it usually creates more problems than it solves

echo basalt
#

yeah that's my concern

#

I might as well just slap it all onto screens

tender shard
#

i'd use systemd units tbh

echo basalt
#

and do some fancy communication

opal juniper
#

docker would be recommendable over screen

echo basalt
#

I mean

buoyant viper
#

true

echo basalt
#

I just want to instantiate and kill instances

#

not worried about monitoring them

#

docker has overhead