Do not parse player messages
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
0421166bc9
commit
c13b173c18
@ -115,6 +115,12 @@ const Chat = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const messages = chat.map((item, index) => {
|
const messages = chat.map((item, index) => {
|
||||||
|
let message;
|
||||||
|
/* Do not perform extra parsing on player-generated
|
||||||
|
* messages */
|
||||||
|
if (item.normalChat) {
|
||||||
|
message = <div key={`line-${index}`}>{item.message}</div>;
|
||||||
|
} else {
|
||||||
const punctuation = item.message.match(/(\.+$)/);
|
const punctuation = item.message.match(/(\.+$)/);
|
||||||
let period;
|
let period;
|
||||||
if (punctuation) {
|
if (punctuation) {
|
||||||
@ -123,17 +129,19 @@ const Chat = () => {
|
|||||||
period = '';
|
period = '';
|
||||||
}
|
}
|
||||||
let lines = item.message.split('.');
|
let lines = item.message.split('.');
|
||||||
const message = lines
|
message = lines
|
||||||
.filter(line => line.trim() !== '')
|
.filter(line => line.trim() !== '')
|
||||||
.map((line, index) => {
|
.map((line, index) => {
|
||||||
/* If the date is in the future, set it to now */
|
/* If the date is in the future, set it to now */
|
||||||
const dice = line.match(/^(.*rolled )([1-6])(, ([1-6]))?(.*)$/);
|
const dice = line.match(/^(.*rolled )([1-6])(, ([1-6]))?(.*)$/);
|
||||||
if (dice) {
|
if (dice) {
|
||||||
if (dice[4]) {
|
if (dice[4]) {
|
||||||
return <div key={`line-${index}`}>{dice[1]}<Dice pips={dice[2]}/>,
|
return <div key={`line-${index}`}>{dice[1]}
|
||||||
|
<Dice pips={dice[2]}/>,
|
||||||
<Dice pips={dice[4]}/>{dice[5]}{ period }</div>;
|
<Dice pips={dice[4]}/>{dice[5]}{ period }</div>;
|
||||||
} else {
|
} else {
|
||||||
return <div key={`line-${index}`}>{dice[1]}<Dice pips={dice[2]}/>{dice[5]}{ period }</div>;
|
return <div key={`line-${index}`}>{dice[1]}
|
||||||
|
<Dice pips={dice[2]}/>{dice[5]}{ period }</div>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +150,8 @@ const Chat = () => {
|
|||||||
const resource = start.match(/^(.*)(([0-9]+) (wood|sheep|wheat|stone|brick),?)(.*)$/);
|
const resource = start.match(/^(.*)(([0-9]+) (wood|sheep|wheat|stone|brick),?)(.*)$/);
|
||||||
if (resource) {
|
if (resource) {
|
||||||
const count = resource[3] ? parseInt(resource[3]) : 1;
|
const count = resource[3] ? parseInt(resource[3]) : 1;
|
||||||
message = <><Resource label={true} count={count} type={resource[4]}/>{resource[5]}{message}</>;
|
message = <><Resource label={true} count={count}
|
||||||
|
type={resource[4]}/>{resource[5]}{message}</>;
|
||||||
start = resource[1];
|
start = resource[1];
|
||||||
} else {
|
} else {
|
||||||
message = <>{start}{message}</>;
|
message = <>{start}{message}</>;
|
||||||
@ -151,9 +160,11 @@ const Chat = () => {
|
|||||||
}
|
}
|
||||||
return <div key={`line-${index}`}>{ message }{ period }</div>;
|
return <div key={`line-${index}`}>{ message }{ period }</div>;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ListItem key={`msg-${item.date}`} className={item.color ? '' : 'System'}>
|
<ListItem key={`msg-${item.date}`}
|
||||||
|
className={item.color ? '' : 'System'}>
|
||||||
{ item.color &&
|
{ item.color &&
|
||||||
<PlayerColor color={item.color}/>
|
<PlayerColor color={item.color}/>
|
||||||
}
|
}
|
||||||
|
@ -1025,7 +1025,7 @@ const addActivity = (game, session, message) => {
|
|||||||
game.activities.push({ color: session ? session.color : '', message, date });
|
game.activities.push({ color: session ? session.color : '', message, date });
|
||||||
}
|
}
|
||||||
|
|
||||||
const addChatMessage = (game, session, message) => {
|
const addChatMessage = (game, session, message, isNormalChat) => {
|
||||||
let now = Date.now();
|
let now = Date.now();
|
||||||
let lastTime = 0;
|
let lastTime = 0;
|
||||||
if (game.chat.length) {
|
if (game.chat.length) {
|
||||||
@ -1039,6 +1039,9 @@ const addChatMessage = (game, session, message) => {
|
|||||||
date: now,
|
date: now,
|
||||||
message: message
|
message: message
|
||||||
};
|
};
|
||||||
|
if (isNormalChat) {
|
||||||
|
entry.normalChat = true;
|
||||||
|
}
|
||||||
if (session && session.name) {
|
if (session && session.name) {
|
||||||
entry.from = session.name;
|
entry.from = session.name;
|
||||||
}
|
}
|
||||||
@ -3694,7 +3697,7 @@ router.ws("/ws/:id", async (ws, req) => {
|
|||||||
|
|
||||||
case 'chat':
|
case 'chat':
|
||||||
console.log(`${short}:${id} - ${data.type} - ${data.message}`)
|
console.log(`${short}:${id} - ${data.type} - ${data.message}`)
|
||||||
addChatMessage(game, session, `${session.name}: ${data.message}`);
|
addChatMessage(game, session, `${session.name}: ${data.message}`, true);
|
||||||
parseChatCommands(game, data.message);
|
parseChatCommands(game, data.message);
|
||||||
sendUpdateToPlayers(game, { chat: game.chat });
|
sendUpdateToPlayers(game, { chat: game.chat });
|
||||||
saveGame(game);
|
saveGame(game);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user