- Баллы
- 61
Такой вопрос - как происходит вызов ивентов? В частности интересует InventoryClickEvent и onCommand (он вроде ивент, а вроде и нет чего-то вроде OnCommandEvent).
Представим, что есть команда /test или предмет, при клики на которой происходит действие x. Это действие увеличивает int x на один и, в зависимости от x%2 отправит игроку или A или B. Только есть одно но - перед этим произойдёт ещё много различных действий, которые нас сейчас не интересуют, но известно, что какое-то время это займёт. Так вот - если сразу два человека отправят вызовут действие x, то будет создаваться некоторая очередь на выполнение команд или начнётся выполняться код для обоих команд?
Если кому-то интересно зачем мне это всё. Предположим, что x = 0. И два игрока вызывают x с разницей в 10^(-3) секунды. Назовём их p1 и p2. И представим, что у p2 код между изменением x и отправкой A или B занимает меньше времени, чем у p1. В случае, если вызов происходит параллельно, то p2, который написал /test позже, получит A раньше, в то время, как p1 получит B соответственно позже. Если же вызов последовательный, то p1 получит своё законное A, а p2 своё B.
Представим, что есть команда /test или предмет, при клики на которой происходит действие x. Это действие увеличивает int x на один и, в зависимости от x%2 отправит игроку или A или B. Только есть одно но - перед этим произойдёт ещё много различных действий, которые нас сейчас не интересуют, но известно, что какое-то время это займёт. Так вот - если сразу два человека отправят вызовут действие x, то будет создаваться некоторая очередь на выполнение команд или начнётся выполняться код для обоих команд?
Если кому-то интересно зачем мне это всё. Предположим, что x = 0. И два игрока вызывают x с разницей в 10^(-3) секунды. Назовём их p1 и p2. И представим, что у p2 код между изменением x и отправкой A или B занимает меньше времени, чем у p1. В случае, если вызов происходит параллельно, то p2, который написал /test позже, получит A раньше, в то время, как p1 получит B соответственно позже. Если же вызов последовательный, то p1 получит своё законное A, а p2 своё B.