#dev-general

1 messages ยท Page 71 of 1

sharp cave
#

Ty

obtuse gale
#

does anyone know how to fix this/what plugin this might be

#

regen walls are unraidable because water will not create obsidian with source block

remote goblet
#

well first of all

#

that is not how you create gen walls

obtuse gale
#

the gen walls are fine

#

theyre unraidable because water on top of lava doesnt do anything

#

it just sits there

#

its supposed to make obby and take the source block away

obtuse gale
pale shell
#

@obtuse gale Backpacks line 24 what's there

hot hull
#

kek

obtuse gale
#

Should I learn spring framework, or do i need more java/kotlin knowledge first? I kinda wanna make a website,

heady birch
#

Hm go ahead i'd say

#

Happy to help with anything you get stuck on

signal tinsel
#

Honestly I'm considering purchasing 3 test servers

#

1 for 1.8, another for 1.12 and another for 1.15

#

All 3 are versions some plugins I make need to support

obtuse gale
#

This code must have something to do with breaking block status...

heady birch
#

@obtuse gale You gonna learn spring?

obtuse gale
#

ye

#

any suggestions on any courses or anything? (willing to spend if i have to)

heady birch
#

I dont really know to be honest

#

I mean you can search most things and Baeldung usually has a guide

obtuse gale
#

Ive got a friend who has a crap ton of udemy courses.... I wonder if his got any on thtis ๐Ÿค”

lunar cypress
#

no need to buy courses

#

there are free online tutorials for pretty much everything online

obtuse gale
#

Ive got a friend that whenever udemy courses go on sale for like 15 bucks he buys a crap ton lol

#

He can probably hook me up with that.....

hallow tide
#

and github is having issues yay

#

as soon as i push it goes down

heady birch
#

I want the report now

signal tinsel
#

Oof

signal tinsel
#

In intellij

#

When using format

#

How do I automatically put all methods on 1 line that can be

#

like from this:

#
    @Override public PrisonCore getPlugin() { 
        return plugin; 
    }
#

to this:

#
    @Override public PrisonCore getPlugin() { return plugin; }
distant sun
#

there should be a minus on the left side

signal tinsel
#

?

distant sun
#

minus - fold
plus - unfold

#

sec, let me open my ide

#

I dont think you can make it put the getters / setters in one line

signal tinsel
#

Aight

#

Rip

distant sun
signal tinsel
#

I guess

lunar cypress
#

How do I automatically put all methods on 1 line that can be
@signal tinsel don't

#

It's ugly

signal tinsel
#

I mean

#

Its fine tbh

#

And besides that I barely have open source shit

lunar cypress
#

How is that relevant thonking

signal tinsel
#

Its only me who has to deal with it

lunar cypress
#

that's the most important part in most cases

obtuse gale
#

So i hooked up my backpack plugin with autosell, so it sells the items in my backpack, but i get this error in console and it doesn't sell my items ๐Ÿ˜ https://paste.helpch.at/navufazodi.bash

prisma wave
#

@obtuse gale line 165 of BagController references something null

obtuse gale
#

@prisma wave ๐Ÿ˜ could you help me out maybe?

hot hull
#

He did..

obtuse gale
#

Yes i mean, help me fix the null...

somber tulip
#

You need to post some code for us to look at

obtuse gale
#

@somber tulip alright

#

i will do it once i get on my main pc

distant sun
#

you dont read minds @somber tulip ? Lameee

prisma wave
#

something is null

somber tulip
#

I'm still learning that ability unfortunately

prisma wave
#

You can trial and error it basically

#

Or make an educated guess

obtuse gale
#

Okay thanks so much!

prisma wave
#

Or debug

#

Or null check

#

Or all of the above

hot hull
#

I don't get why people ping when you've legit posted a message prior to their seconds apart

obtuse gale
#

it is prob this fucking API it is ass

prisma wave
#

Possibly

hot hull
#

I assume you mean autosellapi, it is

prisma wave
#

Null checking stuff from an API is always wise

hot hull
#

But hey I got it to work so nothing is impossible GWcmeisterPeepoShrug

prisma wave
#

You can't trust 'em

obtuse gale
#

Yes, because i removed the API and it works

#

But, i only have the issue when i do /sellall

#

because i want it to sell my items in the backpack ๐Ÿ˜

#

Wait, @prisma wave could it be because it is not depended?

#

the API i mean

hot hull
#

You only need to depend AutoSell

obtuse gale
#

Yes @hot hull i did not ....

hot hull
#

Also stop pinging

obtuse gale
#

Sorry, so if i depend should it be fixed?

hot hull
#

I mean try it, but you should always add the dependencies you're depending on

obtuse gale
#

Frosty yeah i should

hot hull
#

I assume you're the dev

obtuse gale
#

No, name change sorry haha

hot hull
#

:Whatthe:

distant sun
#

lmao

obtuse gale
#

Wait, can you depend on 2 things?

hot hull
#

You can depend on how ever many things you want

obtuse gale
#

Will i do it like this?

[depend] vault
[depend] autosell
hot hull
#

depend:

  • "vault"
  • "autosell"
obtuse gale
#

Will i do it like this?

- "vault"
- "AutoSell"
distant sun
#

no

#

and the name is case sensitive

#

autosell is not the same as AutoSell

obtuse gale
#

Gaby, what will i do then

hot hull
#
depend:
  - "Vault"
  - "AutoSell"
obtuse gale
#

ty!

#

So i have a question

#

I made a plugin that does instant respawn, which works fine for 1.8 players, but when player is using version 1.12.2 somehow they still get the respawn screen. Anyone has a fix.

hot hull
#

the 1.8 method doesn't work on later versions

#

Check their health and just clear their shit, don't actually kill the player

ocean quartz
#

It should be client side so it's probably not possible
You can go around it though, like frosty just said, don't kill the player, set it's health back to full, drop it's inventory and teleport him to the respawn location

candid falcon
#

Using the Holographic Displays API, will Holograms created using the API be permanent through restarts of the server, or would you have to recreate them each time?

signal tinsel
#

Yikes I have absolutely no time for a break within the next ~2 weeks

#

After that I might take a week off development

#

Or well, not entirely off development

#

Just less

normal ether
frail glade
#

Wowza, that's a lot of mobs.

normal ether
#

Ik, no idea what is causing them to spawn that many, and having another issue where mobs are just frozen, standing still..

ocean quartz
#

Is the server on hard mode?

normal ether
#

Yeah

ocean quartz
#

That's normal then I think

normal ether
#

Oh, I guess then

#

