#help-development

1 messages · Page 280 of 1

tender shard
#

sth like this

#

from what

dry yacht
#

Well, nevermind. Redundant information then, lol

lethal knoll
#

Does anyone know the default movement speed of a mob?

tender shard
#

wtf github. It's basically not using java at all, more like 95% XML and 4% VTL and 1% java lol

valid basin
#

I mean PlayerStat

tender shard
#

PlayerStat.KILLS is not a ToIntFunction

valid basin
#

so like PlayerStat.KILLS, ELO etc

tender shard
#

a toIntFunction is for example Integer.parseInt

#

basically any method that returns an int

dry yacht
#

:: is the object reference operator in Java, so yes, only works for getters.

dry yacht
tender shard
tardy delta
#

it works when the parameters match

dry yacht
tender shard
#

true

dry yacht
#

Just sad that it doesn't work for field references, :(.

tardy delta
#

wdym

#

method(field::smth) not working?

dry yacht
#

I mean something like myMethod(MyClass::fieldA), where the method would receive a field reference which it then can call get/set on in combination with an actual instance. Something like the reflect Field, but actually without all the stupid overhead, cause the actual field location is known at compiletime.

tardy delta
#

ah ye

dry yacht
#

I mean, maybe the compiler collapses something like Playground.class.getDeclaredField("inv") down to a direct field reference (as IntelliJ also already knows what's going on and suggests string values), but it still hurts my eyes and is not directly a symbol, which is why a field rename would leave this reference unchanged.

tender shard
#

it always gets called

tardy delta
#

threadpool

dry yacht
#

Yes, it indeed does. No matter how the player left the server, the worst possible situation is that it's called when the socket times out. But for all other cases, it's called, even if a call may seem redundant (PlayerKickEvent). The kick event is just another abstraction on top of the quit event.

valid basin
#

I'd appreciate if anyone can help me make this.

        List<Integer> toReturn = new ArrayList<>();
        for (UUID uuid : getAllUuids()) {
            int kills = ProfileManager.getProfile(uuid).getStat(PlayerStat.KILLS);
            toReturn.add(kills);
            }
        return toReturn.size();
    }```
My current code which doesn't work.
Basically I'm trying to get team kills and combine them together. Later on I'll divide them by the number of team members and get an average
dry yacht
#

I don't think you ever will, xDD

tender shard
valid basin
#

I already have a getter and setter

#

there's PlayerStat.getKills and setKills

tender shard
#

what exactly is your problem

valid basin
#

oh wait

#

fck I'm dumb, my bad

#

lemme try, thanks

raw sky
#

how can I get the file from a Plugin object?

fresh timber
#

I have a problem I cannot seem to think of a way to do. I am saving players inventories in a database so I can sync 2 servers progress and players can keep progress across both of the servers. People have already played on the server and have stuff in their inventories. I was going to do something like this: When they join find their inv and set it to that, in this method, if they don't have an inv, create a blank one for them, when they leave, set the inventory in the database to what their inventory is. Because players already have inventories, it would wipe their inventory if they did this because they would not be in the database so it would create them in the database with a blank inv and set their inventory to that. Does anyone know how I can do this differently so it will save the old players inventories but still save it in the database?

raw sky
#

ty!

tender shard
dry yacht
kind hatch
raw sky
raw sky
#

parent is new File("plugins") right?

fresh timber
dry yacht
kind hatch
fresh timber
raw sky
#

Plugin#getParentFile() isnt showing up as a method

dry yacht
tender shard
#

get the declared field "file" from javaPlugin.class

kind hatch
tender shard
#

that one has the file

raw sky
#

OH

#

Tysm!

tender shard
#

that just gives the plugins/ folder

raw sky
#

Oh wait yea it would just give "plugins" I need to get the .jar of the file

tender shard
dry yacht
raw sky
#

I need to get x though, and I cant manually type in the value of x sadly

tender shard
#

don't hardcode but use File.separator() instead

#

or new File(parent, child)

raw sky
#

I mean the /<x>.jar

tender shard
#

do not hardcode /

raw sky
#

Ik just for reference

dry yacht
#

You have no way of knowing what the jar is called tho, do you?

#

So I think that's the only reliable way

#

What if the user renames it, it just registers as it's plugin.yml name value

raw sky
dry yacht
raw sky
#

Could also check the plugin.yml I think

dry yacht
ionic thicket
#

.

raw sky
#

Yea nvm about that plan then

#

Theres probably an event you can use, ill look for it real quick

ionic thicket
#

yea i want to use it inside of that event

dry yacht
tender shard
dry yacht
tender shard
#

JavaPlugin.class.getDeclaredField("file")

#

from another plugin

#

yeah

dry yacht
#

OOooooooh

#

Wait a minute

#

Does that work?

#

Nevermind

tranquil dome
#

How to get a font file from the plugin resource folder? Currently I've got this:

        val image = BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB)
        val g2d: Graphics2D = image.createGraphics()

        val inputStream = plugin.getResource("minecraft-regular.ttf") // When logged it shows sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@2477dd83

        g2d.font = Font.createFont(Font.TRUETYPE_FONT, plugin.getResource("minecraft-regular.ttf")).deriveFont(20F) // Exception happens on this line

This is the exception I get:
https://hastebin.com/wahijupucu.properties

dry yacht
#

JavaPlugin is an abstract class, it has a lot of meta-information provided by the bootstrapper (which knows about all of this, of course). So yes, @tender shard 's solution is the ultimate solution. Please use that, @raw sky , as my solution might not be as futureproof.

dry yacht
dry yacht
#

If you already got the information stored somewhere.

dry yacht
quiet ice
#

I'd not trust that field to be there forever tbh

tender shard
quiet ice
tender shard
#

?

dry yacht
quiet ice
#

No Javac release will complain about the possibility of a security manager check

quiet ice
tender shard
quiet ice
#

Security manager is slated for removal, remember?

#

Plus I don't know where the hell the security manager would be set to deny the protection domain

#

Reflection can also be denied by the security manager

dry yacht
# quiet ice it's a private field, so no.

Yeah... You got a pretty valid point over all, gotta admit. But I hope that we do all agree that the only sane way of doing this is to ask the logic which instantiated you. Just sad that this is not a public API, but has to be read using reflection.

quiet ice
#

So it can't be "well let's just deny everything"

tender shard
quiet ice
#

Part of JRE 8 in a normal fashion, but I believe already deprecated for removal in JRE 17.

tender shard
#

so maybe it's not a problem anymore, idk

#

i just think the file field will always work because tbh who would rename a field called "file" that holds a file

quiet ice
#

Vendor JDKs should NEVER be used, ever.

#

They are the worst of the worst

#

Might as well use Oracle at that point

tender shard
quiet ice
#

Does the linker (ld.so to be exact) go haywire there? Does it support the --release flag for javac? Only used fedora's JDK, but I assume similar issues exist elsewhere

tender shard
quiet ice
#

I at least know that the Ubuntu OpenJDK does not work with libGDX due to that linker issue. So I guess the same applies to debian

dry yacht
#

Does anybody know whether there's a central registry for container-names anywhere within the minecraft server? Talking about the ITileEntityContainer#getContainerName, which is basically this: https://wiki.vg/Inventory

All I see is 14 impls of this method in IntelliJ, which all return an immediate string value. If I need this value for a custom packet, do I really need to implement a switch-based map on the bukkit inventory type and size?

buoyant viper
tender shard
#

ubuntu is literally a fragile debian unstable testing

quiet ice
#

echo "class Test{}" > Test.java && javac --release 8 Test.java I believe should produce that issue

tender shard
#

looks like it's working fine

#

it's javac 11.0.16 from debian's default-jre package

quiet ice
#

Also from javac's perspective? java and javac tend to be mismatched for me

tender shard
#

tbh it would surprise me very much if the default debian packages would contain a bug like that

quiet ice
#

Strange, I am not getting the issue either now. Lemme see if it is a bit more harder to reproduce

dry yacht
#

Did you resolve this issue? I kinda got sidetracked and totally forgot about the issue, sorry!

quiet ice
#

The linker issue is still present though

geolykt@fedora Galimulator]$ java -jar jar/galimulator-desktop.jar 
Reading: /home/geolykt/.local/share/Steam/steamapps/common/Galimulator/data/sprites
Packing.........
Writing 1024x1024: data/atlases/game.png
Reading: /home/geolykt/.local/share/Steam/steamapps/common/Galimulator/data/sprites/ui
Packing.........
Writing 512x512: data/atlases/game2.png
Inconsistency detected by ld.so: dl-lookup.c: 107: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!
twilit roost
dry yacht
twilit roost
#

sure sure

#

but still, how did Mineplex ( for example) managed to do that transparency thing in year like 2016

quiet ice
dry yacht
tender shard
tender shard
quiet ice
#

I assume the fedora packagers simply got their act together and also included the needed lib/ct.sym file

quiet ice
#

And even then it is apparently only with older libGDX releases (i.e. those from a few years ago)

tender shard
#

did you add the bukkit artifact to your pom as well?

#

do you even use maven?

#

did you add the bukkit artifact?

#
<!-- This depends on the Bukkit API, Use this if you need BukkitAdapter -->
<dependency>
    <groupId>com.sk89q.worldedit</groupId>
    <artifactId>worldedit-bukkit</artifactId>
    <version>7.2.9</version>
    <scope>provided</scope>
</dependency>

<!-- This doesn't depend on any platform -->
<dependency>
    <groupId>com.sk89q.worldedit</groupId>
    <artifactId>worldedit-core</artifactId>
    <version>7.2.0-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>
#

you need both

#

or maybe you only need the bukkit one

#

they actually don't explain it very well in the wiki

#

but you definitely need the bukkit one

quiet ice
#

Most likely only the bukkit one

#

although I have both but I also exclude everything so eh

tender shard
#

yeah I just checked

#

I only have the bukkit artifact

#

it already itself depends on core

#

oh nice I didnt know intelij could also "decopmile" pom files

quiet ice
#

Eclipse can also do that - so that isn't too advanced

tender shard
#

yeah I just didnt know that

#

never used it before

#

I always went to my local repo and looked into the files manually

#

idk why I haven't tried it earlier

quaint mantle
#

What is a Chunk#getKey and can I use that as opposed to storing the cords?

tender shard
#

which JDK version do you use

tender shard
quaint mantle
#

wdym

tender shard
#

that method does not exist

quaint mantle
#

Chunk#chunkkey*

#

chunk.chunkKey

tender shard
#

none of those exist

quaint mantle
#
    default long getChunkKey() {
        return getChunkKey(getX(), getZ());
    }
#

may be paper

tender shard
#

then yu also have to use an ancient worldeit versio nin your pom

#

Chunk.getChunkKey() does not exist in spigot

#

period

#

it's not in the javadocs

dry yacht
# twilit roost sure sure

Okay, I can now answer the question of multiple teams with certainty. A player can only be a member of one team at a time. Once you add them to another team, they're removed from all other teams. So it has to be possible to disable collision for all others by using NEVER and just being in that team by yourself. Going to get back to you once I implemented an example plugin that patches this in on an existing scoreboard.

tender shard
#

it's not in the api

#

it's not in the CraftChunk code

#

hm it's been like 5 years that I used world edit 6

#

maybe I still have sth on github

twilit roost
tender shard
#

I only have some weird reflection code left for WE6, seems like you don't need to adapt in the WE6 api

#

there is BukkitUtil

#

what exactly are you trying to do? Usually every worldedit method should either take a bukkit object, or if it doesn't, you can usually get a worldedit object through BukkitUtil

dry yacht
tender shard
#

e.g. BukkitUtil.toVector(someSpigotVector) or sth

#

if you could share your pom, I could try to find how it works in WE6 because there's no more docs for it anywhere as it seems

#

but I'm too lazy to search the old repos etc myself

twilit roost
dry yacht
#

Helps to not spam the chat here too, and I just don't know how threads work yet, lol

tender shard
#

WorldEditPlugin.getSelection(someBukkitPlayer)

#

WGBukkit.getPlugin()

#

WE6 sucks big time lol

#

erm wait sorry

#

that's WorldGuard not WorldEdit

#

uugh wait

#

i have no clue

#

there's nothing on google for WE6 anymore

#

probably

#

you can just get it from the pluginmanager

#

and cast it

#
WorldEditPlugin worldEdit = (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
#

yeah this should work fine

#

np

humble tulip
#

should i modify a private final field with reflection or create a new object?

#

i want to modify a string in a packet

scenic valve
#

Hello, I'm working with the EntityExplodeEvent and I am trying to make it so that when TNT explodes, blocks break but items don't drop. I've been using .setYield() to set it to zero but some things like signs and levers are still dropping. Any ideas if there is a better approach?

humble tulip
#

@scenic valve what's probably happening is the blocks that those are placed on is being broken

quaint mantle
#

Anyone know if there is a way to know what the new sound Enum is if im porting something to new versions from 1.8

sterile axle
#

much easier

scenic valve
humble tulip
#

that's not the problem

humble tulip
sterile axle
#

oh i misread that

#

nvm

scenic valve
#

Yep seems to be the case, completely forgot about how that works XD

tender shard
humble tulip
quaint mantle
humble tulip
#

could that cause an issue on some systems?

tender shard
tender shard
tender shard
#

one of these lol

#

which block is piano?

quaint mantle
#

dont know

#

ty

humble tulip
#
Minecraft Wiki

A note block is a block that emits sounds when attacked, used or powered with redstone. The sound produced can be altered in various ways by using it or putting certain blocks directly above or below it. A note block's sound played repeatedly can be used to direct allays to stay nearby and drop collected items near it.

tender shard
#

yeah it should be harp

#

BLOCK_NOTE_BLOCK_HARP

humble tulip
#

harp and pling

#

pling is electric piano

tender shard
#

wtf you can use player heads to play custom sounds?

#

I never knew

humble tulip
#

same lmfao

#

i dont actually play minecraft tbh

tender shard
#

me neither

#

lol

frank kettle
#

Hey guys, I'm using PlayerMoveEvent to check if a player moves during a teleport.

And it seems like for some reason when players move their head the "ifs code" is getting a different X, Y or Z.

code is like this:

if (Main.getInstance().teleporting.contains(e.getPlayer())) {
    Player p = e.getPlayer();
    Location from = e.getFrom();
    Location to = e.getTo();
    if (from.getX() != to.getX() || from.getY() != to.getY() || from.getZ() != to.getZ()) {
        p.sendMessage("§cYour teleport has been cancelled because you moved.");
        Main.getInstance().teleporting.remove(p);
    }
}```
frank kettle
#

