Advertisement
Guest User

Untitled

a guest
Aug 31st, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.26 KB | None | 0 0
  1. var mysql = require('mysql');
  2. var express = require('express');
  3. var bodyParser = require('body-parser');
  4. var ipfilter = require('ipfilter');
  5. var moment = require('moment');
  6. var app = express();
  7.  
  8. var pool = mysql.createPool({
  9. connectionLimit: 15,
  10. host: '127.0.0.1',
  11. user: 'root',
  12. password: 'usbw',
  13. database: 'dayz'
  14. });
  15.  
  16. // Init middleware
  17. moment().format();
  18.  
  19. // Allowed IP's (server IP)
  20. var ips = ['127.0.0.1'];
  21. app.use(ipfilter(ips, {
  22. mode: 'allow'
  23. }));
  24.  
  25. app.use(bodyParser());
  26.  
  27. exports.start = function () {
  28. app.listen(890);
  29. console.log('Server running on port 890');
  30. }
  31.  
  32. app.post('/DayZServlet/lud0/find', function (req, res) {
  33. try {
  34. console.log('Got find: ' + req.query.uid);
  35.  
  36. pool.getConnection(function (err, connection) {
  37. if (err) throw err;
  38. connection.query('SELECT model,x,y,z,queue FROM player WHERE uid = ?', [req.query.uid], function (err, rows, fields) {
  39. if (err) throw err;
  40. connection.release();
  41.  
  42. if (rows.length == 0) {
  43. console.log('No data found');
  44. res.send('');
  45. return;
  46. }
  47. // Edit result for sending
  48. rows[0].pos = [rows[0].x, rows[0].y, rows[0].z];
  49. delete rows[0].x;
  50. delete rows[0].y;
  51. delete rows[0].z;
  52.  
  53. // Calculate queue
  54. var queueEnd = moment(rows[0].queue);
  55. rows[0].queue = -queueEnd.diff(moment(), 'seconds');
  56.  
  57. res.send(JSON.stringify(rows[0]));
  58. });
  59. });
  60. }
  61. catch(err) {
  62. console.log(err.message);
  63. res.send('');
  64. }
  65. });
  66.  
  67. app.get('/DayZServlet/lud0/load', function (req, res) {
  68. try {
  69. console.log('Got load: ' + req.query.uid);
  70.  
  71. pool.getConnection(function (err, connection) {
  72. if (err) throw err;
  73. connection.query('SELECT * FROM player WHERE uid = ?', [req.query.uid], function (err, rows, fields) {
  74. if (err) throw err;
  75. connection.release();
  76.  
  77. if (rows.length == 0) {
  78. console.log('No data found');
  79. res.send('');
  80. return;
  81. }
  82. // Edit result for sending
  83. rows[0].items = JSON.parse(rows[0].items);
  84. rows[0].state = JSON.parse(rows[0].state);
  85. rows[0].pos = [rows[0].x, rows[0].z, rows[0].y];
  86. rows[0].dir = [rows[0].dir_x, rows[0].dir_y, rows[0].dir_z];
  87. rows[0].up = [rows[0].up_0, rows[0].up_1, rows[0].up_2];
  88. delete rows[0].uid;
  89. delete rows[0].x;
  90. delete rows[0].y;
  91. delete rows[0].z;
  92. delete rows[0].dir_x;
  93. delete rows[0].dir_y;
  94. delete rows[0].dir_z;
  95. delete rows[0].up_0;
  96. delete rows[0].up_1;
  97. delete rows[0].up_2;
  98.  
  99. // Calculate queue
  100. var queueEnd = moment(rows[0].queue);
  101. rows[0].queue = -queueEnd.diff(moment(), 'seconds');
  102.  
  103. //console.log('Sent character data: ' + JSON.stringify(rows[0]));
  104. res.send(JSON.stringify(rows[0]));
  105. });
  106. });
  107. }
  108. catch(err) {
  109. console.log(err.message);
  110. res.send('');
  111. }
  112. });
  113.  
  114. app.post('/DayZServlet/lud0/create', function (req, res) {
  115. try {
  116. console.log('Got create: ' + req.query.uid);
  117.  
  118. pool.getConnection(function (err, connection) {
  119. if (err) throw err;
  120. connection.query('INSERT IGNORE INTO player(uid) VALUES(?)', [req.query.uid], function (err, rows, fields) {
  121. if (err) throw err;
  122. connection.release();
  123. });
  124. });
  125. }
  126. catch(err) {
  127. console.log(err.message);
  128. }
  129. res.send('');
  130. });
  131.  
  132. app.post('/DayZServlet/lud0/save', function (req, res) {
  133. try {
  134. console.log('Got save: ' + req.query.uid);
  135.  
  136. pool.getConnection(function (err, connection) {
  137. if (err) throw err;
  138. connection.query('UPDATE player SET model = ?, alive = ?, items = ?, state = ?, x = ?, z = ?, y = ?, dir_x = ?, dir_y = ?, dir_z = ?, up_0 = ?, up_1 = ?, up_2 = ? WHERE uid = ?', [req.body.model, req.body.alive, JSON.stringify(req.body.items), JSON.stringify(req.body.state), req.body.pos[0], req.body.pos[1], req.body.pos[2], req.body.dir[0], req.body.dir[1], req.body.dir[2], req.body.up[0], req.body.up[1], req.body.up[2], req.query.uid], function (err, rows, fields) {
  139. if (err) throw err;
  140. connection.release();
  141. });
  142. });
  143. }
  144. catch(err) {
  145. console.log(err.message);
  146. }
  147. res.send('');
  148. });
  149.  
  150. app.post('/DayZServlet/lud0/queue', function (req, res) {
  151. try {
  152. console.log('Got queue: ' + req.query.uid + ' (' + req.body.queue + 's)');
  153.  
  154. pool.getConnection(function (err, connection) {
  155. if (err) throw err;
  156. connection.query('SELECT queue FROM player WHERE uid = ?', [req.query.uid], function (err, rows, fields) {
  157. if (err) throw err;
  158.  
  159. var query;
  160. //var queueEnd = moment(rows[0].queue);
  161. //if (queueEnd.diff(moment(), 'seconds') > 0) {
  162. // Add to existing queue
  163. //query = 'UPDATE player SET queue = DATE_ADD(queue,INTERVAL ' + mysql.escape(JSON.stringify(req.body.queue)) + ' SECOND) WHERE uid = ?';
  164. //} else {
  165. // Create new queue from now
  166. query = 'UPDATE player SET queue = DATE_ADD(CURRENT_TIMESTAMP,INTERVAL ' + mysql.escape(JSON.stringify(req.body.queue)) + ' SECOND) WHERE uid = ?';
  167. //}
  168. connection.query(query, [req.query.uid], function (err, rows, fields) {
  169. if (err) throw err;
  170. connection.release();
  171. });
  172. });
  173. });
  174. }
  175. catch(err) {
  176. console.log(err.message);
  177. }
  178. res.send('');
  179. });
  180.  
  181. app.post('/DayZServlet/lud0/kill', function (req, res) {
  182. console.log('Got kill: ' + req.query.uid);
  183.  
  184. pool.getConnection(function (err, connection) {
  185. if (err) throw err;
  186. connection.query('DELETE FROM player WHERE uid = ?', [req.query.uid], function (err, rows, fields) {
  187. if (err) throw err;
  188. connection.release();
  189. });
  190. });
  191. res.send('');
  192. });
  193.  
  194. app.post('/DayZServlet/world/add', function (req, res) {
  195. console.log('Got world add: ' + JSON.stringify(req.body));
  196.  
  197. pool.getConnection(function (err, connection) {
  198. if (err) throw err;
  199. connection.query('INSERT INTO dropped_items(type,imp,mt) VALUES(?,?,?)', [req.body.type, req.body.imp, JSON.stringify(req.body.mt)], function (err, rows, fields) {
  200. if (err) throw err;
  201. connection.release();
  202. });
  203. });
  204. res.send('');
  205. });
  206.  
  207. app.post(/.*/, function (req, res) {
  208. console.log('Got unhandled POST: ' + req.url);
  209. res.send('404 not found');
  210. });
  211.  
  212. app.get(/.*/, function (req, res) {
  213. console.log('Got unhandled GET: ' + req.url);
  214. res.send('404 not found');
  215. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement