Поскольку будущее JS на Java неясно (JS / Nashorn устарела на Java 11), я изучал варианты, полностью выходящие за рамки JS, Groovy - основной, учитывая его популярность и сходство с Java.
В настоящее время я использую JS / Nasahorn для обработки большого количества действий для игрового сервера, и хотя многие из них, которые я вижу, могут быть преобразованы в Groovy, у меня есть одно беспокойство, что у меня возникают проблемы с выяснением, если это возможно или нет.
Итак, на моем игровом сервере постоянно появляются новые интерактивные объекты карты и npcs (общее количество каждого из них составляет десятки тысяч). Чтобы справиться с этими действиями при нажатии, у меня есть классы JS для их обработки.
Чтобы добавить новый объект или действие NPC, у меня есть группы файлов JS, которые разделяют идентификаторы так, чтобы это не был один гигантский файл. В частности, я использую прототип JS, чтобы иметь возможность добавлять эти действия, не будучи одним и тем же файлом, и просто загружать все файлы JS во время выполнения.
ObjectOption.prototype.object_0 = function(player, object) { }
И тогда я могу выполнять функции из самого класса JS через
ObjectOption.prototype["object_" + object.getID()](player, object);
или
this["object_" + object.getID()](player, object);
У меня вопрос: можно ли выполнить такую настройку с помощью Groovy или это выходит за рамки работы Groovy?