🥹 so because name is Main, players are changing their coords while moving head and not actually changing coords

sterile token
#

You should add a return after the releporting#remove()

frank kettle
#

there's more to the code than the teleports.

#

that's why.

sterile token
#

Hmnn

#

?paste

undone axleBOT
sterile token
#

Always paste full code

frank kettle
#

its the full code

#

the rest of the code is something that has nothing to do with that

jagged monolith
frank kettle
#

🤔

tender shard
frank kettle
#

alex 🥹

#

do u know why that issue is happening

humble tulip
#

print to and from

#

and see what the values are

humble tulip
#
if (Main.getInstance().teleporting.contains(e.getPlayer())) {
    Player p = e.getPlayer();
    Location from = e.getFrom();
    Location to = e.getTo();
    print(to);
    print(from);
    if (from.getX() != to.getX() || from.getY() != to.getY() || from.getZ() != to.getZ()) {
        p.sendMessage("§cYour teleport has been cancelled because you moved.");
        Main.getInstance().teleporting.remove(p);
    }
}
#

like that

tender shard
tender shard
frank kettle
#

sure i can debug it and see whats happening

tender shard
#

what weird sentence did my brain produce

jagged monolith
tender shard
#

I wanted to say "some people claim it, others dont"

hazy parrot
#

