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.
 
 
 

82 lines
1.8 KiB

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