#dev-general
1 messages ยท Page 100 of 1
lol
Laughs in static
@topaz bay you mentioned modules, got any usefull threads which would be relevant to my case?
Frosty what you trying to do
Scroll up
Oh i see
So, can ya help me?
I dont understand what you need help with
You can't expect me to know how to properly make modules, without ever reading/messing around with them..
wtf my code actually works
Is something like this a good example of indicating what I should be doing Sx? https://github.com/badbones69/Crazy-Crates
I dont liek the 'core' idea
what is this magic
Elaborate Niall
What would be so wrong with having it all in one?
Literally nothing
If its spaghetti code, thats an issue
Heavy modularization and proper design fixes that though
And no
Not at all
That is not what I mean when I say modules
Can you explain it to me then :p
module
each of a set of standardized parts or independent units that can be used to construct a more complex structure, such as an item of furniture or a building.
Yes, but maybe even deeper than that
Deeper how?
I dont know exactly what youre combining, so I can't answer that
You would want to take apart these plugins, and define common logic
Encapsulate those into modules, and compose them into the implementation of those plugins
its a javascript engine
doesn't Kotlin do a good job of that?
?
or is Kotlin/JS a completely different thing to Nashorn
Not even close
anyway, oracle suggested GraalVM as a replacement
No
There are open source alternatives to the nashorn engine
Like Rhino
maintained my mozilla
yeah true
Whenever I post a commision no one want to do it ๐ฆ
what?
@heady birch cause you like swing
some graphics2d
tf is that?
I feel like I could simplify something with the setTier method, its very similar to the create method
https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html you mean this @heady birch ?
yeah
AWT?
from what I've heard AWT is obsolete by now
yeah it's been replaced with Swing
or I just need a way to shrink a rectangle at origin OX, OY, by scale S
so you want to shrink a rectangle while maintaining its aspect ratio
basically shrink it by a scale factor rather than by making the points smaller manually
http://www.java2s.com/example/android/graphics/scales-the-given-rectangle-by-the-given-scale-factor.html that looks like it'd work
it's a custom method
public static Rectangle scaleRectangle(Rectangle rect, float scaleFactor) {
return new Rectangle(Math.round(rect.x * scaleFactor),
Math.round(rect.y * scaleFactor), Math.round(rect.width
* scaleFactor), Math.round(rect.height
* scaleFactor));
}
is the actual code there
fun Rectangle.scale(scaleFactor: Double) = Rectangle(math.round(this.x * scaleFactor), math.round(this.y * scaleFactor), math.round(this.width * scaleFactor), math.round(this.height * scaleFactor));
or something similar to that in Kotlin
though obviously you could definitely make that look better than that
I'm sure sx could definitely make that method better
or you could just use the the scale provided in Graphics2D before drawing the rectangle
https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#scale(double, double)
not sure that's what he's after Yugi
wdym?
Thats generally how you scale whats rendered
you could scale back to 1 after drawing the rectangle if thats what you mean
ยฏ_(ใ)_/ยฏ
the problem
then scale it back to normal
Im not drawing
Am I on the right track?
Explain?
Im passing a "Viewport" to a external renderer that renders a map
I need to scale that viewport to zoom in/out
@hot hull you have any context for that?
And move it when panning
Am I on the right track?
@hot hull
Shouldnt the core be a module?
I've legit no idea
Let me confirm
I'm trying to follow Sx's instructions but it's hard since noone actually wants to link me to a thread which would explain it, and everything I've found on YT is just a yikes
A "core" plugin, which has multiple plugins inside it
okay
I have 5 custom plugins, which I'd like to combine into 1
so create different modules
I think core should be module at the same level as the others. Not completely sure tho. Go through a few random repos
name the modules either modulename or parentname-modulename
in lower case
each module has its own pom.xml with its own dependencies
each child depends on the parent
So the parent being Core?
yea so the current structure is correct
parent should be used for the pom
each child has its own pom yugi
only common dependencies across multiple modules should be in the parent
you shouldn't actually need any code in the parent module tbh
Yea which would have the spigot repo, etc right?
Yes
take a look at the structure there
that might give you an idea
Also watchout for cyclic dependencies
isn't that where say 1 depends on 2, and then 2 also depends on 1 Yugi?
yes
wait, meaning I can just import the projects as the modules, and it should be correct right? (after fixing up the poms ofc)
which creates a circle
Yes
might work yeah
sec lemme import all the plugins, and I'll let you know when I've done that
You would need a central JavaPlugin class tho
all of your project and module names should be lower case by the way
as in your main class
no?
wdym?
your artifact ids should all be lower case
No
yes
thats nto what I mean
that's what I mean
You would need a central JavaPlugin class tho
this one?
Yes
ah okay
obviously
got a bit confused lol
I'd suggest having them as separate projects and then depending on them in the main project if you want them as one
pls put <> around the link
Don't bully lemmo
I'd suggest having them as separate projects and then depending on them in the main project if you want them as one
^^^^
but yes there can be code in the common module
it's better to make it abstract
have the least amount of code platform dependent
modules are for separating different aspects of the same project
Hes combining 5 different plugins so im not sure if he'll have anything common
^
surely he will
Why are you doing this btw?
Some plugins depend on each other btw, so idk if that's something to consider
I feel like I could simplify something with the setTier method, its very similar to the create method
Yugi, better to have it combined than having a shit ton of jars
lol ok
no u Sx
that's not really true @hot hull
In the end it doesn't really matter if they're together does it
So let's say for neatness sake
for neatness I'd seperate them in all honesty
Its kinda hot
but doesn't matter much
Lemmo, I was instructed to combine them, so that's not an option :p
weird people
I mean considering all the plugins will be custom, it kinda makes sense that they're all combined in a core, atleast for me 
well i mean its a core for a reason
for neatness I'd seperate them in all honesty
I second
You second a lot of things Bardy
I second things that make sense
I mean the whole 'core' thing is absolute bullshit anyway
it only makes it a lot harder
in this instance, for what you are creating, it makes sense to do it that way
if you can seperate things it's so much more organised
if you can seperate things it's so much more organised
^^^^
Thats not entirely true
That's why I'm here asking how I should properly seperate them
It highly depends on how you structure your code
not talking purely code though
To still have them organised, but have them in a single jar file
if ur only combining a few plugins then i dont see the fuss
just have the core depend on all the other plugins?
Are css rotations supposed to be in the first 2 quadrants only?
Okay so let's start from scratch, and you're gonna tell me what approach you'd take (not combining them isn't an option)
I have 5 plugins (rn)
- Tokens
- Tools
- Ceggs
- Upgradables
- Elixirs
You're a 4head
nah but I mean it's a commission who cares you are getting underpaid anyway
okay, if I wanted them to be all as one, I'd put them all in the same project

that's what they want that's what they get
let em find out themselves what they prefer
I'm actually choosing myself to get underpaid here btw
I'd just combine them in to the same project, unless it's something like a plugin with both bukkit and bungee support there really isn't a need to separate them in to separate modules
Bardy I mean yea, but how would I seperate the different plugins within it?
surely not with packages since that would get messy
simple answer is: you don't need to
just use packages
it means you can have all the commands in one place, all the listeners in one place, you get one main class, and you just put everything else in separate packages
That's messy if it's combined like that tho
I still wan't to have the different aspects seperated
you can't have 5 main classes in one JAR
phaser is drunk, im getting -180 after 180. Im taking a break
You get what I mean Bardy?
yeah ik what you mean
I'd suggest just having one configuration, one messages, etc. and one main class for the whole project
one plugin.yml
and different packages for where you have different things
DirectPosition2D newPos = new DirectPosition2D(baseImageOrigin.getX(), baseImageOrigin.getY());
this.mapContent.getViewport().getScreenToWorld().transform(newPos, newPos);
ReferencedEnvelope env = new ReferencedEnvelope(this.mapContent.getViewport().getBounds());
env.translate(env.getMinimum(0) - newPos.x, env.getMaximum(1) - newPos.y);
viewport.setBounds(env);
``` ๐
it's hard to explain what exactly I mean the way I mean it
That'd be messy af tho, wouldn't it make more sense to seperate them into folders and have seperate configs?
^
you could always do it the way essentials does it
As in
Core-folder:
Tokens-folder
- config.yml
- tokens.yml
Tools-folder
- config.yml
just structure your config to separate modules plugins
So back to the way I had it at the start? ๐
idk how you had it at the start
I mean you want everything organised
and the best way to do so is to have them be actual seperate plugins
so tell them
that it should be seperated
to be a lot more organised etc
or just say fuck it
and just do it
like don't care about it
com.mydomain.projectname
โ commands -> has commands in it
โ MyCommand
โ MyOtherCommand
โ listeners -> has listeners in it
โ MyListener
โ MyOtherListener
โ tokens or whatever
โ TokenStuff
โ MainClass
?
You know what, I'll experiment for a couple of hours with a test plugin, and just see what I like
Probs the best solution
does my tree make it any easier?
I'd still want to keep the command etc plugin seperated, but yea sorta
yeah I think that's gonna be your best option tbh
Rectangle paneArea = ((JComponent)this.getMapPane()).getVisibleRect();
DirectPosition2D mapPos = ev.getWorldPos();
double scale = this.getMapPane().getWorldToScreenTransform().getScaleX();
double newScale = scale / this.zoom;
DirectPosition2D corner = new DirectPosition2D(mapPos.getX() - 0.5D * paneArea.getWidth() / newScale, mapPos.getY() + 0.5D * paneArea.getHeight() / newScale);
Envelope2D newMapArea = new Envelope2D();
newMapArea.setFrameFromCenter(mapPos, corner);
this.getMapPane().setDisplayArea(newMapArea);
Odd way to scale
You could make it run as separate plugins running from the same jar, but its probably not the solution you need xD @hot hull
There is like...
0 reason to use the D asserter on those
Without an assertion there, it defaults to double
^^^^
0 reason to use the
Dasserter on those
@topaz bay Its decompiled
why are you using decompiled code?
gross
Figuring out how they scale the viewport
@old wyvern Could be
Since that would allow me easy access to plugin specific configs
Without adding custom shit
@heady birch if it ain't open-source, you ain't supposed to use the code
Im basically converting a Zoom in/out button to a scroll wheel, that scales a buffered image, then re-renders the map
It is open sourced
well then Download Sources and Documentation?
Meh I just control-b for these few classes
you should always Download Sources and Documentation
or at least, Download Documentation
Rectangle paneArea = getMapPane().getVisibleRect();
double scale = getMapPane().getWorldToScreenTransform().getScaleX();
double newScale = scale * zoom;
DirectPosition2D corner =
new DirectPosition2D(
startDragPos.getX() - 0.5d * paneArea.width / newScale,
startDragPos.getY() + 0.5d * paneArea.height / newScale);
Envelope2D newMapArea = new Envelope2D();
newMapArea.setFrameFromCenter(startDragPos, corner);
getMapPane().setDisplayArea(newMapArea);
OUTDATED - SEE https://hub.spigotmc.org/stash/projects/SPIGOT - SpigotMC/Spigot-API
What's that supposed to indicate Yugi?
So I should make an abstract class, which has an onEnable and onDisable methods, and extend that within my plugin classes, or am I missunderstading this?
that JavaPluginLoader just loads other plugins' main classes I think, so I think he wants you to just make the core's main class load all of the other plugins
@old wyvern please confirm
@hot hull
You can probably create an instance of your main class that extends JavaPlugin and use JavaPlugin#init (its package private so youll need reflection) and then call enablePlugin with that instance. Havent really tried this so you might need to do some testing, I think should work.
I've played around a tad and I've got this, but I don't think this is what I want since it'll build them into seperate jars
wtf is that aspect ratio tho
@hot hull dont use maven
Sx, I'll switch to gradle once I figure out how the fuck I'm supposed to make this, does legit noone else do this since there's no docs on this like anywhere?
do not be mean, thank you
Whats wrong frost?
Jackson sucks
Still completelly lost lmao
What exactly are you havign an issue with rn?
Why
I find jackson works quite well with retrofit
Slow
Jackson is faster than gson right?
YES
Jackson is the slowest JSON library by a lot last I checked
If you use the streaming api I assume
Jackson is the slowest JSON library by a lot last I checked
@prisma wave Hmm
huh
It was the fastest for me (streaming api)
Gson is the slowest at deserializing JSONs by the first google result
just from that image you can see that Gson is by far the slowest
that's probably serialization
Lol
ahhhhh
It's deserialization
source?
Thats probably Deserializations a second or something
So- jackson wins ๐
you'd've thought as Gson is maintained by google that it would actually be really good at what it does
maintained by google is not something you want to be known for
Google creates and destroys projects all the fucking time
Angular is maintained by google and that's a very well-designed and high-performance frontend web framework
and?
you would've thought a massive company like Google would keep up the same standards in most of their projects at least
like I heard Go was made by Google as well, and apparently that's a decent language as well
that's where you'd be wrong
guess you learn something new every day then
The quality of the products is not in question
Its the longevity
Like I said
Google creates and destroys projects all the fucking time
Go is a good language
But not everything Google makes is spectacular
With that said I think gson is pretty good overall
I saw from that test that kotlinx.serialization is actually the fastest out of those
is it just me or does Kotlin seem to do just about everything right
Ah well, I guess I'm just gonna use packages for this
๐
Gonna try and make it as clean as possible, but I've got a slight feeling it might get messy
Ok guys this is hard
I built my own kind of hacky map viewer
It's alright but I re-invent the wheel
GeoTools exists and it does alot of stuff I already do
Shapefile's, map rendering e.g
@old wyvern Could I just make my main class abstract, and then just extend it within my plugin main classes?
Only thing is the UI is early 2000s pretty wack
kotlinx.serialization is the fastest because it doesn't use reflection
Which has positives and negatives
It has tool bar style Zoom in/out via click
it's much more explicit than gson is
I want to convert it to mouse wheel nicely
But its proving pretty difficult and Im sad
@Yugi Could I just make my main class abstract, and then just extend it within my plugin main classes?Why?
I'm gonna try and go with seperating them into packages
Since I'm to dumb to understand what y'all mean
Did you try loading each of the plugins separately ?
No, I've no idea what you mean by that, I've tried looking at the thing you sent me, but I don't get it
Well what I mean is that JavaPlugin has a init(args...) function
It takes in the plugin description...ect
init(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader)
You can create each instance of your 5 plugins and call init on them to setup the properties and then just pass it to the enablePlugin
oh?
Do not do that
Anything wrong?
bukkit's plugin management system is already a fucking mess.
Do not play around with it
I mean that would be the easiest way to go about
You also literally cannot do that
Wdym?
bukkit doesn't allow you to create new instances of plugins on your plugin's classpath
๐ฅบ
I see
yeah playing around with Bukkit's plugin management system is probably definitely a bad idea
What are you trying to do Frosty?
Ayy third time explaining this :p,
Combining 5 custom plugins into a single jar
sorry just woke up
That should technically work I think
Don't forget the onLoad
Not sure which methods I should even have in onLoad
?imgur
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/ to upload images/screenshots.
alright
so is it possible to make a thing that allows users to type in PSC code and let me accept or deny it?
i can pay
You wanna use swing?
LETS GO
lol
๐
๐ฆ
get out
get out
@jovial warren
Jtk looks good but its not java
why would you write a desktop application in Java
who said i was making a massive app thats gonna make me millions 
okay
but Java applications generally aren't exactly the fastest loading or most responsive
true
Well JVM needs to warm up before its fast welp
also true
Probably a design flaw somewhere
Maybe you should rewrite the whole thing?
Or think about it for 3 months
If anyone is bored, how bad is it? https://github.com/katsumag/Prace
very
I had a look at a couple
Not too shabby
Just keep up on naming conventions
And keep brackets/spacing consistent
Thanks Niall
Nice
idk
๐
๐
im never trusting u again
๐
have fun making a seperate app for each individual operating system and processor architecture
jokes
multi platform
Imagine attempting to defend legacy software
I just like the swing metal feel and snappyness
What in the hell are you talking about
Metal look and feel?
Uh
thats a real good smooth feeling
you have to put
....
Why would you willingly use that ugly shit!?!?!?
What is going on in your brain?
Swing.setProperty(KEY_SMOOTH_WINDOW_RESIZING, VALUE_SMOOTH_WINDOW_RESIZING_ENABLED);
๐คข
Lmao im joking
NO TY
I use swing for its faster graphics2d rendering
That doesnt make sense
Correct
uSe JaVaFx
@topaz bay Clean enough?
no
;c
Wat
Lmao
This is how the main class looks like https://paste.helpch.at/zehuposusi.java
If you say it's not clean imma be mad
Poor
๐
And at least have some sort of logic to the ordering of your fields
fucking bullies
I could create an example
Main.class
uh
KiteBoardPlugin.class that would be
Eh its too big
You can have CriteriaRegistryImpl.class instead
public class CriteriaRegistryImpl implements CriteriaRegistry {
private final KiteBoardPlugin kiteBoardPlugin;
private final Map<String, Criteria.Factory<?>> factoryMap = new HashMap<>();
public CriteriaRegistryImpl(final KiteBoardPlugin kiteBoardPlugin) {
this.kiteBoardPlugin = kiteBoardPlugin;
registerCriteria("PERMISSION", PermissionCriteria::new);
registerCriteria("WORLD", WorldCriteria::new);
registerCriteria("EVENT", (config) -> new EventCriteria(config, kiteBoardPlugin.getEventTriggerManager()));
}
@Override
public void registerCriteria(final String identifier, final Criteria.Factory<?> factory) {
factoryMap.put(identifier.toUpperCase(), factory);
kiteBoardPlugin.getLogger().info("Registered criteria '" + identifier.toUpperCase() + "'");
}
@Override
public void unregisterCriteria(final String identifier) {
factoryMap.remove(identifier.toUpperCase());
}
@Override
public Criteria.Factory<?> getCriteriaFactory(final String identifier) {
return factoryMap.get(identifier.toUpperCase());
}
}
Before my kotlin days
๐
its.. sniff beautiful Niall ๐ข
height to width
^
Damn that looks nice
They have the WORST documentation ever
latest everywhere is v3
but every example is v2
I quit on adding a button and just added a interactive sprite instead
2 hours to submit ๐
how did you make that?
magic
js canvas?
or html canvas?
what I'm on about though is that surely that was actually made in like Photoshop or something, afaik js canvas can only manipulate images to a certain degree
I'm wondering how tf you design images that good
its literally just shapes
phaser
bit of shadow in there as well
A circle you mean?
phaser
https://phaser.io/ this?
Desktop and Mobile HTML5 game framework. A fast, free and fun open source framework for Canvas and WebGL powered browser games.
yes
that's for making games in HTML5 though isn't it?
you didn't make a game
actually that techincally is a game I suppose
ยฏ_(ใ)_/ยฏ
Im so confused with what you are asking
nothing
Did you have to use phaser?
Yes
gross
@topaz bay Any library you actually like?
@heady birch Phaser actually sucks to use tho
Ive never used it
a bit low level, but I do enjoy working with processing
Did you find it?
Yes ik tbh what exactly is the use case of dijikstra?
||1||||5||||๐ฃ||||1||||2||
ah
I have these in next semester
The path finding algorithms are abstracted and steppable
The app has 2 modes, one where it runs it fully until it finds the end or nothing
And the other allows me to press the right arrow to step through
Soo, trying to setup dialogflow on a docker now, i would need to set the GOOGLE_APPLICATION_CREDENTIALS path on the docker and not on the VPS right? >.<
ugh giving up for now
can someone help me with recource packs
The examples provided in Python tutorial is rigged on SoloLearn
They are very confusing for beginners
Had to use the Comment section once to see how users explain it
Class:
1 + 1 = x
Homework:
1x + 2y^5 = 18, find z
It always goes wrong in test just like that ^
@normal talon making one
I'm making a crackshot pack and it doesn't load it. The pack is here:
https://cdn.discordapp.com/attachments/719652282504970363/719668834188918906/3lInkSMP_CS_RP.zip
Just created my own Command JDA framework ๐
Iโm really happy with it tbh
I donโt think this is the right channel
Blurry
Throws NPE
what throws npe?
z
that makes no sense
Z has no value
Z is null
Calling z throws NPE
I assume that was maths (y^5)
But since you consider it this way. z is not even declared
Yes
There is no NPE still
@ocean quartz you can set the environment
either using compose or using the -e flag
can also use an env file
--env-file
Feels like I already asked this question but...
Should I be recommending Python for anything nowadays
i recommend kotlin 
Well it depends what for?
python stinky
u stinky 
y u mean
Now that im having to work in java I appreciate kotlin alot more
Hello, i'm learning to code anyone got any plugins to start off with/
Learn java first
@hot hull ๐
@heady birch Why ๐
Why ๐
real devs learn clojure and Scala first
Real devs learn C first
KM, I'd claw my eyes out if I had to use Clojure ngl
Real devs learn brainfuck first
niall
aj3douglas
what is the quickest way to affine transform a shape ๐ฆ
AffineTransform.setFast(true)?
org.hibernate.exception.ConstraintViolationException: could not execute batch
๐
Idk why I get this running the system locally
probably some kind of transaction issue
considering im using repos for one dao and a session for another
@topaz bay can you think of any drawbacks of language level function result caching? For example ```
@SISO
addHello = value::String -> String {
yield("Hello" + value)
}
addHello(" there") //function called ordinarily, result and params are added to a Map
addHello(" there") //result is obtained from the Map
I think for expensive functions this could be pretty cool, but perhaps things like thread safety would need to be considered. Thoughts?
Whats your opinion on papi expansion made in kotlin? is it worth it
Absolutely not.
an expansion? Not worth it imo
@prisma wave eh
It sounds nice for smaller things, but that just increases runtime memory usage, and will pile up over time
Depends on how you actually have the compiler converting instructions
Yeah good point
Do subsequent calls short circuit?
Like for example, in Java, strings get cached
I would imagine the instruction created by the compiler doesnt attempt to recreate that string, it would just retrieve the value
same for int
Yeah it probably would
although since it's interpreted at the moment it would probably just be in some sort of Map
so yeah retrieving the value
Absolutely not.
Why not just AOT compile your Java code?
Thats a lot of imports
lol
Thats stupid!
Whats stupid?
wildcard import
Thats... no.
I have intelliJ specifically set to not wildcard import
!!!
why!?!?!
laughs in java.min
There are a couple of reasons actually
Im interested..
- When you're working on something as generally complicated as this, a polluted namespace is both annoying and unmaintainable
- The imports section can be collapsed out of the way, it does not interfere
true true
Placeholder api..
I need bukkit as well?
Thought papi would have bukkit as dependency?
@prisma wave @topaz bay am I bad for doing this:
private static final String KEY_SYMBOL = "symbol";
//somewhere else
setDefaultOption(KEY_SYMBOL, "โฅ");
//another place
options.getString(KEY_SYMBOL);
Makes it easily changable
๐คฆโโ๏ธ
Better way
Easily maintanable and slightly neater
If in the future I want to change it, I can
Not during runtime ๐
@prisma wave @topaz bay Do you guys recommend using final exceissvley
As in in method declarations as well?
I recommend not using java personally
but yes, everything should be final unless there's a reason for it not to be
why can i not react in this channel ๐ฆ
@pallid gale ๐
I recommend not using java personally
๐
๐
@onyx loom https://i.imgur.com/RZgqBkV.png
we'll see
fu
Gaby
love u too

idc
FJ?
FROZENJOIN
Kali nah
Actions?
god I slept through a whole day
yup
๐
Someone should update that
agreed
Go do it Kali
FrozenJoin is Frosty's?
yes
Who elses
cant open that
wait whats wrong with the links frosty?
wrong link?
vanish:
priority: 3
type: 'VANISH'
# Special modifier only available to the vanish format!
# Indicates whether or not the check should be inverted
# true = sends a message when vanished, vice versa
inverted: true
join:
- '[BROADCAST] &8[&a+&8] &b%player_name%'
quit: []
permission: 'frozenjoin.vanish'
๐
Struggling a bit with the inverting of messages for the vanish
@hot hull is this good? "Description": "The Best Custom Join/Quit Message Plugin",
Nah, just keep it as a fully customisable join/quit messages plugin

Don't wanna be arrogant :p
deluxejoin is no match, u know it urself ๐
Well so far it was, cause messages in FJ were cucked on 1.8
cucked...
1.8 in 2020
Jesus fuck I'm dumb
I was trynna figure out why it was always using false, would be nice to actually apply the boolean to the format..
apparently NiallString has a security vulnerability ๐
i might aswell add that too then
All the plugins :p
oh okay
Gucci, all works
damn my animations should be a service
Do I add in unlimited motds while I'm at it @onyx loom ?
then instead of plugins hooking into kiteboard, papi and others, it just looks for the first service!
might aswell
then
k
if papi expansions loaded the service first, Kiteboard would use that service
what is kiteboard?
=pl kiteboard
scoreboard plugin
disgraceful that uve never heard of it
Now do I delegate all the functionaility into AnimationsService
u dont
it wont
ur right
but still
AnimationService interface is beautiful
Also
This feels like my very own feat of human engineering..
But its basically what bstats does
@onyx loom
let's hear it
I register a AnimationsService, then any one of my plugins can use the service with highest priority...
I would have to do some hackything like bstats
because classes can't have the same package name e.g
this AnimationService.class would have to be the same across plugins.
but two classes in seperate plugins cant have the same fully qualified class name.
@onyx loom cough Go Check Spigot cough
๐ฎ
Hopefully I didn't miss anything (I suggest reading the update log)
@hot hull whats the inverted?
Did you not read update log smh
The meaning of "inverted: false" is thoroughly explained within the default config!
smh its in small text
also
# โข [JSONMESSAGE] <JSON message>
# โข [JSONMESSAGE] <JSON message>```
imagine gabys action lib not having this :lulw:
@onyx loom Are you talking about this?
actions:
- '[message] 100% Chance messge'
- '[message] 20% Chance message{chance:20}'```
thats in default config, one should be jsonbroadcast then jsonmessage should be put in the player section right frosty?
says that as I fully update to Gian's lib
too late
Anyhow Gaby, your lib has wonky messages on 1.8

Tell that to Gian
new holographic display update
The plugin now requires Spigot (not just CraftBukkit) at startup.

i say new, its 1 week old
@topaz bay sxtanna got an idea?
Or else it will be the bstats method of looking for a field or method within every service.
which still wouldn't work anyway
check if its already registered?
yes but
it needs to be a common interface between plugins
but..
if plugin 1 has org.example.Interface and plugin 2 has org.example.Interface then the ClassLoader wont load it
I mean both are the same right?
yeah
You would still be able to access it
I guess yea
this is kind of more appropriate for a string key
Gonna ask here, since development is ded :p
Is having a file with an objects uuid, and then data inside that file an efficient enough way of having that object persist reloads?
k, what would be the most efficient way of keeping trach of those objects? (Being a placeable block)
No it'd be a seperate file for each object, as it'll store a decent amount of data
keep them all in memory
then save when you need to
on disable
maybe auto save if you really want
Yea that's the idea, gotta make them persistant through reload
It's gonna be a placeable block, so I'm still finding the best way of storing it's actual data
My API is almost ready which does that for you xD
The persistent thingy?
yes
How long till it's finished? ๐
sql would work as well
Too late
What does this API do exactly?
KM, I need some advice
So I've got a block (beacon), which you will be able to place and interract with. Only 1 of these blocks will be able to be placed in a single chunk.
What approach would you take when it comes to storing, and managing these blocks?
put all the data in memory
No shit sherlock

||caching*||
|| sErVeR wOrLd FiLeS ||
PersistantBlockWrapper
holds the Block
save and load the PersistantBlockWrapper your style
I'm assuming this is pretty impossible
public void load(final DistrictCore core) {
/*
for (File file : manager.getFiles()) {
Collector = manager.deserialize(file);
}
*/
}
public void save(final DistrictCore core) {
for (UUID uuid : collectorMap.keySet()) {
/*
manager.createNewFile(uuid, manager.serialize(Collector);
*/
}
}
Now to make this :c
What is the core argument for?
@hot hull you could store the Chunks with a Beacon in a Set or something
Pair<World, Pair<Integer, Integer>> xd
No thats not what I mean xD
shush
Pairing function
problem solved
wtf is that
wdym?