Because afaik in spigot, people complain about main class being called Main because actual Main is spigot, not your plugin

jagged monolith
tender shard
#

i personally dont have any opinion about it

hazy parrot
#

yeah that is true tbh

tender shard
#

I do have an opinion about
Player p though

hazy parrot
tender shard
#

i'd also never do that

#

e could also be an entity

#

or an exception

#

or a particle effect

#

or anything else that starts with E

#

I'd just always use "event"

jagged monolith
tender shard
#

i mean we can probably all agree that using "MyPluginNamePlugin" is always a proper class name for the main class

#

but I also wouldn't care if anyone would just name it "Main"

frank kettle
#

so i recorded the video and seems like coords change by 0.01

#

which doesnt make sense

worldly ingot
tender shard
#

I don't do that. For example AngelCHest's main class is called AngelChestPlugin because there's a data class called AngelChest

frank kettle
#

so i recorded the video and seems like coords change by 0.01

and this doesn't make sense.

is there a away to fix this?

kind hatch
#

Are you trying to make a movement check that ignores yaw and pitch movements?

frank kettle
#

i want them to teleport after 3 seconds and moving yaw/pitch not cancel it

#

but cancel if they actually move x,y,z

#

and seems like when moving yaw/pitch its also moving the z by 0.1

#

from and to

tender shard
#

true

frank kettle
#

without moving, just moving the head

#

it seems like this is getting the wrong coords at first

tender shard
frank kettle
#

like its "lagged"

tender shard
#

so they can still teleport when they only moved a tiny bit

kind hatch
# frank kettle and seems like when moving yaw/pitch its also moving the z by 0.1

Just looking around counts as movement, so you need to compare only x, y, z coords in the move event.

// Player is able to look around with these checks.
if (event.getFrom().getX() != event.getTo().getX() || 
    event.getFrom().getY() != event.getTo().getY() || 
    event.getFrom().getZ() != event.getTo().getZ()) {
 // Do stuff inside. 
}
sonic goblet
#

Comparing int cords would still cancel in his case look at the number he’s teetering on .99 and after the yaw adjustment it changes

frank kettle
#

it seems like the playermoveevent is getting the wrong e.getFrom coords at first, if u stop in a coord and then start moving it gets the coords from when you stopped moving forward and not your final landing coords.

#

is there a way to actually get their "final landing spot" coords and compare correctly this movement?

frank kettle
tender shard
#

erm yeah obviously getFrom() is not the target location

#

it's the location from where the player attempted to move away from

frank kettle
#

it is getting the wrong coords tho.

#

even if I stop and then start moving, the e.getFrom() will not return the spot i stopped on

tender shard
#

hm no clue then

#

the layout of archetypes is really... weird

ivory sleet
dry yacht
#

Has anybody got some experience with the java.lang.reflect.Proxy? I could use a bit of help with a pretty weird issue I'm facing :/.

tender shard
#

what is the issue?

dry yacht
#

Okay, wait one second please, I need to first validate that I'm not just a moron. I'm trying to proxy a map which I think should get #put calls, but all I get in the proxy are #values and #size. I just got the idea that I'm maybe actually proxying at the wrong place and this map is indeed untouched. I'm going to get back to you soon! thanks! :)

ivory sleet
#

How’s the code looking?

dry yacht
tender shard
#

i have no clue about proxies, I just wanted you to ask the actual issue so maybe somone else is able to answer 😛

dry yacht
#

wow, that's nice of you, thanks! :). I think I'm about to solve the issue, think I found what's going on. What a frickin hack to begin with, haha

kind hatch
humble tulip
#

didn't even know they existed

