#help-development

1 messages · Page 1298 of 1

buoyant viper
#

but also for API u dont need buildtools

#

and most plugins built earlier will probably just work™*** on newer server versions

dapper walrus
#

the issue is that i cant compile because i need an outdated api

#

it seems im looking for 1.7.2 since shampaggon states its support starting on that version

buoyant viper
#

on spigot its support range states 1.7-1.21

#

hmm

#

D: no boobs?!

young knoll
#

Yeah the source for 1.7 and earlier got nuked by the DMCA

dapper walrus
#

i hope it compiles with 1.8.8

torn shuttle
#

you know what's crazy

#

I've been doing this for years

#

I still can't remember which one comes first, player join event or the other one

buoyant viper
#

i think im gonna need to rewrite my entire logging system for my bt gui

#

and by that i mean make a significantly WORSE version of java.util.Logger

torn shuttle
#

also I need a sanity check

#

I got a negative review on spigot because I am sending resource packages on the player join event

#

is this not exactly what minecraft does

#

because the dude is saying players are failing to get the rsp because I am sending it "too early"

#

am I crazy?

pastel axle
#

I call it on the PlayerJoinEvent and also have had zero issues

drowsy helm
buoyant viper
#

because i hate myself

#

and love to reinvent the wheel in the worst ways imaginable

dapper walrus
short pilot
#

Tried making this config file, but it looks like on first run, the config only generates on shutdown and without the comments any help

Then subsequent runs will generate with the comments as expected

#
fun generateDefaultConfig(config: FileConfiguration) {
    config.options().setHeader(
        listOf(
            "--------------------------------------------------",
            "Happy Ghast vanilla friendly plugin by DerexXD",
            "Report all ur troubles at the link below!",
            "coming soon",
            "--------------------------------------------------"
        )
    )
    config.setComments(
        "base-speed", listOf(
            "By default only riding a happy ghast will boost its speed; dismounting will return it to normal",
            "Speed used for the Happy Ghast (attribute:flying_speed base in vanilla mob stats)"
        )
    )
    config.addDefault("base-speed", baseSpeed)
    config.setComments(
        "default-speed", listOf(
            "Speed used for the Happy Ghast when not mounted (attribute:flying_speed base in vanilla mob stats)"
        )
    )
    config.addDefault("default-speed", defaultSpeed)
    config.setComments(
        "always-affect-tamed-ghasts", listOf(
            "If the increased speed should happen always (not only when a player is riding the Happy Ghast)"
        )
    )
    config.addDefault("always-affect-tamed-ghasts", affectHarnessOnly)
    config.setComments(
        "affect-untamed-happy-ghasts", listOf(
            "If the plugin should make untamed Happy Ghasts faster too"
        )
    )
    config.addDefault("affect-untamed-happy-ghasts", affectAll)
    config.options().copyDefaults(true)
}

fun load(plugin: JavaPlugin) {
    val config = plugin.config
    baseSpeed = config.getDouble("base-speed", 0.17)
    defaultSpeed = config.getDouble("default-speed", 0.05)
    affectAll = config.getBoolean("affect-untamed-happy-ghasts", false)
    affectHarnessOnly = config.getBoolean("always-affect-tamed-ghasts", false)
}
rotund ravine
#

Just use saveDefaultConfig and have the comments already in the config

#

I know spigot is iffy about comments

short pilot
#

makes me head hurt sometimes

worldly ice
#

from the README it looks like you just have to clone the repo, run compileSpigotVersions.sh then mvn package

#

iirc the built .jar should be in the target/ dir

ripe depot
#

how do i convert from net.md_5.bungee.api.chat.TextComponent to net.minecraft.network.chat.Component?

smoky anchor
drowsy helm
#

Adventure >>

ripe depot
#

my whole code is built on TextComponent

#

but i need to send an inventory title change

ripe depot
#

i need to preserve colours, styling, nested components/extras and fonts

drowsy helm
#

Adventure has an nms serializer

eternal oxide
#

just reopen the inventory to change its name

ripe depot
#

ok this works

eternal oxide
acoustic galleon
#

if i shade a plugin with @onenable

#

then onenable from this shaded plugin will be executed?

eternal oxide
#

no

#

only the class which is specified in the plugin.yml

acoustic galleon
#

on shaded plugin?

eternal oxide
#

only the class that is specified in the plugin.yml in the root of YOUR plugin

acoustic galleon
#

oh yes then main class from shaded plugin

#

will be completely ignored

#

then should i remove the shaded plugin on soft-depend right

eternal oxide
#

you shoudl not shade another plugin at all

acoustic galleon
#

packetevents is a plugin

eternal oxide
#

you depend in it but don;t shade it

acoustic galleon
#

why?

#

many ppl shade packetevents

#

like grimac

eternal oxide
#

if it is a plugin it is independant

acoustic galleon
#

u dont know packetevents?

#

im saying packetevents is a plugin bc they have @onenable

#

but is likely an api

eternal oxide
#

it HAS an API its its own plugin

acoustic galleon
#

what should i shade?

#

packetevents-api?

eternal oxide
#

its a standalone plugin

acoustic galleon
#

then can i shade?

eternal oxide
#

I already said noi

young knoll
#

You can

eternal oxide
#

you should have it ON your server as its own plugin. Do NOT shade it

young knoll
#

Or at least you used to be able to

eternal oxide
#

well you could shade but that is the incorrect way to use it

#

even its own documentation shows you not to

#

its scope is "provided"

eternal oxide
#

well, later it seems they say you can shade it

#

as its a plugin I would not

#

Read its documentation it shows you how to use it. It even shows code examples of how to initialize it

acoustic galleon
#

i have 2 plugin.yml

#

this is normal?

eternal oxide
#

no

#

do nto shade if you do not understand it

#

if you shade you must relocate

acoustic galleon
#

i alr did

#

and I don't understand your analogy either. everything has its first time

#

even more gradle/maven

tough ember
#

Hello how can j remove my account?

grand flint
thorn isle
#

but yes it should work on the playerjoinevent

young knoll
#

You can send packs in the config phase too

#

Which will make them load before the player actually loads into the world

#

But I don’t really know how to do so

pure dagger
#

Is ChatColor deorectaed

#

?

young knoll
#

No

grand flint
pure dagger
#

Oh oky

potent crescent
#

This "Thread Status: Awaiting moderation before being displayed publicly." How much its take time?

tender shard
#

these shitty inlay hints are getting more and more broken in every new IJ version

lilac dagger
#

i have them disabled

#

all they do is push my code out of the recommended length

thorn isle
#

i like to keep my variable/parameter names consistent since that makes them disappear

#

there's a setting somewhere to hide the parameter name hints if the variable/expression you're passing has the same name as the parameter

lilac dagger
#

there's a setting for it?

thorn isle
#

there are a bunch of settings for the hints somewhere

#

no clue where

#

i adjusted them once like 5 years ago and then never touched them afterward

