#help-development

1 messages · Page 750 of 1

ivory sleet
#

@lost matrix i ran some tests with caffeine, and a rather bizarre result I discovered.

Basically, eviction (policy invalidation) and removal (manual invalidation) are done lazily if you have not specified a Scheduler for the cache, in which it will be done eagerly but async

#

(I mean it makes sense, but basically eviction listener and removal listeners may not work desirably unless a scheduler is passed)

lost matrix
ivory sleet
#

yeah mhm to some degree

lost matrix
#

lazy eviction as in triggered by cache access?

ivory sleet
#

thing is, there seem to be an inconsistency for the scheduler instance, in some versions its automatically assumed to be a valid one, in others its assumed to be the disabled scheduler singleton

ivory sleet
#

when u access, or modify it

#

just thought id let u in on the insight lol

lost matrix
ivory sleet
#

Executor isnt enough

lost matrix
#

Ofc needs to be a scheduler

ivory sleet
#

Yeaa

#

(:

lost matrix
#

(:

smoky oak
#

why does cancelling the inventoryclickevent make my items vanish on the client

fluid river
#

i solved my problem with a global timer

#
public class TickProvider : MonoBehaviour
{
    [SerializeField] MarchBehaviour marchBehaviour;
    private bool goodInput, badInput;
    private double time = 1.84;
    private AudioSource audioSource;

    public bool GoodInput()
    {
        return goodInput;
    }

    public bool BadInput()
    {
        return badInput;
    }

    public void Start()
    {
        audioSource = GetComponent<AudioSource>();
    }

    private void FixedUpdate()
    {
        time += Time.fixedDeltaTime;
        time = Math.Round(time, 2);
        if (time == 2.01)
        {
            time = 0.0;
        }
        if (time == 0.35 || time == 0.85 || time == 1.35 || time == 1.85)
        {
            badInput = true;
            marchBehaviour.UpdateQuarter();
        }
        if (time == 0.15 || time == 0.65 || time == 1.15 || time == 1.65)
        {
            badInput = false;
        }
        if (time == 0.4 || time == 0.9 || time == 1.4 || time == 1.9)
        {
            goodInput = true;
        }
        if (time == 0.6 || time == 1.1 || time == 1.6 || time == 0.1)
        {
            goodInput = false;
        }
        if (time == 0.0 || time == 0.5 || time == 1.0 || time == 1.5)
        {
            audioSource.PlayOneShot(beat);
        }
    }

}```
grim ice
#

when that happened to me

#

i used notepad

#

to code

fluid river
#

now i have a perfect beat and my inputs are extra cool

lost matrix
fluid river
#

yes

grim ice
#

i wanted to start making games with unity too

fluid river
#

oh true i should have used 0 to 200

#

my bad

grim ice
#

not games tbh

#

more like software

lost matrix
fluid river
#

Godot animations kinda suck rn

#

but everything else looks great

grim ice
#

im not gonna make a triple a game

#

lol

fluid river
#

i tried to do my current game on godot

grim ice
#

just a blocky game like MC at best

#

so is it really worth it?

fluid river
#

well i'd still prefer unity for that

#

but yeah, you can do this on godot

thin iris
#

it looks like c++

#

c#*

grim ice
#

c#

thin iris
#

this isnt mc is it?

fluid river
#

c# unity

thin iris
#

o

fluid river
#

it literally looks like java

#

except CamelCase is kinda different for methods

#

and [SerialzeField] stuff exists

thin iris
#

i thought it was java at first

fluid river
#

well i can rewrite it without c# CamelCase

#

and with all [serializefield] as public instead

#

the only difference would be audioSource = GetComponent<AudioSource>();

young knoll
#

@SerializeField

fluid river
#

cuz i don't think i can do this in java

#

well actually i can call my class GetComponent

#

and add Generics to it

#

but there would be no new keyword

fluid river
upper cypress
#

looking for a dev for a large scale plugin

kind hatch
#

?services

undone axleBOT
scenic onyx
#

how i can adjust it?

public static boolean isPlayerLookingAtEntity(Player player, LivingEntity entity, double TOLERANCE, int DISTANCE_THRESHOLD) {
        // Ottieni la direzione in cui il giocatore sta guardando
        Vector playerDirection = player.getLocation().getDirection();


        Vector entityDirection = entity.getLocation().toVector().subtract(player.getLocation().toVector());


        playerDirection.normalize();
        entityDirection.normalize();


        double angle = Math.acos(playerDirection.dot(entityDirection));


        double distance = player.getLocation().distance(entity.getLocation());


        return angle < TOLERANCE && distance < DISTANCE_THRESHOLD;
    } 

return always true

#

there is a olther method?

echo basalt
#

shouldn't the acos be done between the player's direction and the difference between the player and target positions?

#

also instead of acos and dot there's.. Vector#angle

uncut needle
#

How to export the plugin right?

#

I made a new plugin project

#

and when I export it to a jar

#

my server doesnt reconize it as a jar

remote swallow
#

are you using maven

scenic onyx
uncut needle
remote swallow
#

which jar are you using

#

and from where

uncut needle
#

what jars are there

sterile token
#

If you are using spigot artifact with maven you cant use it from remote. Because it doesnt exists you need to manually compile the spigot artifact

uncut needle
#

I use java

remote swallow
#

yeah what jar do you put in the plugins folder

#

it should be from /target

uncut needle
#

yes it is

scenic onyx
remote swallow
echo basalt
#

type deal

uncut needle
sterile token
remote swallow
#

okay thats correct, do you have a plugin.yml is src/main/resources

uncut needle
#

yes

remote swallow
#

?paste the error then

undone axleBOT
kind hatch
#

Are you actually using maven to compile the plugin?

scenic onyx
uncut needle
#

oh I didnt think to check the logs

sterile token
uncut needle
#

I know the cause now

echo basalt
#

The angle part is a bit complicated because the dot doesn't account for rotation

uncut needle
echo basalt
#

It's just -1 if they're looking 180º apart

#

or 1 if you're looking straight

#

0 can be 90 or -90

scenic onyx
echo basalt
scenic onyx
#

ok

scenic onyx
#

tnx

echo basalt
gaunt sonnet
#

Hello, I'm desperate and need your help. Like code in a scoreboard that should update the values ​​permanently, but it shouldn't flicker. Does anyone have something pls?

sterile token
echo basalt
#

bim bim bam bam

sterile token
#

In my cas e i prefer using scoreboard api already built on top of bukkit because if not i just lost time

gaunt sonnet
echo basalt
#

make sure you have 1 simple board / player and update it

sterile token
scenic onyx
#

@echo basalt

public boolean doesPlayerTargetPlayer(Player p, Player target){
       
        if(!target.getWorld().equals(p.getWorld())) return false;

      
        Location head = p.getLocation().add(0, p.getEyeHeight(), 0);
      
        Vector look = p.getLocation().getDirection().normalize();

    
        Vector direction = head.subtract(target.getLocation()).toVector().normalize();

      

        Vector cp = direction.crossProduct(look);

      
        double length = cp.length();

        return (length < 0.1);
    }
``` this?
echo basalt
#

maybe

scenic onyx
echo basalt
#

oh yeah I need to optimize this

smoky oak
scenic onyx
echo basalt
scenic onyx
echo basalt
#

lol no

#

I failed 7th grade maths

#

I can do some stuff

smoky oak
#

can you help me tho lol

echo basalt
#

no

ancient plank
scenic onyx
echo basalt
#

(what)

smoky oak
#

the item not the player mate

ancient plank
#

Relatable

smoky oak
#

event.setCancelled(true)

#

theres nothing to it

#

i check if its an egg in the hand, and cancel the event

scenic onyx
undone axleBOT
smoky oak
kind hatch
#

Wtf is yield? Kotlin?

smoky oak
#

thats pure java

#

yield returns the value out of the variable switch

hazy parrot
#

???

smoky oak
#
int a = switch(b){
  case true: yield 5;
  case false: yield 6;
}
#

*assignment

ancient plank
#

Can confirm

smoky oak
#

its for when u need logic in such a switch

#

usually u cant have logic there cuz it doesnt know what to return

kind hatch
#

That’s wack

hazy parrot
#

til

#

since what java ?

smoky oak
#

i have no idea

#

i just know it exists in j17

ancient plank
#

I think its been around for a while

#

j13 is what I can see

slender elbow
#

i mean you can't switch over a boolean (and that'd still not be the valid syntax) but yeah, switch expressions are a thing

quaint mantle
lost matrix
slender elbow
#

I mean it's not like that compiles anyway

sterile token
sterile token
storm crystal
#

is it possible to play custom sound effects in server?

sterile token
slender elbow
#

sounds don't exist on the server

#

you can tell the client to play this or that sound, if the client has the sound it'll play it

#

if it doesn't nothing will happen

storm crystal
#

okay but can you make client have any other sound than the ones in game?

sterile token
#

Yeah exactly that, sounds are not managed by the sever

slender elbow
#

sure, resource packs

storm crystal
#

can you integrate them with server?

#

as in they would be required to join it

lost matrix
storm crystal
#

would custom sounds override already existing ones or can they be added separately?

lost matrix
#

Nope, you can have additional sounds without overriding vanilla ones

storm crystal
#

okay thats pretty great

#

I have one more question about reading values from item description, if I added a line to diamond sword "Multiplies your damage by 2." then how could I read that integer value of 2 so that it could be utilized further into the code? (so that it would be rather an universal rule that would read whatever number is placed in here, if that's possible)

glad prawn
tall dragon
#

?pdc

young knoll
#

Never read from lore

#

Or even worse, name

lost matrix
#

preach, my bois

storm crystal
#

would it be also possible to just make a database with said items and make code that would check if a player is holding said item to change values into whatever that item's description is saying (where those values would just be taken out of database)?

young knoll
#

Sure

#

Just use a pdc tag to identify them

storm crystal
#

Im trying to visualize making a plugin that would allow to have unique statistics that would be used in certain ways and what way of storing data about such items would be efficient to make it as universal as possible

#

I think that would work in this case

storm crystal
#

could it also tell apart wether such entity or item has custom name?

remote swallow
#

placed block is 3rd party lib but yeah

remote swallow
#

with pdc you just have to check if it has a key or a key with the value you want

storm crystal
remote swallow
#

yeah

storm crystal
#

is it possible to have two items with assigned values and same key?

remote swallow
#

yeah

sick edge
#

Hi, how can I get the namespaces of all recipes to then let a player discover all recipes?

young knoll
#

Bukkit.recipeIterator

sick edge
#

And then check if keyed I guees and get the keys

#

Is it faster then executing the minecraft command that does that?

clever lantern
#

is there a function that takes amount of experience and subtracts it from the player?

worthy hornet
worthy hornet
remote swallow
#

set instance to this before you load commands

young knoll
sick edge
#

What about MerchantRecipe

wraith ocean
#

hello, can anyone tell me how can i get texture head player for Spigot GameProfile

#

url

young knoll
#

MerchantRecipes won’t be in the iterator

#

They aren’t actual recipes

wet breach
wraith ocean
remote swallow
#

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

meager wolf
#

Bru my project structre is so weird

#

Im not used to that

#

main->recources->archetype-recources->src->main.jjava->mainclass

floral drum
meager wolf
#

Should i just make a java file in the main

main dew
#

Are there rainbow tables for {OfflinePlayer:%s} md5 (minecraft offline player uuid)?

storm crystal
#

is it possible to check if entity is touched by particle?

eternal oxide
#

no

wraith ocean
remote swallow
#

i mean yeah its possible, its just way more effort than its worth

floral drum
#

Due to Mojang not making the server multi-threaded. Not really, no. It all has to be done on one thread. Unless a COMPLETELY custom solution is made - like MineStom for example.

remote swallow
#

folia

wet breach
#

Some stuff in the MC server already does. For the most part its the OS that decides if a thread uses another core or not. There is some projects that attempt to change this, however I have not done any testing in regards to this in whether forcing it to use more cores vs letting the OS decide is better or not.

wet breach
floral drum
#

One thing I hate - they have basically given up on optimizing the server code, and they just keep adding new features on top.

remote swallow
#

what would be more recommened if the data scale is quite large, i have a map of objects said object contains a region and the region has a check to see if a block is inside of it, to check it i have to loop over said map and call the method, would that be cheaper than making a second map that just uses bounding boxes, the region class is the world edit one

wet breach
#

you probably exhausted your limit on threads

remote swallow
#

idk if it would be the same or cheaper to use bounding boxes

wet breach
#

not entirely sure what you are doing to cause that

#

I assume you are not making use of JVM arguments

#

thus the GC not keeping up

#

?flags

undone axleBOT
floral drum
#

One of your plugins seems to be causing that (imo)

wet breach
#

chunk generating always takes time depending on the size of the map you are pre-genning

wet breach
#

link is above for JVM flags to use

#

give those a try

wet breach
#

remove that max ram percentage, and in its place put those args

remote swallow
#

thats ptero

wet breach
#

make sure Dterminal flags remain at the end

remote swallow
#

leave the ram percent

wet breach
#

it needs the ram percent?

remote swallow
#

it runs with docker so yeah

wet breach
#

of course >>

#

anyways, put it after the ram percent flag

#

but before the Dterminal ones

#

the jvm flags/args from the link

#

you asked where to put them

#

so I am telling you where

floral drum
#

From "-XX:+UseG1GC" to "-Daikars.new.flags=true"

#

all of them

ivory sleet
#

Oo those are bit outdated, no?

#

I mean yeah they are used pretty much everywhere but just realized

storm crystal
# eternal oxide no

I am wondering how did hypixel made that one sword skill where it basically spews ring shaped particles to imitate dragon's breath and damage enemies when they touch them

remote swallow
#

math

storm crystal
#

was it some kind of check if there are any entities X tiles in front of player?

young knoll
#

Pretty much

#

The particles are just for show

wet breach
#

do you have dedicated server?

#

or is this some MC host?

hazy parrot
#

is server containerized ?

#

or however is that spelled

#

oh u are using ptero, so it is

#

you can try to increase cgroup limit, might be related to it

wet breach
#

the issue your having is related to docker

#

then

#

since I am not a fan of using docker and really don't use it extensively I will let someone help with that that is more familiar

#

I am the fan of using more traditional VM's

hazy parrot
#

can you do cat /proc/sys/kernel/threads-max for me first

eternal night
#

I mean, usually a wings problem

#

on the PID limit

quaint mantle
#

Hey guys, I've got a fast question, what's faster?
vanilla filtering, or stream filtering?

wet breach
#

no this isn't going to solve it

eternal night
#

check das

wet breach
#

how do you not have perms if this is a dedicated server?

#

unless you mistake what a dedicated server really is

hazy parrot
#

if that is normal high number, this etc, try thing lynx sent

wet breach
#

that is a really low number for threads there Goksi

hazy parrot
#

i mean its default lol

wet breach
#

ah that is why

#

you never bothered to change the IO settings to increase open file handles limit

#

thread limit is controlled by open file handles limit and the amount of memory you have

eternal night
#

this is not inside the container is it

wet breach
#

the minimum a thread consumes in ram, is approximately 1mb on average could get it slightly lower but this is the average

#

so most times people don't have the ram necessary to hit the thread limit 😛

#

unless thread limit is arbitrarily set low

eternal night
#

Did you check your wings config

wet breach
#

the issue is you are hitting the thread limit

#

it depends on your configs which is what lynx is trying to get you to check

#

Docker is a type of virtual environment

#

and the settings for the VM is what is going to dictate what is doable inside

eternal night
#

like, anytime this issue comes up its pretty much a faulty plugin that shits out a trash ton of throwaway threads

#

and because wings default is like ~512 or something on the PID

#

you hit that after the server being alive for a bit longer

eternal night
#

Yea, sadly not the first time I saw a similar stacktrace KEKW

wet breach
eternal night
#

Well

wet breach
#

I easily can have a server with 1k threads or more depending what is going on XD

eternal night
#

it should be fine for a server that isn't stupid

#

idk what you are doing with 1k threads

#

but yea like

#

its configurable but definitely, normal servers should be fine

young knoll
#

I do love spinning up new threads in a for loop

eternal night
#

for performance

wet breach
eternal night
#

I-

#

check your wings config......

wet breach
#

its always possible to hit thread limit max, which you are hitting. That is what your error says

#

it says, we can't make more threads because there is no more room to make threads

#

since it didn't throw an Out of memory error

#

this means you hit the thread limit and not the memory limit to make threads

#

you could always change out the plugin that pre-gens

#

if you want to see if its just the plugin

#

worldborder can pre-gen maps

eternal night
#

I mean, whatever plugin that is, chunky should not be having that issue KEKW

#

is there other pregen plugins ?

wet breach
#

chunky and worldborder are the only two stable ones I know of that generally won't corrupt your worlds lmao

eternal night
wet breach
#

but also why I don't think its a plugin issue

#

unless they are using an outdated version

#

or have some version mismatch

eternal night
#

I mean, might as well be some other plugin

#

idk

#

no idea what they are running

wet breach
#

yeah, normally you shouldn't encounter this and the only times I have is because the environment was set to arbitrarily limit threads

eternal night
#

welp, seems like they are gone

#

¯_(ツ)_/¯

wet breach
#

I wonder if the docker image they are using limits user threads

#

that would be hilarious if it had that XD

eternal night
#

its literally just wings xD

#

its a somewhat common issue with that software

wet breach
#

Ah

eternal night
#

starts the container up with the configured pid limit of 512

#

some plugins fucks up

#

that stacktrace

storm crystal
#

the main difference between static and public methods/classes is that for static I need to make instance to call it and for public I can just call it?

young knoll
#

No

river oracle
#

Polar opposite

young knoll
#

Static is bound to the class, non-static is bound to the instance

#

Public is separate, something can be public and static

storm crystal
#

so what is static and public

young knoll
#

Static is bound to the class

#

Public means it’s accessible by everything

storm crystal
#

are classes non-static by default?

young knoll
#

I believe top level classes can’t be static

river oracle
#

They can't be static but nested classed can be static

storm crystal
#

whats the point of instances, like Main someName = new Main();

#

its the line of code i always dont get

river oracle
#

Your creating a new object

storm crystal
#

and then its called with someName(args), why not just do Main(args) instead

river oracle
#

You don't need to run main like that

#

Your main method should be static

ivory sleet
#

this becomes quite useful when we wanna avoid repeating code etc

storm crystal
ivory sleet
#

yes

river oracle
#

Yes because it belongs to the class rather than the object

ivory sleet
#

static can be associated to global, lifetimeless and objectless

young knoll
#

Static belongs to the people

#

No wait that’s communism

river oracle
storm crystal
#

so if I make a non-static class doStuff(args) and want to make an object I'd do doStuff name = new doStuff(); , and then if I want to use it, I'd go for name(args)?

river oracle
#

now that I'm on my laptop I'll try my best to explain this

#

oh wait conclube is typing

ivory sleet
#

y2k, ill let u explain then

#

since u just turned on ur pc :,)

#

or well laptopie

river oracle
#

phone

storm crystal
#

it was way easier in python, there were no classes, no methods, you just made def(args) and return a value if it was needed :|

river oracle
thin iris
#

python < java

river oracle
#

completely

river oracle
ivory sleet
# thin iris python < java

yeah except python is slow, and only time its fast is when its not even coded in python but C or sum other language with a native link

thin iris
#

proud python hatee

ivory sleet
#

mye

storm crystal
#

why is it the most popular language in that case?

ivory sleet
#

only time python wins is when u just need something fast

storm crystal
#

well among most popular ones for sure

#

not sure if no. 1

thin iris
#

bc people havent discovered java 😍❤️

storm crystal
#

I only want to learn java for stupid minecraft shenanigans

young knoll
#

Doesn’t python have OOP these days

thin iris
#

python wanna be java sooo baddd

storm crystal
#

python classes are required on my uni either way

#

so Id be learning it sooner or later

ivory sleet
storm crystal
thin iris
#

thats awkward

young knoll
#

Well

#

It’s objectively faster

slender elbow
ivory sleet
#

so true, python is so fast! (/s)

thin iris
#

//comment
or:
// comment

storm crystal
#

well yeah I write code its executed fast idc whats inside

thin iris
#

felt bad so ill just post if for u..

ivory sleet
#

like consistency yk :)

