diff --git a/evennia/web/webclient/static/webclient/js/plugins/multimedia.js b/evennia/web/webclient/static/webclient/js/plugins/multimedia.js new file mode 100644 index 0000000000..59cdc3a4c8 --- /dev/null +++ b/evennia/web/webclient/static/webclient/js/plugins/multimedia.js @@ -0,0 +1,53 @@ +/* + * + * Evennia Webclient multimedia outputs plugin + * + * in evennia python code: + * + * target.msg( image="URL" ) + * target.msg( audio="URL" ) + * target.msg( video="URL" ) + * + */ +let multimedia_plugin = (function () { + // + var image = function (args, kwargs) { + var mwin = $("#messagewindow"); + mwin.append(""); + mwin.scrollTop(mwin[0].scrollHeight); + } + + var audio = function (args, kwargs) { + // create an HTML5 audio control (only .mp3 is fully compatible with all major browsers) + var mwin = $("#messagewindow"); + mwin.append(""); + mwin.scrollTop(mwin[0].scrollHeight); + } + + var video = function (args, kwargs) { + // create an HTML5 video element (only h264 .mp4 is compatible with all major browsers) + var mwin = $("#messagewindow"); + mwin.append(""); + mwin.scrollTop(mwin[0].scrollHeight); + } + + // + // Mandatory plugin init function + var init = function () { + Evennia = window.Evennia; + Evennia.emitter.on('image', image); // capture "image" commands + Evennia.emitter.on('audio', audio); // capture "audio" commands + Evennia.emitter.on('video', video); // capture "video" commands + console.log('Multimedia plugin initialized'); + } + + return { + init: init, + } +})(); +plugin_handler.add('multimedia_plugin', multimedia_plugin); + diff --git a/evennia/web/webclient/templates/webclient/base.html b/evennia/web/webclient/templates/webclient/base.html index fa16a152ee..399389f15e 100644 --- a/evennia/web/webclient/templates/webclient/base.html +++ b/evennia/web/webclient/templates/webclient/base.html @@ -93,6 +93,7 @@ JQuery available. --> + {% endblock %}