But for frozen mobs, ever dealt with that?

signal tinsel
#

Oh

#

Pog

#

Finally figured out the math formula for my enchant upgrade system

obtuse gale
#

@heady birch Would I use spring for any kind of website?

signal tinsel
#

Ye

obtuse gale
#

alright, i wanna include like a simple login for on my website that hooks to a database

#

Ive done it on php before but like php is just kinda gross

signal tinsel
#

FUCK PHP

#

There is not a single "language" I hate more

#

Than that clusterfuck

obtuse gale
#

I mean tbh it didnt seem that bad

#

Like just for a simple login for

#

with spring what ive seen is u gotta have controllers, and views and all kinds of stuff, if its just something simple php seemed to do the trick

signal tinsel
#

Tru

#

But its made for bigger applications

obtuse gale
#

yea, which is why im wondering if i should even use it for smaller apps

signal tinsel
#

Why not

obtuse gale
#

yea true....

signal tinsel
#

Just because its made for scale doesn't mean you can't use it on a small scale

obtuse gale
#

The thing is id want the security on this to be high

#

but i guess i might give it a shot and try

#

So should i be making like a User class? or like a BaseEntity class then making user extend that? Thats what ive seen so far, that being said idk much about it lol ive been looking at this thing

signal tinsel
#

Idk

#

I've never used spring

obtuse gale
#

@heady birch ๐Ÿ™‚

signal tinsel
#

I need to stop developing for the night

#

But

#

Idk

obtuse gale
#

No, don't stop developing if you do you will loose the next fortinite game you play

frail glade
#

It's an addiction... just one more class... just one more.

winter ravine
#

any one have time to help me?

obtuse gale
#

=asktoask

#

oh right

#

What do you need help with MuffinPlayz?

winter ravine
#

so

obtuse gale
winter ravine
#

oh

#

k i sent it there

heady birch
#

@obtuse gale Couldn't recommend it more for login and stuff

#

When I came from PHP to spring - I was like.. how do I actually process the login..

#

Spring does the actual authentication for you

obtuse gale
#

.alright

#

whre should i start?

#

I started learning some basic spring earlier

#

I was looking at the pet clinic thing idk if uve heard of it?

#

seems pretty straightforward

heady birch
#

Have you got intellij ultimate?

obtuse gale
#

ye

#

gotta love the education lisence

hot hull
#

you mean you aren't paying 600$ yearly thonking

heady birch
#

Ok yeah that's good

#

When you create a new project select "Spring Initializer"

#

Then you select the dependencies you want

#

Because you want a database backed login system, you probably want:

  • Spring Web
  • Spring Session
  • Spring Security
  • Spring Data Jpa
  • MySQL Driver
  • A template engine of some sort, I usually use Thymeleaf
obtuse gale
#

alright thanks, ill have a look

#

I saw they seperated data from web, should i be doing that as well? With spring initializer it just makes one module

heady birch
#

I think it's fine

obtuse gale
#

alright time to try and get started

radiant osprey
#

Where can i find the new Guilds Version

obtuse gale
#

@heady birch so would i have to make requests from the frontend to the backend or can i do this with thymeleaf or whatever

#

if so how do i make said requests

heady birch
#

Thymeleaf is basically your html

prisma wave
#

The main 2 options are:
Do it all in thymeleaf and just query services and stuff
make a front-end in angular or something that makes web requetsts to you API

heady birch
#

I've never done option 2

#

I think alot of the web is moving to that sort of stuff

#

I'd probably go the first option

#
@GetMapping("/blog")
public String getBlog(Model model) {
  model.addAttribute("posts", blogPostRepository.findAll(Sort.by("date").descending()));
  return "blog/blog";
}
#

Heres an example of a controller

#
<div th:each="post : ${posts}" class="post" style="margin-bottom: 50px;">
            <a th:href="@{'/blog/' + ${post.id}}">
                <h1 th:text="${post.title}" class="title"></h1>
            </a>
            <p class="subtitle">
                <span th:each="role : ${post.author.roles}" th:text="${role.name}" style="margin-right:5px;" class="tag"></span>
                <a th:href="@{'/user/' + ${post.author.username}}"><span th:text="${post.author.username}"></span></a> on <span th:text="${#dates.format({post.date}, 'dd MMMM yyyy')}"></span>
            </p>
        </div>
#

Gives you a little idea of how it works

#

It's more you add the data to thymeleaf, rather than thymeleaf requesting it

obtuse gale
#

mm, th: lets it know its a thymeleaf field right?

heady birch
#

yeah

#

<span th:text="${variable}"></span>

obtuse gale
#

alright so where does all my html go? Do i make a directory called views?

heady birch
#

It should create a templates folder in your resources folder

#

If not just create one

obtuse gale
#

ah

#

yea it did

#

So, should I make like a user class? that has like all the users information?

heady birch
#

Yeah

obtuse gale
#

what package should I put this in? Just tryna stick to conventions

heady birch
#

user

obtuse gale
#

o

#

wbats the next step from there?

heady birch
#

Make a class such as UserServiceImpl and implement UserService

obtuse gale
#

apparently user service is non existant ๐Ÿ˜ฎ

heady birch
#

Oh my bad

#

I made a UserService interface that extended UserDetailsService

obtuse gale
#

ah

#

so what do i do with that method?

#

the loadByUsername

heady birch
#

Oh actually

#

I'll be honest it's been a while

#

Mine looks like this

#
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    UserAccount user = userRepository.findByUsername(username);
    if (user == null) {
        throw new UsernameNotFoundException("Invalid username");
    }
    return new org.springframework.security.core.userdetails.User(user.getEmail(), user.getPassword(), mapRolesToAuthorities(user.getRoles()));
}
#

Where UserAccount is the custom object

obtuse gale
#

ah ok

heady birch
#

For now you may want to miss out mapRolesToAuthorities

obtuse gale
#

Whats userRepository

