You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

88 lines
2.1 KiB

  1. let sheets = require('../security/sheets');
  2. module.exports = {
  3. getAccount: function (name) {
  4. return sheets.getRecord(name);
  5. },
  6. onBeforePlayerEnterGame: function (obj, blueprint) {
  7. let account = obj.account;
  8. let config = this.getAccount(account) || {};
  9. if (config.items) {
  10. let blueprintInventory = blueprint.components.find(c => (c.type === 'inventory'));
  11. if (!blueprintInventory) {
  12. blueprint.components.push({
  13. type: 'inventory',
  14. items: []
  15. });
  16. return;
  17. } else if (!blueprintInventory.items)
  18. blueprintInventory.items = [];
  19. let items = blueprintInventory.items;
  20. config.items.forEach(function (item) {
  21. let hasItem = items.find(i => (i.name === item.name));
  22. if (hasItem)
  23. return;
  24. items.push(item);
  25. }, this);
  26. }
  27. },
  28. getRoleLevel: function (player) {
  29. let account = player.account;
  30. let level = this.getAccount(account) ? this.getAccount(account).level : 0;
  31. return level;
  32. },
  33. isRoleLevel: function (player, requireLevel, message) {
  34. let account = player.account;
  35. let level = this.getAccount(account) ? this.getAccount(account).level : 0;
  36. let success = (level >= requireLevel);
  37. if ((!success) && (message))
  38. this.sendMessage(player, message);
  39. return success;
  40. },
  41. getRoleMessageStyle: function (player) {
  42. let account = player.account;
  43. return this.getAccount(account) ? this.getAccount(account).messageStyle : null;
  44. },
  45. getRoleMessagePrefix: function (player) {
  46. let account = player.account;
  47. return this.getAccount(account) ? this.getAccount(account).messagePrefix : null;
  48. },
  49. getSkins: function (account) {
  50. let skins = [];
  51. account = this.getAccount(account) || {
  52. skins: []
  53. };
  54. (account.skins || []).forEach(function (s) {
  55. skins.push(s);
  56. });
  57. skins = skins.filter((s, i) => (skins.indexOf(s) === i));
  58. return skins;
  59. },
  60. sendMessage: function (player, msg) {
  61. msg = 'Only certain roles can ' + msg + ' at the moment';
  62. player.instance.syncer.queue('onGetMessages', {
  63. id: player.id,
  64. messages: {
  65. class: 'color-redA',
  66. message: msg
  67. }
  68. }, [player.serverId]);
  69. }
  70. };