Question on plugin article and translation


#1

Hello, I’m a plugin dev who has yet never made plugins work with sponge.
I would like to ask you some questions related to SpongeDoc.

First question:
As I made some translations for korean I realized that some of my old suggestions got removed by staff. I remember I had put those a couple of years ago. But what’s the reason for this action?

Second question:
In this section there’s a sample code and it says both optionals will contain player object.
If that is true, the second index in the Cause must have a player type. This is confusing.


#2

Your docs contribution going missing:

We were forced to remove some contributions, because we needed to relicense the docs.

We tried for months to contact all contributors, so when the deadline came, and passed, and came again we finally removed the contributions that could not be relicensed.

We also currently have a slump in docs contributions, they need a lot of love.

As for your programming query:

“it matched the request for an Entity type as Player is a subtype of Entity.”

Player extends / implements Entity.

If you ask for the first entity, you get the first entity, even if it happens to be a player.

But shouldn’t it have the type Player?

No, if you ask for an Entity, you don’t know what subclass you are going to get. It could have been a Zombie in a different example.


#3

Thanks for the answer ryantheleach.
Honestly I got the mail about the license contact but I didn’t read it for some reason.
I admit it was my fault. Then what about the new contributions that I made since yesterday?
Will they be applied with the new license?


#4

For the second answer, I just realized that my question doesn’t make sense.
Like you said the firstEntity must have Entity regardless of the type only if it’s a subclass of Entity.
But I was intended to show that the document has an error.

both optionals will contain player object.

should be fixed to

firstPlayer will contain player object and firstEntity will contain entity object.


#5

But the firstEntity will contain a Player.


#6

In summary: SpongeDocs was purged to enable adding a new license.

Allow me to explain what happened (although I am baffled that you missed it):

For more than half of last year, the Docs and Translations were seeking a license. (We needed one to protect the content of the master docs). ALL the translators were sent several messages from Crowdin, the last ones marked URGENT, requesting their agreement to the new license. We can’t just add a license without approval, so any contributions by people that did not specifically agree to the new license had to be removed. This was mentioned at several State-of-Sponge events, and on our SpongeDocs sub-forum here. The final deadline was on November 5th last year, more than 6 months after the process began. We apologise for the inconvenience, but we believe this was necessary to protect the SpongeDocs contributions.

Any future contributions to Crowdin specifically accept the CC BY-SA license, as declared on the main Crowdin SpongeDocs page, and linked within the docs themselves.

On another note, not only are translations welcome, but if you spot something in the master docs that needs correcting, we’d be delighted if you made an issue or even a PR to the SpongeDocs GitHub repository.


#7

Think back to my thought I assumed that Cause#First(Class) would iterate through a list.
Thanks for pointing out my error :slight_smile:


#8

Just so we are crystal clear.

Cause’s contain an EventContext and a ‘cause stack’ https://github.com/SpongePowered/SpongeAPI/blob/34cc0b50b2828f1aad21ce2ccfc0d9698cff709e/src/main/java/org/spongepowered/api/event/cause/Cause.java

Does indeed iterate over the cause stack, and filters by the class.


#9

I’m talking about Iterator within Java.
Iterator#next() points the next element while deleting the current one
EDIT: nvm it does not delete the thing lol


#10

I figured you understood, but I wasn’t 100% sure, all good :slight_smile: .