heady birch
#
public interface UserRepository extends JpaRepository<UserAccount, Integer> {
    UserAccount findByEmail(String email);
    UserAccount findByUsername(String username);
}```
#

You dont need to implement interface thoughthis though

#

You can just autowire it and it will work

#

Make sure its for your object though

#

It interprets the methods

#

so findByEmail(String email) find's it literally by the 'email' column in the database

obtuse gale
#

oh

#

nice

#

whats the int for? Is it ID or smthn?

prisma wave
#

yeah

#

the type of the id

obtuse gale
#

wdym by autowiire it?

heady birch
#

Where ever you need to use that class

#

You can

#

@Autowired private UserRepository userRepository

#

and you dont need to = it or anything

obtuse gale
#

o

heady birch
#

Make sure to annotate UserRepository with @Repository

obtuse gale
#

now,,,, i wonder wtf that is in kotlin

#

cos this aint workin

#

@Autowired private val userRepository: UserRepo

topaz bay
#

@field:Autowired

obtuse gale
#

@field:Autowired private val userRepo:UserRepo?

topaz bay
#
@Autowired
private lateinit var repo: UserRepo
obtuse gale
#

What does lateinit do?

#

Thanks

topaz bay
#

late initialized

#

You define the contract that the field will be initialized at some point after the creation of the object

obtuse gale
#

ah

topaz bay
#

Instead of the barebones definition of it being nullable

#

like in Java

obtuse gale
#

ye

#

@heady birch what excactly is the mapRolesToAuthorities(user.getRoles()));?

heady birch
#

in my case it just makes the roles in the database into spring authorities

restive bluff
distant sun
#

read the error

restive bluff
#

I do

#

I have tried fix the problem

distant sun
#

you cant have two thing running on the same port

restive bluff
#

THe port couldnt bind

obtuse gale
#

hm

#

so what else do i need to pass to the method niall

#
class UserServiceImpl:UserService {
    @Autowired
    private lateinit var repo: UserRepo
    override fun loadUserByUsername(username: String): UserDetails {
        val user = repo.findByUsername(username)
        return org.springframework.security.core.userdetails.User(user.email, user.password)
    }
}```
heady birch
#

return org.springframework.security.core.userdetails.User(user.email, user.password, Collections.emptyList())

#

Or the equivalent in kotlin to empty list

obtuse gale
#

oh nice

#

So whats next?

signal tinsel
#

I'm tempted to make a basic API for update notifications

#

To get the plugin version from songoda because it has the better API and then check that against the installed plugins version

#

How do I do so in java tho

#

I've never made a web application in java

heady birch
#

songoda

signal tinsel
#

yes

#

you have a problem with it?

#

xD

heady birch
#

This might be useful next steps

signal tinsel
#

I really need to add update notifications

obtuse gale
#

does intellij undersstand thymeleaf?

#

cos its giving me an error when im typing out all the th:text.... stuff

heady birch
#

No

#

At least I don't think so

#

It always sais that for me

obtuse gale
#

alright

#

bruh 2 gigs of ram

pallid gale
#

hungry boi

obtuse gale
pallid gale
#

just give it everything

#

sure it will appreciate it

#

so it can grow into a full fledged chrome

obtuse gale
#

ew

#

chrome

#

alrighty

#

im giving it 5gb

#

bruh now its telling me to update

frigid badge
#

use the jetbrains toolbox

obtuse gale
#

i do....

#

I literally click update, it updates, and nothing happens lol

frigid badge
#

enable auto update

#

and you never have to worry about it again

obtuse gale
#

it was on lol idk why it didnt update

#

anyway got that fixed

#

But my keyboard just stopped working with intellij lol this is so weird

#

bruh

#

nvm fixed it lol

heady birch
#

I think you can ignore that

#

It looks like a language file or something

#

I'd leave it out and just use normal html for those bits

#

Instead of <label th:text="#{label.user.password}">password</label> Use

#

<label>Password:</label>

obtuse gale
#

ah alright

#

next question lol

heady birch
#

Make a class like UserController and just place it in their:

#
@Controller
public class UserController {
  @PostMapping
  public void registerUserAccount(Model model, @ModelAttribute("user") @Valid YourUserObj user, HttpServletRequest request, Errors errors) {
  ...
  }
}```
obtuse gale
#

@heady birch if the html th: stuff is just for language files and stuff whats this for?

#
    <div>
        <label th:text="#{label.user.email}">email</label>
        <input type="email" th:field="*{email}"/>
        <p th:each="error : ${#fields.errors('email')}"
          th:text="${error}">Validation error</p>
    </div>```
#

The #fields.error

#

Still jus t lang?

heady birch
#

Just the #{label.} stuff

#

The rest is required

obtuse gale
#

ah

#

do i keep the label.user.firstname and stuff but just replace it with like firstname?

#

Or just remove ti completely

heady birch
#

yeah replace it

#

Im not too sure how language works

#

<label>Firstname: </label>

obtuse gale
#

hm

#

<label th:text="#username">username</label> would i keep the # lol?

heady birch
#

<label>username</label>

#

Just that

obtuse gale
#

oh

heady birch
#

i misunderstood your question

obtuse gale
#

same for input?

#

<input th:field="*{username}"/>

#

and the para <p th:each="error : ${#fields.errors('lastName')}" th:text="${error}">Validation error</p>

heady birch
#

No

#

Just the labels

obtuse gale
#

a;rogjt

hot hull
#

@ocean quartz, mind sharing that animation :p

ocean quartz
#

@hot hull Which one? ;o

hot hull
#

CrateAnimation

#

I just wanna see how you handled it :p

ocean quartz
hot hull
#

I think you got a typo in that package name

#

"componetents" ?

ocean quartz
#

i do

#

Fixed it, thank you xD

hot hull
#

oh god kotlin

ocean quartz
#

Without Kotlin that class would be soo awful though, when is a blessing for animations like that

hot hull
#

I mean atleast you documented it nicelly so that's a plus

#

Also wouldn't switch be equivelant to when, which would still be kinda organised, but ye this looks clean af

ocean quartz
#

Here is the problem though, to do the same as my first part of the when you're need to do:

switch(controller) {
  case 15:
  case 16:
  case 17:
  case 18:
  case 19:
    // Stuff
    break;
  // etc
}

While with when you can just do:

when(controller) {
  in 15..19 -> {
    // Stuff
  }
}
hot hull
#

ah

#

shitty java

distant sun
#

there's case x, y, z in newer versions but ye, that's cleaner

hot hull
#

"newer version" when everyone still on 8 :feelsbad:

ocean quartz
#

I wonder if you use that switch from the new version but compile for 8 would it work? ;o

distant sun
#

try ๐Ÿ˜ฎ

hot hull
#

probs not

ocean quartz
#

Imma try it

hot hull
#

Yea that's nice

distant sun
#

-> ?

ocean quartz
#

Yeah

distant sun
#

like a return?

ocean quartz
#

No it's just the same as :

distant sun
#

never used switch to assign a value so idk

#

xd

ocean quartz
#

Because you can't do it like that in previous versions xD

distant sun
#

fuck java 8

obtuse gale
#

Would this work in getting a random file from plugins/myplugin/worlds?