river oracle
# storm crystal so if I make a non-static class doStuff(args) and want to make an object I'd do ...

Basically you can tihnk of top level classes (Which is all you should do for now) As always Non-static. Classes can contain constructors these constructors tell us what data we are associating with the the object when we create it.

for example

public class DoStuff {

  private final String argument; // this field will hold our data

  // constructor this is how we know what data we are associating with our object
  public DoStuff(String argument) {
    // this.argument refers to the field within DoStuff rather than the constructor argument
    this.argument = argument;
  }

  public printOut() {
    System.out.println(this.argument);
  }

  // this uses the data within our object and uses data of hte string method
  public printOutWith(String otherStuff) {
    System.out.println(this.argument + otherStuff);
  }

  // this static method is associated with a class rather than a specific 
  public static print(String content) {
    System.out.println(this.argument);  
  }
}

Now we can use our Object like so

// new : this keyword means we are creating a new instance of DoStuff this instance is completely separated from other instances you create
final DoStuff doStuff = new DooStuff("This is Stuff");
final DoStuff doStuff2 = new DoStuff("This is other stuff);
// doStuff is not the same as doStuff2 they have different data associated with them
doStuff.printOut(); // calls the printOut method within doStuff
// DoStuff.printOut(); is not valid code because printOut() is not associated with the class DoStuff rather an instance of DoStuff
doStuff.printOut(" This is other Stuff);
DoStuff.print("This Stuff"); // this does work because the print method is associated with the class of DoStuff rather than a particular instance of DoStuff

You can think of objects as a sort of template if thats easier. They take data in and do a set amount of things with that data

thin iris
ivory sleet
#

thats fine :)

ivory sleet
thin iris
#

when in doubt, System.out

storm crystal
ivory sleet
#

DuskTaler may I ask

#

what exactly do you understand about oop? if anything

echo basalt
#

when you care. System.err

river oracle
#

My gf stole my laptop away!

echo basalt
#

imagine having those problems

river oracle
#

Well that's all I can do for now code wise

echo basalt
#

I just remain single

storm crystal
ivory sleet
#

hmm, but you do understand what variables are?

storm crystal
#

yeah

#

types and some modifier

ivory sleet
#

and in java when we create a variable we need to tell its type

#

yeah

#

fuck modifiers for now

#

but we have types and variables

storm crystal
#

like Int number = 5;

ivory sleet
#

int

thin iris
#

int number

storm crystal
#

wasnt it big

thin iris
#

nope

#

only string

storm crystal
#

really?

thin iris
#

String

ivory sleet
#

yeah '

storm crystal
#

okay weird

ivory sleet
#

java is quirky

thin iris
#

and others but most primitives are lowecase

#

actually all

#

right?

ivory sleet
#

yep

storm crystal
#

okay there are variables and types

thin iris
#

whats a type whats a variable

ivory sleet
#

yes and every variable must have a type, which is known at the time when we type the variable out

storm crystal
# thin iris whats a type whats a variable

you store data inside variable that you can edit (or not, depends) and type defines what kind of data you can store, like adding integers will give you different result than adding numbers declared as strings (1+1=2, but "1"+"1"="11") etc.

ivory sleet
#

yeah

#

so well

thin iris
#

you can turn strings into numbers and vice versa too

echo basalt
ivory sleet
storm crystal
#

what does memory context mean

echo basalt
#

Accessibility:

  • public (everyone can access this variable)
  • protected (inheriting classes can access this variable)
  • nothing (package-private, only classes in the same package can access this variable)
  • private (only the current class can access this variable)

Memory context:

  • static (this variable is statically allocated and doesn't belong to an object, a non-static inner class requires a parent object to be initialized, and can access the parent's fields)
  • nothing (not statically allocated, object-bound)

Reassignment:

  • final (this variable can't be reassigned to a new value)
  • nothing (this variable can be reassigned)

Other niche ones:

  • transient (when the object is serialized, this variable will be set as null)
  • strictfp (works on floating-point numbers, makes behavior consistent, not spigot-applicable)
  • volatile (works as a sort of synchronized for variables, if you're reading this message you probably don't need it)
  • synchronized (applicable to static methods or code blocks, ensures only a single thread can process this at a time)
  • native (indicates the implementation is done in C++, requires JNI)

If it's static, it basically belongs to the class and not to the object

#

Meaning you can access it without an object

#

But the object is never garbage collected because it may be accessed at any time

thin iris
#

but only one instance ever exists

echo basalt
#

Unless you explicitly set it as null

ivory sleet
#

we have some exceptions (u just have to memorize), types that start with small letters DONT have a class, (there are some quirks), for instance int, boolean and long

but then we have other types like String, List, Object
and when a class start with a big letter there is guaranteed a class ClassName {... somewhere

#

classes and types are pretty synonymous in java

echo basalt
#

primitives are always lowercase

ivory sleet
#

(not identical tho)

echo basalt
#

classes AreAlwaysNamedLikeThis

#

unless someone's not following conventions

thin iris
#

variables are namedLikeThis

#

unless theyre static

echo basalt
#

boolean byte short int long
float double
char

are your primitives

thin iris
#

char

storm crystal
#

okay but

ivory sleet
#

char as well

young knoll
#

Poor char

thin iris
#

char always forgotten :(

echo basalt
#

char is considered a short iirc

#

ascii looking

young knoll
#

But it’s unsigned!

echo basalt
#

NAMED_LIKE_THIS

thin iris
#

yeah

#

@young knoll what is ur pfp

#

is it like a dog and ur hair

echo basalt
#

cat

#

garfield

storm crystal
#

whats the point of this:
class Shit(args) {
stuff
}
and when I want to call Shit why do I have to do
Shit thing = new Shit();
thing(args);
instead of just
Shit(args);

thin iris
#

umm

thin iris
#

😭

#

you named things that dont exist in java

storm crystal
#

I mean stuff like there is some code inside of it

#

not important what code

echo basalt
#
public class Whatever { // CLASS
  
  private final int number; // FIELD

  public Whatever(int number) { // CONSTRUCTOR
    this.number = number;
  }

  public void setNumber(int number) { // METHOD
    this.number = number;
  ]

  public int getNumber() { // METHOD
    return number;
  }
}
storm crystal
#

okay

#

but whats the point of all that

echo basalt
#

Alright

#

So think of the constructor as a mandatory method that needs to be called when initializing an object

storm crystal
#

why cant you just do
public class Whatever {
number = 5;
}
for example

echo basalt
#
Whatever myObject = new Whatever(); 

will throw an error

thin iris
#

because we dont know what number is

echo basalt
#

Because my constructor takes a parameter

thin iris
echo basalt
#

So let's say I do

Whatever myObject = new Whatever(123);
Whatever myOtherObject = new Whatever(456);
thin iris
#

number isnt a type

ivory sleet
thin iris
#

oh

#

yeah

#

but you cant access that

ivory sleet
#

not semantically... thats true

storm crystal
#

well int number whatever

thin iris
#

you need a getter

echo basalt
#

Now we have two different objects, where the number value was passed through our constructor, by the code calling it

storm crystal
#

okay

echo basalt
#

We can then play with these objects

storm crystal
#

but couldnt you just do
int x = Whatever(123);

thin iris
#

no

echo basalt
thin iris
#

you’re trying to assign x (int) to a class (Whatever)

ivory sleet
#

Whatever(...) is not a method if u thought that

echo basalt
#

Whatever is an object that happens to have an int as one of its fields

storm crystal
#

then int(Whatever(123))?

thin iris
#

no

ivory sleet
#

we dont have that in java

storm crystal
#

why

thin iris
#

Whatever#getNumber() returns the number

ivory sleet
storm crystal
#

how do I get the number then

#

x = Whatever.number(123)?

thin iris
#

i just told you

ivory sleet
#

he doesnt understand javadoc anchoring syntax

thin iris
#

int x = <ur whatever instance>.getNumber();

ivory sleet
echo basalt
#

Here's an example a bit closer to reality

public class PlayerData { // CLASS

  private final UUID playerId; // FIELD, final
  private String displayName; // FIELD, non-final

  public PlayerData(UUID playerId) { // CONSTRUCTOR, UUID param
    this.playerId = playerId; 
    this.displayName = "player-" + playerId;
  }

  public String getDisplayName() { // METHOD, return type String
    return displayName;
  }

  public void setDisplayName(String displayName) { // METHOD, param type String, return type void
    this.displayName = displayName;
  }
}

We'd use it like this, for example

UUID randomPlayer = UUID.randomUUID();

PlayerData data = new PlayerData(randomPlayer);

data.setDisplayName("hi");
String displayName = data.getDisplayName();
storm crystal
#

wait

#

wait

#

let me read it

ivory sleet
thin iris
#

bit unrelated to this but to get a random material do i have to loop through the enum

storm crystal
thin iris
#

omg!

#

so close

#

swap the number placement around

#

put 123 in = new Whatever(123);

desert loom
ivory sleet
#

no you cant because java public int getNumber() { // METHOD return number; }

thin iris
ivory sleet
#

and also because ```java
public Whatever(int number) { // CONSTRUCTOR
this.number = number;
}

echo basalt
river oracle
#

not you

#

wrong person

river oracle
#

like would you say your intermediate level

storm crystal
ivory sleet
#

anyway slokx just make sure u cache the values() array

thin iris
ivory sleet
#

yes but cache .values()

#

(store it somewhere since it creates a new array each call)

desert loom
#

^

storm crystal
# river oracle like would you say your intermediate level
i = True
numbers = []
def pick(i):
    if i == True:
        try:
            l = float(input("Pick a number: "))
        except ValueError:
            print("You didn't provide a number.")
            return
        numbers.append(l)
        i = False
        pick(i)
    else:
        j = input("Pick an operation (+, -, *, /, =): ")
        if j == "+" or j == "-" or j == "*" or j == "/" or j == "=":
            if j == "=":
                i = True
                count(numbers)
            else:
                numbers.append(j)
                i = True
                pick(i)
        else:
            print("You didn't provide an operator.")
            return
def count(k):
    j = 0
    for k in numbers:
        if k == "*":
            numbers[j] = float(numbers[j-1]) * float(numbers[j+1])
            del numbers[j-1]
            del numbers[j]
        elif k == "/":
            numbers[j] = float(numbers[j-1]) / float(numbers[j+1])
            del numbers[j-1]
            del numbers[j]
        j += 1
    j = 0
    for k in numbers:
        if k == "+":
            numbers[j] = float(numbers[j-1]) + float(numbers[j+1])
            del numbers[j-1]
            del numbers[j]
        elif k == "-":
            numbers[j] = float(numbers[j-1]) - float(numbers[j+1])
            del numbers[j-1]
            del numbers[j]
        j += 1
    return print(numbers[0])
pick(i)
#

its a calculator with order of operations and no limit of numbers to add

echo basalt
#

I've had issues where Math.random caused performance issues in multi-threaded envs

storm crystal
#

works based on merging array spots

river oracle
# storm crystal I can send you my most recent program for you to see
#! /usr/bin/env python3

class Whatever:
    def __init__(self, number: int):
        self.number = number

    def print_number(self):
        print(self.number)


Whatever(5).print_number()

The code here in python is the same as

public class Whatever {
  private int number;

  public Whatever(int number) {
    this.number = number;
   }

  public void printNumber(){
     System.out.println(this.number);
  }
}
Whatever variable = new Whatever(5);
variable.printNumber();
ivory sleet
#

Math.random uses a normal Random under the hood anyway

paper viper
#

splittablerandom hot

glad prawn
#

yes

ivory sleet
#

bot?

#

lol

paper viper
#

cant type

#

Lmao

ivory sleet
#

fair, lol

ivory sleet
paper viper
#

Good

ivory sleet
#

vc?

glad prawn
#

touch some grass bro

paper viper
#

cant gotta do college stuff

storm crystal
#

like why name it with _

ivory sleet
river oracle
#

also __init__ is the constructor in python

thin iris
storm crystal
#

I dont get that whole constructor

river oracle
thin iris
#

codecademy < learn java in 14 minutes

ivory sleet
thin iris
#

i think every java developer has seen that video

river oracle
ivory sleet
#

ah

river oracle
#

I tried making a relation but it seems they don't understand anything beyond the basics

#

which is fine, just means they gotta start from square one and not try to understand everything

storm crystal
#

yeah doing java doesnt seem to be good idea if I cant get basics

ivory sleet
ivory sleet
#

dont give up, just bite the bullet

river oracle
#

its hard

ivory sleet
#

^

river oracle
ivory sleet
#

but few things will come easy in life more or less

river oracle
#

my frist java project was a plugin too

storm crystal
#

im using w3schools but it doesnt seem to work

thin iris
#

damn

thin iris
ivory sleet
river oracle
thin iris
#

i learnt java + spigot this may

glad prawn
#

any sources to learn about binary digit

river oracle
ivory sleet
river oracle
#

so I already understood how languages worked some really basic oop

paper viper
#

/s

river oracle
ivory sleet
#

because binary number base involves modulo arithmetics, boolean algebra, sometimes set theory etc

thin iris
storm crystal
#

do I watch entire 25 hour course

ivory sleet
#

there is a lot of math around 0 and 1s

thin iris
river oracle
#

thoes shitty youtube videos are horrible

#

don't use them

ivory sleet
thin iris
#

not the 15 hour ones tho

ivory sleet
#

its often better to have something where u can go back easily, read in ur own pace etc

storm crystal
river oracle
#

@storm crystal if you want to learn java based on video tutorials check out TheNewBoston on youtube. Its old as hell luckily for you java hasn't really changed a ton

thin iris
#

well maybe it will for you

storm crystal
#

does that mean a bad thing

thin iris
#

i’m jk 😭😭 i swear codecademy always bluffs about those

ivory sleet
#

anyway DuskTaler, how u manage ur time is up to u, whether u watch 25h or if u write code 25h with trial and error, there are no shortcuts, just good time management

thin iris
#

retweet

#

and stay away from chatgpt while you’re learnign java 🙌🏼🙌🏼

storm crystal
#

I thought that that codeacademy course is set of videos

thin iris
#

it’s interactive courses

ivory sleet
#

¯_(ツ)_/¯

storm crystal
#

I just dont get why you make those instances instead of calling functions or whatever those things are with wanted parameters to be used

river oracle
#

OOP

#

its going to be a new concept

#

hopefully codeacademy teaches you

ivory sleet
#

but dictionaries on steroids

storm crystal
#

what dictionaries

river oracle
#

again beginner in python

ivory sleet
#

ugh, u havent touched that in python either?

storm crystal
#

I didnt need it

ivory sleet
#

maybe you should continue learning python, if u're still active with it? I mean you've come further in py than in java

echo basalt
#

I tried jetbrains academy and the content was decent

#

it was way too specific into core java but I guess you need that

#

or just watch those russian videos where the guy just goes "JAVA OKE INT BIM = 4 BLYAT SOUT BIM OP OP OPA BIM BIM BAM BAM"

ivory sleet
#

lol

echo basalt
#

which is how I learned c++

#

well

#

the basics of c++

storm crystal
#

so I doubt ill get that either

ivory sleet
#

you do you, gotta start somewhere, and make sure u dont do too much at the same time

storm crystal
#

I just need python to pass my classes

#

okay I think Im gonna fail they do have classes and methods as requirement for final exam

ivory sleet
#

or mayhaps learn those things

storm crystal
#

yeah but it just doesnt work

quaint mantle
#
    @Override 
     public ItemStack[] getArmor() { 
         return new ArmorSetBuilder() 
                 .setChestplate( 
                         new ItemBuilder(Material.LEATHER_CHESTPLATE) 
                                 .setName("<red>Superman's Chestplate") 
                                 .setColor(Color.BLUE) 
                                 .setUnbreakable(true) 
                                 .build() 
                 ) 
                 .setLeggings( 
                         new ItemBuilder(Material.LEATHER_LEGGINGS) 
                                 .setName("<red>Superman's Leggings") 
                                 .setColor(Color.BLUE) 
                                 .setUnbreakable(true) 
                                 .build() 
                 ) 
                 .setBoots( 
                         new ItemBuilder(Material.LEATHER_BOOTS) 
                                 .setName("<red>Superman's Boots") 
                                 .setColor(Color.RED) 
                                 .setUnbreakable(true) 
                                 .build() 
                 ) 
                 .build(); 
     }

Is this visually appealing

worldly ingot
#

Preference

#

A bit too spacey for me, I usually just single indent instead of two, but to each their own

remote swallow
#

ill indent you

short pilot
#

basically the whole setup and installing drivers with gradle

echo basalt
storm crystal
#

Can I skip making instances in plugin making?

wet breach
river oracle
#

You can't just skip oop and expect everything to be okay

#

Take the time and do it right

#

Also avoiding a concept because you don't understand it is niave if your struggling take a break and revisit it with a fresh mind

short pilot
#

How do I setup sqlite driver with gradle?

#

i cant get past steup one :((

#

it's confusing me because usually my databases are all online and i connect to them through there

#

this time im trying to run database along plugin to save persistent data

echo basalt
#

spigot already includes sqlite

worldly ingot
#

Yeah you shouldn't need to worry about it at all

hybrid umbra
#

does anyone know what's the equivalent of InventoryS2CPacket on protocollib is? i can't find it on wiki.vg

ancient plank
echo basalt
#

Play.Server.INVENTORY or something

worldly ingot
#

Yeah. The wiki.vg one will likely be "Open screen" or something

#

Assuming that's what that packet does

hybrid umbra
echo basalt
#

OPEN_WINDOW

hybrid umbra
worldly ingot
#

Set container content, potentially?

short pilot
#

how do i use it because all the spigot pages reccomend installing adriver

hybrid umbra
echo basalt
#

WINDOW_ITEMS

#

and SET_SLOT

hybrid umbra
#

thank you!

short pilot
#

how do i create a sql database on runtime if none exist yet

#
String url = "jdbc:sqlite:/path/to/your/database.db";

        try (Connection conn = DriverManager.getConnection(url)) {
            if (conn != null) {
                System.out.println("Connected to the database");

                // If the database does not exist, it will be created

            }
        } catch (SQLException e) {
            System.err.println("Error: " + e.getMessage());
        }
#

would something like this work

echo basalt
#

try and see

worldly ingot
#

That probably won't work if the file doesn't exist. You'll want to create the file manually

#

You can do this just with the regular Java file API

short pilot
#

oh

worldly ingot
#

Or NIO, whatever you want

short pilot
#

wait what was up with all the driver stuff and shading to maven then

#

that i keep seeing

#

on the docs

worldly ingot
#

You won't need to do that because CraftBukkit shades that driver for you already

#

You can ignore any resources suggesting that you shade the driver because they're probably not Bukkit tutorials

short pilot
#

I was not aware of this

worldly ingot
#

You will need to still call Class.forName("org.sqlite.JDBC") before you use the database though

#

That will actually load the driver

echo basalt
#

uhh

#

jdbc4 doesn't need that anymore

#

it's just good ol' bukkit stuff

wet breach
worldly ingot
#

Doesn't hurt to invoke it anyways

#

That class needs to be loaded one way or another

wet breach
#

That is why i said both methods to load it are used. you would attempt to load with the modern way and if it doesnt work fall back to legacy method

odd adder
#

is there any way to get org.bukkit.structure.Structure from a structure saved in structure block? (for call getPalettes())

i didn't found any way to convert structure saved in structure blocks to org.bukkit.stucture.Structure.

short pilot
#

never seen that function before actually

short pilot
#

what's a good practice for database accesses? Should I have one manager or be opening and closing connections to the database when I want major changes to happen?

Right now for small changes im thinking of doing a timer and every so seconds updating while big changes will be updated immediately

echo basalt
#

Well.. It depends

#

Storing "small" changes in RAM helps with hitting the database less but can cause data loss

#

I'd go with what influxdb's driver does and "group" points and send them in batch over the span of 1 second

short pilot
#

is it more expensive to make these hits to the database?

#

hmm

echo basalt
#

Influxdb works in "points" as it's a time-based database

#

You make a measurement "point" and say that it happened at a certain time and push it to influx

#

You can then use something like grafana to make graphs on how those points change over time

#

For example, you can send a point every 5 seconds measuring your server's TPS

#

And with Grafana you can make a tps graph of the last 6 hours

#

Or for example, you can make a phone app that sends a point with the user's location data to your database

#

You can then make a world heatmap

#

with google maps or something

#

Showing where your userbase is at

short pilot
#

i have never heard of this database dang

echo basalt
#

It's a time-based database

#

as previously said

#

often used for internal metrics

short pilot
#

ah i see

echo basalt
#

For example hypixel uses it to graph literally everything

#

how many concurrent games etc

short pilot
#

ye that makes sense given the time based system

echo basalt
#

the other main one that's used is Prometheus

short pilot
#

interesting

#

for web apps i have mainly used mongodb

echo basalt
#

I like to split my databases into 3 categories at the moment

#
  • Persistence
  • Cache
  • Metrics
#

Persistence is your usual mongo / mysql / sqlite / S3
Cache is your usual Redis / memcached
Metrics is your usual Influx / Prometheus

#

There's also the Messaging database

#

Which is usually your redis / rabbitmq

#

and kafka pretty sure

#

cassandra is persistence iirc

#

I always get them confused

short pilot
#

that's pretty cool

#

are you a software engineer by any chance?

echo basalt
#

I guess you can call me that?

#

I have a degree in systems programming and management

#

mostly just been doing plugins for uhh

#

7ish years now

#

And I wanted to get into hypixel a bit over a year ago and got rejected so I forced myself to learn all of this stuff because I wasn't that good at it

short pilot
#

i see i see

#

yea im still getting to the degree part lol

#

plugin stuff is good learning for me right now

echo basalt
#

I just talk about the degree so I don't feel like I wasted my time there

#

The degree is not that big of a deal honestly

#

Don't get bummed if you don't have one

orchid gazelle
#

I'd not wanna work at hypixel tbh

short pilot
#

education good 👍

#

most importantly having a portfolio

echo basalt
#

pays a lot more than what I earn with boring mindless commissions and I get to actually learn something

#

like

#

applying all my scaling stuff in practice

orchid gazelle
#

But I don't like them in general

echo basalt
#

rather than assuming all the time

#

sure would I be working on legacy code? absolutely

#

If they've lasted this long they prob have some funky stuff going on

orchid gazelle
#

They do

#

And yet they have not managed to get playable pvp

echo basalt
#

well gameplay and tech are two different things

orchid gazelle
#

The pvp is tech-faulted

echo basalt
#

did you know they use AI to rate chat reports and change their position in the queue?

orchid gazelle
#

it's laggy and buggy AS SHIT

short pilot
#

it's about the money

echo basalt
#

Well yes and no

short pilot
#

i want money

short pilot
#

and stable money

echo basalt
#

their Atlas system is also p cool

short pilot
#

i feel working at hypixel would give u stable money of some sort

echo basalt
#

Or how they use all these crazy methods to go from huge caches to like 32kb

echo basalt
#

Most devs that leave hypixel go into big tech

#

Usually Amazon

#

likely AWS

orchid gazelle
#

It may be well paying and interesting tech, but I would not work somewhere I do not enjoy playing at a lot

echo basalt
#

So not only do you have a well paying job for years, you leave becase you get an even better one

short pilot
#

the background you can write and talk about, the millions of clients your product has brought entertainment to, that's pretty impressive

echo basalt
#

I don't enjoy playing minecraft anymore

#

haven't enjoyed it for years

short pilot
#

honestly yea i tinker with it more than i play nowadays

echo basalt
#

I still like all the intricacies of exploring NMS

orchid gazelle
#

I would if it would be great again

#

But servers got boring as fuck

echo basalt
#

even more fun if it's obfuscated

#

(holy shit I haven't had fun in development in so long)

orchid gazelle
#

They are always the same

orchid trout
#

^^^^^^^^^^

orchid gazelle
#

Rarely something really innovative fun and big

echo basalt
#

Well

orchid gazelle
#

And if there is, the owner cannot afford to bring it to the market

#

So nobody plays it

echo basalt
#

You'd need a HUGE

#

HUGE

orchid gazelle
#

And if nobody plays it, it won't grow

echo basalt
#

budget in order to innovate

#

The minecraft audience is limited

orchid gazelle
#

Even if it's the best game in existance, nobody will play it if they explore it alone

echo basalt
#

So you need to steal from the big players

kind hatch
#

I'll give you $15

orchid trout
#

ok

echo basalt
#

And good luck competing with that

orchid trout
#

thanks

orchid gazelle
#

@kind hatch yeah give me

#

Ty

echo basalt
#

Just become a dev and profit of all the kids trying to copy donutsmp

#

or hypixel skyblock

#

(my main project is literally a skyblock core)

orchid gazelle
#

I have always been dreaming of one huge system

#

Which is really a HUGE and innovative asf thing, but insanely insanely insanely stupid amounts of work and it requires hundreds of players at the same time to work properly

echo basalt
#

collab with mrbeast

orchid gazelle
#

Lmao sure

echo basalt
#

or

#

adapt it to work for smaller audiences

orchid trout
#

you need to make a survival server

#

get 100 players

#

and then do a switcheroo

echo basalt
#

For example the main gimmick of my skyblock core is that it scales p much infinitely

#

well I still need to figure out matchmaking to not blow up your ram with < 10k servers running

#

but that's not realistic

orchid gazelle
orchid gazelle
echo basalt
#

But if you don't care about scaling and all you want is to have it work for your small audience you just tweak the config and half the plugin just doesn't load

orchid gazelle
#

Thats actually the most realistic thing to do if I were to ever do it

echo basalt
#

it's meant to be modular

wet breach
echo basalt
#

I wonder if java has a ConnectionPool interface

#

I need to change my sql stuff to use a connection pool

wet breach
# short pilot are you a software engineer by any chance?

Some of us could be classed as software engineers and good majority of those dont have degrees. Whether you should get a degree or not depends on your circumstances. Since you want money then you are better off not getting a degree and just getting hired for something basic at the bottom. you will make more from the start as well as get promoted and raises in about the same amount of time as it would take to get a degree. Experience trumps the degree and more so if you are currently employed in the field

echo basalt
#

listen to frosty, he's a mechanic

#

😛

wet breach
#

Lol

eternal oxide
#

I agree with Frost. Experience trumps qualifications. Often employers will take experience over a piece of paper.

wet breach
#

And then while you have stable employment it probably wouldnt hurt to work towards the degree over time

echo basalt
wet breach
#

Over time is cheaper as you can just pay for single classes etc

#

Lol

echo basalt
#

because my associate's is pretty much useless

#

everyone expects me to get a masters

wet breach
#

That is some dedication to get a masters lol

eternal oxide
#

The few times I went qualifications over experience I regretted it. Know it alls who could produce nothing.

echo basalt
#

pretty much sums up my brother

#

he went the masters route

#

failed classes so hard he stayed an extra year to get a bachelor's

eternal oxide
#

Most employers view qualifications as lesser and know it's only an indication of determinations.

echo basalt
#

Told my mom I'm going to a tech conference by myself next month, she wants me to rizz the CEOs up so my brother gets a job

#

talk about unrealistic expectations

#

(I got free tickets because of their dev program)

#

IDK I feel like people with degrees are put on a pedestal type deal

eternal oxide
#

Start at the bottom, get experience and you'll end up in the same place as those with degrees (in the same timespan), except you'll have money and they'll be in debt.

echo basalt
#

cardboard pedestal

echo basalt
#

I know about that, just having some weird thoughts that like

#

why the fuck am I expected to get a job for my brother given I worked for all my shit and he skipped class for 5 years

wet breach
echo basalt
#

Most people that I know IRL that have tech degrees work as like

#

mall cops

#

as long as it is 100% completely unrelated

winged anvil
#

i think it’s just a passion thing

#

passionate about cs -> degree

#

want money -> job

wet breach
#

Programming is my hobby i dont have a degree. I even did satellite communications uwu

#

But i have no interest in working doing programming at least not in some office lol

winged anvil
#

right

wet breach
#

Mostly because of the environment programmers are forced into and then mandatory overtimes bosses who have no clue how it works

winged anvil
#

nah lowkey that’s my biggest fear

#

cause i’ve got a lot of passion for the field but the actual field scares me

wet breach
#

I still made money from programming though just did it on my terms is all

#

Not always easy to do though

winged anvil
#

yeah that’s what i wanna do but i think imma try that after i work at a company for a bit

#

i still have yet to gain any experience as i am a freshman in uni so i can’t really speak too much on it

wet breach
#

Just remember that you dont have to find the right employer first. Its more important to be employed to begin with. You can find a better job after.

#

And always find another job while employed

#

And dont quit until you get that other job as well lol

winged anvil
#

but at my uni they have hella opportunities to try n gain internships with companies so hopefully i can land one 🙏🏽

wet breach
#

Internships i dislike be careful to not get used through those

#

Some companies will use interns and then not hire you and bring in more interns

winged anvil
#

right

smoky oak
#

yk what this tells me

#

actually do what i told myself I'd do and start writing books lol

#

u cant find jobs in IT

wet breach
#

Lol

#

I always been a fan of if you cant find a job make one

winged anvil
#

do you think that a company will greater value personal projects that demonstrate the skills you need over internships or

echo basalt
#

I'd like to try out an office job

#

like it sounds boring as shit

#

but at least you're not bored and alone

eternal oxide
#

it is boring

echo basalt
#

so is plugin development

wet breach
#

It depends. Internships still give you experience. And it depends what it is they are looking for. Personal projects you have done as well as with a group are valuable. As well as if you can show you have contributed to other projects better if they are some big project.

echo basalt
#

My internship at school last year was cool

eternal oxide
#

plugin dev you can do anywhere

echo basalt
#

20min walk

winged anvil
#

plugin dev for life

wet breach
echo basalt
#

no one fucking cares

#

about that part

#

I worked off my laptop at school

#

was about 1/3rd as productive as at home

eternal oxide
#

I enjoyed office work but my job also included a lot of offsite visits

echo basalt
#

I can see myself working an IT job at a school or something boring

#

my school internship was nice

wet breach
#

I dont mind office work either but i cant stand cramped cubicles though

echo basalt
#

was just cleaning computers, rewiring IT labs, cable managing stuff

#

for like a school group

wet breach
echo basalt
#

Replacing projectors, dismantling those interactive boards

wet breach
#

What is ironic about the school IT positions is they dont care about degrees. Just only if you can do it or not

echo basalt
#

walking around the exam block with an open knife in my hand during peak exam season lmao

#

was told to walk into the main administrative office and get the knife from the director's backpack while he was doing a speech

#

felt sketchy as fuck

wet breach
#

Lmao

echo basalt
#

didn't know how to close it

#

it had a lock

#

flip knife

#

whateve

#

was quite big

#

sliced my finger like twice

wet breach
#

I see so dont hand you sharp pointy things

echo basalt
#

in my defense I was cutting a tight zip tie while avoiding thin wires

#

standing on a school chair on top of a school desk

#

with a screwdriver on my other hand

#

they didn't give us ladders

#

at some point we had a chair on top of a desk on top of a desk

wet breach
#

That whole scenario doesnt make it sound better lol

echo basalt
#

in my defense, again

#

I always carry bandages on me

#

both water-proof ones and regular ones

#

them peppa pig bandages always coming in clutch

wet breach
#

Nice

echo basalt
#

but like yeah those were fun times

#

I made little scripts to do all our software stuff

#

and got to just go to the pool or to the movies

#

while the other teams were doing their work by hand

wet breach
#

Lol

echo basalt
#

went to see the doctor strange movie after wiping ~150 computers under an hour

vast raven
#

Let's talk about fiverr and the profit you can achieve during time

wet breach
#

I wouldnt recommend fiverr

echo basalt
#

yeah same

#

hypercompetitive BS that takes 2 months to issue payouts

#

also no one looks for plugin devs on fiverr

vast raven
#

I think if you haven't already good reviews you are just wasting time

wet breach
#

Fiverr is only good if you dont mind doing like 50-100 jobs a day for next to nothing because some countries are doing it dirt cheap in comparison

wet breach
#

Like india for example where you got people bidding $5 on something that would cost like $100-$200

echo basalt
#

yeah

#

it's also happening to the plugin industry a bit

vast raven
#

the problem are the competitors

echo basalt
#

all these ppl from india, turkey and brazil flooding the market and lowballing the fuck out of people

#

because 400/mo is great where they live

#

Also frosty p sure I'm getting a contracted position for 25/hr making ploogins

#

along with kacper

#

opinions?