-
Notifications
You must be signed in to change notification settings - Fork 1
/
send-message.js
136 lines (105 loc) · 3.53 KB
/
send-message.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
module.exports = {
friendlyName: 'Send message',
description: 'Send a message to the server or pm a player',
extendedDescription: 'Broadcast a message, if a playerId is provided; send a PM',
cacheable: false,
sync: false,
inputs: {
ip: {
friendlyName: 'IP address',
type: 'string',
description: 'IP of the server to send a request to',
required: true,
example: "192.168.0.1",
},
port: {
type: 'number',
description: "Port of the server to send a request.",
extendedDescription: "Make sure this is the port for the web server, not telnet or ...",
required: true,
example: "8082",
},
authName: {
type: 'string',
description: 'Authorization name to send with the request',
example: "csmm",
required: true,
whereToGet: {
description: 'Set in webpermission.xml or with webtokens telnet command'
}
},
authToken: {
type: 'string',
description: 'Authorization token to send with the request',
example: "EOGHZANOIZEAHZFUR93573298539242F3NG",
required: true,
whereToGet: {
description: 'Set in webpermission.xml or with webtokens telnet command'
}
},
playerId: {
type: 'string',
description: 'Entity/steam ID of the player to send a message to',
example: '76561198028175841'
},
message: {
type: "string",
description: "Message to send",
example: "Hello world",
required: true
}
},
exits: {
success: {
variableName: 'result',
description: 'Done.',
},
connectionRefused: {
variableName: 'error',
description: 'Server refused the request (usually means server offline)'
},
unauthorized: {
variableName: 'error',
description: 'Not authorized to do this request',
extendedDescription: 'Server rejected the auth info sent. Please check if the server has auth name and token configured'
},
error: {
variableName: 'error',
description: "An unknown error occurred"
},
unknownPlayer: {
variableName: 'error',
description: "The given player id is not valid"
},
},
fn: function(inputs, exits) {
const _ = require("lodash");
var executeCommand = require('machine').build(require('./execute-command.js'))
let command
if (_.isUndefined(inputs.playerId)) {
command = `say "${inputs.message}"`
} else {
command = `pm ${inputs.playerId} "${inputs.message}"`
}
executeCommand({
ip: inputs.ip,
port: inputs.port,
authName: inputs.authName,
authToken: inputs.authToken,
command: command
}).exec({
success: function(response) {
return exits.success(response)
},
connectionRefused: function(error) {
return exits.connectionRefused(error)
},
unauthorized: function(error) {
return exits.unauthorized(error)
},
error: function(error) {
return exits.error(error)
}
})
},
};