#
        val files = File(plugin.dataFolder.absolutePath + File.separator + "worlds").listFiles()
        val random = (0..files.size).random()
        val chosenMap = files[random]```
#

I do get some warnings....

ocean quartz
#

files.random() ;p

obtuse gale
#

o

#

is the warning important or na

ocean quartz
#

Hmm idk that one, and also to do the random i suggested you'd actually need to turn it into a list, i thought arrays also had it but no

obtuse gale
#

wait they dont?

#

intellij wasnt complaining about it

ocean quartz
#

I don't believe so

obtuse gale
#

I mean intellij likes it

ocean quartz
#

Oh I guess i was wrong then ;o

obtuse gale
#

oof

#

what themes that?

ocean quartz
#

Atom One Dark

obtuse gale
#

might give it a shot for something different, im currently using

#

Monokai Pro

ocean quartz
#

You'll need Material UI plugin for it

#

It's pretty nice

hot hull
#

Shame that's not a thing in 8 Matt GWvertiPeepoSadMan

ocean quartz
#

And ikr

distant sun
#

F

hot hull
#

I'd say time to switch to kotlin, but I'd commit sudoku before I'd even figure out what's what

ocean quartz
#

You guys should give it a try, once you get the feel of it, you'll see so many things that makes your life easier

obtuse gale
#

ye

#

It doesnt take long lol

#

Like at least for the basics that i know

ocean quartz
#

And before you all start talking about !! and ? you hardly use them, and when you do ? is pretty nice
Like val test = getSomethingNullable() ?: retun

lunar cypress
#

You hardly use ??

ocean quartz
#

Was mostly referring to !! tbh, which i never use

lunar cypress
#

I use it in certain situations where smart casts are not possible

prisma wave
#

I barely use any apart from the Elvis operator

#

@obtuse gale bear in mind listFiles() is nullable

ocean quartz
#

This example is one thing that I wish Kotlin would take in consideration
We know that right there the block field is not null, but it still wants us to assert it

lunar cypress
#

just use location.block

#

but yeah those situations are what I mean by "when smart cast is not possible"

prisma wave
#

you could just use block?.type

ocean quartz
#

That was just an example xD
And no BM doesn't work needs assertion

obtuse gale
#

Hey @ocean quartz

frail glade
#

If you're sorry, why did you tag him, along with whoever you tagged in the other channels?

obtuse gale
#

i did not mean to tag

#

i meant to remove the @

signal tinsel
#

You obviously did

#

You wouldn't apologize for a ping if you didn't mean to ping

#

That's.... not how it works

rotund egret
#

2 separate messages..

obtuse gale
#

What?

#

i apologized because i did not mean to ping lmfao

signal tinsel
#

I mean

#

No

#

That's not how it works lmao

obtuse gale
#

it is, haha

signal tinsel
#

No

#

xD

#

Honestly I've taken today completely off development and I like it

obtuse gale
#

๐Ÿ™„ okay okay geez

signal tinsel
#

I've changed maybe 10 lines of code today

rotund egret
#

It's very possible...?

Message 1: Pings
Message 2: Apologizes

obtuse gale
#

^^

topaz bay
#

@ocean quartz that smart cast failure makes sense though

ocean quartz
#

I can see that yeah

cedar jolt
#

Yo idk which channel to ask but i need some help with discord server verifications
i have it so players link their MC account with their discord account and that gives them a key , which works but how can i prevent people creating multiple discord accounts
ive got it so they need phone number to join but that isn't working

signal tinsel
#

Sup

obtuse gale
#

tfw u backed up your IdeaProject folder, but not all your projects are in there ๐Ÿ˜ข

#

Luytex sucks when it comes to searching for method or field line because it takes so long

rotund egret
#

Bro just backup your entire pc

Let me walk you through it.

Take pc, put it in storage
Buy new pc

Repeat every month

hot hull
#

oof

obtuse gale
#

big rip

#

and now my gradles fucking upppp

hot hull
#

ngl bois, this is sexy af

>.... [14:18:19 INFO]: @AsyncSettings(max, min, avg){x[4, 4, 5] y[2, 2, 3] z[5, 5, 5] yaw[7, 7, 10] pitch[7, 7, 10]}
>.... [14:18:19 INFO]: @AsyncData(Flamexus) -> (max, min, avg){x[0, 0, 0] y[0, 0, 0] z[0, 0, 0] yaw[8, 5, 0] pitch[10, 0, 2]}
>.... [14:18:19 INFO]: @AsyncTime(afkTime){135}
heady birch
#

๐Ÿคจ Huh

rotund egret
#

Ngl that looks like someone forgot what formatting looks like

heady birch
#

Upgraded intellij... what is this new font

#

Atleast it fixed the false dependencies issue

#

Thought it was that material theme you guys use that made your font look stupid

#

if (message.size != 7 or 14)

#

@topaz bay Kotlin is awesome

#

Don't know why you didnt tell me to switch earlier

hot hull
#

oof everyone switching to kotlin I see

topaz bay
#

Thats....

#

No... thats not going to do what you think it will

#

LOL

#

The kotlin or operator is equivalent to the Java bitwise | operator

heady birch
#

Oh

#

Lol

#

Also another question

#
when (downLinkFormat) {
    in 24..32 ->
}
#

downLinkFormat is a byte

#

24..32 is an int range I guess

#

It doesn't like that

topaz bay
#

.toInt()

heady birch
#

Like I could understand if it was the other way round..

topaz bay
#

Kotlin doesnt have numeric coercion

#

for example, In java you could do double a = 1;

heady birch
#

๐Ÿ˜ฆ Yeah

topaz bay
#

You cant do that in Kotlin

#

Numbers are explicit

hot hull
#

oh damn

heady birch
#

That shits good they said

#

Learn it they said

topaz bay
#
val a = 1
val b = 1.0
hot hull
#

In the end it doesn't even matter, as we're all just sheep in this cosmic slaughter

topaz bay
#

I bet you can tell which is the int

#

And which is the double

hot hull
#

a is the double, and b is the int

topaz bay
#

Correct

#

lol

#

Obviously

#

I... was playing along...

heady birch
#

why my print statement not working

#

oh I need to configure kotlin

topaz bay
#

Are you not using gradle?

heady birch
#

maven ๐Ÿ˜Ž

topaz bay
#

I'm so sorry to hear that

#

Why do you people do this to yourselves...

hot hull
#

Sx, gimme a tutorial for gradle and I'll switch over

topaz bay
#

It doesnt even need a tutorial

#

Its simple af

heady birch
#

Oh dear

topaz bay
#

And it will convert your maven builds for you

#

gradle init in the root directory of your maven project

heady birch
#

Dependency 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72' not found

topaz bay
#

You problem

heady birch
#

I like the when

topaz bay
#

Dont forget its also an expression

#

๐Ÿ˜‰

heady birch
#

Do we still use packages in kotlin

topaz bay
#

ofc

hallow tide
hot hull
#

Why are you even renaming it?

hallow tide
#

moving aint a thing

#

if the version is different it will move the old config to plugins/RoleSync/old/old_config.yml and put the new config.yml in plugins/RoleSync

#

tbh the beta was put because mainly everyone was wanting the /unsync command that i forgot about adding in the v1.0.0 so xD

hot hull
#

Just don't change the config, ez

hallow tide
#

xD

hot hull
#

Also dissapointed that you're legit advertising

#

Like damn show something off instead of just plopping the link

#

It's showcase, not advertisement

hallow tide
#

its to show off something you have done....

#

if you think i should remove it ill do gladly

hot hull
#

add a gif or some shit

#

sHoWcAsE iT

hallow tide
#

sure, ill edit it xD

hot hull
#

I get annoyed by everyone who does that, but still it's not against the rules (yet hopefully), so can't force you to not do that :p

hallow tide
#

im not a person who wants to be the advertiser, i thought that fell under showcase

#

as i said ill gladly remove it and i did

hot hull
#

Nah add it back, just add a gif or something to show what it even is

#

(don't wanna be a meanie :p)

hallow tide
#

i got something that would be good

#

what do you think now @hot hull ?

hot hull
#

Oh that's a bot stonks, I mean yea it's a picture, but what are the features :p

hallow tide
#

im trying to make it sound good without making it seem like im advertising it

hot hull
#

I was gonna say make like a gif showing it off, like when you sync a role, but that's probs effort so :p

hallow tide
#

yeah thats hard to do :p

#

cause its nothing special other than syncing roles and stuff

hot hull
#

How does it sync roles btw? Does it just take your primary lp group or?

hallow tide
#

permissions

#

next BETA hopefully will have API and ActionUtil

#

171 downloads so far (spigot/bungee combined)

hot hull
#

You've got spigot and bungee versions combined right?

hallow tide
#

till now no

#

i have it on trello to combine them, but that will take time since i will have to recode some parts to not repeat same exact code

hot hull
#

I gotta figure out how to do that in mine, Sx says bungee is very similar to spigot but never used it so no clue where to start :p

hallow tide
#

i basically copy pasted the plugin and changed .sendMessage to use the chat component api

hot hull
#

Oof

hallow tide
#

oh and some stuff with events

#

like switch Player to ProxiedPlayer

#

and totally change the FileStorage class just because bungee, and make your own config.yml instead of bukkit creating it

hot hull
#

I just need it to send messages through bungee so don't need all that :p

night cloud
#

How do I make an item not fixable by essentials? I solved with commands, but I don't know how to do it with signs

distant sun
#

Perhaps cancel PlayerInteractEvent?

distant sun
#

Random question but can you tell if a project was coded using IIJ community or ultimate?

quiet depot
#

@distant sun if it uses spring, it was made in ultimate

winged tendon
#

Hey uh

#

If I were to create a skyblock plugin, should I create each island with their own world, or should I have the islands all in the same world?

#

Atm Iโ€™ve made it so that the islands are created in the same world

remote goblet
#

Take a moment

#

and consider that

#

Every island

#

gets its own dedicated world

#

Worlds generation take up like 60% of the server startup logs, at the minimum

#

and 95% the cause for server files being so large

winged tendon
#

Yeah youโ€™re right, but how do servers like hypixel do it though? I was just wondering to see methods of bigger servers

remote goblet
#

Hypixel has thousands of servers

winged tendon
#

Nvm I talked to someone, and they said hypixelโ€™s devs completely rebuilt the world system so that they basically donโ€™t even have โ€œworldsโ€

remote goblet
#

Yeah

#

Hypixel devs do some wack shit

winged tendon
#

And send their own packets to the clients

remote goblet
#

but ngl don't think you're gonna get 30k players using your skyblock plugin on one server

#

at one time

winged tendon
#

This is for my own server :P

remote goblet
#

Generally just make islands in one world

#

and sperate them out

winged tendon
#

Yeah thatโ€™s exactly what Iโ€™m doing atm :D

remote goblet
#

how to do that? i'm still figuring that one out

winged tendon
#

Oh

#

Iโ€™ve already done it haha

remote goblet
#

it involves math which i can't do

winged tendon
#

Itโ€™s pretty simple subtraction lol

remote goblet
#

You think i can do that

winged tendon
#

Rip

#

It was kinda confusing for me too so I just drew it out which tends to help

remote goblet
#

eventually i'll tell someone to fix it for me

winged tendon
#

Fix what?

remote goblet
#

well

#

fix everything

winged tendon
#

Whatโ€™s โ€œeverythingโ€ lol

remote goblet
#

the entire plugin ?

#

my brain

#

ect

winged tendon
#

Oh youโ€™ve made your own sb plugin?

remote goblet
winged tendon
#

Island creation was kinda simple for me ngl

remote goblet
#

same

winged tendon
#

Took like ~30-45 min or maybe even less

remote goblet
#

I have a lot of stuff i need to finish but i dont want to

winged tendon
#

Iโ€™m kinda the opposite

remote goblet
winged tendon
#

I get carried away with other ideas and constantly start working on new projects, leaving my other ones unfinished

remote goblet
#

same

#

thats where 70% of my projects come from

winged tendon
#

Ye

#

I have a google doc for my todo list

remote goblet
#

when i open intelliJ

#

i just see mess

#

and i dont wanna fix it

winged tendon
#

Lmao same

#

I was working on a huge project and every time I would open it up, it took me a while to reorient myself to my code again, at one point it got so bad I just stopped working on it. Now Iโ€™m rebuilding a much cleaner version from scratch :P

hot hull
#

@winged tendon Quick tip btw, don't compare things to hypixel since it's usually a stonks cuz yknow hypixel is hypixel :p

winged tendon
#

Yeah

#

I realized

#

They do some crazy hackery

#

Practically rebuild Minecraft to their own liking lol

hot hull
#

I mean hypixel is hypixel

distant sun
#

@quiet depot cant use spring on community?

obtuse gale
#

I think only ultimate can do html

quiet depot
#

you can, but it's not a fun experience @distant sun

distant sun
#

I see

hot hull
#

You have ultimate do you not @distant sun ?

distant sun
#

yes

obtuse gale
#

So guys

#

i have an issue

#

I have a blockbreak & place listener and cancel the event, but somehow if you place the blocks very quickly it just let you build

hot hull
#

Latency issues? Or another plugin messing it up

obtuse gale
topaz bay
#

is your account an admin account?

obtuse gale
#

yea

hot hull
#

@ocean quartz Can I get an example of how to setup command aliases, I'm confused

ocean quartz
#

Using the annotations or the method?

hot hull
#

the method

ocean quartz
#
public class CommandClass extends CommandBase {
  
  public CommandClass() {
    setAliases(Arrays.listOf("alias1", "alias2"));
  }

}
hot hull
#

I only have to do this on one right?

ocean quartz
#

Yeah

hot hull
#

Gucci thanks

obtuse gale
#

How different is C# to java? Cos Ive wanted to make some changes to this for a while, but idk if ive got the skills lol

#

Its probably too complicated for me lol

quiet depot
#

identical

#

they're literally identical

obtuse gale
#

yea lol thats what im seeing looking at the code

#

I might give it a shot, what jetbrains program is for C#

quiet depot
#

rider

topaz bay
#

Identical my ass

quiet depot
#

almost identical*

topaz bay
#

Thats still too much

quiet depot
#

mostly the same

topaz bay
#

I'd say the logic syntax is identical

#

Everything else is different

quiet depot
#

k

topaz bay
#

Even with that, theres some logic thats different

#

like foreach

obtuse gale
#

lol im already failing to make a new project

lunar cypress
#

c# is very similar to java, that's fair to say

#

It won't take long to pick it up if you know java, skimming over the reference should suffice

autumn gust
#

anyone know if I can get EzPrestige plugin to work with luckperms?

prisma wave
#

not .g

#

lol

signal tinsel
#

I need to design a good messages system

#

For customizable messages

signal tinsel
#

@obtuse gale wut?

sharp knoll
#

why not just System.out.println("Your name is " + userName + ". Your age is " + userAge); @obtuse gale ๐Ÿ˜›

obtuse gale
#

I mean that could work too

signal tinsel
#

How do I give a player a multiplier with autosell?

#

thorugh api

#

through

obtuse gale
#

Hello I want my spawned snowball to go straight forward but now it falls after a 20 blocks in to the ground. It's for a gun plugin. Is the .setgravity(Boolean) working?

obtuse gale
hot hull
#

@obtuse gale Why not have like a counter in the map corner before it corrupts it?

#

Instead of that Wait for it

obtuse gale
#

Map update tick is difficult

obtuse gale
#

Also one difficult thing there is that you can't remove the text once you printed it that easily

#

I don't even know 1 seconds = either 4 or 5 ticks update

austere moth
#

Hey guys! ๐Ÿ˜„

#

I'm building my own protection block type plugin

#

I'm trying to work out the most efficient way to check if any block event occurs within a limitless list of regions

#

Regions are saved to a config file when the block is placed. I could iterate through all the regions for every block event but I feel this would be very inefficient and give unnecessary overhead

#

Any ideas to how I can improve this?

hot hull
#

Use objects, load them into a map, and just iterate through the map

austere moth
#

Would it not still be inefficient to iterate through a map every time any block event is triggered? @hot hull

hot hull
#

I'd assume so, but not sure of a better way to do it

austere moth
#

The idea of having an if statement run 100+ times for every block broken sounds like it would lag

#

I'll just iterate through a map, hopefully it won't cause problems

heady birch
#

Only when I use this project name

#

It adds desktop as a content root automatically and I have to remove it... why?

austere moth
#

Sorry bud, I've no idea

heady birch
#

โ˜น๏ธ Looks like it's fixed now but still not sure why, sorry for the rant ๐Ÿ™‚

#

angry messages removed

#

gradles fault i expect

prisma wave
#

@austere moth iterating over a set of Locations or something isn't particularly heavy. But you might find it faster to compare the minimum and maximum points of each region to see if the block is inside

austere moth
#

@prisma wave I did consider having min and max already calculated in the yml file however I need the radius of the region to be changable

prisma wave
#

then calculate the min and max when the plugin starts based on the radius?

austere moth
#

Yep, you're right

#

I'll do that

#

Cheers bud!

heady birch
#

I like kotlin has an object type

#

Nice intellij colours

prisma wave
#

No problem @austere moth

#

object is awesome

#

it's like a singleton without the annoying INSTANCE calls

austere moth
#

ProtectedRegion(String owner, String type, String worldName, MinMax minMax) {
this.owner = owner;
this.type = type;
this.world = Bukkit.getWorld(worldName);
this.minMax = minMax;
}

MinMax() {
this.ax = ax;
this.ay = ay;
this.az = az;
this.bx = bx;
this.by = by;
this.bz = bz;
}

#

@prisma wave any opinions on how this could be improved?

#

Each protection block in the config will be written somewhat like this:
owner: dajakos
type: 1
worldName: world
minMax: { 0, 0, 0, 10, 10, 10}

austere moth
#

@topaz bay Octrees?

topaz bay
#

yes

austere moth
#

Is it going to be worth learning for this?

topaz bay
#

I mean...

#

It depends..

#

Theres no reason you shouldnt just use worldguard

#

ew... double negative

austere moth
#

I thought about using WorldGuard however I feel I have more leeway to make specific changes

topaz bay
#

its not worth it...

#

What could you possibly want to change?

austere moth
#

I've quite a list haha

#

It'd be easier to go over it in a voice chat?

topaz bay
#

Absolutely not...

#

lol

#

If its a list, just say it

austere moth
#

Without going into the customisation of my other functions

#

Players aren't trusted should not be able to break in the region

#

Should not be able to open doors oooooor mmaybe they should, I haven't decided yet

topaz bay
#

wait...

austere moth
#

They should be able to open chests

topaz bay
#

You literally want land claiming?

austere moth
#

Tnt can damage within the regions

topaz bay
#

Theres like hundreds of plugins that have these features

austere moth
#

No no no no no no

#

More spefici

#

Specific...

#

Untrusted players should be able to break the protection block allowing the area to be raided

#

Not only the protection block but also custom blocks

#

Not an idea I want to share yet >:D

obtuse gale
#

Anyone else had an issue with intellij just freezing for like 1-2 seconds randomly while typing?

frail glade
#

Increase heap?

obtuse gale
#

How would one do that?

frail glade
#

Did you install through the Toolbox?

obtuse gale
#

na, it was bugging out like crazy for me

frail glade
#

Ahh then I have no idea

#

Might be a Google search

obtuse gale
#

ah found it

#

whats a good amount to set it?

frail glade
#

I set mine to 8G but that is excessive. Maybe 2 or 4?

quiet depot
#

yo glare

#

been playing ark?

frail glade
#

Haven't since the the one time I played it after downloading, why?

quiet depot
#

was just wondering if you noticed it's size

#

my ark install is 183gb lol

frail glade
#

Oh wow

quiet depot
#

it's meant to be like that

#

apparently unreal engine doesn't have good map compression

frail glade
#

Ahh

quiet depot
#

might have to delete my install, or move it off the ssd

#

unfortunately I can't justify having 183gb of ssd taken by a single game

frail glade
#

How big is the SSD?

quiet depot
#

240gb

#

it's my old sata one

frail glade
#

Oof

#

Okay

#

Yeah probably move it off.

heady birch
#

who wanna convert some c code

#

uses unsigned and it's proving difficult to implement in java

lunar cypress
#

How complex is it

heady birch
#

id say, very

hot hull
#

I saw that Niall

heady birch
#

Yeah i thought i wont bother him during a match

#

removed metrics ๐Ÿ˜ฆ

#

So looking forward to 1.16

hot hull
quiet depot
#

negatron

hot hull
#

Why not

#

eLaBoRaTe

quiet depot
#

it's a bit yuck

hot hull
#

Again, elaborate

quiet depot
#

yuck, with the ck being a more guttural sound than usual

hot hull
#

Just tell me what you don't like smh

quiet depot
#

lol

hot hull
#

want me to get rid of the command?

quiet depot
#

what's the difference between subcommand & command?

hot hull
#

command being /papi <command>

#

and subcommand being args of the <command>

#

nEaTnEsS

quiet depot
#

yeah nah

hot hull
#

Would you prefer the current carfufle that is the ecloud command class?

quiet depot
#

I'd do PapiCommand & EcloudCommand if u want shit like that

hot hull
#

It's /papi ecloud <all the 50 different commands>

#

So not really a nice way of formatting that

rotund egret
#

Oh boy that does sound scary

hot hull
#

Hence subCommands to hopefully make it a bit more organised

#

Gimme a layout you'd prefer, just so I can imagine what the hecc you're even thinking

quiet depot
#

uh

hot hull
#

no uh's

quiet depot
#

idk

#

just do whatever u want

#

i'll fix it up later

#

then u can see

#

I'm not one for planning

hot hull
#

I think it's pretty neat, and would deffo look better than the current mess

heady birch
#

Quick help me make a decision

#

Shall I make this an instance or keep it static

obtuse gale
#

iS thAt LiGhT tHemE

rotund egret
#

technically it's "intelliJ" theme

#

I'm assuming it's iJ

obtuse gale
#

Its 2020, personal preference isnt allowed anymore

obtuse gale
#

Hello my for loop executes 2 times can somebody help me?



                            for (ItemStack item : player.getInventory().getContents().clone()) {
                                if(item == null){
                                    continue;
                                }
                                if (item.getType() == Material.IRON_INGOT) {
                                    if(item.getItemMeta().getDisplayName().equalsIgnoreCase(plugin.getConfig().getString("glock19.ammo-naam"))){
                                        player.getInventory().removeItem(item);
                                        int ammofromconfig = plugin.getConfig().getInt("glock19.ammo-refull");
                                        int newAmmoAmmo = newAmmo + ammofromconfig;
                                        int maxammo = 10;


                                        lore.add(plugin.getConfig().getString("algemeen.lore"));
                                        lore.add(ChatColor.BLUE + "Durability: ยงa" + newDurability);
                                        lore.add(ChatColor.BLUE + "Ammo: " + ChatColor.GREEN + newAmmoAmmo + ChatColor.WHITE + "/" + ChatColor.RED + maxammo);
                                        meta.setLore(lore);
                                        e.getPlayer().getItemInHand().setItemMeta(meta);
                                        player.sendMessage("ยงaJe wapen is herladen!");
                                    }else{
                                        player.sendMessage("ยงcJe hebt niet de juiste ammo!");
                                    }
                                }else{
                                    player.sendMessage("ยงcJe hebt geen ammo!");
                                }
                            }
                            return;
                        }```
