#dev-general
1 messages · Page 115 of 1
sb.toString()
why is it printing out the right thing
no idea
In what context would you do smth like &#Abcdef and not want it to be a color
¯_(ツ)_/¯
In what Aj?
You sure thats a stringbuilder?
I usually prefer to use Bukkit.server.broadcastMessage() I think it is
yeah you sure that's an SB
The good one at least
@open creek you have 24 hours to check your emails before I open a fraud case against you
You have been warned
yes its a string builder lol
Lol
@true bane what did he do?
Fraudulent chargebacks
so why tf this not wrokingREEEE
then don't call toString() for Bukkit#broadcastMessage aj
Send code
broadcast message needs a string
println("Final sb: $sb")
Bukkit.broadcastMessage(sb.toString())```
Final sb: $sb prints out the string builder as it should be, but nothing is getting broadcasted
@prisma wave
You have 24 hours to check your emails before I open a fraud case against you
Interesting place to send a warning

broadcastMessage only messages to people with a permission iirc
wait what
no broadcast() requires a perm KM
@pallid gale he blocked my discord so there he will see it
broadcastMessage() sends to all
No I mean you picked #dev-general
There's multiple methods.
Oh, where should I put that lmao
Could of emailed the dude or #off-topic I guess
Yeah he wont
Well fuck lemme make a new discord
thats literally the point of blocking
More relaxed area to discuss development
I mean I coded 2 plugins for him if that counts?
Try sending it to just 1 player @obtuse gale
i DoNt cArE
I personally use Server#broadcastMessage over Bukkit#broadcastMessage
though not sure if it makes any difference
probably doesn't
Sout
That's why you request 100% upfront lmao
wait is it something to do with frcstys method maybe
Potentially
Im using frcstys method to convert it to the fancy colours, which returns a string not a text component
@jovial warren all the Bukkit methods delegate to Server so no it doesn't matter
TextComponent.fromLegacyText(String)
Pretty sure you need to send a component
And then you using sender.spigot().sendMessage
The colours aren't supported for normal chat
if you translate the colour codes then you can send that as a String
The hex colours?
ChatColor#translateAlternateColorCodes
not sure KM
but it's always worked before
Pretty sure protocol wise they only come from the JSON component
this is with the new API
ah okay
fun String.colourize():String{
var translation = this
var matcher = HEX_PATTERN.matcher(translation)
while(matcher.find()){
var hexString = matcher.group()
hexString = "#" + hexString.substring(2, hexString.length -1)
val hex = ChatColor.of(hexString)
val before = translation.substring(0, matcher.start())
val after = translation.substring(matcher.end())
val translation = before + hex + after
matcher = HEX_PATTERN.matcher(translation)
}
return ChatColor.translateAlternateColorCodes('&', translation)
}``` thats frcstys method
yeah no idea
afaik they aren't supported for normal chat
well how do i broadcast a text component??
Just loop all players
loop through online players
make a helper function for it
wait does ChatColor#translateAlternateColorCodes not support hex colours?
that's bull shit
fun Bukkit.broadcast(component: TextCompoment) 😏
Not really
The bukkit one doesn't
KM, I tried that
fun Bukkit.broadcast(component: TextCompoment)😏
that's already a thing afaik
Because it's not part of the normal chat
but it shat itself
public String translateHexColors(String string) {
final Pattern hexColorPattern = Pattern.compile("(&#([0-9a-f]{6}))");
final Matcher matcher = hexColorPattern.matcher(string);
while (matcher.find()) {
final String hexColor = matcher.group(2);
string = string.replace(matcher.group(1), constructChatColor(hexColor));
}
return string;
}
private String constructChatColor(final String hexColor) {
final StringBuilder colorBuilder = new StringBuilder("§x");
for (final char hexChar : hexColor.toCharArray()) {
colorBuilder.append("§").append(hexChar);
}
return colorBuilder.toString();
}
at least, it always has been in the past
TextComponent.fromLegacy returns like an Array <out> or someshit
No?
also, I thought things like Bukkit#broadcastMessage would have support for BungeeCord's chat component API
like Sender#sendMessage does
but the chat component API has been implemented
not in bukkit
in Spigot at least
Yes
who even uses Bukkit? use Spigot
How do you convert a Component (from kyori text) to a base component kek?
no fucking clue
lol
what even is kyori text
How does fcstys method even work
what's the point of it though
I'm going to try and test my method now
how do i convert my string to a BaseComponent
fromLegacyText
that's pretty much what Bukkit#broadcastMessage does KM
You literally sent it lol
just for some really stupid reason it doesn't have CC API methods
E o
returns an Array <out>
I literally said
No it doesn't Aj..
BaseComponent[]
That's just kotlin being kotlin
hold up
Server#Spigot
Player.Spigot#sendMessage
player.spigot().sendMessage(TextComponent.fromLegacyText(Color.colorizeM(msg)));
Use the spread operator
Bukkit.server.spigot.broadcast()
Ew
Bardy
spread??
No
has support for components
It shits itself
o
Converts an array to vararg call
Eventhough it says it does support that, it doesn't actually
use Bukkit.server.spigot().broadcast(BaseComponent[]... components)
why not?
I just told you ;C
It won't work
it doesn't support chat components?
Frosty said it's broken apparently
that's stupid
I just tested it, it legit doesn't work
@distant sun Did you want the method for replacing that format?
md_5 needs to get his ass in gear
Make an extension function on Bukkit
@heady birch not really but that's nice, ty :)
still doesnt work lol
elaborate
could be invalid json
hm
moral of the story: frosty bad
does it matter its lowercase?
what
the hex code
Doubt it
That method is kinda gross though
Why add # to substring(2) when the # is already present?
And the amount of mutability there is disturbing too but maybe that's me being fussy
im passing itA#<fe1d19>B#<19abfe>
thats just text lol
But like
The A won't be coloured lol
but the B should still get converted
yeah
iknow lol
Send help 
are you doing that
Invalid messages?
in notepad?
f
ew
How am I bad ;C
obfuscating your code is stinky
It works perfectly fine for me
how do i get the json??
Wdym json????
I wonder if i can decompile the jar with the maps to navigate it on IJ
You're using components
Maybe aj broke the method when converting then lol
lol
val HEX_PATTERN: Pattern = Pattern.compile("#<([A-Fa-f0-9]){6}>")
fun String.colourize():String{
var translation = this
var matcher = HEX_PATTERN.matcher(translation)
while(matcher.find()){
var hexString = matcher.group()
hexString = "#" + hexString.substring(2, hexString.length -1)
val hex = ChatColor.of(hexString)
val before = translation.substring(0, matcher.start())
val after = translation.substring(matcher.end())
val translation = before + hex + after
matcher = HEX_PATTERN.matcher(translation)
}
return ChatColor.translateAlternateColorCodes('&', translation)
}```
I made it a string extension, maybe i fucked up somewhere there
oh
I'm fairly sure there's a kotlin alternative to Matcher but that's besides the point
o_O
this might be a bruh moment
The moment of realisation?
nope
If not I'll make one
we all good
that's idiomatic
Senpai pls
Everyone be nicking shit, when Nicole was the first one to make this :kek:
Oh well
This is the true representation of how lazy devs are
if you don't want it nicked don't make it open source
Why reinvent the wheel when we know something works Frosty?
why when i only have one condition it works, but adding the or operator breaks it 
var i = readLine()?.toLowerCase()
while (i != "paper" || i != "scissors" || i != "rock") {
println("Invalid Input")
i = input()
}
return i
}```
Yea was gonna say katsu, but still
The moment of realisation?
nope :((
No one like my cross platform version 😦
it should be && @onyx loom
wait wot
isnt && AND?
recompiling ONCE AGAIN
Yes
Aj, clean and compile
Yeah KM AJ's lost his mind, we're gonna need yours
Im dumb
You want to say it's invalid if it's not rock, AND it's not paper, AND it's not scissors
o nice
Not or
See, I no dumb
ah i see
Imagine if it actually worked :C
that took too long to make lol
It gets the amount of characters in your message, generates that amount of hex codes, and puts one before each thing, so you can make a gradient with any colour
val ALLOWED_INPUTS = setOf(
"rock", "paper", "scissors"
)
if(i !in ALLOWED_INPUTS)``` much better
#4a56b9
#a3f577
:))
mine used alot of copy and pasted code lol
Let alone this server keeps timing out every 10 minutes
bm that setOf didnt work, saying it found String? instead of String. oh well
Yeah you got to calculate a step
To fit the gradient in
When you have 2 chars the step is literally the range between the two colours you entered
If you have 10 chars the step would be the range between two colours / 10 e.g
you might wanna do i.toLowerCase too
O yes
🙂
btw I think i could be a val
And you do return input() instead of i = input()
Slightly cleaner imo
And you could use if instead of while then
done
I'll be a minute to get on pc but sure lol
but
Sec
Hey KM you should review my god awful Kotlin
sure
i could probably make allowedInputs constant right?
i was just about to say that
companion object
you should probably also make all the strings constants
you can use const val for that
I would use a raw string (""") instead of \n
and would use repeat(5) instead of for (round in 1..5)
fun repeat(times: Int, run: (Int) -> Unit)
it takes a lambda
repeat(5) { round ->
//blah
}```
finally computerChoice could be simplified a bit
the computerChoice variable is useless
because when is an expression
return when(randomNumber) {
1 -> "rock"
2 -> "paper"
3 -> "scissors"
}```
you could also make all of the options an enum
and have the winning resolution resolved in there
true
tell me more about enum?
return listOf("rock", "paper", "scissors")[(1.3).random()]
perfection
1 sec
planning it out
x?
oh yeah
¯_(ツ)_/¯
ok @onyx loom maybe nvm about the enum I couldn't figure out a way of making it nice
https://img.bristermitten.me/15-43-08-25-06-20.png I was thinking this but it wouldn't work
hmm
Ok KM, its not, like, finished in any respect, but how bad is it? https://github.com/katsumag/ZombFields
dataFolder.mkdirs()
saveResource("config.yml", false)
saveDefaultConfig() does this
the builder pattern in kotlin is kinda ew but ik that's just the lib you're using
ArmyCommand.plugin could be val
inventory.setDefaultClickAction { event -> event.isCancelled = true}``` this could benefit from a line break here and there
private val inventory: Gui = Gui(plugin, InventoryType.HOPPER, "Warriors") no need to declare the type here
the builder pattern in kotlin is kinda ew but ik that's just the lib you're using
MF-GUI
Blame Matt
the things in Extensions should be separated more cleanly - put your string extension functions in things like Strings.kt, etc
yeah
might fork and add some kotlin extension functions 😏
fun getPluginConfig(): ConfigurationSection {
return JavaPlugin.getPlugin(ZombFields::class.java).config
}
fun getPlugin(): ZombFields {
return JavaPlugin.getPlugin(ZombFields::class.java)
}``` the very existence of these 2 is... questionable.
I don't think static access should be that simple, as it becomes something you rely on more often
you should be prioritising DI
Countdown.kt should use the bukkitRunnable function you defined
and should be using val unless it needs to be mutable
like in java
I don't think Countdown should be responsible for parsing the time input either. It should take a Long time, probably in ticks, and deal with it. parsing should be done in a different class
val countdowns: HashMap<UUID, Countdown> = HashMap()
since it's static, it should be COUNTDOWNS, and should probably also be val COUNTDOWNS = mutableMapOf<UUID, Countdown>(). Follow Liskov
although having countdowns be static seems a bit of an odd decision
either make CountdownManager an object and leave it at that, or make none of it "static"
that's all I think
oh dang, I got the full KM experience huh? Ima just take a minute to read it all
Used primarily in my Enum class to get my plugin config since I use its constructor for, well, the Enum
Its a great honour, yes. Idk if theres a bow discord emoji but if there is, I'll use it
that may be, but I think you should be calling the long methods manually
having the static access so accessible means that you're more likely to use it later as an easy way out
plus it's less explicit
might fork and add some kotlin extension functions 😏
Wall of fame material
As for the rest I'll fix it rn
awesome
never used .filter before, but is this how i would use it?
Bukkit.getOnlinePlayers().filter{ it.hasPermission("whatever.whatever") }.forEach{
}```
yes
alright
but ideally on a new line
lol
Ugh finally managed to update the plugin to 1.16, one letter change and boom it's all broken lmao
rip
it's the same as java's filter
never used that either
I've used it like once and I was so proud
I was so proud
return getAPI().getParty(party).getOnlineMembers(true).stream().map(partyPlayer -> Bukkit.getPlayer(partyPlayer.getPlayerUUID())).collect(Collectors.toSet());``` takes some Party plugins players that are online and converts them all to players. I get excited over one liners, ok? Leave me alone
imagine knowing what a stream is
that... is hideous
But it works
🤮
Lets be honest the plugin isn't really lightning fast anyway
that's a lot of packages
Is IChatBaseComponent getString implemented from Message class what's sent as the packet payload
is there a better way of doing this?
if(Bukkit.getVersion().contains("1.16")){
player.spigot().sendMessage(*TextComponent.fromLegacyText("#<B518AF>You have done thing".fancyColour()))
}else{
player.sendMessage("&cYou have done thing".regularColour())
}```
Yes
public static final boolean HEX_USE = Bukkit.getServer().getClass().getPackage().getName().contains("16");
😏
I mean not really
That'd be an oof
@prisma wave https://github.com/knightzmc/pdm/wiki/The-Gradle-Plugin#usage Can you elaborate a little bit on the shadowJar part?
Pointless
String -> Text Component ->Json -> IChatBaseComponent -> Probably back to json -> Packet sent to Client
I got a possible work around, do I want to disclose it though
Just tested it. Worked first try from what I can see, KM.
awesome
Ugh I hate libraries
basically, the gradle plugin doesn't do everything - you still need the runtime (which is tiny) shaded, which actually does the downloading and classpath stuff. this is found at me.bristermitten:pdm:version. it'll be shaded automatically by the plugin, but if you want to do it yourself you can do disableRuntimeBundling() and declare it manually
Ahh
I feel like this is an incredibly stupid question rn lol
So basically If I have a list of UUIDs, in the main class, and I wanna pass it to command classes, I do that with DI, but if I edit the list in one of those command classes, it wont be edited in the other command classes will it?
I feel like thats a dumb question lol
There needs to be a way to get the closest legacy colour from the hex lol
Distance formula should apply same here,
sqr root of sum of differences of R, G and B values
pick the one with the least distance
Im just getting some weird results
which is why passing mutable types around is dangerous
define dangerous
you shouldn't pass a mutable list
your function should return the values that should be added
and the caller function should control the mutability
its a command
define dangerous
can cause bugs basically
then you should encapsulate access to the list via another class
don't just expose the MutableList type
wdym
I want it to be modified lolHave functions on the injected main class to do the modifications for you instead
class ListController {
private val list = mutableListOf<Any>()
fun add(value: Any) {
//perform checks on value
list.add(value)
}
}```
^
o
you should never be directly exposing any mutable type
Also probably shouldnt be having the UUIDs stored in the main class
Anyone know how to make an IChatBaseComponent? xD
why?
I want something to happen the when someone places down lava, but i dont want it to happen if the last placed item was lava, so it will only run if the last placed thing was not lava
Would I just store thing in like a Map<Player, IDK>
If its only to check if last placed was lava, you could get away with just using a set of Players or UUIDs
Hey all, does anyone know how to make a rectangular world border? I can only seem to make square ones.
don't think they exist
I've seen it done before but they often require other plugins.
I was wondering how they did it.
¯_(ツ)_/¯
alrigth I'll mess with some apis
@ocean quartz This is how
private static Object createIChatBaseComponent(String text) throws ReflectiveOperationException {
return chatSerializerMethod.invoke(null, "{\"text\":\"" + text + "\"}");
}
3?
what?
also why would one want an IChatBaseComponent?
also @heady birch I need some help with my bot lol
I mean internally
I mean maybe it's not a Spring issue
String -> Text Component ->Json -> IChatBaseComponent -> Probably back to json -> Packet sent to Client
@heady birch
Whats the issue
okay that's a lot
basically, I've got my TrackService set up, which in one of the methods it calls AudioPlayerManager#loadItemOrdered, which is supposed to load the item
yet it can't seem to find any results for certain queries
Database
no databases here
it's supposed to query youtube and find a search result, then play that
and it did that just fine before, but it doesn't seem to want to do it now
idk why
if I debug it, it shows that it's doing it properly and sending it the right thing
in TrackService?
or in my ResultHandler implementation
the one that handles the result of loadItemOrdered
The one you get the results from
the AudioPlayerManager?
Future<Void> loadItemOrdered(Object orderingKey, final String identifier, final AudioLoadResultHandler resultHandler);
which gets implemented like this:
@Override
public Future<Void> loadItemOrdered(Object orderingKey, final String identifier, final AudioLoadResultHandler resultHandler) {
try {
return orderedInfoExecutor.submit(orderingKey, createItemLoader(identifier, resultHandler));
} catch (RejectedExecutionException e) {
return handleLoadRejected(identifier, resultHandler, e);
}
}
The only thing i can suggest
Is make sure they are all annotatted with service I guess
AudioPlayerManager isn't my class, so ofc it isn't
but it's beaned
@Component
class AudioPlayerManagerBean {
@Bean
@Scope("prototype")
fun audioPlayerManager(): AudioPlayerManager = DefaultAudioPlayerManager()
}
okay apparently there's no autowiring for MusicService
lemme see
@jovial warren Trying to fix the JSON message lib to work on 1.16 and the packet requires IChatBaseComponent
ah okay
@heady birch you wanna come and have a look around for yourself?
send me a friend request and I'll send you my anydesk code lol
why does the spring initializr use the kotlin DSL 😔
before I request it as a paid job I just want to make sure my idea is possible. Is there a way to make an alert system for owned faction land? So if a faction owns land and a enemy faction member comes within 100 blocks it alerts the faction land owners?
I imagine it could cause lag if not done properly
there isn't much difference
can you think of any issues with the idea?
not really, although if it was badly made it could cause lag
could you suggest anyone?
😦
@gusty fulcrum anyone with the dev role is guaranteed to be at least semi-competent
hey you able to take another look around my project by the way?
alright
Okay thanks
How to get Guild claims from API ?
which API for which plugin for what software?
Guilds
Spigot plugin?
@frail glade you might know this
we can't see #guilds smh
I don't have access to guilds
#spigot-linking is where to go for support
^^^^
but i don't own it so ¯_(ツ)_/¯
I don't need support
I'm asking because somebody asked for Guilds support in one of my plugins
asking how to use the API is still needing support i guess
^^^^
yeah Guilds is fully OS
Since it has a strange way of dealing with claims
I guess I wanted to save some time and ask
there we go
clipboard errors lol
I already know the repo link
I did not ask for the repo link
Sorry for assuming HelpChat would help
that sounds awfully passive agressive considering we are trying to help
that wasn't so hard
took about 2 minutes of browsing
That's a kotlin class
and... your point is?
so what?
Point is I won't shade kotlin for a 100kb plugin
you don't need to
^^^^
it'd be shaded into guilds
so you can treat the classes as provided
KOT LIN
GOOD
JAVA
NICE
@heady birch you read a ma messages
you send me a friend request?
and kind of busy sorr
Thats odd that it takes an instance of worldguard wrapper
Yeah
you're odd
Ok pharmacy boy
I'll try and suggest to use another plugin first
I would never need a pharmacy
lol
😈
WHAT
Pharmacies are fire for random shit
can't type
They got the good shit
indeed they are
Pharmacies are good
they are where I get my ADHD medication from
I wonder, was that a 100% pharmacy
Or was it like a CVS
I dont think we have pure pharmacies here
that's odd
Theyre always inside of other places
the one in question is for buying things and picking up prescriptions
is that unusual in the states?
I dont think Ive ever seen a building who's only purpose is a pharmacy
Ive also like... hardly ever get prescribed things so... meh
usually they'd be in some sort of parade of shops
get that imperial shit out of here
just in case
most are standlone here
LMFAO
we have streets of fully attached buildings
yeah not us
ah yes
its perfect wdym
The usa knows no defeat babyyyy
cough vietnam
https://www.a1taxis.net/blog/wp-content/uploads/2018/03/The-Maltings-St-Albans-2-768x614.jpg that's what the maltings looks like
like parades of shops
we don't have those here
yw?
or at least I've never seen one
I dont think vietnam counts as a "lose"
debatable
beautiful
wow
Adding brackets doesn't make it more appealing Ori
doesn't mean you won
We didn't surrender
that's what they all say
it only gets better
List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<String>>>>>>>>>>>>>>>> stringList = new ArrayList<>();
AAAH
i mean it'll just compile to List
https://paste.helpch.at/hihovupadi.java you don't like moy coding style?
i mean it's very future proofed
it's very stupid
who knows what kind of data you might need to store
and memory inefficient
that's gotta be large in memory
well it kind of is
I suppose if you filled it
but remember type erasure is a thing
can you even fill a List<E>?
idk what everyone is talking about
ArrayList yes
i dont see the issue with that
just throw it on one of google's massive servers
and give it infinite swap
or the entirety of the hard drive's worth of swap
that'll take long to fill
LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<LinkedList<String>>>>>>>>>>>>>>>>>>>>>>>>>>>> list = new LinkedList<>();
``` not good?
oh ffs
its giving me a headache even making it lmao
that's like a 30-dimensional list
for no absolute reason whatsoever
if you can find a use for that I'll pay you £1
and the use has to be verified by me btw
anyway cya lot later
Adios
Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<Map, Map<String, String>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mapList = new HashMap<>();
``` even better
Woo grayscale working!
The lines don't get close than that right?
https://discordapp.com/channels/164280494874165248/695431668944732270/725723964877570068 what were you thinking of adding KM?
Hey! How do I code a OnlyProxyJoin-Plugin?
So only joining from the proxy ip/port?
AsyncPlayerPreLoginEvent, you could probably check it in there (match from config), and if they're coming from outside the IP, disallow it
Hmm ok
And are you sure, that the player will have the same ip the server has?
Or proxy
Cause, I think that's the problem
No, I don't imagine they will. You can listen for a PluginMessage on the bungeecord channel though, rather than Event probably. Example code can be found here:
https://proxy.spigotmc.org/414c27a7b37af96e339dcde49e2544f9e0e2979a?url=https%3A%2F%2Fi.imgur.com%2FPgh7wgn.jpg
https://proxy.spigotmc.org/0790eff6b98f35fe7be987e538b1e6bcd44d52be?url=https%3A%2F%2Fi.imgur.com%2FwHVU0nC.jpg
(taken from Spigot forums, so it might need updating)
Ty, pal. :3
Even better idea: write it in Kotlin
🙂
Im learning new things here. :3
SpOnFeEd
So, what does a Executor Service do? Does it wait until this happens, what this Future submits?
@errant geyser not entirely sure, Probably a DSL for item building, and some other stuff. Never actually used the framework so I don't really know what's in it
hmmm ok
@topaz bay Curious question, why are these files lower case?
Are KT function files supposed to be like that? ;o
Because theyre just files
Ooh okay thank you, naming some right now so wanted to do it right ;p
I'm pretty sure the convention is still to use camel case
but I dont care..
Its easier for me to do it this way
easier how lol
camel case is how we define classes
at a glance, its easier to see that these sort of files are not classes
fair point
but i guess that's implied by the name of the file rather than the capitalization anyway
ProcessDeclarations.kt
Is what the example gives
Who's to say that isn't the name of the class in that file
How could I fix this?
what is that
A flytime plugin, @remote goblet

How could I fix this?
player doesn't exist, you named it p
How do I initialize it?
@lavish notch rewrite the whole damn lot lol
....
Just use p there is no point in declaring it again
what the HELL Mackenzie...
code quality < 0
It's not my code....
Good
fair enough
Delete it.
rewrite it
Trying to update an old plugin
rewrite it
Also Eclipse stinky
rewrite it
rewrite it
Also Eclipse stinky
https://img.bardy.me/intellij-meme.png
I barely know plugin development lol
even my code doesn't get that bad 
rewrite it in KOTLIN
^^^^
katsu always with the big brain...
rewrite it in CSS
😄
lol
Thx Kaliber for the truly inspirational meme
wait why do i have 2 reddit accounts wtf
¯_(ツ)_/¯
Kqliber is when i got the memes on my phone, ItsKaliber is logged in my pc
https://www.reddit.com/r/kotlinmemes/comments/hfiipo/sxtanna_is_our_great_and_wise_prophet/ HAHAHAHA
LMAO
yeah
man this sub is great
I hate everyone involved in this
that was BM
i hope u are all members
I know
https://www.reddit.com/r/kotlinmemes/comments/hfrwhv/burn_it/ this is my personal favourite
good meme format 10/10
IT AINT TRUE
yeah that's me @jovial warren
spitting fax
unless you can't see yourself sx
lol
I hate everyone involved in this
Sx we recognise you as our lord and saviour and you treat us like this?
^
You DARE to strike your GOD
our great and wise prophet
that's true
sorry papa
that one's definitely true
i need to watch into the spiderverse
usually you are
👉👈
I fucking love Kotlin, look at the difference
gay
also i can say shit like that because im blocked by sx so he doesn't see it
i think
sx join us 😦
pls no
Absolutely fucking not.
y not
thank god
Fuck that kid, that's why
LMAO
I fucking love Kotlin, look at the difference
👍
gj
thats illegal
thats the coolest one
i remember the sid shuffle i think
sid shuffle > tootsie slide
Learn how to do the Sid Shuffle as your favorite Ice Age character teaches you the moves to the coolest dance craze sweeping the globe. And don't forget to see Ice Age: Continental Drift - in theaters July 13.
http://www.facebook.com/IceAge
http://www.iceagemovie.com/
http://w...
sjkid zthe szhloth
this is all the spiderman movies/shows
the disney & marvel relationship is wack because they can't get the rights to the decent shit
yea
Sony owns Spiderman, and they are pussies about it
but atleast we still hopefully can get tom holland's spiderman
They already agreed to that
Hot Pink out now! https://smarturl.it/xHotPink
Follow Doja Cat:
https://www.facebook.com/DojaCat
https://www.instagram.com/dojacat/
http://www.dojacat.com/
Follow Gucci Mane:
http://Instagram.com/LaFlare1017
http://Twitter.com/Gucci1017
http://Facebook.com/GucciMane
#HotP...
i love doja on ig recently lmao
Daily reminder Kotlin gud
Daily reminder to nest the fuck out of your List<E>
List<Object>, God
no
List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<String>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stringList = new ArrayList<>();
like this
Disappointed you didn't use an Object rather than a string
Looks cool tho
In Kotlin would that be like 100 nested mutableListOf() calls?
listOf
what the fuck ori
or not
it would be pretty much the same in kotlin
but val stringList = listOf(listOf(listOf(listOf(listOf(listOf(listOf(listOf(listOf(listOf(listOf(listOf())))))))))))))))))
anyone made some more kotlin memes?
I'll draw one tomorrow
oh right yeah go to sleep
If I put effort into it its gonna take me days on mobile
List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<String>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stringList = new ArrayList<>();
@remote goblet that doesn't even compile smh
I like how you actually tried that
lol
not enough nesting there thats why
not enough nesting on the actual assignment
Certbot stinky. I spent like 4hrs trying last time and Bardy had to do it for me, tho idk what he did
certbot is literally the easiest way to manage ssl certs in the history of computing
How tf do you manage to fuck it up
certbot certonly --standalone -d katsumag.me comes back the request timed out, verification failed. Port 80 and 443 are open, DNS records pointing to my VPS
¯\_(ツ)_/¯
Uhhhh
Youre using standalone, which would imply you have no server software?
Which would beg the question of why you are specifying the domain in the command?
They give you exactly what to run on their website, based on which software and OS youre running
And I ran what it gave me .-.
Which is certbot certonly --standalone, then type your domain when prompted. But you can pass it in as a flag so I do that instead
Using CentOS 7 and Caddy
Are you not using server software?
Wdym exactly?
Are you sure its stopped?