#

you can have like regex patterns for class/method/parameter names you don't want hints for and shit

lilac dagger
#

i found them

echo basalt
#

stop updating ij

#

ez fix

worldly ice
#

Looks like they setup their modules incorrectly? Try changing the version in the parent pom to 2.3.0-FOX instead of 2.3.1-FOX

tacit coral
#

Does the tablist render colors differently? I have a hexcode and when its in chat its the right color but in tab it gets changed to a different color?

chrome beacon
#

how are you setting the color in tab?

tacit coral
#

Using the adventure api -


private static final LegacyComponentSerializer SERIALIZER =
            LegacyComponentSerializer
                    .builder()
                    .hexColors()
                    .hexCharacter('#')
                    .character('§')
                    .useUnusualXRepeatedCharacterHexFormat()
                    .build();

String header = SERIALIZER.serialize(Component.text("Header", TextColor.fromHexString("#E03C31"), TextDecoration.BOLD)
wind jacinth
#

Not the minecrat riding

grand flint
#

anvil

#

@wind jacinth

wind jacinth
#

thank you

grand flint
#

its anvil place or fall something liek that

#

its when an anvil falls onto the ground i think

#

then u need to adjust the pitch cuz that sounds very low pitch

wind jacinth
#

place and fall sound the same

#

yeah its just a very low pitch

violet dagger
#

I need help, i have znpc on my second world (i made spawn on it) and i want to make it rtp on main world when u click it

violet dagger
#

When i click it random tp me to that spawn world

#

Ih

#

Oh

potent crescent
#

How long will it take?

chrome beacon
#

so soon(tm)

eternal oxide
#

about treefiddy

potent crescent
#

alr alr alr alr alr alr alr alr alr alr alr alr alr alr alr alr

sage patio
#

or threads

winter jungle
#
Item item = overNPC.getWorld().dropItem(iconLocation, itemStack);
item.setPickupDelay(Integer.MAX_VALUE);
item.setVelocity(new Vector(0, 0, 0));
item.setGravity(false);
item.setCustomName("NO_PICKUP");
item.setCustomNameVisible(false);
item.setTicksLived(Integer.MAX_VALUE);

Someone has a idea why my item still disappears after some time?

worthy yarrow
#

I think we need more code, but why not just use an item display?

#

actually .setTicksLived may be the issue, this sets the entities age rather then a period of time it should be around for

winter jungle
worthy yarrow
#

Not too sure why that'd exactly cause it to be removed though, perhaps some internal cleaning for entities that have definitely been around for too long... Integer.MAX_VALUE will return you like 200 years or so

winter jungle
worthy yarrow
winter jungle
#

I could have a look at how DecentHolograms does it.

worthy yarrow
#

They're all packet based with armor stands

#

But spigot gives us display entities now

#

It'd be something like this I assume:

#

Wow

#

really not gonna embed

pseudo hazel
#

mkv never embeds in discord

worthy yarrow
#

fuckin obs man

#

wonder why it defaults to mkv

pseudo hazel
#

torture

winter jungle
worthy yarrow
#

You can just simulate that with transformations of the display entity

#

Little extra work

winter jungle
#

it won't look as good as the original one

worthy yarrow
#

I mean

#

It's not like they're using some secret math techniques interally

eternal oxide
#

easily done with displays. I posted code a while back to do this

worthy yarrow
#

I wonder if block displays have a way to induce that animation

winter jungle
#

time to install mcp to get the official calculation from the game lmao

eternal oxide
#

I even did the sin bounce and rotation

winter jungle
#

Thanks

trim quest
#

Anyone knows how to upload an api to Jitpack that depend on Buildtools generated spigot dependency.

#

my github action workflows works but cant upload to jitpack

#

Jitpack build log

[INFO] Reactor Summary:
[INFO] 
[INFO] EranoAPI-Parent 1.0 ................................ SUCCESS [  0.783 s]
[INFO] EranoAPI 1.0 ....................................... SUCCESS [ 12.402 s]
[INFO] NMS 1.0 ............................................ SUCCESS [  0.003 s]
[INFO] V1_21_R1 1.0 ....................................... FAILURE [  1.512 s]
[INFO] V1_21_R2 1.0 ....................................... SKIPPED
[INFO] V1_21_R3 1.0 ....................................... SKIPPED
[INFO] V1_21_R4 1.0 ....................................... SKIPPED
[INFO] V1_20_R3 1.0 ....................................... SKIPPED
....
[INFO] V1_16_R1 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_15_R1 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_14_R1 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_13_R2 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_13_R1 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_12_R1 1.0-SNAPSHOT .............................. SKIPPED
[INFO] V1_11_R1 1.0 ....................................... SKIPPED
[INFO] V1_10_R1 1.0 ....................................... SKIPPED
[INFO] Dist 1.0 ........................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14.819 s
[INFO] Finished at: 2025-07-24T20:37:26Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project V1_21_R1: Could not resolve dependencies for project me.erano.com:V1_21_R1:jar:1.0: Could not find artifact org.spigotmc:spigot:jar:remapped-mojang:1.21.1-R0.1-SNAPSHOT in spigot-repo (https://hub.spigotmc.org/nexus/content/repositories/snapshots/) -> [Help 1]

#

i guess i have to upload it into maven repo

#

then jitpack can fetch it from there

elder leaf
#

hello any help i dont know

slender elbow
#

well, what is it complaining about?

elder leaf
#

C:\Users\hopko\Downloads\weekly-regional-elections (6)\src\main\java\cz\churaq\ravarynvolby\integrations\LuckPermsIntegration.java:148:53
java: method builder in interface net.luckperms.api.query.QueryOptions cannot be applied to given types;
required: net.luckperms.api.query.QueryMode
found: no arguments
reason: actual and formal argument lists differ in length

#

i tried this QueryOptions queryOptions = QueryOptions.builder(QueryMode.EXACT).context(contextSet).build();

#

but still

trim quest
#

guys i really need someone that expert on CI/CD processing with spigot.

buoyant viper
#

maybe u need to tell dep manager that its provided at runtime and not absolutely necessary for usage or something

trim quest
#

check EranoAPI-Parent/actions

#

will provide EranoAPI submodule to my clients

slender elbow
#

did you ask AI or something

#

it's an enum, you should look at the enum values for which one you are interested in

elder leaf
#

i asking AI

#

bcs i dont know how to fix

#

and ai said this

slender elbow
grand flint
#

W help

slender elbow
#

if you value any of your time or dignity as a programmer, you should take a proper Java course instead of rotting your brain with AI "assistants" that, unlike your abilities to think critically and solve problems, can't get things right

eternal night
#

AI assistance isn’t about replacing thinking—it’s about not wasting time reinventing the wheel every five minutes. If using tools to work smarter offends your “dignity,” maybe the real problem isn’t the AI.

trim quest
buoyant viper
eternal night
trim quest
#

vibe coding: ❌
vibe engineering: ✅ / meh

eternal night
#

-# I am just shitposting to annoy emily

slender elbow
#

lynx, both of us know that you do not need to shitpost to annoy me

eternal night
#

shy_point_pixel aww really?

slender elbow
#

am watching dankpods

#

wanna join?

eternal night
#

who?

slender elbow
#

green ipad aussie

buoyant viper
#

i mean theres some truth to what em said

#

to fully rely on AI (vibecode) is pure idiocy

#

u must still at least know the language and have a basic understanding of common errors

#

otherwise ur code is as good as mine (not at all)

grand flint
#

nah

#

if u know how to code

#

ai is soo super useufl

buoyant viper
#

if u know how to code

yeah thats like the whole point

trim quest
#

it is what she said actually.

grand flint
#

it just speeds it up as long as u arent being an idiot

grand flint
buoyant viper
#

to vibecode (to me) is to quite literally try to code (make AI write it) without knowing how to

trim quest
#

being fully rely on AI means that you are blindly developing something that you dont know.

buoyant viper
#

maybe i should put pronouns in bio

#

i hate having <<<METADATA>>> stored :(

buoyant viper
#

i fucked up the regex.

#

there we go

buoyant viper
grand flint
#

YOO

#

I ALSO FOUND OUT WHERE U LIVE

buoyant viper
slender elbow
#

programming languages such as "Java"

#

"PHP"

buoyant viper
#

i actually have a different version of it that doesnt look as dumb lol

slender elbow
#

better than my landing page

#

uh

buoyant viper
slender elbow
#

youtube is 404 booooo

buoyant viper
#

a bit more in-depth

#

one day i need to write a proper resume but ive only had one job and i havent done college LOL

#

so like i have fuckin Nothing to put on it

trim quest
#

you can also set it your dns setup on there for your custom domain.

green gyro
#

Hi folks. Want to ask abot minor version backwards compatibility. If I compile against 1.21.8-R0.1-SNAPSHOT, will all versions of 1.21 work as long as I don't use new api methods?

buoyant viper
#

if u dont intend on using new features, why depend on newer api?

green gyro
#

Just out of interest, as the plugin did load on an older minor version

chrome beacon
#

yeah it'll work for all versions that contain the methods you're using

#

(and fields etc, you get the idea)

potent crescent
#

i have disabled proplem check by worng how can i back it

buoyant viper
#

no more problems in the code 🙏🏻

cinder abyss
buoyant viper
#

thank u

#

i took graphic design one year in highschool and vaguely remember how to color something

cinder abyss
#

Also, hum-hum, hello (but it's night for me)
How can I dynamically generate the resource pack for an item with custom model data ?
Idk if packed does it @radste... wtf ?

#

(@remote swallow where's rad ?)

remote swallow
#

he left

cinder abyss
#

he prefers paper ?

#

fabric ?

remote swallow
#

spigot isnt a place he wanted to stay anymore

cinder abyss
#

oh

remote swallow
#

half the people in here arent worth the effort to still talk to

cinder abyss
#

okay... I mean, if it's better like this

remote swallow
#

he mainly just didnt like a few people and didnt want to have to see/talk to them

cinder abyss
buoyant viper
#

not me though im Banger

cinder abyss
#

hope it's better then

buoyant viper
#

🙏🏻

young knoll
#

Maybe if discord had better blocking

cinder abyss
#

it seems really dark

potent crescent
#

I changed the shape of the problems by mistake, how do I get them back? 🤡

buoyant viper
#

isnt that how they normally look

potent crescent
#

no this is smaller and this is dosent have number of. proplems

buoyant viper
#

what shows up when u right click in that area

#

or like on the ( ! )

potent crescent
#

number of proplems ans warrings

#

and*

#

it was bormally showning number of proplems and warrings with out click on it

#

alrrr i fixed it

#

this is the normally

buoyant viper
#

so many warnings the IDE gotta show it twice

mortal vortex
mortal vortex
swift oyster
#

is there a way to get the height of a block? like 1 for a full block, 0.something for snow...

mortal vortex
#

not for generic blocks

pseudo hazel
#

most blocks are 1 block tall

mortal vortex
#

Yeah you could just make a list for those that arent.

pseudo hazel
#

the rest are exceptions you unfortunately have to measure out

#

but some depend on placement or being powered i.e. trapdoors

mortal vortex
#

ohh true

pseudo hazel
#

and how tall would you measure glow lichen? i guess either 0.1 or 0.0

#

long story short,

#

?xy

undone axleBOT
swift oyster
#

Okay thank you, my goal was to precisely align an ItemDisplay that displays a head to the ground. I guess I'll make a list with all the exceptions then

sullen marlin
faint tide
#

Hi, anyone good with Display Transformations here? I can't seem to figure out what is wrong. A item display is summoned with a scale of 0, and after a timer of 10 ticks the transformation should kick in, rotating the display towards the player while growing to the new scale size of 0.9f

    @Override
    public void ExecuteTick(RewardExecutorContext context, long ticksPassed) {
        if (ticksPassed == 10L) {
            var display = this.getDisplay(context.location);
            entities.add(display);

            display.setInterpolationDelay(0);
            display.setInterpolationDuration(20);
            display.setTransformation(new Transformation(
                    new Vector3f(),
                    new AxisAngle4f(0f, 1f, 0f, 0f),
                    new Vector3f(0.9f, 0.9f, 0.9f),
                    new AxisAngle4f(0f, 1f, 0f, 0f)
            ));
        }
    }```

The thing I don't get, is that it does the transformation, but instantly. it doesn't matter if I change the InterpolationDuration to a higher number, it keeps being instantly
thorn isle
#

make sure you don't call setTransformation a second time before the interpolation duration ends

#

sending a new transformation while the previous one is still being interpolated will skip the previous interpolation and start interpolating to the new transformation as if the previous one had been instantly completed

#

also make sure the entity isn't spawned in the same tick as when you set the interpolation duration/transformation; i think that should work but personally i've had issues with that skipping the interpolation as well

faint tide
#

hmm fair enough. I shouldn't have a second transformation active, but let me make sure

#

i added the 10 tick cooldown on purpose to not fire it too quick

thorn isle
#

another thing you could try is setting the interpolation duration first, on spawn, possibly even in the spawnEntity consumer that's called before the entity is even added to the world

#

it could be that the client sees the transformation being set before it sees the duration being set

#

it shouldn't, since they're supposed to be sent in the same entity data packet, but i've had issues with this shit as well and it clearly doesn't work the way it should

faint tide
#

hmm alright I've applied your suggestions, I'll go test it now

#

This seems to have fixed it! Odd that it works like that, but at least it works now

#

Thanks a lot for you helpful suggestions

potent crescent
#

What does the glasses mark mean?

chrome beacon
#

watched thread I'd assume

potent crescent
chrome beacon
#

Just means you'll get notifications from messages posted there

elder dome
#

guys iam making a smp

#

anybody want to help me

#

for free

mortal vortex
#

dude. Not the right channel.

elder dome
#

?

elder dome
mortal vortex
#

Yes. Help for people looking to make plugins.

elder dome
#

making plugins

#

o

#

where can i find help

mortal vortex
#

Meaning, if you're trying to code a plugin, this is the place you'd get help.

elder dome
#

where shoiuld i look?

mortal vortex
#

I dont think there is a place, other than the Spigot Forums, and posting free things isnt allowed i think.

elder dome
#

can you plzz tell me

#

o

mortal vortex
#

I just did.

thorn isle
#

give me money

elder dome
#

let me look around

eternal oxide
#

?services

undone axleBOT
elder dome
mortal vortex
#

rule of thumb, i dont think many honest people are going to help you for free.

orchid brook
#

Hi guys how are the doing this ? https://imgur.com/a/pC8eRVj
They put yellow background on item that can be added to backpack. I though they was doing that with custom resource pack but after looking into the texturepack i don't see any item with yellow background.
And when looking the config we can config a RGB color like:

slots:
  colors:
    not_owned: 195,147,57
    owned: 56,67,100
smoky anchor
#

My guess would be font fuckery

grizzled surge
#

Hello Guys,
So i want to make a custom Item System for a plugin that I develop. I want the ItemStack of the Custom Item to have a Translation key from a resource pack as the Display Name, I tried it with Component.translate but that didn't work. Does somebody know if this is possible and if it is, how I can do it?
Thanks

echo basalt
#

you make a font for each slot row and then use negative spacing and whatever

#

I have it for the first 6 rows somewhere

echo basalt
#

you might have to specify a namespace

#

Try sending yourself the component as a message to debug if the problem is in your pack or in your component

orchid brook
echo basalt
#

I wrote that code years ago I'd do it different nowadays

#

let's see if I can find the pack for it

orchid brook
#

because actualy some people tell me that core shader is the way to go

echo basalt
#

bruh

#

there

#

it's just a 1x1 pixel scaled up to the size of a slot

#

given that slots render BEFORE items in versions <1.21.6 it works

#

starting on 1.21.6 mojang did a big stinky and broke all custom UIs

#

you can sorta get around with it using core shaders BUT it breaks item lore

#

they also broke lots of core shader stuff in 1.21.5

#

who knows

orchid brook
crisp coral
#

Looking for someone to help make the rest of my server. NOT PAYED. DM ME. REALLY NEED HELP

eternal oxide
#

PANIC!!!!

crisp coral
#

?

grand flint
#

SUPER PANIC!!!!

#

not paid advertising is crazy

crisp coral
#

Wow I'm sorry

grand flint
#

should be 🤨

#

anwyays

crisp coral
#

...

grand flint
#

?services

undone axleBOT
crisp coral
#

Ty

trim quest
#

We should make fun of people who are looking for developers to make things as a volunteer.

potent crescent
#

i dont undrstand that

trim quest
#

I am completely against the concept of volunteering unless it is open source.

#

and it must have a certain amount of success or popularity or promise.

orchid brook
echo basalt
slender elbow
#

you just wait until they finally drop the whole graphics refactoring

crisp coral
#

GIANT PINECONE IN STOCK

slender elbow
#

i got enough pinecones at home i don't need anymore

grand flint
#

STILL??

crisp coral
#

YEA

#

4 mins left

grand flint
#

OMG

#

I MIGHT JUST CODE FOR U FOR FREE

#

fuck u liar @crisp coral

crisp coral
#

I just got it

#

bru

grand flint
#

liar

crisp coral
#

nuh uh

grand flint
#

i wouldve developed for u for free

crisp coral
#

It was ong there

grim hound
#

can you make an entity always update their yaw clientside to whatever the player is facing?

orchid brook
#

since my plugin use hidePlayer method, i use packet to send fake ServerPlayerInfoUpdate packet to show them on tab. But the tab completion for commands didn't work anymore is there a fix for that ?

grand flint
#

Yeah send the player name to tab complete

#

nice atlantis logo

orchid brook
grand flint
orchid brook
#

I can send u his discord name if u want

grand flint
#

ur wife is a guy

orchid brook
#

no ? 😭

topaz hollow
#

can server owner sue their devloper?

eternal oxide
#

anyone can sue anyone

topaz hollow
#

yes , but can it hold in court as its just a minecraft server?

eternal night
#

depends on what you are sueing for? xD

eternal oxide
#

depends, talk to a lawyer

topaz hollow
topaz hollow
eternal night
#

okay? depends on what you are being sued for

topaz hollow
#

for giving backdoor access

eternal night
eternal oxide
#

yes for sure

#

unless you were given explicit permission to do so

topaz hollow
#

but its a minecraft server

eternal night
#

how does that matter

eternal oxide
#

makes no difference

topaz hollow
#

and the damage was minimal

eternal oxide
#

makes no difference

topaz hollow
#

and he does not know my real name

eternal night
#

¯_(ツ)_/¯

floral pier
#

Play stupid games, win stupid prizes

eternal night
#

distributing malware is illegal is most places lol

eternal oxide
#

some places its a very serious crime

floral pier
#

Ye that's a felony

grim hound
#

bruh just ghost him

floral pier
#

He can just report you to any law enforcemeny entity

topaz hollow
#

after he started threatning me I deleted all the console logs , my mods and left

topaz hollow
eternal night
#

I mean, law enforcement kindly asks discord

eternal oxide
#

he could hire a super spy to find you

eternal night
#

discord kindly provides your ip

eternal night
#

or whatever

floral pier
#

Because your ISP has logs of the IP ranges they rented you

eternal night
#

but yea, this isn't legal help omegaroll

floral pier
#

And every webservice has logs correlating that range to your accounts.

topaz hollow
eternal night
grim hound
#

?

floral pier
#

Yeah they did. Then they got in shit for that.

eternal night
#

nah, I always code backdoors without intention

kind hatch
#

All backdoors are purposeful

topaz hollow
floral pier
#

Discord has entirely different ownership now.

grim hound
#

ah yeah

thorn isle
#

🤡

eternal night
#

Well, if they haven't paid you for it, chances of them actually suing you sounds rough

kind hatch
#

Maybe morally, legally, no.

eternal night
#

if they don't have the money to pay you, doubtful they have the money to sue you KEKW

floral pier
#

Ye you's probaby fine then

topaz hollow
floral pier
#

Unless he just charges you

grim hound
eternal night
#

aaahaa. This sounds like troll, gl

thorn isle
#

Sounds like a 13 year old and/or a third-world bananastan plebeian

#

Nothing will happen

kind hatch
#

"bananastan" lmao

topaz hollow
thorn isle
#

Yeah at least 2.5 dollars

topaz hollow
#

more like 50

thorn isle
#

Nuh

floral pier
#

Lol

eternal night
#

😱 50 dollars?!?!?

topaz hollow
eternal night
#

(lawyer won't even look your way for 50 dollars)

floral pier
#

Use a VPS brother

grim hound
floral pier
#

It's just a java app...

topaz hollow
#

what if he gets a contingency fee lawyer

alpine urchin
#

do you mean pro bono

thorn isle
#

Or like a 2 dollar 2gb pebblehost shit tier shared host

grim hound
topaz hollow
topaz hollow
thorn isle
#

Then it'll be at least 20 dollars

grim hound
#

what country

eternal night
#

tl;dr, legally yes, backdoor be illegal. Wait and see if anything actually comes from it

topaz hollow
thorn isle
#

Nuh

topaz hollow
thorn isle
#

20

grim hound
topaz hollow
floral pier
#

Then you're fine

#

Because you don't live in a TV show so he'll be held to actual rules

dark arrow
#

is it possible to sue your developer for making backdoor access to server?

topaz hollow
#

bye bye

topaz hollow
fair rock
slender elbow
#

it's 100% possible

topaz hollow
#

lawyer can charge 1000s per hearing can you afford it , what if you loose after spending so much money, I would suggest to not go for it and forgive whoever that devloper was 🙂

dark arrow
fair rock
topaz hollow
fair rock
#

Not if it practical, easy or cheap

grand flint
#

It's possible but useless

thorn isle
#

why are you even asking

#

how are we even supposed to know

topaz hollow
grand flint
#

Your best thing would be to get him banned in all connections he has

dark arrow
grand flint
#

What did he cause?

thorn isle
#

things depend a lot on the case

grand flint
#

Don't you also have backups?

#

What is the damage here

thorn isle
#

and although we're developers i doubt at most 1% of the people here have done something like this themselves

dark arrow
grand flint
thorn isle
#

that is to say i'm sure there are many malware enthusiasts, crackers, and pirates here, but in doing those things most of them covered their tracks well enough not to have to worry

topaz hollow
grand flint
topaz hollow
fair rock
#

No

grand flint
#

ur a moron

thorn isle
#

not really

grand flint
#

i just sometimes hate everyone having an opinion

#

like not everyone needs an opinion

thorn isle
#

and even then the law doesn't care

topaz hollow
grand flint
#

some people just should use other peoples opinions instead of having their own

#

"he didnt pay me well so i will break multiple laws instead of simply reporting him to wherever he hired me from"

#

bc its morally right ✅

dark arrow
thorn isle
#

eye for an eye makes the whole world blind and me king because i have one eye

grand flint
#

aura if u ask me

topaz hollow
thorn isle
#

it was financial self defence bro

grand flint
#

"have to get back"

dark arrow
fair rock
#

Can we talk about the logic? "But what if he didnt pay", after Sammu answer, he didnt pay. But the backdoor was already there or not? So that cant be a reason.

grand flint
#

u shouldnt drop it

#

u should report him

#

and get his online identity exposed

#

doesnt mean u go attack him back

#

u just do whats legally right

#

take action not harm

grand flint
#

having a cloud function that simply breaks the plugin if it wasnt paid

dark arrow
#

I don't want to spend thousands just to have a chance of winning , I don't even know his real name

thorn isle
#

the one i have access to

grand flint
#

not breaking dmca laws

grand flint
#

i said report him

#

its a minecraft server

#

no lawyer is picking up ur case

eternal oxide
#

if you recruited him in the spigot forums report him, else he does it to others

dark arrow
grand flint
#

just publicly shame him

eternal oxide
#

if you didn't get him from spigot do nothing

grand flint
#

whats his username

#

ping him here

dark arrow
slender elbow
#

publicly shame them on twitter

grand flint
#

real

#

then he gets killed irl bc its twitter

thorn isle
#

punch him in the face

fair rock
#

"He was my friend", i guess i know why not anymore xd

dark arrow
#

and blocked

grand flint
#

so.?

#

honestly

#

sounds more like

#

ur bullshitting at this point

vocal cloud
#

I mean if he caused financial damage you could sue him for losses. Of course assuming you can find the guy

grand flint
#

to cause drama

#

simply copy his username and paste it here

#

or copy his user id

grand flint
#

the lawyers will be 🤑 with this case

dark arrow
thorn isle
#

engage in physical violence against him

grand flint
#

u cant sue him for 10k

#

there isnt 10k in damages

vocal cloud
grand flint
eternal oxide
#

Challenge him to a cage fight

topaz hollow
grand flint
#

neither is it worth wasting ur time

#

??

#

the lawyer doesnt cost more than 10k

#

nikola where is ur law knowledge from

#

minecraft?

thorn isle
#

no but really since you know him irl, duke it out irl

topaz hollow
grand flint
#

lets make a poll

thorn isle
#

people do dumb shit on the internet because they're too used to being protected by a screen in between

grand flint
#

do u use ur fingers to count perchance?

topaz hollow
kind hatch
thorn isle
#

back in the day every time you'd fuck around you'd also find out

grand flint
#

LMAOO

#

it would be sorted and done in one hearing

#

neither would a lawyer pick it up

#

bc there isnt 10k in damages

#

there isnt even 1k in damages

#

so a claim of 10k wouldnt even be accepted in any case

thorn isle
#

what about 10 dollars

grand flint
#

aura

topaz hollow
#

so we are back to same thing , its not practical

#

you guys made it so long when i said that sam ething at the start

grand flint
#

we arent back to the same thing

#

u said u cant sue

#

u can

#

u said it would cost more than 10k

#

no it wouldnt

vocal cloud
#

I mean it's technically computer hacking in a way but it's a coinflip on if the judge/jury understands enough tech knowledge to care

topaz hollow
#

then i said its not practical and its true

grand flint
#

doesnt matter

#

i didnt disagree on that

#

anyways

#

all of it just sounds like bullshit

slender elbow
#

it's still possible, and someone with enough time and money will do it

grand flint
#

sounds like he just wants attention

fair rock
#

Btw in some countries the loser has to pay the laywer so if you 100% sure, you could try and didnt lose money

dark arrow
#

the case will be more symbolic than practical

grand flint
#

we all know nothing happend

#

just load the latest backup and continue

thorn isle
#

what'd be much more symbolic is a fist in the face

thorn isle
#

he'll for sure never backdoor again

dark arrow
# grand flint bro shut up

man whats wrong with you , don't you read previous messages, you are just straight up abusing , leave the conversation if you are not intrested

thorn isle
#

at least anyone within melee distance

fair rock
grand flint
#

damn

topaz hollow
grand flint
fair rock
slender elbow
grand flint
#

how will i link my favourite google searches

thorn isle
#

i think he said he does

fair rock
#

If his gf ever ask for backdoor he has now PTSD

topaz hollow
grand flint
#

sorry mr minecrat lawyer

#

didnt know u was so interested in backdoors

dark arrow
thorn isle
#

i vaguely remember hearing that mojang changed the world generator somehow so that updating the server version mid-generation no longer causes chunk borders

grand flint
#

damn thats crazy

thorn isle
#

anyone know whether this is true and if so, how is this accomplished?

grand flint
#

@molten hearth ^^

thorn isle
#

specifically i'd like to selectively regenerate parts of my world with different heightmap noise/biomes

#

so if that could be done smoothly without causing chunk borders that'd be neat

fair rock
thorn isle
#

like i guess i could manually do some smoothing for say ~2 border chunks myself but that seems a bit bothersome to implement reliably and is probably pretty expensive to do at runtime

#

so if mojang has already invented this particular wheel i'd rather not reinvent it

smoky anchor
#

Yes, chunk blending is a feature
Sadly that's all I know about it

thorn isle
#

i'll take a look see

#

mmm

#

interesting, though not particularly informative

#

i'll have to fuck around with it some i guess

#

if i had to implement this myself i'd probably try interpolating the noise between the old seed/noise and the new one, but i don't think the noise or other generator information is stored in the world, so you'd need all the parameters of the old world generator to do that

smoky anchor
#

yep

thorn isle
#

you could maybe sorta ish compute the noise values from the biome and terrain heights, but things like cave systems would probably be impossible to patch over smoothly

molten hearth
grand flint
#

the imagine 💀

grand flint
molten hearth
#

ohh

#

😔

grand flint
molten hearth
#

ya

trim quest
#

huh i finally did @chrome beacon

#

im only using github workflows

echo basalt
#

@thorn isle ever dealt with nms inventories just refusing to do shit?

#

for some reason when I open a gui after right clicking, I can't drop items out of it

#

and it doesn't fire click events when dropping

#

Does it think the player is invalid or something

thorn isle
#

you either patch the server to fire a million sysouts in the inventory handling logic, or you attach a debugger to the server and set a million breakpoints in the inventory handling logic

#

i recommend paper userdev + runserver

echo basalt
#

I'm doing it at the most basic level

#

it could be this

#

oo maybe

thorn isle
#

it could be that you're omitting something that sets the carried item of the menu

echo basalt
#

I think what's happening is that dropping the item swings the hand

#

and that opens the gui again

#

which passes that check

thorn isle
#

the more sysouts the better

#

sloc stands to sysout lines of code and is an objective measure of how good the code is

echo basalt
#

it explains why opening the menu through the hotkey works but not w the item

#

stupid ass detection

#

does the client not fire a left click packet?

#

do we seriously have to figure out with hang swings

thorn isle
#

i think it might have a packet for that but the bukkit listener also listens for the animation arm swing packet or whatever because the proper packet doesn't cover every case where an "interaction" happens

#

this is a longstanding problem and causes interact events to fire when doing completely unrelated things

worldly ingot
#

Correct. That's why you get a left click action you do something like opening a trapdoor, which famously is not a left click action :p

#

The client does not send an actual interaction packet with the interaction being made

thorn isle
#

one day we will for sure get left/right click fields in the input packet or something 🤡

echo basalt
#

but the trapdoor opens

#

can't we just prioritize every other packet

#

and then use that to kinda figure it out

worldly ingot
#

I think Mojang is aware that the community wants more streamlined interactions

#

But they also don't want to write something that then has to be rewritten again over a bandaid

echo basalt
#

or just disable the hang swing when dropping in a gui

echo basalt
worldly ingot
#

Sure, yeah, whatever term you want to use for it

echo basalt
#

yay I can drop items

thorn isle
#

i think including rmb/lmb in the input packet would probably be fairly straight forward, but i guess that does leave a lot of the logic up to the serverside to figure out what the player is actually doing with those inputs

worldly ingot
#

There are some complications with how the client predicts interactions, iirc

thorn isle
#

eh, for most of my use cases at least i don't really care whether it's an interaction or not, just whether the button was pressed

#

wouldn't be suitable for the interact event though, sure

worldly ingot
#

Yeah but then you get into the camp of "I should be able to listen for any and all key presses too"

thorn isle
#

well, yes

#

i would like that

worldly ingot
#

Server-defined keystrokes would be nice but that's a separate issue that ties in very closely to just adding in mouse click listening

#

Hard to fix slop with new slop KEKW

thorn isle
#

i would also like to add custom keybinds as a synchronized registry

ancient plank
#

if we're going to say things we want

thorn isle
#

press f to pay respects and so on

ancient plank
#

I want to be able to set non-whole number positions for end crystals from the server

worldly ingot
#

Too bad >:L

ancient plank
#

no, I will never drop this topic

thorn isle
#

i want to be able to rotate and move item frames freely

#

some guy said he managed to do that but i don't believe him

#

and he can't reproduce it

ancient plank
#

could probably technically imitate it using item displays lol

echo basalt
thorn isle
#

raaaah

echo basalt
#

in 1.17 they changed item frames to not use their yaw and pitch but rather their block face

slender elbow
#

choco

echo basalt
#

took me 4 hours of testing to figure out why downgrading the server broke rotation

ancient plank
thorn isle
#

this makes me incredibly angry

worldly ingot
echo basalt
#

I wonder what funny interactions you cna have if you mount an item frame in a display entity

ancient plank
#

honestly

echo basalt
#

imagine if you could mount a creeper in a display entity and rotate it

#

get spun

ancient plank
#

probably a fun project to try

#

if only I have an inclination for interpolation math

thorn isle
#

sadly i don't think mounting things on displays makes things inherit their transformations

#

that would be a very neat feature, however

#

proper bones and shit for animation

ancient plank
#

I did some simple stuff like an earthquake to make blocks move around and shake, and it was cool- that's the extent of my knowledge

thorn isle
#

while we're at it let's allow for a custom mount offset

#

so you can actually port multipart models into the game without having to teleport shit around, and you'd get proper multipart interpolation

ancient plank
#

Sometimes I think about how it'd look to do trees that wave in wind in minecraft w/ display entities

thorn isle
#

could be neat, though i think gameplay would kind of suffer what with the hitboxes and all

ancient plank
#

absolutely

#

but

#

mimiDemon it'd be cool to look at

thorn isle
#

might be a better project for shaders and maybe a mod to animate the hitboxes/collisions as well

ancient plank
#

I'm at the point in my hobby life where I'm going into extremely impractical creations because why not

thorn isle
#

shaders do already make leaves wave around by transforming the geometry

#

should probably not be impossible to do the same for logs that are part of a tree

ancient plank
#

yeah but I don't like touching client stuff

#

I like pushing the limits on the server side of things

thorn isle
#

waving trees reminds me, the new ambient/environmental particles are super nice

#

forests feel much more forestlike with falling leaves and shit

#

now we just need a bunch more per-biome ambient sounds like chirping birds and crashing waves

#

which is a serverside project which i've always wanted to get around to but never had the time

#

i even stole the sound assets from some mod already

pure dagger
#

so i want to make a configurable shop (gui). admin could add or remove items and set the price. and im thinking how to make that configurable. through a command and through config. but if it was configurable through a config, then you couldnt set custom items from other plugins, and if it was configurable through command, then the config would be pretty unreadable. so i dont know if i can do both

thorn isle
#

you can do both, by accepting both formats in the config

#

the ones created with a command will be unreadable, but as long as they are named informatively in the config, that is fine

#

the price and other shop-related settings will still be readable

#

and for basic vanilla items you can just accept a simple item definition from a material in the config

#

ideally you'd use some form of centralized item management system but there are many of them out there and maintaining compat with all of them is infeasible

#

for a similar project i ended up forking pretty much every item-related plugin on the server to unify the custom item representation (e.g. the pdc key used to identify them) and now just refer to them in configs by pluginname:itemname

#

this was particularly ass for mythicmobs because mythicmobs is particularly ass to begin with

#

and being closed source made forking it a bit annoying

#

i wouldn't have had to fork it of course if they had proper external custom item support, but like everything fucking else in their dumpsterfire of a plugin, it is there but barely works

pure dagger
thorn isle
#

yes well if you don't make it configurable through a file i will find where you live and burn your house down

echo basalt
#

write an intermediary format / your own item codecs

#

makes config readable and the command items readable as well

thorn isle
#

additionally if you make it configurable through a gui exclusively i will also burn your entire city down

pure dagger
#

you mean like

#

serialize it

#

?

echo basalt
#

yuh

#

ezpz

pure dagger
#

how do i know i included everything

thorn isle
#

i recommend paper's ItemStack::serializeAsJson

#

or snbt

echo basalt
#

you write a million codecs

pure dagger
#

million codecs?

thorn isle
#

if you write it yourself you run into essentials town and it becomes a maintenance nightmare

pure dagger
#

whats 'essentials town' ?

thorn isle
#

essentials from the dawn of time had its own item syntax

#

which over time grew larger and more complicated and more unreasonable and most incriminatingly, more different from the way how vanilla item definitions evolved

#

it was and is a nightmare to both the maintainers and anyone trying to do anything more difficult than add enchants on an item with it

#

use snbt/json and you can delegate serialization to paper and documentation to mcwiki

pure dagger
#

sooo what is 'essentials TOWN' ?

pure dagger
thorn isle
#

x town is a turn of phrase meaning a place to be pertaining to or defined by x

#

in this case a bad place to be since it was ass and shit

#

not that essentials as a whole is ass or shit but in terms of the item syntax it definitely is ass and shit

#

so yes implementing your own codec for everything is going to also be ass and shit; you'll be repeating their mistake

#

mythicmobs for all the shit i give them did it a bit better, in that they at least allow you to specify your own itemstack serializer if you want to use anything other than their item syntax

#

of course, just like everything in mythicmobs, it works only situationally

#

but i'd still take it over essentials items any day of the week

pure dagger
#

okkaay

vague grove
#

How can i put Block material to tabcomplete?

rotund ravine
#

Just like anything else

pure dagger
left jay
slender elbow
left jay
#

oh sweet, thanks

vague grove
# pure dagger wdym

Like then i use /blocks args[0]
in args[0] will show up list of all blocks in the game

sullen marlin
#

Add a tab completer, get blocks from Material

daring light
#

The proper way to get a Minecart that just got placed would be through the EntitySpawnEvent?

buoyant viper
#

rate the C folx

#

(takes in a file [presumably .txt], converts newline chars to | for this one wallpaper i got on wallpaper engine)

daring light
buoyant viper
#

VLA?

#

i dont write C, i just have a vague understanding of it and basic IO

daring light
#

Variable length arrays

buoyant viper
#

ah

#

for the filename?

daring light
#

You could just malloc that and then avoid the w_strcpy by adding the offset directly to the pointer and use regular strcpy

daring light
buoyant viper
#

hm

#

what would that second part look like?

i could imagine the malloc would be char *dstName = malloc(sizeof(srcName) + (sizeof(char) * 4));, unless that still counts as variable-len?

daring light
buoyant viper
#

and then strcpy(dstName, srcName);, then assigning the .nlc with strcat?

daring light
#

But also you're misusing sizeof

#

sizeof returns you the size of the type of the variable in bytes

#

in this case srcName is a pointer so if this is a 64-bit program it's going to be 8

buoyant viper
#

ah i need strlen?

daring light
#

Yeah

buoyant viper
#

guess ill include string.h, i was being stubborn trying to get around the import lol

daring light
#

It's so lightweight

#

You could make your own strlen and strcpy and what not but that doesn't really offer any benefit other than freestanding environments where you have no other choice

buoyant viper
#

this feels even more wrong now, mostly bc of me manually putting nullterm(do i need to?)

lilac dagger
#

all strings in c end with \n no?

buoyant viper
#

\n? naur

#

\0? perhaps

lilac dagger
#

oh right

#

\0

buoyant viper
#

OH

#

i get why u say that

#

i dont need to do it since ".nlc" would (hopefully?) have that in the strcpy

#

this should be fine, ye? @daring light

#

+5 is strlen(".nlc") (+4), and +1 for nullterm(necessary, ye?)

#

it prints out fine in stdout at least

#

or should i still be malloc'ing here? instead of just a normal array

buoyant viper
#

i was like "i could totally do this without needing it"

#

i think im still misusing sizeof now in array creation lol

#

theoretically i just... shouldnt need it

#

since that should just be "factored in" since its a direct char array

daring light
buoyant viper
#

F

daring light
#

You should only use arrays when the size is a constant

#

Otherwise use dynamic arrays

#

And also for strcat the destination needs to have enough space allocated for the string you are concatenating

buoyant viper
#

im aware of that ye, i did read some docs on the methods lol

#

this is now with malloc + free at the end of exec

daring light
#

Also the sizeof(char) here isn't misused. It's a legitimate thing to do if the platform the program runs on has a char size bigger than 1

daring light
buoyant viper
#

D:

daring light
#

Right now this program it's undefined behaviour because you're concatenating outside the malloced area

eternal oxide
#

looks to me that won't support unicode strings

daring light
#

You need it to fit the name AND the extension

daring light
buoyant viper
#

should i assign the extension its own char * and then include that strlen in the malloc?

#

and reuse that variable in strcat?

daring light
#

No but seriously theres wchar for that, I've never worked with it but people say it's cursed

daring light
#

The malloc you used on dstName just needs to have enough space for both the srcName and the ext

#

You are copying the extension at the end of srcName

#

So they're next to memory

#

Currently you only have allocated enough space to fit srcName, but not enough to fit in ext when you strcat it

buoyant viper
#

i dont think i follow well enough

#

especially since it does... work

daring light
#

It works, but it's undefined behaviour

#

It may or may not work

#

May or may not segfault

#

You understand how pointers work generally?

eternal oxide
#

at a minimum you leave random junk in memory after you free

buoyant viper
daring light
#

Pointers are just pointers to a memory address

#

When you malloc, you tell the OS that you need a memory address which is GUARANTEED to have the amount of bytes you specified in the function parameter so malloc(size) after it

#

Let's say your srcName is 5 characters. In your case this is 5 bytes + NUL is 6 bytes. When you call malloc with strlen(srcName) + 1 it'll give you a memory address which you can be sure will have enough space after it to hold srcName plus 1 for the NUL terminator

#

So when you write the extension, it'll pass the 6 bytes you allocated

#

So now it's no longer guaranteed the memory is accessible to you and you can segfault because the kernel kills your program for violating the allowed memory it has asked for

#

And that memory you overflowed wont be freed like Elgar said since it isnt being tracked

buoyant viper
#

maybe i misinterpreted strcats documentation then? its behaviour seems to imply it overwrites the null-term string in the destination, which when im doing +5 (for .ext + nul), is /more than enough/ when the strcpy call only invades 1 byte for srcName's null-char

eternal oxide
#

it does but you didn't request enough memory to go beyond that limit

buoyant viper
#

well, i dont intend to?

eternal oxide
#

you do once you concat

#

You seem to be confused between memory and a variable

#

your malloc limits your variables size to what you specified, BUT you are overflowing that size when you concat

daring light
eternal oxide
#

+5 is good

#

so long as you ext is not over 4

#

well 3

daring light
#

That should be enough for that, but you want to avoid magic numbers like that, you should declare the extension as a const char * and then use strlen on it like you did with srcName

buoyant viper
#

@ declaring its own var

#

granted it was for a diff question but the thought did happen xd

#

i probably should make sure i free even when i error out though

#

which would include moving file logic outside of main

daring light
#

If you're returning from the program it's not needed

#

Since the OS does the cleanup itself

eternal oxide
#

although it is good practice

buoyant viper
#

still have the potential strcat issue? but lowered my chances of early return before free :D

#

also ignore same err code on read/write fail

#

does that look /safer/? @eternal oxide @daring light

daring light
#

Yeah looks good

#

Nitpick but when you're erroring out you usually return from main with a non-zero value

pure dagger
buoyant viper
#

could technically return the format_result i suppose

#

or actually maybe not since thats not really indicative of the program as whole, technically, just 1 (albeit crucial) part, should still use EXIT_FAILURE (1)

daring light
#

Considering the size of the program returning format_result directly is good

orchid brook
#

https://imgur.com/a/bQFvPiY
Do you guys know if there is a fix for that client prediction causing visual glitch. Because i use tripwire for my custom resource pack crops but i got that visual bug

sullen marlin
#

Can you use something other than tripwire?

orchid brook
#

Don't think so. I see popular server having this feature where u can farm custom crops and when we look with F3 we saw that they also use tripwire

sullen marlin
#

What if you use it in the other state? Deactivated rather than activated or vice versa

orchid brook
sullen marlin
#

Are you using the same as them?

orchid brook
#

Im gonna check

#

Yeah they only have disarmed true

#

i will try with disarmed

buoyant viper
#

gcc on my desktop didnt say anything and it functioned as normal, but gcc on my phone warned me of an infinite loop (were my chars unsigned?) since it said -1 (EOF) was never achievable, and sure as hell it inf loop'd and filled with garbage data when i ctrl+c and du'd the output file

#

apparently char signedness is up to the implementation in C, fun

daring light
#

Yeah you should have it as an int

#

On success, returns the obtained character as an unsigned char converted to an int. On failure, returns EOF.

#

I'm guessing it converts it to an int so it can represent EOF

daring light
#

That's why you have unsigned and signed char types

cinder abyss
#

Hello, how can I set a block mining time ?

smoky anchor
# cinder abyss Hello, how can I set a block mining time ?

You can't do that directly
In newer versions you can use the tool component on an item to change how long a block will be mined
Or the laggier way - use attributes to disable mining completely (there is block mining speed attribute) and only when player starts mining a certain block you change the attribute based on how long you want the block to take to mine

potent crescent
#

How to post a image?

#

?image

smoky anchor
#

you should be able to just paste it here since you're verified

potent crescent
#

i was mean in spigotmc web

#

but i got it

#

thx

#

upload file. just

grand flint
#

use nexo

#

but u dont really need tripwire u can use display entities which makes it more unlimited

buoyant viper
#

bc even in java i think u need to use int type for something like that lol

#

i just wasnt thinking at all lol

mortal hare
#

am i wrong in thinking that databases, especially structured ones are overused. I mean applications nowadays prefer reactive changes and they do validations and verifications on application level. Using normalized db for main operations hurts performance and is impractical since you want do validation as soon as you can.

My point is that you should have some kind of local persistence store (Apache Parquet you name it) which is denormalized which sits on top of the same system where app is deployed and it is use only in that application. Application persistence code should write to both normalized db and non normalized one, but read from only denormalized one

If you're doing microservices you can use kafka or other message broker to share denormalized data between nodes for further reuse, if none of the nodes would have the info then it would build the denormalized version by contacting the main normalized db. You can also plop in memory cache like redis for further optimizations of application level data if you to squeeze even more performance.

You can also just bite the bullet and use relational database with materialized views but they do have their own quirks and also you pollute your source of truth with app level data which is unimportant to the external services.

Nothing new pretty much but i seem to tailor towards this approach more and more.

#

one example is for example with normalized db's you use count() instead of storing column called `count` which is updated in application level during certain actions. You certainly do not need to calculate row count if you know that only certain actions can change the the table contents, but if you do introduce such column you break the denormalization of database, since now count can be set to whatever you want and break the data integrity that count() provides

#

instead of such stupid queries, store the count in nosql or some kind of file storage format and sync it with normalized one just in case you might need that data in external services instead

thorn isle
#

count
nooo but my magic mysql optimization bullshit is going to magically optimize it away so we can just handwave away any potential algorithmic inefficiencies like counting all the rows instead of maintaining a count of them

flint coyote
#

Well for the sake of the count-example you could use triggers if you want to keep the data intact, however that's a lot of hassle. I would assume that tables with indices don't re-count over and over again, unless of course you do a partial selection in which case you would need additional count fields in your application, which would decrease readability.

Generally I agree that databases are not necessary for single-instance applications as long as the amount of data doesn't exceed certain thresholds.

However for (micro)-services with multiple instances you need some sort of shared layer that is able to handle and roll back transactions for operations that might overlap and touch the same data. Sure, you can build that on a file storage as well but then you would have to do the same validation and might as well use a DB which handles it for you - and also ends up putting the data in a file

grand flint
#

only got a mongodb for accounts

#

tbh i do need a redis server from time to time but depends

#

tbh i didnt read anything after the first line

sharp zenith
#

uh idk

#

uh

#

this

mortal hare
grand flint
#

yeah it deff is

#

if u have it available, use it

#

if not just use traditional methods

#

back to the "where do u store the users theme" question

#

on each app? or on a database

mortal hare