Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

59 Zeilen
1.1 KiB

  1. const route = function (socket, msg) {
  2. const source = this.players.find(p => p.socket.id === socket.id);
  3. if (!source)
  4. return;
  5. if (!msg.data)
  6. msg.data = {};
  7. msg.data.sourceId = source.id;
  8. if (
  9. (
  10. (source.permadead) &&
  11. (['getCharacterList', 'getCharacter', 'deleteCharacter'].indexOf(msg.method) === -1)
  12. ) ||
  13. (
  14. source.dead &&
  15. !(
  16. (msg.method === 'performAction' && ['respawn'].includes(msg.data.method)) ||
  17. (msg.method === 'clientAck')
  18. )
  19. )
  20. )
  21. return;
  22. if (msg.threadModule) {
  23. if (msg.callback)
  24. msg.data.callbackId = atlas.registerCallback(msg.callback);
  25. atlas.send(source.zoneId, msg);
  26. return;
  27. }
  28. let target = source;
  29. if (msg.data.targetId !== undefined && msg.data.cpn === undefined) {
  30. target = this.players.find(p => p.id === msg.data.targetId);
  31. if (!target)
  32. return;
  33. }
  34. let cpn = target[msg.cpn];
  35. if (!cpn)
  36. return;
  37. let method = msg.method;
  38. if (cpn[method])
  39. cpn[method](msg);
  40. };
  41. const routeGlobal = function (msg) {
  42. global[msg.module][msg.method](msg);
  43. };
  44. module.exports = {
  45. route,
  46. routeGlobal
  47. };