#

btw do you know abt securitymanagers?

dry yacht
# humble tulip didn't even know they existed

There's not really much magic going on behind the scenes. You basically create a new instance of the specified interface, implement all methods and route straight through to the proxy handler, which then can route back to the vanilla instance, if desired, or intercept in any shape or form. The only thing with the Proxy-Class is that all of this get's compiled at runtime (I think).

dry yacht
humble tulip
#

it's basically something that prevents you from doing stupid stuff in java

#

like modifying private final fields

#

it's not always present though

#

i think

#

idk

dry yacht
#

A, right, it's against people trying to perform dark ass patches like myself, haha

#

Yeah, I once tripped up on it, but that's about all I know, :/

ivory sleet
#

tho havent seen any1 use Proxy like this before x)

zealous scroll
#

Caused by: java.lang.NullPointerException: Cannot invoke "org.bukkit.block.banner.PatternType.getIdentifier()" because the return value of "org.bukkit.block.banner.Pattern.getPattern()" is null

Does anyone know why this method would return null?

dry yacht
kind hatch
dry yacht
ivory sleet
#

no

#

but injecting it the way u do to substitute

tender shard
zealous scroll
ivory sleet
#

just seen people use it to facade known abstract types

sullen marlin
#

There is no reason to use nms for scoreboards

dry yacht
zealous scroll
#

Yea

tender shard
#

then you should report it to them, it's obviously annotated with NotNull so it should never return null

#

if it ever does, it's a bug in paper

#

(or spigot if it happens on spigot too)

#

have you checked whether it happens in spigot too?

echo basalt
#

yo @tender shard you on?

tender shard
#

no

echo basalt
#

oh okay

#

quick question

#

if you open your mavenLocal, how many spigot versions you got?

#

I can't bother running buildtools on 15 different versions

#

because I have to switch java versions and all

tender shard
zealous scroll
echo basalt
#

seems to be a 1.16+ thing tho

#

I need a few more

tender shard
tender shard
echo basalt
#

1.8 will yell if I run it on java 11

tender shard
tender shard
#

just use java 8 for the legacy stuff and java 17 for the newer versions

#

then it works for everything from 1.8+

echo basalt
humble tulip
#

lmfao

#

trying to use reflection to support 1.8-1.19.3 will make me kms

#

might end up using protocollib

tall dragon
#

@humble tulip i finally fixed my scoreboard issues

humble tulip
#

oo nice

tall dragon
#

turned out i didnt need packets after all 😒

tender shard
#

just drop support for everything below 1.19.3 and allow yourself to be happy

echo basalt
#

@tender shard hm

tall dragon
#

but it was a real brain turner

tender shard
echo basalt
tender shard
#

weird. anyway, still seems to work lol

tall dragon
#

if only i knew a player can be in a team per scoreboard and not 1 team in general

#

woulve saved me 12 hours

echo basalt
#

the terminal seems to be stuck

dry yacht
echo basalt
#

10.4mb ram, no usage

tall dragon
humble tulip
#

all i gotta do is modify this string

tender shard
humble tulip
#

but mc wants to use an IChatBaseComponent

tender shard
#

if buildtools fails, it'll tell you

humble tulip
#

like why tf

#

is an inventory name a basecomponent

echo basalt
#

hidden process I see

#

this will take a while

#

I think imma stop it and add 1.12 and all

dry yacht
tender shard
humble tulip
#

lol i just wanna modify an inventory name so i can support per player language

dry yacht
dry yacht
humble tulip
#

components aren't my problem

#

yeah

kind hatch
dry yacht
echo basalt
#

40 minutes on a good day

humble tulip
#

creating a new PacketPlayOutOpenWindow is my problem

echo basalt
#

also it depends on the machine

#

my internet speed is decent and all

#

and my cpu too

tender shard
kind hatch
humble tulip
dry yacht
tender shard
#

the proper name for IChatBaseComponent is net.minecraft.network.chat.Component

kind hatch
tender shard
#

and it has a method "literal(String)" to get a component from a string

dry yacht
humble tulip
#

lol

tender shard
humble tulip
#

might just use protocollib

dry yacht
tender shard
humble tulip
#

is there any way to build spigot with nms classes in the jar?

tender shard
#

in 1.8.8 it's probably IChatBaseComponent.fromString or sth similar

tender shard
#

yeah I mean how else would it work

humble tulip
#

?bootstrap

undone axleBOT
#

Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.

Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163

humble tulip
#

i just wanna build all spigot versions and throw them in a libs folder, import them with maven so i can have a project where i can just use to browse nms in any version

tender shard
#

why would you throw them into a folder for that o0

humble tulip
#

1 sec

tender shard
#

that kinda defies the purpose of maven

humble tulip
#

if i build everything with buildtools

tender shard
#

you are supposed to just use your local repo

humble tulip
#

i can just import it?

tender shard
#

sure

humble tulip
#

great

#

ty

tender shard
#

np

#

you should however create one module per version

#

otherwise e.g. if you wanna check out some class, IJ has no clue from which version you want it from

humble tulip
#

true

spice shoal
#

?help

undone axleBOT
#
CafeBabe Help Menu
*Red V3*
**__Admin:__**

selfrole Add or remove a selfrole from yourself.

**__Cleanup:__**

cleanup Base command for deleting messages.

**__Core:__**

embedset Commands for toggling embeds on or off.
info Shows info about CafeBabe.
licenseinfo Get info about Red's licenses.
mydata Commands which interact with the data CafeBabe has about...
set Commands for changing CafeBabe's settings.
uptime Shows CafeBabe's uptime.

**__Downloader:__**

findcog Find which cog a command comes from.

**__Mod:__**

names Show previous names and nicknames of a member.
userinfo Show information about a member.

**__ModLog:__**

listcases List cases for the specified member.
reason Specify a reason for a modlog case.

**__Permissions:__**

permissions Command permission management tools.

tender shard
#

?embedset

undone axleBOT
#
CafeBabe Help Menu
Syntax: ?embedset 
Commands for toggling embeds on or off.

This setting determines whether or not to use embeds as a response to a command (for commands that support it).
The default is to use embeds.

The embed settings are checked until the first True/False in this order:
- In guild context:
1. Channel override - ?embedset channel
2. Server command override - ?embedset command server
3. Server override - ?embedset server
4. Global command override - ?embedset command global
5. Global setting -?embedset global

- In DM context:
    1. User override - `?embedset user`
    2. Global command override - `?embedset command global`
    3. Global setting - `?embedset global`
**__Subcommands:__**

showsettings Show the current embed settings.
user Sets personal embed setting for DMs.

tender shard
#

?embedset help-development

undone axleBOT
#
CafeBabe Help Menu
Syntax: ?embedset 
Commands for toggling embeds on or off.

This setting determines whether or not to use embeds as a response to a command (for commands that support it).
The default is to use embeds.

The embed settings are checked until the first True/False in this order:
- In guild context:
1. Channel override - ?embedset channel
2. Server command override - ?embedset command server
3. Server override - ?embedset server
4. Global command override - ?embedset command global
5. Global setting -?embedset global

- In DM context:
    1. User override - `?embedset user`
    2. Global command override - `?embedset command global`
    3. Global setting - `?embedset global`
**__Subcommands:__**

showsettings Show the current embed settings.
user Sets personal embed setting for DMs.

tender shard
#

?embedset showsettings

undone axleBOT
#
Embed settings:

Global default: True
Guild setting: None
Channel setting: None
User setting: None
echo basalt
#

yo alex it worky

#

only took 40 minutes

#

but it work

daring elm
#

How can I find my build? (Inteliji)

kind hatch
#

You mean the version you're running? Help > About

daring elm
#

No my Plugin I can't find

#

Xd

sterile axle
#

it depends on how you built it. if you built it with regular IJ it's probably in a folder called out. If you used maven, it's probably in target. If you used gradle it's probably in build/libs

daring elm
#

I search with search anything 🤣

#

Is faster

sterile axle
#

ok

daring elm
#

Ok my files are now compiled how build in jar?.

sterile axle
#

it depends on your specific setup...plain IJ/maven/gradle...etc

#

Use google.

quaint mantle
#

Anyone have a basic rundown of how id make a gun? Im talkin the player holds left click down and it keeps shooting for however long they hold the mouse down, shots always reaching the entity being shot at, how far the entity is, if whats being shot at even is some sorta entity etc.

quaint mantle
#

perfect, thank you!

#

the raytracing is exactly what i needed but i need more clarification on the actual shooting if you will: How do i figure out when the player takes their finger off the left click since i want it to continuously shoot

sterile axle
#

just fire one projectile for every valid interact event; then when they stop left clicking, so to will the interact events stop. thus, the firing will stop

#

that's exactly how automatic weapons work, anyway

wet breach
#

There really isnt a way to detect they are holding the click as that isnt something the client reports

sterile axle
#

does the arm not continue to swing when held down? or is that only when they hit a block?

quaint mantle
#

Yeah that's what I thought too, my best guess was a unbreakable block is spawned in front of the player so it's always being hit but that brings up a lot of issues too

wet breach
#

Closest thing to that is the shootbow event that reports the power of the shot but that only obtainable after they release not while holding it down.

sterile axle
#

Oh well, rip

quaint mantle
#

Most gun plugins found a way around this but I genuinely cannot understand some of the code written by the authors

wet breach
#

Well you can make assumptions

#

Like you could reverse it. Instead of firing based on click you could stop firing when they do click again as long as its in their hand

#

So first click makes it fire and it continues until they click again

quaint mantle
#

That is actually smart but wouldn't yhay cause an infinite loop since there is no reason for it to stop

wet breach
#

I assume they have ammo

#

So stop when they run out

#

Or when they switch items in hand

quaint mantle
#

Sure but what if they want to stop shooting before running out of ammo

wet breach
#

They would click

quaint mantle
#

There is no stop clause, if I click once, it continues shooting, if I click again it stops but then how would I start again without it misfiring

tranquil stump
#

How do I get maybe like an array list of all the messages that have been sent to a player from other players/plugins

#

Like the message history

quaint mantle
#

I'm gonna look at the source for the gun plugins in a bit

wet breach
#

Misfiring isnt a thing unless you code it in

quaint mantle
#

Hard to explain on phone sorry, here's what I'm saying:

I start shooting by clicking once, it only stops when I click again but the only way to shoot is to click, so the dilemma is how would I differentiate between a stop shooting click and start shooting click

wet breach
#

By keeping track of which click number.

quaint mantle
#

Ah yeah, maybe I change it in the guns nbt or whatever it's called in the latest version

wet breach
#

You just put in a list which click. You only have 2 clicks to really track. Click 1 and click 2. So first click is a one. Second is a 2. Or 0 and 1 if you prefer. And alternate the number to keep track

#

When click event comes in. Look at the number. Update it and perform which ever action

#

Also make sure they have item in hand as well. If they dont ignore gun action code

wet breach
#

Unless you want guns to be firing the moment they log in lol. But by default guns shouldnt be firing lol

#

Anyways. Back to work for me

quaint mantle
#

would it be smart to use the playermovement event to detect when a player reaches a certain zone? Like they just entered between x:100, x:200 and z:100, z:200?

river oracle
#

Idk how else you'd do it

#

So yeah just use a bounding box

echo basalt
#

wish there was a way to do that without having an O(n^2) loop

river oracle
quaint mantle
#

and what the hell is this loop?

#

sounds complicated

river oracle
#

If you want to be clever you could technically use a fun chunk PDC hack I suppose though I'm not sure how much time that really saves you

echo basalt
#

So you have an O(n^2) loop

livid dove
#

Trying to do an async task and it just isn't working. (No errors just not finishing up)

Any ideas what I'm guffing up here?

river oracle
#

Post the code

#

?paste

undone axleBOT
livid dove
#

2 secs haha

#

I am so sorry for the potatoes btw on a grand folks pc so need to picture the bugger

#

It's dog tier I know I usually have so much better pics but yeah, needs must

river oracle
#

My lord naming conventions out the window lol

quaint mantle
#

(E)xcelProxy scares me and haunts my dreams

sterile token
#

Where can i find the code for the method Plugin#saveResource() ?

livid dove
#

Mentally scaring you aside... this code did work before the async. So imbaround 90% sure its how i set it up

#

I.e. before I tried adding the async

livid dove
desert loom
#

same for Eclipse iirc

livid dove
# livid dove

But yeah this code when not making the server cry actually gets X days of mining data for a player out of core protect and can put it into a graphical format to help hunt xrayers more easily with CP.

So I'm very very interested to get the bugger working.

#

The final hurdle is getting this async to work so it doesn't make my poor pc cry lol

#

*or rather the server lol

sterile token
#

Opinions please!

river oracle
#

Just use caffeine?

sterile token
sterile axle
#

No screw a well-known benchmarked library. I can do it better. /s

river oracle
#

Lol

#

But I can mom!

sterile token
echo basalt
livid dove
quaint mantle
#

sir, copy and paste?