https://gyazo.com/14d3522eb8dce55d05357eacd9b22e60
hot hull
#

Don't post in two channels

obtuse gale
#

Sorry

signal tinsel
#

Why the fk is my intellij discord integration not working

rotund egret
#

Ask it

pale shell
#

How would you guys go about breaking blocks in a x shape?

hot hull
#

loopty loop

pale shell
#

I just can't work out how you do it tho, is it vectors or?

#

it's like going up then right or whatever somehow

lunar cypress
#

This is similar

pale shell
#

๐Ÿ‘ thank you so much for sharing about that

lunar cypress
#

The two locations to get the blocks between are the corners in your case

pale shell
#

this is gonna be fun to work out how to do this part, ha ha.

steel heart
#

Aye thatโ€™s the Kompye dude

prisma wave
#

he gets around

steel heart
#

Heโ€™s my idol

prisma wave
#

spooky

#

do we need the ghostbusters?

ocean quartz
#

Ooh just tried IJ ultimate's database viewer thing and it's awesome ;o

frail glade
#

Show

ocean quartz
frail glade
#

Ooo

abstract hearth
#

Donโ€™t know if this is the correct place to ask this, but Iโ€™m asking it anyways.
Iโ€™m trying to create a skript and one of the key features is to keep a Boolean (or just a variable would work too) per player, and store that info.

