Skip to content

Instantly share code, notes, and snippets.

@dancodan
Last active March 11, 2018 17:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dancodan/fa01d899f18763fd6d1a5191bc9107b4 to your computer and use it in GitHub Desktop.
Save dancodan/fa01d899f18763fd6d1a5191bc9107b4 to your computer and use it in GitHub Desktop.
Calendar for Mundana
/*
Calendar for Mundana
Created by Kirsty (https://app.roll20.net/users/1165285/kirsty)
Many thanks to Aaron (https://app.roll20.net/users/104025/the-aaron) for his NoteLog script, parts of which I "borrowed"
API Commands:
!cal (as Player) - Shows world, date, time, moon, weather and counted days
!cal (as GM) - Same as player but includes options to advance the date/time, alter the weather, add a note or view the settings menu.
!calSet (GM only) - Allows the GM to change the world, date, time display, show/hide days until full moon, adjust day counter or set the start date
Red Colour: #7E2D40
*/
var Calendar = Calendar || (function() {
'use strict';
var version = '1.0',
handoutName = 'Events Log',
setDefaults = function() {
state.Calendar = {
now: {
version: '1.0',
ordinal: 1,
year: 2945,
down: 0,
divider: 0,
weather: "It is a cool but sunny day.",
timetype: "OFF",
time: "Morning (dawn)",
mooncount: "OFF",
startdate: "1,Mörkerviste,2945",
events: ""
},
};
},
checkDefaults = function() {
if( state.Calendar.now.version != version ){
state.Calendar.now.version = version;
}
if( ! state.Calendar.now.ordinal){state.Calendar.now.ordinal = 1};
if( ! state.Calendar.now.year){state.Calendar.now.year = 2945};
if( ! state.Calendar.now.down){state.Calendar.now.down = '0'};
if( ! state.Calendar.now.divider){state.Calendar.now.divider = '0'};
if( ! state.Calendar.now.weather){state.Calendar.now.weather = "It is a cool but sunny day."};
if( ! state.Calendar.now.timetype){state.Calendar.now.timetype = "OFF"};
if( ! state.Calendar.now.time){state.Calendar.now.time = "Morning (dawn)"};
if( ! state.Calendar.now.time){state.Calendar.now.mooncount = "OFF"};
if( ! state.Calendar.now.startdate){state.Calendar.now.startdate = "1,Mörkerviste,2945"};
if( ! state.Calendar.now.startdate){state.Calendar.now.events = ""};
},
handleInput = function(msg) {
var args = msg.content.split(",");
if (msg.type !== "api") {
return;
}
if(playerIsGM(msg.playerid)){
switch(args[0]) {
case '!cal':
calmain();
break;
case '!settings':
calmenu();
break;
case '!setworld':
state.Calendar.now.world=args[1];
calmenu();
break;
case '!startdate':
state.Calendar.now.startdate=args[1]+','+args[2]+','+args[3];
calmenu();
break;
case '!setday':
getOrdinal(msg);
weather();
calmenu();
break;
case '!setmonth':
getOrdinal(msg);
weather();
calmenu();
break;
case '!setyear':
state.Calendar.now.year=args[1];
calmenu();
break;
case '!setordinal':
state.Calendar.now.ordinal=args[1];
calmenu();
break;
case '!settimetype':
var type = args[1];
state.Calendar.now.timetype=type;
if (type == 'OFF') { state.Calendar.now.time = 'OFF' };
if (type == 'General') { state.Calendar.now.time = 'Morning (dawn)' };
if (type == '24 Hour') { state.Calendar.now.time = '00:00' };
calmenu();
break;
case '!settime':
var type = state.Calendar.now.timetype;
if (type == 'General'){
state.Calendar.now.time = args[1];
} else if (type == '24 Hour') {
state.Calendar.now.time = args[1]+args[2];
}
calmain();
break;
case '!setdown':
var down = Number(args[1]);
state.Calendar.now.down = down;
getdown(down);
calmenu();
break;
case '!setdiv':
state.Calendar.now.divider=Number(args[1]);
calmenu();
break;
case '!mooncounter':
state.Calendar.now.mooncount=args[1];
calmenu();
break;
case '!addday':
addday(args[1]);
weather();
calmain();
break;
case '!addtime':
addtime(args[1]);
calmain();
break;
case '!weather':
if(args[1]=='Roll}'){
weather();
}else{
var string = args[1];
for (var i = 2; i < args.length; i++) {
string = string + ", " + args[i];
}
state.Calendar.now.weather = string;
}
calmain();
break;
case '!log':
log(msg);
break;
case '!playercal':
showcal(msg);
break;
}
}else if(args[0]=='!cal'){
showcal(msg);
}
},
calstyle = function() {
var colour = '#7E2D40';
var divstyle = 'style="width: 189px; border: 1px solid black; background-color: #ffffff; padding: 5px; font-size: 12px;"'
var astyle1 = 'style="text-align:center; border: 1px solid black; margin: 1px; padding: 2px; background-color: ' + colour + '; border-radius: 4px; box-shadow: 1px 1px 1px #707070; width: 100px;';
var astyle2 = 'style="text-align:center; border: 1px solid black; margin: 1px; padding: 2px; background-color: ' + colour + '; border-radius: 4px; box-shadow: 1px 1px 1px #707070; width: 150px;';
var tablestyle = '';
var arrowstyle = 'style="border: none; border-top: 3px solid transparent; border-bottom: 3px solid transparent; border-left: 195px solid ' + colour + '; margin-bottom: 2px; margin-top: 2px;"';
var headstyle = 'style="color: ' + colour + '; font-size: 18px; text-align: left; font-variant: small-caps; font-family: Times, serif;"';
var substyle = 'style="font-size: 11px; line-height: 13px; margin-top: -3px; font-style: italic;"';
var styles = colour + '|' + divstyle + '|' + astyle1 + '|' + astyle2 + '|' + tablestyle + '|' + arrowstyle + '|' + headstyle + '|' + substyle;
return styles;
},
calmain = function() {
var styles = calstyle().split("|");
var colour = styles[0];
var divstyle = styles[1];
var astyle1 = styles[2];
var astyle2 = styles[3];
var tablestyle = styles[4];
var arrowstyle = styles[5];
var headstyle = styles[6];
var substyle = styles[7];
var world = "Mundana";
var down = Number(state.Calendar.now.down);
down = getdown(down);
var moMenu = getMoMenu();
var ordinal = state.Calendar.now.ordinal;
var nowdate = getDate(ordinal).split(',');
var month = nowdate[0];
var day = nowdate[1];
var moon = getMundanaMoon();
var start = state.Calendar.now.startdate.split(',');
var startdate = start[1]+' '+start[0]+', '+start[2];
var timeselect = timemenu();
sendChat('Kalender', '/w gm <div ' + divstyle + '>' + //--
'<div ' + headstyle + '>Kalender</div>' + //--
'<div ' + substyle + '>Menu (v.' + state.Calendar.now.version + ')</div>' + //--
'<div ' + arrowstyle + '></div>' + //--
'<table ' + tablestyle + '>' + //--
'<tr><td>World: </td><td>' + world + '</td></tr>' + //--
'<tr><td>Date: </td><td>'+ month + ' ' + day + ', ' + state.Calendar.now.year + '</td></tr>' + //--
'<tr><td>Days: </td><td>' + down + '</td></tr>' + //--
moon + //--
'<tr><td>Time: </td><td><a ' + astyle1 + '" href="!settime,'+ timeselect + '">' + state.Calendar.now.time + '</a></td></tr>' + //--
'</table>' + //--
'<br>Weather: ' + state.Calendar.now.weather + //--
'<br><br><div style="text-align:center;"><a ' + astyle2 + '" href="!addday,?{Days to add?|1}">Advance the Date</a></div>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!addtime,?{Advance how many hours?|1}">Advance the Time</a></div>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!weather,?{Weather|Roll|Edit,?{Edit Weather}}">Change Weather</a></div>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!log,?{Include time?|Yes|No},?{Notes}">Log Day</a></div>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!playercal">Show to Players</a></div>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!settings">Settings</a></div>' + //--
'</div>'
);
},
calmenu = function() {
var styles = calstyle().split("|");
var colour = styles[0];
var divstyle = styles[1];
var astyle1 = styles[2];
var astyle2 = styles[3];
var tablestyle = styles[4];
var arrowstyle = styles[5];
var headstyle = styles[6];
var substyle = styles[7];
var world = "Mundana";
var down = Number(state.Calendar.now.down);
down = getdown(down);
var moMenu = getMoMenu();
var ordinal = state.Calendar.now.ordinal;
var nowdate = getDate(ordinal).split(',');
var month = nowdate[0];
var day = nowdate[1];
var start = state.Calendar.now.startdate.split(',');
var startdate = start[1]+' '+start[0]+', '+start[2];
var timeselect = timemenu();
sendChat('Kalender', '/w gm <div ' + divstyle + '>' + //--
'<div ' + headstyle + '>Kalender</div>' + //--
'<div ' + substyle + '>Menu (v.' + state.Calendar.now.version + ')</div>' + //--
'<div ' + arrowstyle + '></div>' + //--
'<table>' + //--
'<tr><td>World: </td><td>' + world + '</a></td></tr>' + //--
'<tr><td>Start Date: </td><td><a ' + astyle1 + '" href="!startdate,?{Day},?{Month},?{Year}">' + startdate + '</a></td></tr>' + //--
'<tr><td>Day: </td><td><a ' + astyle1 + '" href="!setday,?{Day?|1},' + month +'">' + day + '</a></td></tr>' + //--
'<tr><td>Month: </td><td><a ' + astyle1 + '" href="!setmonth,' + day + moMenu + month + '</a></td></tr>' + //--
'<tr><td>Year: </td><td><a ' + astyle1 + '" href="!setyear,?{Year?|1486}">' + state.Calendar.now.year + '</a></td></tr>' + //--
//'<tr><td>Ordinal: </td><td><a ' + astyle1 + '" href="!setordinal,?{Ordinal?|1}">' + ordinal + '</a></td></tr>' + //-
'<tr><td>Time type: </td><td><a ' + astyle1 + '" href="!settimetype,?{Time?|OFF|24 Hour|General}">' + state.Calendar.now.timetype + '</a></td></tr>' + //-
'<tr><td>Time: </td><td><a ' + astyle1 + '" href="!settime,'+ timeselect + '">' + state.Calendar.now.time + '</a></td></tr>' + //--
'<tr><td>Down Day<br>Divider: </td><td><a ' + astyle1 + '" href="!setdiv,?{Down Day Divider?|1}">' + state.Calendar.now.divider + '</a></td></tr>' + //--
'<tr><td>Moon Counter: </td><td><a ' + astyle1 + '" href="!mooncounter,?{Moon Counter|OFF|ON}">' + state.Calendar.now.mooncount + '</a></td></tr>' + //--
'</table>' + //--
'<div style="text-align:center;"><a ' + astyle2 + '" href="!cal">Main Menu</a></div>' + //--
'</div>'
);
},
showcal = function(msg) {
var ordinal = state.Calendar.now.ordinal;
var nowdate = getDate(ordinal).split(',');
var month = nowdate[0];
var day = nowdate[1];
var down = state.Calendar.now.down;
down = getdown(down);
var world = "Mundana";
var colour = '#7E2D40';
var divstyle = 'style="width: 189px; border: 1px solid black; background-color: #ffffff; padding: 5px;"'
var tablestyle = 'style="text-align:center; table-layout: auto; width: 170px;"';
var arrowstyle = 'style="border: none; border-top: 3px solid transparent; border-bottom: 3px solid transparent; border-left: 195px solid ' + colour + '; margin-bottom: 2px; margin-top: 2px;"';
var headstyle = 'style="color: ' + colour + '; font-size: 18px; text-align: left; font-variant: small-caps; font-family: Times, serif;"';
var substyle = 'style="font-size: 11px; line-height: 13px; margin-top: -3px; font-style: italic;"';
var moon = '<table '+tablestyle+'>'+getMundanaMoon()+'</table>';
var timestr;
var downstr;
if(state.Calendar.now.time!="OFF"){
timestr = '<br>The time is: '+state.Calendar.now.time;
}else{
timestr = '';
}
if(down!=0){
downstr = '<br>Players have ' + down + ' down days.';
}else{
downstr = '';
}
sendChat(msg.who, '<div ' + divstyle + '>' + //--
'<div ' + headstyle + '>Kalender</div>' + //--
'<div ' + substyle + '>' + world + '</div>' + //--
'<div ' + arrowstyle + '></div>' + //--
month + ' ' + day + ', ' + state.Calendar.now.year + //--
timestr + '<br>' + //--
downstr + //--
moon + //--
'<br>Today\'s weather:<br>' + state.Calendar.now.weather
);
},
getdown = function(days) {
var down = Number(days);
var div = Number(state.Calendar.now.divider);
if(div!=0){
down = down/div;
}
return down;
},
getMoMenu = function() {
var moMenu = ',?{Month|Mörkerviste|Långsnö|Frostfall|Vårkomstdagen|Vattensvall|Blomsterkomst|Gröngräs|Midsommardagen|Högsol|Skördevärv|Sommaränd|Lövfäll|Bittervind|Vinterkomstdagen|Midvinter}">';
return moMenu;
},
getDate = function(options){
var day = Number(options);
var date;
var month;
if(day>0 && day<=31){
month="Mörkerviste";
date=day;
}else if(day>31 && day<=59){
month="Långsnö";
date=day-31;
}else if(day>59 && day<=90){
month="Frostfall";
date=day-59;
}else if(day==91){
month="Vårkomstdagen";
date='festival';
}else if(day>91 && day<=121){
month="Vattensvall";
date=day-91;
}else if(day>121 && day<=152){
month="Blomsterkomst";
date=day-121;
}else if(day>152 && day<=182){
month="Gröngräs";
date=day-152;
}else if(day==183){
month="Midsommardagen";
date='festival';
}else if(day>183 && day<=214){
month="Högsol"
date=day-183;
}else if(day>214 && day<=245){
month="Skördevärv";
date=day-214;
}else if(day>245 && day<=275){
month="Sommaränd";
date=day-245;
}else if(day>275 && day<=306){
month="Lövfäll";
date=day-275;
}else if(day>306 && day<=336){
month="Bittervind";
date=day-306;
}else if(day==337){
month="Vinterkomstdagen";
date='festival';
}else if(day>337 && day<=368){
month="Midvinter";
date=day-337;
}else{
month="Mörkerviste";
date='1';
}
var array=month+','+String(date);
return array;
},
getOrdinal = function(options){
var args = options.content.split(",");
var date = args[1];
var month = args[2];
var ordinal = state.Calendar.now.ordinal;
if(date == 'festival'){
date = 1;
}else{
date = Number(args[1]);
}
switch(month) {
case 'Mörkerviste':
ordinal = date;
break;
case 'Långsnö':
ordinal = 31+date;
break;
case 'Frostfall':
ordinal = 59+date;
break;
case 'Vårkomstdagen':
ordinal = 91;
break;
case 'Vattensvall':
ordinal = 91+date;
break;
case 'Blomsterkomst':
ordinal = 121+date;
break;
case 'Gröngräs':
ordinal = 152+date;
break;
case 'Midsommardagen':
ordinal = 183;
break;
case 'Högsol':
ordinal = 183+date;
break;
case 'Skördevärv':
ordinal = 214+date;
break;
case 'Sommaränd':
ordinal = 245+date;
break;
case 'Lövfäll':
ordinal = 275+date;
break;
case 'Bittervind':
ordinal = 306+date;
break;
case 'Vinterkomstdagen':
ordinal = 337;
break;
case 'Midvinter':
ordinal = 337+date;
break;
}
state.Calendar.now.ordinal = ordinal;
},
addday = function(no){
var days = Number(no);
var ordinal = Number(state.Calendar.now.ordinal);
var div = state.Calendar.now.divider;
if(div!=0){
state.Calendar.now.down = Number(state.Calendar.now.down)+days;
}
var newordinal = ordinal+days;
if(newordinal>368){
state.Calendar.now.ordinal=newordinal-368;
state.Calendar.now.year = Number(state.Calendar.now.year)+1;
}else{
state.Calendar.now.ordinal = newordinal;
}
},
addtime = function(no){
if (state.Calendar.now.timetype === "OFF" || state.Calendar.now.timetype === "General"){
sendChat("Calendar","/w gm You must select the 24 hour clock to use the advance time function.");
return;
}
var addhours = Number(no);
var timecheck = state.Calendar.now.time;
var currtime = state.Calendar.now.time.split(":");
var hour = currtime[0];
var newhour = Number(hour) + addhours;
var day = 0;
while (newhour > 24) {
newhour = newhour - 24;
day ++;
}
if (day > 0) {
addday(day);
weather();
}
state.Calendar.now.time = newhour + ":" + currtime[1];
},
getsuffix = function(day) {
var date = day;
var suffix;
if (date == 'festival'){
suffix = '';
}else if (date == 1 || date == 2 || date == 21 || date == 22 || date == 31 ){
suffix = ':a';
}else{
suffix = ':e';
}
return suffix;
},
weather = function() {
var roll;
var temperature;
var wind;
var precipitation;
var season;
var ordinal = state.Calendar.now.ordinal;
if(ordinal > 349 || ordinal <= 75){
season = 'Winter'
}else if(ordinal <= 166){
season = 'Spring'
}else if(ordinal <=257 ){
season = 'Summer'
}else if(ordinal <=349 ){
season = 'Fall'
}
roll = Math.floor(Math.random()*(20-1+1)+1);
if(roll>=15 && roll<=17){
switch(season) {
case 'Winter':
temperature = 'It is a bitterly cold winter day. ';
break;
case 'Spring':
temperature = 'It is a cold spring day. ';
break;
case 'Summer':
temperature = 'It is a cool summer day. ';
break;
case 'Fall':
temperature = 'It is a cold fall day. ';
break;
}
}else if(roll>=18 && roll<=20){
switch(season) {
case 'Winter':
temperature = 'It is a warm winter day. ';
break;
case 'Spring':
temperature = 'It is a hot spring day. ';
break;
case 'Summer':
temperature = 'It is a blisteringly hot summer day. ';
break;
case 'Fall':
temperature = 'It is a hot fall day. ';
break;
}
}else{
switch(season) {
case 'Winter':
temperature = 'It is a cold winter day. ';
break;
case 'Spring':
temperature = 'It is a mild spring day. ';
break;
case 'Summer':
temperature = 'It is a hot summer day. ';
break;
case 'Fall':
temperature = 'It is a mild fall day. ';
break;
}
}
roll = Math.floor(Math.random()*(20-1+1)+1);
if(roll>=15 && roll<=17){
wind='There is a light breeze and ';
}else if(roll>=18 && roll<=20){
wind='There is a howling wind and ';
}else{
wind='The air is still and ';
}
roll = Math.floor(Math.random()*(20-1+1)+1);
if(roll>=15 && roll<=17){
precipitation="Light rain or snow.";
if(season=='Winter'){
precipitation = 'snow falls softly on the ground.';
}else{
precipitation = 'a light rain falls from the sky.';
}
}else if(roll>=18 && roll<=20){
if(season=='Winter'){
precipitation = 'snow falls thick and fast from the sky.';
}else{
precipitation = 'a torrential rain begins to fall.';
}
}else{
roll = randomInteger(2);
if(roll==1){
precipitation = 'the sky is overcast.';
}else{
precipitation = 'the sky is clear.';
}
}
var forecast=temperature+wind+precipitation;
state.Calendar.now.weather = forecast;
},
getMundanaMoon = function() {
var ordinal = Number(state.Calendar.now.ordinal);
var tristianaArray = '0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16';
var izagardArray = '0,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16,1,2,3,3,4,5,5,6,7,7,8,9,10,11,11,12,13,13,14,15,15,16,16';
var tristianaNO = tristianaArray.split(",");
var tristianaImg = tristianaNO[ordinal];
var tristiana = getMoon(tristianaImg);
var izagardNO = izagardArray.split(",");
var izagardImg = izagardNO[ordinal];
var izagard = getMoon(izagardImg);
var moon = '<tr><td><img src="'+tristiana+'" style="width:40px;height:40px;"></td><td><img src="'+izagard+'" style="width:30px;height:30px;"></td></tr><tr><td>Tristiana</td><td>Izagard</td></tr>';
return moon;
},
getMoon = function(moonNo) {
var args = moonNo;
var moon;
switch(args) {
case '1':
// moon = 'Full Moon';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Twemoji_1f315.svg/512px-Twemoji_1f315.svg.png';
break;
case '2':
// moon = 'Waning Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Twemoji_1f316.svg/512px-Twemoji_1f316.svg.png';
break;
case '3':
// moon = 'Waning Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Twemoji_1f316.svg/512px-Twemoji_1f316.svg.png';
break;
case '4':
// moon = 'Waning Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Twemoji_1f316.svg/512px-Twemoji_1f316.svg.png';
break;
case '5':
// moon = 'Last Quarter';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Twemoji_1f317.svg/512px-Twemoji_1f317.svg.png';
break;
case '6':
// moon = 'Waning Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Twemoji_1f318.svg/512px-Twemoji_1f318.svg.png';
break;
case '7':
// moon = 'Waning Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Twemoji_1f318.svg/512px-Twemoji_1f318.svg.png';
break;
case '8':
// moon = 'Waning Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Twemoji_1f318.svg/512px-Twemoji_1f318.svg.png';
break;
case '9':
// moon = 'New Moon';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Twemoji_1f311.svg/512px-Twemoji_1f311.svg.png';
break;
case '10':
// moon = 'Waxing Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Twemoji_1f312.svg/512px-Twemoji_1f312.svg.png';
break;
case '11':
// moon = 'Waxing Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Twemoji_1f312.svg/512px-Twemoji_1f312.svg.png';
break;
case '12':
// moon = 'Waxing Crescent';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Twemoji_1f312.svg/512px-Twemoji_1f312.svg.png';
break;
case '13':
// moon = 'First Quarter';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/Twemoji_1f313.svg/512px-Twemoji_1f313.svg.png';
break;
case '14':
// moon = 'Waxing Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Twemoji_1f314.svg/512px-Twemoji_1f314.svg.png';
break;
case '15':
// moon = 'Waxing Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Twemoji_1f314.svg/512px-Twemoji_1f314.svg.png';
break;
case '16':
// moon = 'Waxing Gibbous';
moon = 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Twemoji_1f314.svg/512px-Twemoji_1f314.svg.png';
break;
}
return moon;
},
timemenu = function() {
var timetype = state.Calendar.now.timetype;
var timeselect = 'OFF';
switch(timetype) {
case 'General':
timeselect = '?{Time?|Morning (dawn)|Early Morning|Late Morning|Noon|Afternoon|Early Evening|Evening (dusk)|Late Evening|Midnight|After Midnight}';
break;
case '24 Hour':
timeselect = '?{Hour|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24},?{Minute|00,:00|15,:15|30,:30|45,:45}';
break;
}
return timeselect;
},
createHandout = function() {
var handout = createObj('handout',{
name: handoutName
});
return handout;
},
getHandout = function() {
var handout = filterObjs(function(o){
return ( 'handout' === o.get('type') && handoutName === o.get('name') && false === o.get('archived'));
})[0];
if(handout) {
return handout;
}
return createHandout();
},
log = function(msg) {
var args = msg.content.split(",");
var text = args[2];
var addTime = args[1];
var handout = getHandout();
var nowdate = getDate(ordinal).split(',');
var ordinal = state.Calendar.now.ordinal;
var month = nowdate[0];
var day = nowdate[1];
var suffix = getsuffix(day);
var year = state.Calendar.now.year;
var date = day + suffix + " " + month + ", " + year;
handout.get('notes', function(nts) {
if(!_.isNull(nts)){
setTimeout(function(){
var newtext;
if (addTime === "Yes"){
newtext = nts + "<br>" + date + " " + state.Calendar.now.time + " - " + text;
} else {
newtext = nts + "<br>" + date + " - " + text;
}
handout.set('notes', newtext);
},0);
}
setTimeout(function(){},0);
});
sendChat('Calendar','/w gm A new note has been added to the Events Log handout.');
},
checkInstall = function() {
if(typeof state.Calendar == "undefined"){
setDefaults();
}
if ( state.Calendar.now.version != version ){
checkDefaults();
}
},
registerEventHandlers = function() {
on('chat:message', handleInput);
};
return {
CheckInstall: checkInstall,
RegisterEventHandlers: registerEventHandlers
};
}());
on("ready",function(){
'use strict';
Calendar.CheckInstall();
Calendar.RegisterEventHandlers();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment