[JAVA] How to study Bukkit Plugin

Background

image.png The theme was posted in the theme box. It's quite difficult from the beginning ... w For the time being, the study method differs from person to person, so there is no right answer, but I would like to explain what everyone has in common.

To be honest, I have no choice but to look up various articles

It's not stupid to start writing code after understanding all the Bukkit code and Java as well. There are many people who make Plugins, so read the articles they created and look at the Is this behavior when using this code'' or the Plugin source that has already been distributed, Ah, there is such a way of writing ``, I think that there is only such a steady effort.

I still don't understand

** The main subject is from here. ** Probably most people say I can't understand even if I read the article, I can't read the source code. If you can't read and understand the literature, is there anything else you can do?

If you can't understand even after reading various articles, you have to ask a question?

If you can't understand after reading the article, ask an expert. That's all. If you can ask someone, you'll be asked in a conversational format until you understand `` I don't know here ...''. It's okay if you don't understand this ... ** It doesn't become ** Why? Beginners can't ask questions because they don't know how to ask questions in the first place. Even if I ask a question, the other person cannot understand it and I get stuck. Hmmm, you thought you couldn't do it anymore, no, if you don't know how to ask a question, study how to ask a question.

How to ask a question

** As a general premise, check before asking a question. ** Ask questions only when you don't understand. You don't have to remember how to ask a question. If you forget it, you can jump to this article and pull the template.

1. Why are you in trouble

Plugin does not work properly. The way to say is ** absolutely NG **. What is that normal? When telling, you have to tell the difference in an easy-to-understand manner: "the action you want to make", "the action that actually happened", and "what you want me to tell you". For example

I tried to display a scoreboard with different contents for all players on the right side, but the display was successful, but I am in trouble because I can not use it with the scoreboard team. Can you tell me how to display different content on the right side while belonging to the same team?

It feels like. If this,

Action you want to make:I want to display different contents on the right side while belonging to the same team
Actual operation:I was able to view different content, but I wasn't allowed to belong to the same team
What you want me to tell you:How to display different contents on the right side while belonging to the same team

You can see in one shot. If you know so far, you can immediately answer "Oh, that's impossible without using Packet".

The scoreboard does not work properly.

Even if it is said, "Is that so? It can only be returned as ``.

2. Communicate the environment

No. 1 Why are you in trouble? As important as . At a minimum, I think it's okay if you have a server version , a Java version , and a code you're using ``. In addition, should I tell the OS as needed? Sometimes people say that it's embarrassing to show the code you wrote, so don't show it, but those people should try to solve it by themselves. Why did I go to an electric shop and say, "My radio broke, can I fix it? By the way, I won't show you the radio." I thought it would be fixed. I can't fix it.

template

For the time being, if you use the template below, you should get an answer that you can ask any question.

Action you want to make: 
What actually happened: 
What you want me to tell you: 

Server version: 
Java version: 

Code used: 

The best server version is the long one that appears when you do / ver, and the best Java version is what you see when you do java --version. ** Please write in detail anyway. ** The counselor cannot read your mind.

How to reply

If you ask a question, you should get various solutions. For example, let's say the code is sent with the feeling Try this code. Let's say that it didn't work as expected. Then No. It is also ** NG ** to reply with. It is necessary to explain how it was not good. For example

Nothing changed from the behavior of the code I sent earlier.

And,

Nothing changed in behavior, but I got the following error

Or, if you don't reply so that you know what to do next, the other person will be in trouble. Anyway, if I hit information that seems to be related to various solutions, I will solve it someday.

If you get an error ...

If you get an error, send the full text. Occasionally, there are people who send only the top part of the error, saying ○○, but that's not good because I don't know what line is wrong. If you send the full text, you will know what is wrong, so let's send the full text.

Find someone who can ask questions

Once you understand this, you can probably solve most problems by asking an expert. I'll ask you to tell me everything according to the template above? If you have an expert around you, ask that person if you find something you don't understand. If you don't like that, you can go to our Development Group and ask. Even if you're not at home, if you join a community group and ask, someone will answer.

Finally

As I said at the beginning, each person has their own way of studying, and there is no such thing as the correct answer. That's why it's very difficult to answer the question, "Tell me how to study," but it's easiest to ask people for the time being. If you get lost, Google Map, if you still don't understand, ask someone, right? It's the same, and if you ask someone, it will be solved soon. I support Plugin production beginners. I hope that the Minecraft area will not decline in the future.

Recommended Posts

How to study Bukkit Plugin
[Blender] How to make a Blender plugin
How to study deep learning G test
How to make Spigot plugin (for Java beginners)
Study from Python Hour7: How to use classes
How to make a QGIS plugin (package generation)
How to make Substance Painter Python plugin (Introduction)
[For beginners] How to study programming Private memo
How to use Python-shell
How to use tf.data
How to use virtualenv
How to use Seaboan
How to use shogun
How to use Pandas 2
How to read PyPI
How to install pip
How to use Virtualenv
How to use numpy.vectorize
How to update easy_install
How to install archlinux
How to use pytest_report_header
How to restart gunicorn
How to install python
How to virtual host
How to debug selenium
How to use partial
How to use Bio.Phylo
How to read JSON
How to use SymPy
How to use x-means
How to update Spyder
How to use IPython
How to install BayesOpt
How to use virtualenv
How to use Matplotlib
How to use iptables
How to use numpy
How to use TokyoTechFes2015
How to use venv
How to use dictionary {}
How to use Pyenv
How to grow dotfiles
How to use list []
How to use python-kabusapi
"How to count Fukashigi"
How to install Nbextensions
How to use OptParse
How to use return
How to install Prover9
How to use dotenv
How to operate NumPy
How to use pyenv-virtualenv
How to use Go.mod
How to use imutils
How to use import
[For beginners] How to study Python3 data analysis exam
How to create a submenu with the [Blender] plugin
[2020.8 latest] How to install Python
How to use Qt Designer
[IPython] How to Share IPython Notebook
How to install Python [Windows]