brave sparrow
shut field
#

I am using readallbytes and I am getting an AccessDeniedException

eternal night
#

Post the error message

#

Presumably tho, that is a folder ?

shut field
eternal night
#

What bytes do you think a folder has XD

vocal cloud
#

Spicy bytes

shut field
#

idk, I am trying to give the player a resource pack

#

or set their resource pack or whatever, and I need to give it a bytes[]

eternal night
#

That's the hash isn't it ?

#

That you have to pass there

shut field
#

how do I do that

wet breach
#

The file parameter should be the name of the resource file found at link provided.

wet breach
#

Not sure why you are trying to pass in your server directory for that

#

Doesnt help clients lol

shut field
eternal night
#

The first is the link to download the resource pack from the bytes are the sha1 hash of the file found there

shut field
#

the "hash" "sha1 hash sum"

wet breach
#

The bytes is for hash

#

As stated by others

shut field
#

yeah.. I was trying to do the hash

#

I was just doing it wrong

#

ig

wet breach
#

Yep. But like way left field wrong though lol

wet breach
#

At least you learned

#

Anyways. Back to moving tires around for me

hybrid spoke
# sterile token Opinions please!

dont call it "Handler", be more specific. what exactly is Cache? i would understand Cache as an actual cache of something, not as a value. why do you store caches by keys? shouldnt Cache also be generic if you can get the cache for an specific type? or what is T? and also why does your handler have a name

#
  • is inheritance the right choice there? will there be many cache handler? cant you have an generic cache handler for your usecase? composition > inheritance
rough drift
austere solstice
#

Hi guys,
When I teleport player to random and unloaded chunk location , server getting so many errors and player is kicked automaticlly.

My code:
https://paste.md-5.net/okeyogosoc.java

Errors:
https://paste.md-5.net/xelenivaxi.md

Tryed to scheduler every 1 second to check loaded or not it doesn't working. By the way it happens when I use command /tp to random position too

sullen marlin
#

sir this is spigot

rough drift
#

?whereami

rough drift
#

@austere solstice

austere solstice
austere solstice
sullen marlin
#

youre not running a spigot server

austere solstice
#

oh sorry, I get it what you meant. It was happens spigot server too. I will send error codes in a minute

austere solstice
jagged monolith
undone yarrow
#

Hey, I want to make a starwars plugin, and I made multiple BB-8 (droid) models in Blockbench and I want to put them in Minecraft and animate them. Is this possible with plugins and resource packs, without using optifine?

onyx fjord
#

With paperweight userdev is it possible to use the paperweightDevelopmentBundle excluding paper api?

#

i'm using it to reobfuscate

noble crown
undone yarrow
#

but that's paid

onyx fjord
#

you can get a demo

undone yarrow
onyx fjord
#

yeah

#

suuureee

wet breach
#

That is more of a question for the author or support for placeholderapi

rough drift
#

suggestion: use They are rank, makes it genderless so you don't get random ppl hating at you

#

Offtopic? Yes very much so. Do I care? No very much no

fallow violet
#

IntelliJ .jar doesnt appear
wtf am i doin wrong

i created an artifact from module with dependencies and removed the extraction thingy
but my damn jar file doesnt appear?

#

on build

wet breach
#

Sure you are looking in the right place?

fallow violet
#

wdym

#

the source foulder?

quaint mantle
#

Hi... is there a youtube tutorial on how to use the roll dice plugin?

fallow violet
fallow violet
#