Basically I want to test if that player has already ran the command or not. Is this even possible and if so how would I go about doing it?

hot hull
#

Nah fam, we don't do skripts here

obtuse gale
#

sKrIpT

obtuse gale
#

you know its gonna be a good guide when it starts like thsi

hot hull
#

Lmao

obtuse gale
#

they literally have eclipse downloaded.....

#

I guess its not much better than notepad but still

obtuse gale
#

Hello i want some1 sugget to me a plugin that hide my plugins and block commands bukkit and / + tab

remote goblet
#

TreysCommandBlocker

quiet depot
#

damn, it's insane how inconsistent mojang naming is

#

left 1.10, right 1.15

#

nether quartz -> quartz
block of quartz -> quartz block
chiseled quartz block -> chiseled quartz block
pillar quartz block -> quartz pillar

hot hull
#

iT's Mc WhAt U eXpEcT

quiet depot
#

idk

#

some consistency

#

just a little

#

they're shooting themselves in the foot every time they rename something

#

(which btw is like every update)

#

imagine the code just to update from old versions

hot hull
#

iT's Mc WhAt U eXpEcT

quiet depot
#

mega yikes

hot hull
#

They should have set it to something, and just used that from the start

#

That's why you should map out projects ๐Ÿ˜‰

quiet depot
#

