Commits on Nov 13, 2017
Commits on Nov 12, 2017
Commits on Nov 11, 2017
Commits on Nov 10, 2017
Commits on Nov 9, 2017
  1. Harmonize how void works

    LadyCailin committed Nov 9, 2017
    There is some formatting change, but the meat of the commit can be seen
    in Static and BasicLogic. In Static, we change resolveConstruct to
    return CVoid.VOID instead of CVoid.TYPE. Then, in sequals, we check
    .typeof() not .getClass(). This is an important distinction, because we
    want to base the equality on whether or not mscript says it's the same
    type, not if java does. Actually, because of this change, the change to
    Static isn't strictly necessary, but it is beneficial, since now we
    standardize what we are returning.
Commits on Nov 8, 2017
Commits on Nov 5, 2017
  1. Fix boilerplate test

    PseudoKnight committed Nov 5, 2017
Commits on Nov 3, 2017
  1. Massively speed up reflect_pull() for enums.

    PseudoKnight committed Nov 3, 2017
    This avoids loading classes that we don't need to load, since we only need to do that to get the ENUM values for the one class. This also improves getting ENUM inner classes. Previously when getting the class's common name it would change "$" to "." for inner classes. However, the only case where this method is used it needs to the "$" to find the class. So it throws an exception, we catch it, add the "$" back and try again. This is very expensive and seeminlgy not needed. Finally, I removed a redundant HashSet creation that used about 25% of the remaining time. Overall this went from freezing the server for a few seconds to completing in less than a millisecond.
Commits on Oct 31, 2017
  1. Merge pull request #467 from Ecconia/logo

    LadyCailin committed Oct 31, 2017
    Better printing and formatting of mainlogo
  2. Better printing and formatting of mainlogo

    Ecconia committed Oct 31, 2017
    Did not cut the backgound color off properly. Was oddly centered. File had not consistent linewidth.
    Look better in the Ubuntu terminal now.
Commits on Oct 28, 2017
  1. Improve a couple edge cases

    PseudoKnight committed Oct 28, 2017
    Uses of GetCommandSender() don't always handle null, so let's use console just in case. This code should rarely run, though, since players in events shouldn't be offline.
    Also, because we have "enchants" in two places in item arrays, I tried to unify it a little by only prioritising meta array enchants, but it's possible that scripts might add an enchant to only the item enchant array and NOT the meta enchant array. To prioritise one over the other, it'd be safer if we first give a warning period. I'm not sure how best to accomplish this without affecting logic, so for now keep processing twice. It should be revisited later.
Commits on Oct 27, 2017
  1. Various updates to abstraction

    PseudoKnight committed Oct 27, 2017
    This includes additions, fixes and optimizations. It also removes the final illusion of compatibility with versions prior to 1.7.10.
Commits on Oct 25, 2017
  1. Change Minecraft reflection method to improve startup times

    PseudoKnight committed Oct 25, 2017
    Despite only being used for sudo() right now, ClassDiscovery for the server jar adds up to 10 seconds to the startup time. The Bukkit convertor init also synchronizes during the ClassDiscovery process which may make things worse. This commit proposes that this extra time is not a necessary sacrifice and implements an alternative reflection method where needed.
Commits on Oct 24, 2017
Commits on Oct 23, 2017
  1. Add optional single slot parameter in set_pinv() (and optimizations)

    PseudoKnight committed Oct 23, 2017
    Previously for every slot we set it would cause three packets to be sent to the player on the latest versions of Spigot. This is because we were updating the inventory to fix client syncing issues in the past. In theory this would be maybe 123 packets when setting a player inventory. This commit should reduce that to maybe 43 packets and maybe even fix some syncing when the inventory has other viewers. Because now after a function that alters an inventory is complete, it sends an update packet to all viewers of that inventory. This should ensure client syncing on all versions without doing too much extra work like before.
  2. Clarify play_sound docs

    PseudoKnight committed Oct 23, 2017