or just code it yourself (:

quaint mantle
#

no one ever used it?

fallow violet
#

idk but why u asking? There is the commands help

#

and it doesnt look that hard

quaint mantle
# fallow violet

thx I did see that , I am not a coder I am a "user" I dont know much when it comes to coding things, but it looks like a really neat plugin I want to try.

fallow violet
#

wait what u wanna know? how to use it?

quaint mantle
#

But I am not sure how to use it or make it to work... all I did was install it in my plugins folder on my server

fallow violet
#

oh okay

quaint mantle
fallow violet
#

okay

#

so

#

you have the /plugins folder

quaint mantle
#

yes

fallow violet
#

you download the plugin.jar file and put it in there

#

and start the server

onyx fjord
#

did anyone use pacifist-remapper on 1.19.3?

#

or 1.19.2

quaint mantle
#

I did that

fallow violet
quaint mantle
#

I did

fallow violet
#

are there any errors?

quaint mantle
#

when i use the / it gives command to use dice

fallow violet
#

yes

quaint mantle
#

ingame

fallow violet
#

yes

quaint mantle
#

no errors

fallow violet
#

so its working?

quaint mantle
#

yes but how do I use it? sorry for my ingnorence ... I dont know what it should look like...

fallow violet
#

na everythings good

quaint mantle
#

do I say /diceroll

fallow violet
#

okay okay so

quaint mantle
#

and am I suppose to see nubmers then?

#

Where will they appear?

#

in chat?

#

or?

fallow violet
#

as you see the commands:

If u want to get a random number from 1 to 69 you write: in chat /roll d<#> 69

#

i suppose

#

the number will send to yourself as a message

#

like a normal chat message

quaint mantle
#

okay let me go try it quick

#

and thank you so much for the help and info

fallow violet
#

thats why im here c:

rough drift
opal juniper
#

how do you place a bed, as in the top and bottom of it

maiden thicket
#

would anyone know what packet(s) make the player leave the Loading terrain screen because i've tried sending them a position packet but it did not seem to make them leave that

#

current packets i am sending

#

1.19.3
i am writing a protocol implementation so this isn't a spigot / bukkit / nms issue

gleaming grove
#

How can I dye an horse Armor? I found people was casting ItemMeta to HorseArmorMeta but propably this is outdated

quaint mantle
#

did I do it wrong

fallow violet
#

i dm u

fallow violet
#

its bedrock shit

gleaming grove
#

I checked it in minecraft and it works, ye it was suprised to me as well

fallow violet
#

WTF

#

SINCE WHEN

#

like normal leather armor ig

gleaming grove
#

idk

fallow violet
#

you color it like leather armor ig

gleaming grove
#

ye

fallow violet
#

short and quick: can u use 1.19.2 declared plugin in 1.19.2+?

#

if u are using stuff thats available in both versions

frank kettle
#

I'm kinda curious, how do plugins that allow people to set "custom commands" make them work as a command on the server at all? like getCommand("customcmd").setExecutor(... that we set on the plugin main class + plugin.yml.

is it with the event PlayerCommandPreprocessEvent or something different?

hazy parrot
#

I think they are using reflection to directly put commands into command map

frank kettle
#

oh cool

#

i noticed u can also use reflection to automatically listen to the events

#

and set the commands

#

that sounds way better than having to register all of them all the time when making a new one

#

is there any down side to this?

onyx fjord
#

what event is used in /msg?

autumn tree
#

How to cancel item drop?

normal thicket
vague swallow
#

hell

#

Does anyone know how to get the speed of a projectile?

robust light
#

is there a way to store data like persistentdatacontainers, but so it doesnt get wiped every time the plugin gets updated?

fluid river
vague swallow
fluid river
#

why do you even need something else than pdc

robust light
fluid river
fluid river
#

problems?

robust light
#

like

#

when I have a new version

gleaming grove
robust light
#

with fixes and stuff

fluid river
#

PDCs are PERSISTENT

#

they don't wipe

exotic garnet
#

Does anyone know a way of stopping items from being added to furnaces from the recipe book? I'm wanting to block certain items from being added to the furnace and have blocked everything but the recipe book.

robust light
gleaming grove
#

could you send it?

hazy parrot
#

well, you can always inspect nbt file

#

to see if it actually wipes for some reason

fluid river
hazy parrot
#

or just plugin namespace changed

fluid river
#

^

robust light
# gleaming grove could you send it?
package me.wadamka.simpleclans;

import org.bukkit.plugin.java.JavaPlugin;

public final class SimpleClans extends JavaPlugin {
    
    public static SimpleClans pl;

    @Override
    public void onEnable() {

        System.out.println("loaded Clans!");

        pl = this;
        
    }

    @Override
    public void onDisable() {

    }
    
    public static SimpleClans getPlugin(){
        
        return pl;
        
    }
    
}




fluid river
#

singleton user detected

#

💀

robust light
#

?

fluid river
#

where's your PDC part tho

hazy parrot
#

btw there is getPlugin(Class) method

fluid river
#

where you set it and get it

fluid river
robust light
#

there is?

fluid river
#

yes

vague swallow
fluid river
#

compare them?

vague swallow
# fluid river compare them?

"Operator '<=' cannot be applied to 'org.bukkit.util.@org.jetbrains.annotations.NotNull Vector', 'org.bukkit.util.@org.jetbrains.annotations.NotNull Vector'"

brave sparrow
#

Compare the lengths

frank kettle
brave sparrow
#

getVelocity().length() or lengthSquared if you want better performance

last tulip
#

how to fix can't resolve setDisplaySlot() method?

hazy parrot
autumn tree
frank kettle
vague swallow
fluid river
robust light
vague swallow
#

Thank you very much!

fluid river
#

tho won't work for normalized vectors, cuz you know, they have length = 1

#

bukkit devs like crated saveConfig() and getConfig() and reloadConfig() methods for you to use

#

copypaste sourcecode and change from "config" to what you want

tall citrus
#

@fluid river U say that to me?

fluid river
#

yeah

tall citrus
#

kk

#

Files.getArenasInfo().options().copyDefaults(true);

#

I do it here

#

@fluid river

flat moss
#

does anyone know whats wrong i have no errors but when i try to compile i get these errors

last tulip
grand magnet
#

How do I create a YouTube head. I have the value of the YouTube Head "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2VjZDA0MWY2MjhjMDA1YTY5MGZjNmI4MjM3ZTczMTFiYjdjM2IzYWFjMTA1MzlmZWZlMzk2YTRjN2M3ODNlNyJ9fX0="

fluid river
#

@tall citrus

@NotNull
public FileConfiguration getMyConfig() {
    if (myFileConfiguration == null) reloadMyConfig(); 
    return myFileConfiguration;
}

public void saveMyConfig() {
    try {
        myFileConfiguration.save(myConfigFile);
    } catch (IOException ex) {} 
}
 
public void saveDefaultMyConfig() {
    if (myConfigFile.exists()) saveResource("myconfig.yml", false); 
}

public void reloadMyConfig() {
    myFileConfiguration = YamlConfiguration.loadConfiguration(myConfigFile);
    InputStream defConfigStream = getResource("myconfig.yml");
    if (defConfigStream == null) return; 
    myFileConfiguration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream, Charsets.UTF_8)));
}```
chrome beacon
flat moss
#

maven

vivid frost
#

Hi!

#

How can i add ProtocolLib to a papermc server?
Apparently a plugin that I am using needs protocol lib to work

fluid river
#

download and install?

vivid frost
#

yeah but where do i put the jar file?

#

in the root dir?

fluid river
#

plugins folder?

#

lol why

#

it's just a plugin

vivid frost
#

ohh

#

bruh

#

ok thanks

#

and that's it?

fluid river
#

well yes

vivid frost
#

no configs or other stuff

fluid river
#

it's like HEY GUYS HOW DO I INSTALL VIAVERSION

fluid river
#

you don't need to touch it's configs

#

just restart the server

vivid frost
#

👍 aigty

grand magnet
flat moss
#

@chrome beacon im using maven

chrome beacon
chrome beacon
tardy delta
#

how is Bukkit.blablabla() going to returna a custom class?

chrome beacon
#

ah right that too

#

Your class has the same name as the bukkit one

#

You need to tell Java to use the right one

flat moss
#

i took that class from my other multi module project just for testing

#

this is how my pom looks like if that helps @chrome beacon

grand magnet
fluid river
#

sorry but

#

?1.8

undone axleBOT
fluid river
#

💀

chrome beacon
tardy delta
#

people nowadays

fluid river
#

society

chrome beacon
#

Yeah mb

fluid river
#

he just said

#

like 2 times

flat moss
#

i only have this problem with newer versions for my 1.12.2 class i dont have that problem

fluid river
#

i guess

flat moss
#

add where

#

in pom i have java 17

fluid river
#

in project SDK you specified 11

#

change the SDK you are using

flat moss
#

which one should i use @fluid river

vague swallow
#

Is it normal that a PlayerInteractEvent doesn't get triggered when a player interacts with an entity? (Yes I know there is also a PlayerInteractEntityEvent) but is there an event that gets triggered unattached if there was an interaction with an entity or not?

trim creek
#

@EventHandler aint missing right?

undone yarrow
#

whenever I try building the plugin (using Build artifacts) for a server, it says this...

#

Can anyone please help? I don't have a lot of experience with plugins

tardy delta
#

got the dependency as provided?

undone yarrow
#

Is that a question for me or for the other people?

vague swallow
vague swallow
undone yarrow
tardy delta
#

thinking is not enough, show your pom

undone yarrow
#

pom?

#

I said I'm new to this lol

tardy delta
#

just search for the pom.xml file and show the contents

undone yarrow
tardy delta
#

is this even a maven project?

undone yarrow
#

maven?

tardy delta
#

using intellij?

undone yarrow
tardy delta
undone yarrow
#

I'm not using maven

#

Ever wanted to know how to make Minecraft plugins for Java edition? In this new series we'll be starting with the basics and eventually diving into the advanced details of plugin development.

I've been developing plugins and running my own servers since 2013, so expect to see step-by-step tutorials with plain English explanations.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯...

▶ Play video
#

It's with java

tardy delta
#

oh god mans not using maven

hazy parrot
#

lmao

#

also g3tbukkit 💀

undone yarrow
#

...

hazy parrot
undone yarrow
#

I'm assuming that I should look up a tutorial that uses maven instead lol

undone yarrow
hazy parrot
#

Yes

fluid river
#

freejavalessons @undone yarrow

#

available

tardy delta
#

can i get a lesson about locks?

autumn tree
#

Why does is.getItemMeta().setDisplayName("§r§b§lSelect Hub§r"); not works?

fluid river
tardy delta
#

like reentrantlock and stuff

#

countdownlatch

autumn tree
fluid river
#

ItemMeta meta = is.getItemMeta();
meta.setDisplayName("fff");
is.setItemMeta(meta);

#

you are getting clone of item's meta

#

not the actual meta

#

so if you modify it, nothing's gonna change with the actual item's meta

autumn tree
#

bruh

fluid river
#

rly

ivory sleet
undone yarrow
tardy delta
#

it was more like a retorical question but whatever

#

glad to see you

ivory sleet
#

ReentrantLocks are simple, when called on thread x any thread y that tries to lock it has to wait until thread x has unlocked the thread

#

Oh

hazy parrot
tardy delta
#

kinda like a synchronized block then

ivory sleet
#

Anyway, during the time thread x is locked, it can call the lock method on the lock again without any additional effects

#

Hence reentrant

#

Its better

#

Because it allows fairness

#

Which is FIFO as opposed to LIFO iirc

#

And iirc ReentrantLock scales better the more threads

tardy delta
#

\👀

ivory sleet
#

Well ReentrantLock has a better set of methods also

#

A CountDownLatch is just a counter, kinda like Semaphore, CyclicBarrier or well Phaser but non reusable

keen basin
#

hey guys i have a problem when i check who has containsKey(player) it return null but When I try to send the hash to the player as a message I can see the player in the hash some one help me ?

tardy delta
#

exposing collections, lets go

keen basin
tardy delta
#

uh ig thats another player object?

#

like invalidated, check Player#isOnline

fluid river
keen basin
undone yarrow
keen basin
#

The problem only occurs with playerjoinevent

tardy delta
#

the only thing i know is that old player objects cannot be the same as the ones from the join event

soft viper
#

Can i change server motd with plugin?

fluid river
#

and i can answer

tardy delta
#

as the join event gets a new player instance

fluid river
#

should be enough

undone yarrow
fluid river
#

cuz why not?

tardy delta
#

bored mf

undone yarrow
fluid river
ivory sleet
#

You can find so many resources for free

tardy delta
#

great way to scam people uwu

fluid river
undone yarrow
fluid river
#

i had free schoold here in russia

ivory sleet
#

Not really

tardy delta
#

i was hoping c++ had the same amount of free online resources but its just dissaponting

hazy parrot
#

tf

fluid river
#

anyways, you can just ask for help

tardy delta
fluid river
#

nothing can go bad

fluid river
ivory sleet
#

There’s no inherent bound concept of paying for education, that’s just if you choose to do so.

fluid river
#

schools in russia were always free

tardy delta
#

cant really compare so idk

fluid river
#

since USSR established

tardy delta
#

hmm

undone yarrow
fluid river
#

and well, we study the same things

tardy delta
#

sounds like a personal issue then

fluid river
#

anyways, @undone yarrow , maybe you are just scared to try

undone yarrow
fluid river
#

you are like 100% not believing me

undone yarrow
#

I believe you lol

#

I just wanted to ask some questions

fluid river
#

i'm currently free so i can help you with your project

undone yarrow
#

I think I'll have a look at 1 video before asking for lessons just so I know I actually want to do something with plugins. If it sounds interesting, I'll send you a msg (today) 🙂

ivory sleet
#

Let’s say you study maths, like some theory, logic theory and maybe more advanced set theory, there’s gonna be a lot of ways to get that education without attending to said uni, a book for instance, or some video tutorial etc.

fluid river
#

well here in RUS universities cost money

#

if you haven't passed all three main exams after school on 90+

ivory sleet
#

And yes, a teacher might be helpful for you in order to learn it such that you can ask questions about concepts you don’t understand, however there are ton of people who know about x field that you could also ask, usually you’re not gonna be the first one to study field x.

undone yarrow
fluid river
#

but if you passed well, you study for free

undone yarrow
#

🤷‍♂️

#

anyways, Ill be continuing with... whatever java is

ivory sleet
#

When it comes to programming, I know of many companies that don’t really pay attention to your degree, but it’s not like your degree is an obstacle, just doesn’t substantiate anything really

fluid river
#

Java is a high-level strongly-typed object-oriented programming language

#

ez

ivory sleet
#

And statically typed

#

A bit yes

undone yarrow
fluid river
#

this is from some old meme video

#

java for haters in 1 minute or smth

undone yarrow
#

And next time when I'm programming I'll say "I'll go back to programming my plugin with a high-level strongly-typed object-oriented programming language "

fluid river
#

i don't remember full name

quiet ice
fluid river
quiet ice
#

And without maven, I'm not gonna touch them

fluid river
#

most of the companies do care about bachelor's degree in software engineering

#

so it's not really easy to find a job without HE

tardy delta
#

this is cool

fluid river
#

That's the only reason i'm in a university rn

#
nullptr```
tardy delta
#

bachelor in uni?

fluid river
#

yes

#

4 years for bachelor

tardy delta
#

i thought university was like master or smth

fluid river
#

6 for master

tardy delta
#

im doing a 3 years bachelor in college

#

might do a master too

#

still wondering

fluid river
#

9 for random postgraduate degree

tardy delta
#

lol

opal juniper
#

3 years is a bachelor in the uk, then you can do a 4th year for a masters

fluid river
#

it's really common that students work in their uni after finishing

opal juniper
#

integrated masters iirc

tardy delta
#

:o

#

we have smth like that too

#

i believe its a year too

opal juniper
#

obvs depends on the course but most are like that

fluid river
#

bruh