nah bet the devs are fucking it up purposely just so they can fix it later, get the line counts up for $$

#

and ew no mapping out bad

#

planning is lame

hot hull
#

lmao

quiet depot
#

im jk ofc i plan please hire me

#

frosty, have you ever actually planned a project out?

hot hull
#

nope

#

Why do you think I already refarctored this commands shit three times?

#

4th time incoming soon

quiet depot
#

just write it right first numpty

hot hull
#

You keep disliking it, so sthu

quiet depot
#

I told you to do whatever, push, so I can look at maybe fix it

hot hull
#

Trynna make it papi3 worthy btw, so just perhaps, a big perhaps I can be of some use

quiet depot
#

yeah it actually could probably be ripped out and put into papi 3

#

same api

hot hull
#

Cause you know, rpf never gonna be finished <o/

quiet depot
#

hey i'm working on it right now

hot hull
#

โค๏ธ

quiet depot
#

just going through all the materials between 1.7 & 1.15

#

linking them to 1.15

#

it's a painful process

#

and I haven't even began on "related" items

#

armour, eggs, potions, etc

#

think I'm just gonna skip that for now

#

I want to work on papi, and this material api is way bigger than I imagined

hot hull
#

I mean once you have it made, it'll be smooth sailing tho :p

quiet depot
#

lol no

#

it'll be a fuck ton of testing

#

I just want to get a beta papi poc out

#

tabnine is a great plugin btw

#

really good suggestions, dare I say even better than intellij's

distant sun
#

let's test it out

quiet depot
#

I don't actually use it in intellij

#

I use it in sublime

hot hull
#

@quiet depot You mean your stuff doesn't work immediately? That's weak

quiet depot
#

when did I say otherwise?

#

it'll be a fuck ton of testing
oh this

#

guaranteed my code will work perfectly first time

#

but should still test

#

if something is broken, it's someone elses fault

#

like a suggestion someone gave

#

or a pr

hot hull
#

Yaya lies

quiet depot
#

pff

hot hull
#

A couple of days has already passed btw

quiet depot
#

?

#

did I say I would do something in a couple of days?

heady birch
#

kite holograms

hot hull
#

No, the contest results @quiet depot

quiet depot
#

oh

#

bump it then

heady birch
#

Someone please teach me traditional dependency injection, I've practically got used to just using frameworks

quiet depot
#

why do you need to go back?

heady birch
#

In large applications when I used to do traditional DI i'd end up with getters like getOneThing().getMainForExample().getAnotherComponent()

#

Because some times I do not want to use a framework due to it's startup overhead

#

Desktop application's mainly, swing's startup time is slow enough

quiet depot
#

I just want to point out that, that example is likely bad

#

depending on the real example, it's most likely a violation of the single responsibility principple

heady birch
#

most likely

#

That reminds me

#

I have a class that 1 keeps track of some objects

#

But then it also keeps track of listeners for those objects

#

so If I add an object to the Manager, it calls listener methods on all the listeners

#

Violates SRP since it's kinda doing two things??

quiet depot
#

yes

heady birch
#

What would you do

#

What suffix do I even give it

#

Holder Container Tracker

quiet depot
#

what

#

no

heady birch
#

But then its only responsibility is to literally be a list

quiet depot
#

the listeners would be roughly handled by your event dispatcher

heady birch
#

roughly

quiet depot
#

yes

heady birch
#

violates srp as well

#

you get what im saying

quiet depot
#

no because I don't understand the problem at hand. You've just given me an abstracted example, not what you're actually dealing with

heady birch
#

One second

#

I have a good example

#
public class UserManager {
    private Map<UUID, KiteUser> userMap = new HashMap<>();
    public KiteUser getUser(Player player) {
        if (!userMap.containsKey(player.getUniqueId())) {
            userMap.put(player.getUniqueId(), new KiteUser(player, plugin));
        }
        return userMap.get(player.getUniqueId());
    }

    public void removeUser(Player player) {
        userMap.remove(player.getUniqueId());
    }

    public Collection<KiteUser> getUsers() {
        return userMap.values();
    }
}```
#

Manager is pretty abstract

#

I don't know the correct word to actually explain what it does?

#

UserRetriever, UserFinder, UserTracker?

obtuse gale
#

Fetch?

quiet depot
#

Manager is fine

#

it's meaning is subjective (in regards to programming)

heady birch
#

NO

obtuse gale
#

Lol

quiet depot
#

yes, it really is

heady birch
#

Ok

quiet depot
#

anyway that's fine

obtuse gale
#

Yeah i always use "manager" for things like that

quiet depot
#

you'd benefit from some final usage

heady birch
#

Yeah, upgraded to intellij and it warns me

#

Blah could be final

#

Piggy fancy a code review?

hot hull
#

For only 69.99 you can get an exclusive code review from Piggy!

heady birch
#

I'm aware of final stuff

#

Possible structuring

#

ConfigFile really should not be named ConfigFile

quiet depot
#

bit busy atm

heady birch
#

No problem

distant sun
heady birch
#

Probably

distant sun
#

ChatColor color1, ChatColor color2, ChatColor color3, ChatColor color4, String text, List<String> frames, int pauses or smth like this

heady birch
#

but then id have to make a temporary list and reverse it and that's acouple object creations i probably don't want to do

distant sun
#

I mean, use the same structure but as a method, just an idea idk.

#

You know better than me.

heady birch
#

In fact trump knows better than anyone

#

He knows more about java than any of us I hear

distant sun
#

Lmao

hot hull
#

Why not just use String.. and then get the color with that @distant sun would be neater :p

distant sun
#

Why? You can just use the color

hot hull
#

sMh

obtuse gale
#

failing hard at spring framework rn lol

pale shell
hot hull
#

Cause u nub

#

What you trynna do?

distant sun
#

@pale shell just use the plugin

pale shell
#

I can't find any api docs for it?

distant sun
#

There are a few things you can use anyways, AutoSellAPI and SellHandler are the main classes

hot hull
#

the api worked "fine" for me

distant sun
#

Ok but if you have access to the plugin why not use it instead

hot hull
#

true true

#

I don't tho :p

pale shell
#

because i didnt know where everything was in the plugin?

#

Also i cba to download it. lol. Aaaand it's going in a shared github.

distant sun
#

Thats stupid lol